Full Code of QwikDev/qwik for AI

main 220105b5d4e7 cached
2456 files
8.1 MB
2.3M tokens
2990 symbols
1 requests
Download .txt
Showing preview only (9,031K chars total). Download the full file or copy to clipboard to get everything.
Repository: QwikDev/qwik
Branch: main
Commit: 220105b5d4e7
Files: 2456
Total size: 8.1 MB

Directory structure:
gitextract_s2quyj30/

├── .all-contributorsrc
├── .changeset/
│   ├── breezy-items-relax.md
│   ├── changelog-github-custom.cjs
│   ├── changelog-github-custom.ts
│   ├── config.json
│   ├── deno-production-builds.md
│   ├── eager-sides-sit.md
│   ├── fix-virtual-css-dev-ssr.md
│   ├── late-parrots-open.md
│   ├── shaky-ends-help.md
│   ├── small-candies-train.md
│   └── smooth-ends-count.md
├── .devcontainer/
│   ├── Dockerfile
│   └── devcontainer.json
├── .dockerignore
├── .envrc
├── .gitattributes
├── .github/
│   ├── CODEOWNERS
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug.yaml
│   │   ├── config.yml
│   │   └── docs_suggestion.yml
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows/
│       ├── ai-issue-triage.yml
│       ├── auto-assign-core-team.yml
│       ├── bench.yml.disabled
│       ├── ci.yml
│       ├── closing-issues.yml
│       ├── deploy-docs.yml
│       └── labeling-issues.yml
├── .gitignore
├── .node-version
├── .nvmrc
├── .prettierignore
├── .prettierrc.json
├── .vscode/
│   ├── extensions.json
│   ├── launch.json
│   ├── qwik.code-snippets
│   └── settings.json
├── @types/
│   ├── bun.d.ts
│   └── deno.d.ts
├── AGENTS.md
├── CLAUDE.md
├── CODE_OF_CONDUCT.md
├── CONTINUOUS_BUILD.md
├── CONTRIBUTING.md
├── Cargo.toml
├── Dockerfile
├── GOVERNANCE.md
├── LICENSE
├── Makefile
├── README.md
├── SECURITY.md
├── contributing/
│   └── TRIAGE.md
├── cspell.json
├── e2e/
│   ├── adapters-e2e/
│   │   ├── .gitignore
│   │   ├── adapters/
│   │   │   └── express/
│   │   │       └── vite.config.ts
│   │   ├── package.json
│   │   ├── playwright.config.ts
│   │   ├── src/
│   │   │   ├── components/
│   │   │   │   ├── click-me/
│   │   │   │   │   └── click-me.tsx
│   │   │   │   └── router-head/
│   │   │   │       └── router-head.tsx
│   │   │   ├── entry.dev.tsx
│   │   │   ├── entry.express.tsx
│   │   │   ├── entry.preview.tsx
│   │   │   ├── entry.ssr.tsx
│   │   │   ├── root.tsx
│   │   │   └── routes/
│   │   │       ├── index.tsx
│   │   │       ├── layout.tsx
│   │   │       ├── profile/
│   │   │       │   └── index.tsx
│   │   │       └── service-worker.ts
│   │   ├── tests/
│   │   │   └── express.spec.ts
│   │   ├── tsconfig.json
│   │   └── vite.config.ts
│   ├── docs-e2e/
│   │   ├── .gitignore
│   │   ├── package.json
│   │   ├── playwright.config.ts
│   │   └── tests/
│   │       ├── Docs/
│   │       │   ├── advanced-pages-load.spec.ts
│   │       │   ├── community-pages.load.spec.ts
│   │       │   ├── concepts-pages-laod.spec.ts
│   │       │   ├── cookbook-pages-load.spec.ts
│   │       │   ├── deployments-pages-load.spec.ts
│   │       │   ├── docs-components-pages-load.spec.ts
│   │       │   ├── guides-pages-load.spec.ts
│   │       │   ├── integrations-pages-load.spec.ts
│   │       │   ├── navBarOnMobile.spec.ts
│   │       │   ├── pages-load-test.spec.ts
│   │       │   ├── qwik-city-pages-load.spec.ts
│   │       │   ├── qwik-labs-pages-load.spec.ts
│   │       │   ├── reference-pages-load.spec.ts
│   │       │   └── searchBar.spec.ts
│   │       ├── Ecosystem/
│   │       │   └── ecosystem-pages-load.spec.ts
│   │       └── Sandbox/
│   │           ├── autoComplete.spec.ts
│   │           ├── clockVisible.spec.ts
│   │           ├── counter.spec.ts
│   │           ├── partial.spec.ts
│   │           ├── routing.spec.ts
│   │           ├── sandbox.spec.ts
│   │           └── usetask.spec.ts
│   ├── qwik-cli-e2e/
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── tests/
│   │   │   └── serve.spec.ts
│   │   ├── tsconfig.json
│   │   ├── utils/
│   │   │   ├── index.ts
│   │   │   └── setup.ts
│   │   └── vite.config.ts
│   └── qwik-react-e2e/
│       ├── .gitignore
│       ├── adapters/
│       │   └── express/
│       │       └── vite.config.ts
│       ├── package.json
│       ├── playwright.config.ts
│       ├── src/
│       │   ├── components/
│       │   │   ├── counter/
│       │   │   │   └── index.tsx
│       │   │   └── router-head/
│       │   │       └── router-head.tsx
│       │   ├── entry.dev.tsx
│       │   ├── entry.express.tsx
│       │   ├── entry.preview.tsx
│       │   ├── entry.ssr.tsx
│       │   ├── root.tsx
│       │   └── routes/
│       │       ├── index.tsx
│       │       ├── layout.tsx
│       │       └── react/
│       │           └── index.tsx
│       ├── tests/
│       │   └── express.spec.ts
│       ├── tsconfig.json
│       └── vite.config.ts
├── eslint.config.js
├── flake.nix
├── package.json
├── packages/
│   ├── create-qwik/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── create-qwik.cjs
│   │   ├── index.ts
│   │   ├── package.json
│   │   └── src/
│   │       ├── create-app-facade.ts
│   │       ├── create-app.ts
│   │       ├── helpers/
│   │       │   ├── clearDir.ts
│   │       │   ├── installDepsCli.ts
│   │       │   ├── jokes.json
│   │       │   ├── jokes.ts
│   │       │   ├── logAppCreated.ts
│   │       │   ├── resolveRelativeDir.ts
│   │       │   └── templateManager.ts
│   │       ├── run-create-cli.ts
│   │       ├── run-create-interactive-cli.ts
│   │       └── types.ts
│   ├── docs/
│   │   ├── .gitignore
│   │   ├── .node-version
│   │   ├── .npmrc
│   │   ├── .prettierignore
│   │   ├── README.md
│   │   ├── adapters/
│   │   │   └── cloudflare-pages/
│   │   │       └── vite.config.mts
│   │   ├── algolia.json
│   │   ├── check-qwik-build.ts
│   │   ├── codesandbox.sync.ts
│   │   ├── contributors.ts
│   │   ├── global.d.ts
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── _headers
│   │   │   ├── _redirects
│   │   │   ├── _routes.json
│   │   │   ├── builder/
│   │   │   │   ├── 115b3b36cedd455196b06f5d33a57ac1
│   │   │   │   ├── 281010f5f1694d8bbf399c8ffe4a1d87
│   │   │   │   ├── 2e03c5254011431fb48466e2e1eb08a2
│   │   │   │   ├── 31df46c5b87744fd8a4347d3a17a47a6
│   │   │   │   ├── 329d8065fc13497e8588c3f03df1f49a
│   │   │   │   ├── 42067d8b20a74503a497b72f53665b13
│   │   │   │   ├── 4b7b38f10af348c4b8b2809db664c11f
│   │   │   │   ├── 52a1f6b5be704dc9b5080d64acfb9ccf
│   │   │   │   ├── 644d27976d234ec9b453501c209bffa3
│   │   │   │   ├── 67d3020da766431cb03fbe794e808be8
│   │   │   │   ├── 80ac5f7793b545499d3d8944ff7ff3f3
│   │   │   │   ├── 8f2ccdcaa669452c85c1b74d2c162a3d
│   │   │   │   ├── 91320f7f7e764055b4f1722189241838
│   │   │   │   ├── a27427ee8bac4f509053ca6de1a4553a
│   │   │   │   ├── aee5f202a90e4659bbc6374aed3ff138
│   │   │   │   ├── b6a806948cef4946aec55fa4fa9173cd
│   │   │   │   ├── ba922b4f3134477580035b01dc804a26
│   │   │   │   ├── bef8f28d07034b91a89f4518e06314da
│   │   │   │   ├── c32d1ef92781491a86dcdc8859b193d2
│   │   │   │   ├── ccfe1879407845b8906b870fc4ef607d
│   │   │   │   ├── d1768a789936434a905973daf12768f6
│   │   │   │   ├── d805a18ff6d0410f92603fb691c87349
│   │   │   │   ├── eee9dff8ee0e4b4e9ad1a8825643030c
│   │   │   │   ├── efcf8d0391fe4d8bb7e557e6d295a2b2
│   │   │   │   ├── fdc08238cb4d49d48d3a468308992e15
│   │   │   │   ├── high.js
│   │   │   │   ├── med.js
│   │   │   │   └── qwik-0.100.0.js
│   │   │   ├── docs/
│   │   │   │   └── qwikcity/
│   │   │   │       └── README.md
│   │   │   └── robots.txt
│   │   ├── scripts/
│   │   │   ├── pages.json
│   │   │   └── showcase.ts
│   │   ├── src/
│   │   │   ├── components/
│   │   │   │   ├── code-block/
│   │   │   │   │   ├── code-block.css
│   │   │   │   │   ├── code-block.tsx
│   │   │   │   │   └── prismjs.ts
│   │   │   │   ├── code-sandbox/
│   │   │   │   │   ├── index.css
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── content-nav/
│   │   │   │   │   ├── content-nav.css
│   │   │   │   │   └── content-nav.tsx
│   │   │   │   ├── contributors/
│   │   │   │   │   ├── contributors.css
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── copy-code/
│   │   │   │   │   ├── copy-code-block.tsx
│   │   │   │   │   └── copy-code.css
│   │   │   │   ├── docsearch/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── algolia-logo.tsx
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── context.ts
│   │   │   │   │   ├── doc-search-button.tsx
│   │   │   │   │   ├── doc-search-modal.tsx
│   │   │   │   │   ├── doc-search.css
│   │   │   │   │   ├── doc-search.tsx
│   │   │   │   │   ├── error-screen.tsx
│   │   │   │   │   ├── handleSearch.ts
│   │   │   │   │   ├── hit.tsx
│   │   │   │   │   ├── icons/
│   │   │   │   │   │   ├── ControlKeyIcon.tsx
│   │   │   │   │   │   ├── ErrorIcon.tsx
│   │   │   │   │   │   ├── LoadingIcon.tsx
│   │   │   │   │   │   ├── NoResultsIcon.tsx
│   │   │   │   │   │   ├── RecentIcon.tsx
│   │   │   │   │   │   ├── ResetIcon.tsx
│   │   │   │   │   │   ├── SearchIcon.tsx
│   │   │   │   │   │   ├── SelectIcon.tsx
│   │   │   │   │   │   ├── SourceIcon.tsx
│   │   │   │   │   │   └── StarIcon.tsx
│   │   │   │   │   ├── no-results-screen.tsx
│   │   │   │   │   ├── result.tsx
│   │   │   │   │   ├── results-screen.tsx
│   │   │   │   │   ├── screen-state.tsx
│   │   │   │   │   ├── search-box.tsx
│   │   │   │   │   ├── snippet.tsx
│   │   │   │   │   ├── start-screen.tsx
│   │   │   │   │   ├── stored-searches.ts
│   │   │   │   │   ├── types/
│   │   │   │   │   │   ├── DocSearchHit.ts
│   │   │   │   │   │   ├── InternalDocSearchHit.ts
│   │   │   │   │   │   ├── StoredDocSearchHit.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── useTouchEvents.ts
│   │   │   │   │   ├── useTrapFocus.ts
│   │   │   │   │   ├── utils/
│   │   │   │   │   │   ├── groupBy.ts
│   │   │   │   │   │   ├── identity.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── isSamsung.ts
│   │   │   │   │   │   ├── noop.ts
│   │   │   │   │   │   ├── removeHighlightTags.ts
│   │   │   │   │   │   └── stalledControl.ts
│   │   │   │   │   └── version.ts
│   │   │   │   ├── footer/
│   │   │   │   │   ├── footer.css
│   │   │   │   │   └── footer.tsx
│   │   │   │   ├── header/
│   │   │   │   │   ├── header.css
│   │   │   │   │   └── header.tsx
│   │   │   │   ├── on-this-page/
│   │   │   │   │   ├── on-this-page.css
│   │   │   │   │   └── on-this-page.tsx
│   │   │   │   ├── package-manager-tabs/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── panel-toggle/
│   │   │   │   │   ├── panel-toggle.css
│   │   │   │   │   └── panel-toggle.tsx
│   │   │   │   ├── qwik-gpt/
│   │   │   │   │   ├── gpt.md
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── search.tsx
│   │   │   │   │   └── streaming-gpt.ts
│   │   │   │   ├── real-metrics-optimization/
│   │   │   │   │   └── real-metrics-optimization.tsx
│   │   │   │   ├── router-head/
│   │   │   │   │   ├── router-head.tsx
│   │   │   │   │   ├── social.tsx
│   │   │   │   │   └── vendor.tsx
│   │   │   │   ├── sidebar/
│   │   │   │   │   ├── sidebar.css
│   │   │   │   │   └── sidebar.tsx
│   │   │   │   ├── sponsors/
│   │   │   │   │   └── sponsors.tsx
│   │   │   │   ├── svgs/
│   │   │   │   │   ├── alert-icon.tsx
│   │   │   │   │   ├── bluesky-logo.tsx
│   │   │   │   │   ├── builder-logo.tsx
│   │   │   │   │   ├── chat-icon.tsx
│   │   │   │   │   ├── close-icon.tsx
│   │   │   │   │   ├── copy-code-icon.tsx
│   │   │   │   │   ├── discord-logo.tsx
│   │   │   │   │   ├── edit-icon.tsx
│   │   │   │   │   ├── github-logo.tsx
│   │   │   │   │   ├── more-icon.tsx
│   │   │   │   │   ├── qwik-logo.tsx
│   │   │   │   │   └── twitter-logo.tsx
│   │   │   │   └── theme-toggle/
│   │   │   │       ├── Brilliance.tsx
│   │   │   │       ├── Moon.tsx
│   │   │   │       ├── README.md
│   │   │   │       ├── Sun.tsx
│   │   │   │       ├── load-theme.js
│   │   │   │       ├── theme-script.tsx
│   │   │   │       ├── theme-toggle.css
│   │   │   │       └── theme-toggle.tsx
│   │   │   ├── constants.ts
│   │   │   ├── context.ts
│   │   │   ├── empty.ts
│   │   │   ├── entry.cloudflare-pages.tsx
│   │   │   ├── entry.dev.tsx
│   │   │   ├── entry.preview.tsx
│   │   │   ├── entry.ssr.tsx
│   │   │   ├── global.css
│   │   │   ├── repl/
│   │   │   │   ├── README.md
│   │   │   │   ├── bundler/
│   │   │   │   │   ├── bundled.tsx
│   │   │   │   │   ├── bundler-worker.ts
│   │   │   │   │   ├── client-events-listener.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── repl-ssr-worker.ts
│   │   │   │   │   └── rollup-plugins.ts
│   │   │   │   ├── register-repl-sw.ts
│   │   │   │   ├── repl-constants.ts
│   │   │   │   ├── repl-instance.ts
│   │   │   │   ├── repl-sw.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── ui/
│   │   │   │       ├── editor.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       ├── monaco.tsx
│   │   │   │       ├── repl-commands.tsx
│   │   │   │       ├── repl-console.tsx
│   │   │   │       ├── repl-detail-panel.tsx
│   │   │   │       ├── repl-input-panel.tsx
│   │   │   │       ├── repl-options.tsx
│   │   │   │       ├── repl-output-modules.tsx
│   │   │   │       ├── repl-output-panel.tsx
│   │   │   │       ├── repl-output-segments.tsx
│   │   │   │       ├── repl-output-update.ts
│   │   │   │       ├── repl-share-url.ts
│   │   │   │       ├── repl-share-url.unit.ts
│   │   │   │       ├── repl-tab-button.tsx
│   │   │   │       ├── repl-tab-buttons.tsx
│   │   │   │       ├── repl-version.ts
│   │   │   │       └── repl.css
│   │   │   ├── root.tsx
│   │   │   ├── routes/
│   │   │   │   ├── (blog)/
│   │   │   │   │   ├── blog/
│   │   │   │   │   │   ├── (articles)/
│   │   │   │   │   │   │   ├── astro-qwik/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── fontless/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── framer-motion-qwik/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── introducing-qwik-starters/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── module-extraction-the-silent-web-revolution/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-1-14-preloader/
│   │   │   │   │   │   │   │   ├── index.mdx
│   │   │   │   │   │   │   │   ├── modulepreload-no-delay-demo-crop.webm
│   │   │   │   │   │   │   │   └── service-worker-delay-demo-crop.webm
│   │   │   │   │   │   │   ├── qwik-1-2-performance-autopilot/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-2-coming-soon/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-and-qwik-city-have-reached-beta/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-city-routing/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-city-server-functions/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-next-leap/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-rc-milestone/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-tasks/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-v1/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── resumable-react-how-to-use-react-inside-qwik/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── the-qase-for-qwik-love-at-first-tti/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   └── type-safe-forms-in-qwik/
│   │   │   │   │   │   │       └── index.mdx
│   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   ├── articles-grid.tsx
│   │   │   │   │   │   │   ├── featured-article.tsx
│   │   │   │   │   │   │   └── mdx/
│   │   │   │   │   │   │       ├── article-block.tsx
│   │   │   │   │   │   │       ├── article-hero.tsx
│   │   │   │   │   │   │       └── discord-link.tsx
│   │   │   │   │   │   ├── icons/
│   │   │   │   │   │   │   ├── clock-icon.tsx
│   │   │   │   │   │   │   └── send-icon.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── data.ts
│   │   │   │   │   └── layout.tsx
│   │   │   │   ├── (ecosystem)/
│   │   │   │   │   ├── ecosystem/
│   │   │   │   │   │   ├── ecosystem-menu.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── menu-items.tsx
│   │   │   │   │   │   ├── mobile-ecosystem-menu.tsx
│   │   │   │   │   │   └── qwik-plus-logo.tsx
│   │   │   │   │   ├── ecosystem.css
│   │   │   │   │   ├── ecosystem.json
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   ├── media/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── media.css
│   │   │   │   │   └── showcase/
│   │   │   │   │       ├── generated-pages.json
│   │   │   │   │       ├── index.tsx
│   │   │   │   │       └── styles.css
│   │   │   │   ├── 404/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── 404.css
│   │   │   │   ├── 404.tsx
│   │   │   │   ├── api/
│   │   │   │   │   ├── api.css
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   ├── qwik/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-middleware-aws-lambda/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-middleware-azure-swa/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-middleware-cloudflare-pages/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-middleware-firebase/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-middleware-netlify-edge/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-middleware-node/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-middleware-request-handler/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-middleware-vercel-edge/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-static/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-vite-azure-swa/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-vite-bun-server/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-vite-cloud-run/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-vite-cloudflare-pages/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-vite-netlify-edge/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-vite-node-server/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-vite-static/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-vite-vercel/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-optimizer/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-server/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   └── qwik-testing/
│   │   │   │   │       ├── api.json
│   │   │   │   │       └── index.mdx
│   │   │   │   ├── community/
│   │   │   │   │   ├── groups/
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   ├── menu.md
│   │   │   │   │   ├── projects/
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   └── values/
│   │   │   │   │       └── index.mdx
│   │   │   │   ├── demo/
│   │   │   │   │   ├── .prettierrc.json
│   │   │   │   │   ├── api/
│   │   │   │   │   │   └── add/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── component/
│   │   │   │   │   │   ├── child/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── inline-child/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── lazy/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── primitive-props/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── props/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── ref/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── reference-props/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── relativeUrl/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── simple/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── useId/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── context/
│   │   │   │   │   │   └── minimal/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── cookbook/
│   │   │   │   │   │   ├── algolia-search/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── combine-request-handlers/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── debouncer/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── detect-img-tag-onload/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── drag&drop/
│   │   │   │   │   │   │   ├── advanced/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── basic/
│   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   ├── glob-import/
│   │   │   │   │   │   │   ├── examples/
│   │   │   │   │   │   │   │   ├── example1.tsx
│   │   │   │   │   │   │   │   ├── example2.tsx
│   │   │   │   │   │   │   │   └── example3.tsx
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── leaflet-map/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── mediaController/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── nav-link/
│   │   │   │   │   │   │   ├── example/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── portal/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── layout.tsx
│   │   │   │   │   │   │   ├── popup-example.css
│   │   │   │   │   │   │   ├── portal-provider.css
│   │   │   │   │   │   │   └── portal-provider.tsx
│   │   │   │   │   │   ├── re-exporting-loaders/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── shared/
│   │   │   │   │   │   │   │   └── loaders.ts
│   │   │   │   │   │   │   └── third-party/
│   │   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │   │       └── third-party-library.tsx
│   │   │   │   │   │   ├── streaming-deferred-loaders/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── sync-event/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── demo-reset.css
│   │   │   │   │   ├── events/
│   │   │   │   │   │   ├── custom-event/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── extracted-handler/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── global-events/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── mouse-position/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── preventdefault/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── synchronous/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── target/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── use-on/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       └── use-on-window/
│   │   │   │   │   │           └── index.tsx
│   │   │   │   │   ├── getting-started/
│   │   │   │   │   │   ├── 01-route/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── 02-loading-data/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── 03-posting-data/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── 04-state/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── 05-tasks/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── 06-styling/
│   │   │   │   │   │       ├── index.css
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── integration/
│   │   │   │   │   │   ├── img/
│   │   │   │   │   │   │   ├── qwik-image/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── unpic/
│   │   │   │   │   │   │       └── simple/
│   │   │   │   │   │   │           └── index.tsx
│   │   │   │   │   │   └── modular-forms/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   ├── qwikcity/
│   │   │   │   │   │   └── middleware/
│   │   │   │   │   │       ├── basePathname/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── cacheControl/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── component/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── cookie/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── env/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── error/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── exit/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── getWritableStream/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── headerSent/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── headers/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── html/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── json/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── layout.tsx
│   │   │   │   │   │       ├── locale/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── method/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── next/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── params/
│   │   │   │   │   │       │   └── [myId]/
│   │   │   │   │   │       │       └── index.tsx
│   │   │   │   │   │       ├── parseBody/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── platform/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── proxy/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── query/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── redirect/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── request/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── send/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── sharedMap/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── status/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── text/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── throw/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       └── url/
│   │   │   │   │   │           └── index.tsx
│   │   │   │   │   ├── react/
│   │   │   │   │   │   ├── children/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── react.tsx
│   │   │   │   │   │   ├── counter-simple/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── react.tsx
│   │   │   │   │   │   ├── counter-simple-hover/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── react.tsx
│   │   │   │   │   │   ├── counter-two-islands/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── react.tsx
│   │   │   │   │   │   ├── counter-two-islands-host/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── react.tsx
│   │   │   │   │   │   ├── hello-world/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── react.tsx
│   │   │   │   │   │   ├── mui/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── react.tsx
│   │   │   │   │   │   └── slider/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       └── react.tsx
│   │   │   │   │   ├── resumability/
│   │   │   │   │   │   ├── component.css
│   │   │   │   │   │   ├── component.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── slot/
│   │   │   │   │   │   ├── advanced/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── basic/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── named/
│   │   │   │   │   │   │   ├── index.css
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── unprojected/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── state/
│   │   │   │   │   │   ├── computed/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── counter/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── counter-signal/
│   │   │   │   │   │   │   ├── .prettierrc.json
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── counter-store/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── counter-store-deep/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── counter-store-no-track/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── no-serialize/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── monaco.tsx
│   │   │   │   │   │   ├── passing-context/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── passing-props/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── resource/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── resource-agify/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── resource-joke/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── tasks/
│   │   │   │   │   │   ├── cleanup/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── track/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── track-fn/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── track-server-guard/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── use-task/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── use-visible-task/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── use-visible-task-eager/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   └── tsconfig.json
│   │   │   │   ├── devtools/
│   │   │   │   │   └── json/
│   │   │   │   │       └── index.tsx
│   │   │   │   ├── docs/
│   │   │   │   │   ├── (qwik)/
│   │   │   │   │   │   ├── advanced/
│   │   │   │   │   │   │   ├── containers/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── custom-build-dir/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── dollar/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── eslint/
│   │   │   │   │   │   │   │   ├── index.mdx
│   │   │   │   │   │   │   │   └── styles.css
│   │   │   │   │   │   │   ├── library/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── modules-prefetching/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── optimizer/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qrl/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwikloader/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   └── vite/
│   │   │   │   │   │   │       └── index.mdx
│   │   │   │   │   │   ├── concepts/
│   │   │   │   │   │   │   ├── progressive/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── resumable/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   └── think-qwik/
│   │   │   │   │   │   │       └── index.mdx
│   │   │   │   │   │   ├── core/
│   │   │   │   │   │   │   ├── context/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── events/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── overview/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── rendering/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── slots/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── state/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── styles/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   └── tasks/
│   │   │   │   │   │   │       └── index.mdx
│   │   │   │   │   │   ├── deprecated-features/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── faq/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── getting-started/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── (qwikcity)/
│   │   │   │   │   │   ├── action/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── advanced/
│   │   │   │   │   │   │   ├── complex-forms/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── content-security-policy/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── menu/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── plugins/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── request-handling/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── routing/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── sitemaps/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── speculative-module-fetching/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   └── static-assets/
│   │   │   │   │   │   │       └── index.mdx
│   │   │   │   │   │   ├── api/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── caching/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── endpoints/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── error-handling/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── guides/
│   │   │   │   │   │   │   ├── best-practices/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── bundle/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── capacitor/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── debugging/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── deploy/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── env-variables/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── mdx/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-nutshell/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── react-cheat-sheet/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── redirects/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── rewrites/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── serialization/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   └── static-site-generation/
│   │   │   │   │   │   │       └── index.mdx
│   │   │   │   │   │   ├── html-attributes/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── layout/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── middleware/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── pages/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── project-structure/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── qwikcity/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── qwikcity-deprecated-features/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── re-exporting-loaders/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── route-loader/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── routing/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── server$/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── troubleshooting/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   └── validator/
│   │   │   │   │   │       └── index.mdx
│   │   │   │   │   ├── cookbook/
│   │   │   │   │   │   ├── algolia-search/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── combine-request-handlers/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── debouncer/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── detect-img-tag-onload/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── drag&drop/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── fonts/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── glob-import/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── index.mdx
│   │   │   │   │   │   ├── mediaController/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── nav-link/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── node-docker-deploy/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── portals/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── streaming-deferred-loaders/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── sync-events/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── theme-management/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   └── view-transition/
│   │   │   │   │   │       └── index.mdx
│   │   │   │   │   ├── deployments/
│   │   │   │   │   │   ├── aws-lambda/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── azion/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── azure-swa/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── bun/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── cloudflare-pages/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── cloudflare-workers/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── delete-layout.tsx
│   │   │   │   │   │   ├── deno/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── firebase/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── gcp-cloud-run/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── github-pages/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── index.mdx
│   │   │   │   │   │   ├── netlify-edge/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── node/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── self-hosting/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── static/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   └── vercel-edge/
│   │   │   │   │   │       └── index.mdx
│   │   │   │   │   ├── docs.css
│   │   │   │   │   ├── integrations/
│   │   │   │   │   │   ├── astro/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── authjs/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── bootstrap/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── builderio/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── cypress/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── delete-layout.tsx
│   │   │   │   │   │   ├── drizzle/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── i18n/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── icons/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── image-optimization/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── index.mdx
│   │   │   │   │   │   ├── integrations-list.tsx
│   │   │   │   │   │   ├── leaflet-map/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── modular-forms/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── nx/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── og-img/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── orama/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── panda-css/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── partytown/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── playwright/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── postcss/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── prisma/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── react/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── storybook/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── styled-vanilla-extract/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── supabase/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── tailwind/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── tailwind-v3/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── tauri/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── turso/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   └── vitest/
│   │   │   │   │   │       └── index.mdx
│   │   │   │   │   ├── labs/
│   │   │   │   │   │   ├── devtools/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── index.mdx
│   │   │   │   │   │   ├── insights/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── typed-routes/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   └── usePreventNavigate/
│   │   │   │   │   │       └── index.mdx
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   └── menu.md
│   │   │   │   ├── examples/
│   │   │   │   │   ├── [...id]/
│   │   │   │   │   │   ├── examples.css
│   │   │   │   │   │   └── index!.tsx
│   │   │   │   │   └── apps/
│   │   │   │   │       ├── README.md
│   │   │   │   │       ├── examples-data.ts
│   │   │   │   │       ├── examples-menu.json
│   │   │   │   │       ├── introduction/
│   │   │   │   │       │   ├── hello-world/
│   │   │   │   │       │   │   ├── app.tsx
│   │   │   │   │       │   │   ├── entry.server.tsx
│   │   │   │   │       │   │   └── root.tsx
│   │   │   │   │       │   └── runtime-less/
│   │   │   │   │       │       ├── app.tsx
│   │   │   │   │       │       ├── entry.server.tsx
│   │   │   │   │       │       └── root.tsx
│   │   │   │   │       ├── partial/
│   │   │   │   │       │   └── hackernews-index/
│   │   │   │   │       │       ├── app.tsx
│   │   │   │   │       │       ├── entry.server.tsx
│   │   │   │   │       │       ├── hacker-news.css
│   │   │   │   │       │       └── root.tsx
│   │   │   │   │       ├── reactivity/
│   │   │   │   │       │   ├── auto-complete/
│   │   │   │   │       │   │   ├── app.tsx
│   │   │   │   │       │   │   ├── entry.server.tsx
│   │   │   │   │       │   │   └── root.tsx
│   │   │   │   │       │   ├── counter/
│   │   │   │   │       │   │   ├── app.tsx
│   │   │   │   │       │   │   ├── entry.server.tsx
│   │   │   │   │       │   │   └── root.tsx
│   │   │   │   │       │   └── task/
│   │   │   │   │       │       ├── app.tsx
│   │   │   │   │       │       ├── entry.server.tsx
│   │   │   │   │       │       └── root.tsx
│   │   │   │   │       └── visibility/
│   │   │   │   │           └── clock/
│   │   │   │   │               ├── app.tsx
│   │   │   │   │               ├── clock.css
│   │   │   │   │               ├── entry.server.tsx
│   │   │   │   │               └── root.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── playground/
│   │   │   │   │   ├── app/
│   │   │   │   │   │   ├── app.tsx
│   │   │   │   │   │   ├── entry.server.tsx
│   │   │   │   │   │   └── root.tsx
│   │   │   │   │   ├── index!.tsx
│   │   │   │   │   ├── playground-data.ts
│   │   │   │   │   └── playground.css
│   │   │   │   ├── plugin@builder.io-redirect.ts
│   │   │   │   ├── plugin@redirects.ts
│   │   │   │   ├── press/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── query/
│   │   │   │   │   ├── [id]/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── repl/
│   │   │   │   │   ├── [catchAll]/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   └── repl-sw.js/
│   │   │   │   │       └── entry.ts
│   │   │   │   └── tutorial/
│   │   │   │       ├── component/
│   │   │   │       │   ├── basic/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── binding/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── composition/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── lite/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── composing/
│   │   │   │       │   ├── dollar/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── use/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── context/
│   │   │   │       │   └── basic/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── events/
│   │   │   │       │   ├── basic/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── document/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── preventdefault/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── programmatic/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── synchronous-sync/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── synchronous-visible/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── hooks/
│   │   │   │       │   ├── use-on/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── use-task/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── use-visible-task/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   ├── app.tsx
│   │   │   │       │       │   └── clock.css
│   │   │   │       │       └── solution/
│   │   │   │       │           ├── app.tsx
│   │   │   │       │           └── clock.css
│   │   │   │       ├── introduction/
│   │   │   │       │   ├── component/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── listeners/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── resource/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── store/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── layout.tsx
│   │   │   │       ├── projection/
│   │   │   │       │   ├── basic/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── fallback/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── slots/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── props/
│   │   │   │       │   ├── basic/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── closures/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── qrl/
│   │   │   │       │   ├── closures/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── data/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── optimizer/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── reactivity/
│   │   │   │       │   ├── explicit/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── resource/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── template/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── store/
│   │   │   │       │   ├── basic/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── no-serialize/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── recursive/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── serialization/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── use-signal/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── style/
│   │   │   │       │   ├── scoped/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── styles/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── tutorial-content-footer.tsx
│   │   │   │       ├── tutorial-content-header.tsx
│   │   │   │       ├── tutorial-data.ts
│   │   │   │       ├── tutorial-menu.json
│   │   │   │       ├── tutorial.css
│   │   │   │       ├── understanding/
│   │   │   │       │   ├── capturing/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── treeshaking/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       └── welcome/
│   │   │   │           └── overview/
│   │   │   │               ├── index.md
│   │   │   │               ├── problem/
│   │   │   │               │   └── app.tsx
│   │   │   │               └── solution/
│   │   │   │                   └── app.tsx
│   │   │   └── utils/
│   │   │       └── utils.ts
│   │   ├── test-urls.js
│   │   ├── tsconfig.json
│   │   ├── vite.config-repl-sw.mts
│   │   ├── vite.config.mts
│   │   ├── vite.repl-apps.ts
│   │   ├── vite.source-resolver.ts
│   │   ├── wrangler.jsonc
│   │   └── wrangler.toml
│   ├── eslint-plugin-qwik/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── examples.ts
│   │   ├── index.ts
│   │   ├── package.json
│   │   ├── qwik.unit.ts
│   │   ├── src/
│   │   │   ├── jsxAtag.ts
│   │   │   ├── jsxImg.ts
│   │   │   ├── jsxKey.ts
│   │   │   ├── jsxNoScriptUrl.ts
│   │   │   ├── loaderLocation.ts
│   │   │   ├── noAsyncPreventDefault.ts
│   │   │   ├── noReactProps.ts
│   │   │   ├── noUseVisibleTask.ts
│   │   │   ├── preferClasslist.ts
│   │   │   ├── unusedServer.ts
│   │   │   ├── useMethodUsage.ts
│   │   │   └── validLexicalScope.ts
│   │   └── tests/
│   │       ├── loader-location/
│   │       │   ├── invalid-loader-missing-export/
│   │       │   │   └── src/
│   │       │   │       └── routes/
│   │       │   │           └── index.tsx
│   │       │   ├── valid-loader/
│   │       │   │   └── src/
│   │       │   │       └── routes/
│   │       │   │           └── index.tsx
│   │       │   └── valid-loader-export/
│   │       │       └── src/
│   │       │           └── routes/
│   │       │               └── index.tsx
│   │       ├── no-async-prevent-default/
│   │       │   ├── invalid-prevent-default-arrow.tsx
│   │       │   ├── invalid-prevent-default.tsx
│   │       │   ├── valid-prevent-default-arrow.tsx
│   │       │   └── valid-prevent-default.tsx
│   │       ├── no-use-visible-task/
│   │       │   └── invalid-no-comment.tsx
│   │       ├── tsconfig.json
│   │       ├── use-method-usage/
│   │       │   ├── invalid-outside-arrow-fn-inline-value.ts
│   │       │   ├── invalid-outside-arrow-fn-inline.ts
│   │       │   ├── invalid-outside-arrow-fn-return-value.ts
│   │       │   ├── invalid-outside-arrow-fn-return.ts
│   │       │   ├── invalid-outside-arrow-fn.ts
│   │       │   ├── invalid-outside-function.ts
│   │       │   ├── valid-exported-use-methods.ts
│   │       │   ├── valid-exported-use-methonds-can-call-other-use-methods.ts
│   │       │   └── valid-inside-component.tsx
│   │       └── valid-lexical-scope/
│   │           ├── invalid-capture-class.tsx
│   │           ├── invalid-capture-enum.tsx
│   │           ├── invalid-capture-function-event.tsx
│   │           ├── invalid-capture-function.tsx
│   │           ├── invalid-capture-mutable-assignment.tsx
│   │           ├── invalid-capture-symbol.tsx
│   │           ├── invalid-mutable.tsx
│   │           ├── invalid-props-nonserializable-tuple.tsx
│   │           ├── invalid-use-method-factory.tsx
│   │           ├── invalid-use-method-inline.tsx
│   │           ├── valid-capture-jsxoutput.tsx
│   │           ├── valid-capture-signal.tsx
│   │           ├── valid-component-prop-function.tsx
│   │           ├── valid-component-props-click.tsx
│   │           ├── valid-component-props-tuple.tsx
│   │           ├── valid-component-props.tsx
│   │           ├── valid-constant.tsx
│   │           ├── valid-file-scope.tsx
│   │           ├── valid-no-serialize.tsx
│   │           ├── valid-null-value.tsx
│   │           ├── valid-ssr-stream.tsx
│   │           ├── valid-use-doc.tsx
│   │           ├── valid-use-method-factory.tsx
│   │           ├── valid-use-task-getter.tsx
│   │           └── valid-use-task.tsx
│   ├── insights/
│   │   ├── .gitignore
│   │   ├── .node-version
│   │   ├── .npmrc
│   │   ├── .prettierignore
│   │   ├── .vscode/
│   │   │   ├── extensions.json
│   │   │   ├── launch.json
│   │   │   ├── qwik-city.code-snippets
│   │   │   └── qwik.code-snippets
│   │   ├── README.md
│   │   ├── adapters/
│   │   │   └── netlify-edge/
│   │   │       └── vite.config.ts
│   │   ├── drizzle/
│   │   │   ├── 0000_blue_blindfold.sql
│   │   │   ├── 0001_sweet_virginia_dare.sql
│   │   │   ├── 0002_exotic_earthquake.sql
│   │   │   ├── 0003_late_titanium_man.sql
│   │   │   ├── 0004_secret_justice.sql
│   │   │   ├── 0005_cute_marvel_boy.sql
│   │   │   ├── 0006_last_dakota_north.sql
│   │   │   ├── 0007_large_vengeance.sql
│   │   │   ├── 0008_handy_baron_zemo.sql
│   │   │   ├── 0009_flat_celestials.sql
│   │   │   ├── 0010_typical_lockheed.sql
│   │   │   ├── 0011_thin_captain_stacy.sql
│   │   │   ├── 0012_omniscient_leader.sql
│   │   │   ├── 0013_brave_venus.sql
│   │   │   ├── 0014_needy_ben_grimm.sql
│   │   │   ├── 0015_complete_wolf_cub.sql
│   │   │   ├── 0016_demonic_legion.sql
│   │   │   ├── 0017_pink_maestro.sql
│   │   │   ├── 0018_heavy_toad.sql
│   │   │   ├── 0019_known_satana.sql
│   │   │   └── meta/
│   │   │       ├── 0000_snapshot.json
│   │   │       ├── 0001_snapshot.json
│   │   │       ├── 0002_snapshot.json
│   │   │       ├── 0003_snapshot.json
│   │   │       ├── 0004_snapshot.json
│   │   │       ├── 0005_snapshot.json
│   │   │       ├── 0006_snapshot.json
│   │   │       ├── 0007_snapshot.json
│   │   │       ├── 0008_snapshot.json
│   │   │       ├── 0009_snapshot.json
│   │   │       ├── 0010_snapshot.json
│   │   │       ├── 0011_snapshot.json
│   │   │       ├── 0012_snapshot.json
│   │   │       ├── 0013_snapshot.json
│   │   │       ├── 0014_snapshot.json
│   │   │       ├── 0015_snapshot.json
│   │   │       ├── 0016_snapshot.json
│   │   │       ├── 0017_snapshot.json
│   │   │       ├── 0018_snapshot.json
│   │   │       ├── 0019_snapshot.json
│   │   │       └── _journal.json
│   │   ├── drizzle.config.ts
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── _headers
│   │   │   ├── manifest.json
│   │   │   └── robots.txt
│   │   ├── scripts/
│   │   │   └── db.migrate.cjs
│   │   ├── src/
│   │   │   ├── components/
│   │   │   │   ├── app-card/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── avatar/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── bundle/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── button/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── container/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── gauge/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── header/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── histogram/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── icons/
│   │   │   │   │   ├── apps.tsx
│   │   │   │   │   ├── bundle.tsx
│   │   │   │   │   ├── close.tsx
│   │   │   │   │   ├── copy.tsx
│   │   │   │   │   ├── dark-mode.tsx
│   │   │   │   │   ├── dashboard.tsx
│   │   │   │   │   ├── disk.tsx
│   │   │   │   │   ├── edge.tsx
│   │   │   │   │   ├── edit.tsx
│   │   │   │   │   ├── error.tsx
│   │   │   │   │   ├── github.tsx
│   │   │   │   │   ├── light-mode.tsx
│   │   │   │   │   ├── manifest.tsx
│   │   │   │   │   ├── qwik.tsx
│   │   │   │   │   ├── routes.tsx
│   │   │   │   │   ├── slow.tsx
│   │   │   │   │   └── symbol.tsx
│   │   │   │   ├── layout/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── minifest-tile/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── popup-manager/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── router-head/
│   │   │   │   │   └── router-head.tsx
│   │   │   │   └── symbol-tile/
│   │   │   │       └── index.tsx
│   │   │   ├── db/
│   │   │   │   ├── README.md
│   │   │   │   ├── index.ts
│   │   │   │   ├── logging.ts
│   │   │   │   ├── query-helpers.ts
│   │   │   │   ├── query.ts
│   │   │   │   ├── schema.ts
│   │   │   │   ├── sql-edges.ts
│   │   │   │   ├── sql-manifest.ts
│   │   │   │   ├── sql-routes.ts
│   │   │   │   └── sql-user.ts
│   │   │   ├── entry.dev.tsx
│   │   │   ├── entry.netlify-edge.tsx
│   │   │   ├── entry.preview.tsx
│   │   │   ├── entry.ssr.tsx
│   │   │   ├── global.css
│   │   │   ├── root.tsx
│   │   │   ├── routes/
│   │   │   │   ├── api/
│   │   │   │   │   └── v1/
│   │   │   │   │       └── [publicApiKey]/
│   │   │   │   │           ├── bundles/
│   │   │   │   │           │   ├── bundles.tsx
│   │   │   │   │           │   ├── index.tsx
│   │   │   │   │           │   └── strategy/
│   │   │   │   │           │       └── index.tsx
│   │   │   │   │           ├── layout.ts
│   │   │   │   │           └── post/
│   │   │   │   │               ├── error/
│   │   │   │   │               │   └── index.tsx
│   │   │   │   │               ├── index.tsx
│   │   │   │   │               └── manifest/
│   │   │   │   │                   └── index.tsx
│   │   │   │   ├── app/
│   │   │   │   │   ├── [publicApiKey]/
│   │   │   │   │   │   ├── app.form.tsx
│   │   │   │   │   │   ├── edit/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── errors/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── layout.tsx
│   │   │   │   │   │   ├── manifests/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── routes/
│   │   │   │   │   │   │   ├── [route]/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── symbols/
│   │   │   │   │   │       ├── bundles/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── edge/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── outgoing/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       └── slow/
│   │   │   │   │   │           └── index.tsx
│   │   │   │   │   ├── add/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── styles.module.css
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── layout.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── plugin@auth.ts
│   │   │   │   ├── plugin@db.ts
│   │   │   │   ├── service-worker.ts
│   │   │   │   └── test/
│   │   │   │       ├── counter/
│   │   │   │       │   └── index.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       └── visible-task/
│   │   │   │           └── index.tsx
│   │   │   ├── routes.config.tsx
│   │   │   ├── routes.gen.d.ts
│   │   │   ├── stats/
│   │   │   │   ├── clustering.unit.ts
│   │   │   │   ├── edges.ts
│   │   │   │   ├── edges.unit.ts
│   │   │   │   ├── vector.ts
│   │   │   │   └── vector.unit.ts
│   │   │   └── types/
│   │   │       └── q-manifest.ts
│   │   ├── tsconfig.json
│   │   ├── vite.config.ts
│   │   └── vitest.config.ts
│   ├── qwik/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── build.d.ts
│   │   ├── global.d.ts
│   │   ├── jsx-dev-runtime.d.ts
│   │   ├── jsx-runtime.d.ts
│   │   ├── loader.d.ts
│   │   ├── optimizer.d.ts
│   │   ├── package.json
│   │   ├── qwik-cli.cjs
│   │   ├── server.d.ts
│   │   ├── src/
│   │   │   ├── api-extractor.json
│   │   │   ├── build/
│   │   │   │   ├── api-extractor.json
│   │   │   │   ├── index.dev.ts
│   │   │   │   ├── index.prod.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── qwik.build.api.md
│   │   │   ├── cli/
│   │   │   │   ├── add/
│   │   │   │   │   ├── print-add-help.ts
│   │   │   │   │   ├── run-add-command.ts
│   │   │   │   │   ├── run-add-interactive.ts
│   │   │   │   │   ├── update-app.ts
│   │   │   │   │   ├── update-files.ts
│   │   │   │   │   ├── update-files.unit.ts
│   │   │   │   │   └── update-vite-config.ts
│   │   │   │   ├── check-client/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── code-mod/
│   │   │   │   │   ├── code-mod.ts
│   │   │   │   │   └── code-mod.unit.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── joke/
│   │   │   │   │   └── run-joke-command.ts
│   │   │   │   ├── migrate-v2/
│   │   │   │   │   ├── rename-import.ts
│   │   │   │   │   ├── replace-package.ts
│   │   │   │   │   ├── run-migration.ts
│   │   │   │   │   ├── tools/
│   │   │   │   │   │   ├── binary-extensions.ts
│   │   │   │   │   │   └── visit-not-ignored-files.ts
│   │   │   │   │   ├── update-configurations.ts
│   │   │   │   │   ├── update-dependencies.ts
│   │   │   │   │   └── versions.ts
│   │   │   │   ├── new/
│   │   │   │   │   ├── print-new-help.ts
│   │   │   │   │   ├── run-new-command.ts
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── qwik.cjs
│   │   │   │   ├── run.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── utils/
│   │   │   │       ├── app-command.ts
│   │   │   │       ├── install-deps.ts
│   │   │   │       ├── integrations.ts
│   │   │   │       ├── log.ts
│   │   │   │       ├── run-build-command.ts
│   │   │   │       ├── templates.ts
│   │   │   │       └── utils.ts
│   │   │   ├── core/
│   │   │   │   ├── api-extractor.json
│   │   │   │   ├── component/
│   │   │   │   │   ├── component.public.ts
│   │   │   │   │   └── component.unit.tsx
│   │   │   │   ├── components/
│   │   │   │   │   └── prefetch.ts
│   │   │   │   ├── container/
│   │   │   │   │   ├── container.ts
│   │   │   │   │   ├── index.html
│   │   │   │   │   ├── pause.ts
│   │   │   │   │   ├── pause.unit.tsx
│   │   │   │   │   ├── render.unit.tsx
│   │   │   │   │   ├── resume.ts
│   │   │   │   │   ├── serializers.ts
│   │   │   │   │   ├── serializers.unit.ts
│   │   │   │   │   └── store.unit.tsx
│   │   │   │   ├── document.ts
│   │   │   │   ├── error/
│   │   │   │   │   ├── assert.ts
│   │   │   │   │   └── error.ts
│   │   │   │   ├── examples.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── internal.ts
│   │   │   │   ├── platform/
│   │   │   │   │   ├── platform.ts
│   │   │   │   │   ├── platform.unit.ts
│   │   │   │   │   ├── readme.md
│   │   │   │   │   └── types.ts
│   │   │   │   ├── preloader/
│   │   │   │   │   ├── bundle-graph.ts
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── preloader.unit.ts
│   │   │   │   │   ├── queue.ts
│   │   │   │   │   └── types.ts
│   │   │   │   ├── qrl/
│   │   │   │   │   ├── inlined-fn.ts
│   │   │   │   │   ├── qrl-class.ts
│   │   │   │   │   ├── qrl.public.ts
│   │   │   │   │   ├── qrl.ts
│   │   │   │   │   └── qrl.unit.ts
│   │   │   │   ├── qwik.core.api.md
│   │   │   │   ├── readme.md
│   │   │   │   ├── render/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── dom/
│   │   │   │   │   │   ├── notify-render.ts
│   │   │   │   │   │   ├── operations.ts
│   │   │   │   │   │   ├── render-dom.ts
│   │   │   │   │   │   ├── render.public.ts
│   │   │   │   │   │   ├── render.unit.tsx
│   │   │   │   │   │   ├── signals.ts
│   │   │   │   │   │   ├── virtual-element.ts
│   │   │   │   │   │   └── visitor.ts
│   │   │   │   │   ├── error-handling.ts
│   │   │   │   │   ├── execute-component.ts
│   │   │   │   │   ├── execute-component.unit.ts
│   │   │   │   │   ├── fast-calls.ts
│   │   │   │   │   ├── jsx/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── factory.ts
│   │   │   │   │   │   ├── factory.unit.ts
│   │   │   │   │   │   ├── jsx-runtime.ts
│   │   │   │   │   │   ├── jsx-runtime.unit.ts
│   │   │   │   │   │   ├── slot.public.ts
│   │   │   │   │   │   ├── types/
│   │   │   │   │   │   │   ├── jsx-generated.ts
│   │   │   │   │   │   │   ├── jsx-node.ts
│   │   │   │   │   │   │   ├── jsx-qwik-attributes.ts
│   │   │   │   │   │   │   ├── jsx-qwik-elements.ts
│   │   │   │   │   │   │   ├── jsx-qwik-events.ts
│   │   │   │   │   │   │   ├── jsx-qwik.ts
│   │   │   │   │   │   │   └── jsx-types.unit.tsx
│   │   │   │   │   │   └── utils.public.ts
│   │   │   │   │   ├── ssr/
│   │   │   │   │   │   ├── render-ssr.ts
│   │   │   │   │   │   └── render-ssr.unit.tsx
│   │   │   │   │   ├── sync-qrl.unit.tsx
│   │   │   │   │   └── types.ts
│   │   │   │   ├── state/
│   │   │   │   │   ├── common.ts
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── context.ts
│   │   │   │   │   ├── listeners.ts
│   │   │   │   │   ├── signal.ts
│   │   │   │   │   └── store.ts
│   │   │   │   ├── style/
│   │   │   │   │   ├── qrl-styles.ts
│   │   │   │   │   ├── scoped-stylesheet.ts
│   │   │   │   │   └── scoped-stylesheet.unit.ts
│   │   │   │   ├── use/
│   │   │   │   │   ├── use-context.ts
│   │   │   │   │   ├── use-core.ts
│   │   │   │   │   ├── use-env-data.ts
│   │   │   │   │   ├── use-error-boundary.ts
│   │   │   │   │   ├── use-id.ts
│   │   │   │   │   ├── use-lexical-scope.public.ts
│   │   │   │   │   ├── use-locale.ts
│   │   │   │   │   ├── use-on.ts
│   │   │   │   │   ├── use-on.unit.ts
│   │   │   │   │   ├── use-resource.ts
│   │   │   │   │   ├── use-sequential-scope.ts
│   │   │   │   │   ├── use-signal.ts
│   │   │   │   │   ├── use-store.public.ts
│   │   │   │   │   ├── use-styles.ts
│   │   │   │   │   ├── use-task.ts
│   │   │   │   │   └── use-task.unit.ts
│   │   │   │   ├── util/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── case.ts
│   │   │   │   │   ├── case.unit.ts
│   │   │   │   │   ├── dom.ts
│   │   │   │   │   ├── element.ts
│   │   │   │   │   ├── event.ts
│   │   │   │   │   ├── flyweight.ts
│   │   │   │   │   ├── hash_code.ts
│   │   │   │   │   ├── implicit_dollar.ts
│   │   │   │   │   ├── log.ts
│   │   │   │   │   ├── markers.ts
│   │   │   │   │   ├── promises.ts
│   │   │   │   │   ├── qdev.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── unitless_number.ts
│   │   │   │   └── version.ts
│   │   │   ├── jsx-runtime.ts
│   │   │   ├── napi/
│   │   │   │   ├── Cargo.toml
│   │   │   │   ├── Cargo.toml.template
│   │   │   │   ├── build.rs
│   │   │   │   ├── napi.config.json
│   │   │   │   ├── src/
│   │   │   │   │   └── lib.rs
│   │   │   │   └── test.cjs
│   │   │   ├── optimizer/
│   │   │   │   ├── api-extractor.json
│   │   │   │   ├── cli/
│   │   │   │   │   ├── Cargo.toml
│   │   │   │   │   └── src/
│   │   │   │   │       └── main.rs
│   │   │   │   ├── core/
│   │   │   │   │   ├── Cargo.toml
│   │   │   │   │   ├── Makefile
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── benches/
│   │   │   │   │   │   └── transform.rs
│   │   │   │   │   └── src/
│   │   │   │   │       ├── add_side_effect.rs
│   │   │   │   │       ├── clean_side_effects.rs
│   │   │   │   │       ├── code_move.rs
│   │   │   │   │       ├── collector.rs
│   │   │   │   │       ├── const_replace.rs
│   │   │   │   │       ├── entry_strategy.rs
│   │   │   │   │       ├── errors.rs
│   │   │   │   │       ├── filter_exports.rs
│   │   │   │   │       ├── fixtures/
│   │   │   │   │       │   └── index.qwik.mjs
│   │   │   │   │       ├── has_branches.rs
│   │   │   │   │       ├── inlined_fn.rs
│   │   │   │   │       ├── is_immutable.rs
│   │   │   │   │       ├── lib.rs
│   │   │   │   │       ├── package_json.rs
│   │   │   │   │       ├── parse.rs
│   │   │   │   │       ├── props_destructuring.rs
│   │   │   │   │       ├── snapshots/
│   │   │   │   │       │   ├── qwik_core__test__example_1.snap
│   │   │   │   │       │   ├── qwik_core__test__example_10.snap
│   │   │   │   │       │   ├── qwik_core__test__example_11.snap
│   │   │   │   │       │   ├── qwik_core__test__example_2.snap
│   │   │   │   │       │   ├── qwik_core__test__example_3.snap
│   │   │   │   │       │   ├── qwik_core__test__example_4.snap
│   │   │   │   │       │   ├── qwik_core__test__example_5.snap
│   │   │   │   │       │   ├── qwik_core__test__example_6.snap
│   │   │   │   │       │   ├── qwik_core__test__example_7.snap
│   │   │   │   │       │   ├── qwik_core__test__example_8.snap
│   │   │   │   │       │   ├── qwik_core__test__example_9.snap
│   │   │   │   │       │   ├── qwik_core__test__example_build_server.snap
│   │   │   │   │       │   ├── qwik_core__test__example_capture_imports.snap
│   │   │   │   │       │   ├── qwik_core__test__example_capturing_fn_class.snap
│   │   │   │   │       │   ├── qwik_core__test__example_class_name.snap
│   │   │   │   │       │   ├── qwik_core__test__example_custom_inlined_functions.snap
│   │   │   │   │       │   ├── qwik_core__test__example_dead_code.snap
│   │   │   │   │       │   ├── qwik_core__test__example_default_export.snap
│   │   │   │   │       │   ├── qwik_core__test__example_default_export_index.snap
│   │   │   │   │       │   ├── qwik_core__test__example_default_export_invalid_ident.snap
│   │   │   │   │       │   ├── qwik_core__test__example_derived_signals_children.snap
│   │   │   │   │       │   ├── qwik_core__test__example_derived_signals_cmp.snap
│   │   │   │   │       │   ├── qwik_core__test__example_derived_signals_complext_children.snap
│   │   │   │   │       │   ├── qwik_core__test__example_derived_signals_div.snap
│   │   │   │   │       │   ├── qwik_core__test__example_derived_signals_multiple_children.snap
│   │   │   │   │       │   ├── qwik_core__test__example_dev_mode.snap
│   │   │   │   │       │   ├── qwik_core__test__example_dev_mode_inlined.snap
│   │   │   │   │       │   ├── qwik_core__test__example_drop_side_effects.snap
│   │   │   │   │       │   ├── qwik_core__test__example_explicit_ext_no_transpile.snap
│   │   │   │   │       │   ├── qwik_core__test__example_explicit_ext_transpile.snap
│   │   │   │   │       │   ├── qwik_core__test__example_export_issue.snap
│   │   │   │   │       │   ├── qwik_core__test__example_exports.snap
│   │   │   │   │       │   ├── qwik_core__test__example_fix_dynamic_import.snap
│   │   │   │   │       │   ├── qwik_core__test__example_functional_component.snap
│   │   │   │   │       │   ├── qwik_core__test__example_functional_component_2.snap
│   │   │   │   │       │   ├── qwik_core__test__example_functional_component_capture_props.snap
│   │   │   │   │       │   ├── qwik_core__test__example_getter_generation.snap
│   │   │   │   │       │   ├── qwik_core__test__example_immutable_analysis.snap
│   │   │   │   │       │   ├── qwik_core__test__example_immutable_function_components.snap
│   │   │   │   │       │   ├── qwik_core__test__example_import_assertion.snap
│   │   │   │   │       │   ├── qwik_core__test__example_inlined_entry_strategy.snap
│   │   │   │   │       │   ├── qwik_core__test__example_input_bind.snap
│   │   │   │   │       │   ├── qwik_core__test__example_invalid_references.snap
│   │   │   │   │       │   ├── qwik_core__test__example_invalid_segment_expr1.snap
│   │   │   │   │       │   ├── qwik_core__test__example_issue_33443.snap
│   │   │   │   │       │   ├── qwik_core__test__example_issue_4438.snap
│   │   │   │   │       │   ├── qwik_core__test__example_jsx.snap
│   │   │   │   │       │   ├── qwik_core__test__example_jsx_import_source.snap
│   │   │   │   │       │   ├── qwik_core__test__example_jsx_keyed.snap
│   │   │   │   │       │   ├── qwik_core__test__example_jsx_keyed_dev.snap
│   │   │   │   │       │   ├── qwik_core__test__example_jsx_listeners.snap
│   │   │   │   │       │   ├── qwik_core__test__example_lightweight_functional.snap
│   │   │   │   │       │   ├── qwik_core__test__example_manual_chunks.snap
│   │   │   │   │       │   ├── qwik_core__test__example_missing_custom_inlined_functions.snap
│   │   │   │   │       │   ├── qwik_core__test__example_multi_capture.snap
│   │   │   │   │       │   ├── qwik_core__test__example_mutable_children.snap
│   │   │   │   │       │   ├── qwik_core__test__example_noop_dev_mode.snap
│   │   │   │   │       │   ├── qwik_core__test__example_of_synchronous_qrl.snap
│   │   │   │   │       │   ├── qwik_core__test__example_optimization_issue_3542.snap
│   │   │   │   │       │   ├── qwik_core__test__example_optimization_issue_3561.snap
│   │   │   │   │       │   ├── qwik_core__test__example_optimization_issue_3795.snap
│   │   │   │   │       │   ├── qwik_core__test__example_optimization_issue_4386.snap
│   │   │   │   │       │   ├── qwik_core__test__example_parsed_inlined_qrls.snap
│   │   │   │   │       │   ├── qwik_core__test__example_preserve_filenames.snap
│   │   │   │   │       │   ├── qwik_core__test__example_preserve_filenames_segments.snap
│   │   │   │   │       │   ├── qwik_core__test__example_prod_node.snap
│   │   │   │   │       │   ├── qwik_core__test__example_props_optimization.snap
│   │   │   │   │       │   ├── qwik_core__test__example_qwik_conflict.snap
│   │   │   │   │       │   ├── qwik_core__test__example_qwik_react.snap
│   │   │   │   │       │   ├── qwik_core__test__example_qwik_react_inline.snap
│   │   │   │   │       │   ├── qwik_core__test__example_qwik_sdk_inline.snap
│   │   │   │   │       │   ├── qwik_core__test__example_reg_ctx_name_segments.snap
│   │   │   │   │       │   ├── qwik_core__test__example_reg_ctx_name_segments_hoisted.snap
│   │   │   │   │       │   ├── qwik_core__test__example_reg_ctx_name_segments_inlined.snap
│   │   │   │   │       │   ├── qwik_core__test__example_renamed_exports.snap
│   │   │   │   │       │   ├── qwik_core__test__example_server_auth.snap
│   │   │   │   │       │   ├── qwik_core__test__example_skip_transform.snap
│   │   │   │   │       │   ├── qwik_core__test__example_spread_jsx.snap
│   │   │   │   │       │   ├── qwik_core__test__example_strip_client_code.snap
│   │   │   │   │       │   ├── qwik_core__test__example_strip_exports_unused.snap
│   │   │   │   │       │   ├── qwik_core__test__example_strip_exports_used.snap
│   │   │   │   │       │   ├── qwik_core__test__example_strip_server_code.snap
│   │   │   │   │       │   ├── qwik_core__test__example_transpile_jsx_only.snap
│   │   │   │   │       │   ├── qwik_core__test__example_transpile_ts_only.snap
│   │   │   │   │       │   ├── qwik_core__test__example_ts_enums.snap
│   │   │   │   │       │   ├── qwik_core__test__example_ts_enums_issue_1341.snap
│   │   │   │   │       │   ├── qwik_core__test__example_ts_enums_no_transpile.snap
│   │   │   │   │       │   ├── qwik_core__test__example_use_client_effect.snap
│   │   │   │   │       │   ├── qwik_core__test__example_use_optimization.snap
│   │   │   │   │       │   ├── qwik_core__test__example_use_server_mount.snap
│   │   │   │   │       │   ├── qwik_core__test__example_with_style.snap
│   │   │   │   │       │   ├── qwik_core__test__example_with_tagname.snap
│   │   │   │   │       │   ├── qwik_core__test__impure_template_fns.snap
│   │   │   │   │       │   ├── qwik_core__test__issue_117.snap
│   │   │   │   │       │   ├── qwik_core__test__issue_150.snap
│   │   │   │   │       │   ├── qwik_core__test__issue_476.snap
│   │   │   │   │       │   ├── qwik_core__test__issue_5008.snap
│   │   │   │   │       │   ├── qwik_core__test__issue_964.snap
│   │   │   │   │       │   ├── qwik_core__test__lib_mode_fn_signal.snap
│   │   │   │   │       │   ├── qwik_core__test__relative_paths.snap
│   │   │   │   │       │   ├── qwik_core__test__special_jsx.snap
│   │   │   │   │       │   └── qwik_core__test__support_windows_paths.snap
│   │   │   │   │       ├── test.rs
│   │   │   │   │       ├── transform.rs
│   │   │   │   │       ├── utils.rs
│   │   │   │   │       └── words.rs
│   │   │   │   └── src/
│   │   │   │       ├── index.ts
│   │   │   │       ├── manifest.ts
│   │   │   │       ├── optimizer.ts
│   │   │   │       ├── path.ts
│   │   │   │       ├── platform.ts
│   │   │   │       ├── plugins/
│   │   │   │       │   ├── bundle-graph.ts
│   │   │   │       │   ├── bundle-graph.unit.ts
│   │   │   │       │   ├── click-to-component.html
│   │   │   │       │   ├── error-host.html
│   │   │   │       │   ├── eslint-plugin.ts
│   │   │   │       │   ├── fixture-output-bundles.json
│   │   │   │       │   ├── image-size-runtime.html
│   │   │   │       │   ├── image-size-server.ts
│   │   │   │       │   ├── perf-warning.html
│   │   │   │       │   ├── plugin.ts
│   │   │   │       │   ├── plugin.unit.ts
│   │   │   │       │   ├── rollup.ts
│   │   │   │       │   ├── rollup.unit.ts
│   │   │   │       │   ├── utils.ts
│   │   │   │       │   ├── vite-dev-server.ts
│   │   │   │       │   ├── vite-dev-server.unit.ts
│   │   │   │       │   ├── vite-error.ts
│   │   │   │       │   ├── vite-utils.ts
│   │   │   │       │   ├── vite.ts
│   │   │   │       │   └── vite.unit.ts
│   │   │   │       ├── qwik-binding-map.ts
│   │   │   │       ├── qwik.optimizer.api.md
│   │   │   │       ├── scripts.ts
│   │   │   │       ├── types.ts
│   │   │   │       └── versions.ts
│   │   │   ├── qwikloader.ts
│   │   │   ├── qwikloader.unit.ts
│   │   │   ├── server/
│   │   │   │   ├── api-extractor.json
│   │   │   │   ├── index.ts
│   │   │   │   ├── platform.ts
│   │   │   │   ├── platform.unit.ts
│   │   │   │   ├── preload-impl.ts
│   │   │   │   ├── preload-strategy.ts
│   │   │   │   ├── preload-utils.ts
│   │   │   │   ├── preload-utils.unit.ts
│   │   │   │   ├── preloading.md
│   │   │   │   ├── qwik.server.api.md
│   │   │   │   ├── render.ts
│   │   │   │   ├── scripts.ts
│   │   │   │   ├── server-modules.d.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── utils.ts
│   │   │   ├── testing/
│   │   │   │   ├── README.md
│   │   │   │   ├── api-extractor.json
│   │   │   │   ├── document.ts
│   │   │   │   ├── document.unit.ts
│   │   │   │   ├── element-fixture.ts
│   │   │   │   ├── expect-dom.tsx
│   │   │   │   ├── html.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── library.ts
│   │   │   │   ├── platform.ts
│   │   │   │   ├── qwik.testing.api.md
│   │   │   │   ├── types.ts
│   │   │   │   ├── util.ts
│   │   │   │   └── util.unit.ts
│   │   │   └── wasm/
│   │   │       ├── Cargo.toml
│   │   │       └── src/
│   │   │           └── lib.rs
│   │   ├── testing.d.ts
│   │   ├── tsconfig.json
│   │   └── tsdoc.json
│   ├── qwik-auth/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   └── vite.config.ts
│   ├── qwik-city/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── adapters/
│   │   │   ├── azure-swa/
│   │   │   │   └── vite.d.ts
│   │   │   ├── bun-server/
│   │   │   │   └── vite.d.ts
│   │   │   ├── cloud-run/
│   │   │   │   └── vite.d.ts
│   │   │   ├── cloudflare-pages/
│   │   │   │   └── vite.d.ts
│   │   │   ├── deno-server/
│   │   │   │   └── vite.d.ts
│   │   │   ├── netlify-edge/
│   │   │   │   └── vite.d.ts
│   │   │   ├── node-server/
│   │   │   │   └── vite.d.ts
│   │   │   ├── shared/
│   │   │   │   └── vite.d.ts
│   │   │   ├── static/
│   │   │   │   └── vite.d.ts
│   │   │   └── vercel-edge/
│   │   │       └── vite.d.ts
│   │   ├── global.d.ts
│   │   ├── index.d.ts
│   │   ├── middleware/
│   │   │   ├── aws-lambda.d.ts
│   │   │   ├── azure-swa.d.ts
│   │   │   ├── bun.d.ts
│   │   │   ├── cloudflare-pages.d.ts
│   │   │   ├── deno.d.ts
│   │   │   ├── firebase.d.ts
│   │   │   ├── netlify-edge.d.ts
│   │   │   ├── node.d.ts
│   │   │   ├── request-handler.d.ts
│   │   │   └── vercel-edge.d.ts
│   │   ├── modules.d.ts
│   │   ├── package.json
│   │   ├── service-worker.d.ts
│   │   ├── src/
│   │   │   ├── adapters/
│   │   │   │   ├── azure-swa/
│   │   │   │   │   ├── adapter.azure-swa.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       └── index.ts
│   │   │   │   ├── bun-server/
│   │   │   │   │   ├── adapter.bun-server.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       └── index.ts
│   │   │   │   ├── cloud-run/
│   │   │   │   │   ├── adapter.cloud-run.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       └── index.ts
│   │   │   │   ├── cloudflare-pages/
│   │   │   │   │   ├── adapter.cloudflare-pages.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       └── index.ts
│   │   │   │   ├── deno-server/
│   │   │   │   │   ├── adapter.deno-server.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       └── index.ts
│   │   │   │   ├── netlify-edge/
│   │   │   │   │   ├── adapter.netlify-edge.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       └── index.ts
│   │   │   │   ├── node-server/
│   │   │   │   │   ├── adapter.node-server.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       └── index.ts
│   │   │   │   ├── shared/
│   │   │   │   │   ├── adapter.shared.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       ├── index.ts
│   │   │   │   │       └── post-build.ts
│   │   │   │   ├── static/
│   │   │   │   │   ├── adapter.static.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       └── index.ts
│   │   │   │   └── vercel-edge/
│   │   │   │       ├── adapter.vercel-edge.api.md
│   │   │   │       └── vite/
│   │   │   │           ├── api-extractor.json
│   │   │   │           └── index.ts
│   │   │   ├── api-extractor.json
│   │   │   ├── buildtime/
│   │   │   │   ├── build-endpoints.unit.ts
│   │   │   │   ├── build-layout.unit.ts
│   │   │   │   ├── build-menus.unit.ts
│   │   │   │   ├── build-pages-rewrited.unit.ts
│   │   │   │   ├── build-pages.unit.ts
│   │   │   │   ├── build.ts
│   │   │   │   ├── context.ts
│   │   │   │   ├── markdown/
│   │   │   │   │   ├── frontmatter.ts
│   │   │   │   │   ├── frontmatter.unit.ts
│   │   │   │   │   ├── markdown-url.ts
│   │   │   │   │   ├── markdown-url.unit.ts
│   │   │   │   │   ├── mdx.ts
│   │   │   │   │   ├── mdx.unit.ts
│   │   │   │   │   ├── menu.ts
│   │   │   │   │   ├── menu.unit.ts
│   │   │   │   │   ├── rehype.ts
│   │   │   │   │   └── syntax-highlight.ts
│   │   │   │   ├── routing/
│   │   │   │   │   ├── parse-pathname.ts
│   │   │   │   │   ├── parse-pathname.unit.ts
│   │   │   │   │   ├── resolve-source-file.ts
│   │   │   │   │   ├── resolve-source-file.unit.ts
│   │   │   │   │   ├── sort-routes.ts
│   │   │   │   │   ├── sort-routes.unit.ts
│   │   │   │   │   ├── source-file.ts
│   │   │   │   │   ├── source-file.unit.ts
│   │   │   │   │   ├── walk-routes-dir.ts
│   │   │   │   │   └── walk-server-plugins.ts
│   │   │   │   ├── runtime-generation/
│   │   │   │   │   ├── generate-entries.ts
│   │   │   │   │   ├── generate-menus.ts
│   │   │   │   │   ├── generate-qwik-city-plan.ts
│   │   │   │   │   ├── generate-routes.ts
│   │   │   │   │   ├── generate-server-plugins.ts
│   │   │   │   │   ├── generate-service-worker.ts
│   │   │   │   │   ├── sw-register-build.ts
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── vite/
│   │   │   │       ├── api-extractor.json
│   │   │   │       ├── config.ts
│   │   │   │       ├── dev-server.ts
│   │   │   │       ├── format-error.ts
│   │   │   │       ├── get-route-imports.ts
│   │   │   │       ├── get-route-imports.unit.ts
│   │   │   │       ├── image-jsx.ts
│   │   │   │       ├── image-jsx.unit.ts
│   │   │   │       ├── index.ts
│   │   │   │       ├── plugin.ts
│   │   │   │       ├── qwik-city.buildtime.api.md
│   │   │   │       ├── types.ts
│   │   │   │       └── validate-plugin.ts
│   │   │   ├── middleware/
│   │   │   │   ├── aws-lambda/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── middleware.aws-lambda.api.md
│   │   │   │   ├── azure-swa/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── middleware.azure-swa.api.md
│   │   │   │   ├── bun/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── middleware.bun.api.md
│   │   │   │   ├── cloudflare-pages/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── middleware.cloudflare-pages.api.md
│   │   │   │   ├── deno/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── middleware.deno.api.md
│   │   │   │   ├── firebase/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── middleware.firebase.api.md
│   │   │   │   ├── netlify-edge/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── middleware.netlify-edge.api.md
│   │   │   │   ├── node/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── http.ts
│   │   │   │   │   ├── http.unit.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── middleware.node.api.md
│   │   │   │   │   └── node-fetch.ts
│   │   │   │   ├── request-handler/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── cache-control.ts
│   │   │   │   │   ├── cookie.ts
│   │   │   │   │   ├── cookie.unit.ts
│   │   │   │   │   ├── error-handler.ts
│   │   │   │   │   ├── form-parsing.unit.ts
│   │   │   │   │   ├── generated/
│   │   │   │   │   │   ├── not-found-paths.ts
│   │   │   │   │   │   └── static-paths.ts
│   │   │   │   │   ├── http-status-codes.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── middleware.request-handler.api.md
│   │   │   │   │   ├── mime-types.ts
│   │   │   │   │   ├── polyfill.ts
│   │   │   │   │   ├── polyfill.unit.ts
│   │   │   │   │   ├── redirect-handler.ts
│   │   │   │   │   ├── request-event.ts
│   │   │   │   │   ├── request-event.unit.ts
│   │   │   │   │   ├── request-handler.ts
│   │   │   │   │   ├── resolve-request-handlers.ts
│   │   │   │   │   ├── resolve-request-handlers.unit.ts
│   │   │   │   │   ├── response-page.ts
│   │   │   │   │   ├── rewrite-handler.ts
│   │   │   │   │   ├── server-error.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── user-response.ts
│   │   │   │   └── vercel-edge/
│   │   │   │       ├── api-extractor.json
│   │   │   │       ├── index.ts
│   │   │   │       └── middleware.vercel-edge.api.md
│   │   │   ├── runtime/
│   │   │   │   ├── src/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── client-navigate.ts
│   │   │   │   │   ├── client-navigate.unit.ts
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── contexts.ts
│   │   │   │   │   ├── error-boundary.tsx
│   │   │   │   │   ├── form-component.tsx
│   │   │   │   │   ├── head.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── link-component.tsx
│   │   │   │   │   ├── qwik-city-component.tsx
│   │   │   │   │   ├── qwik-city-plan.ts
│   │   │   │   │   ├── qwik-city.runtime.api.md
│   │   │   │   │   ├── route-matcher.ts
│   │   │   │   │   ├── route-matcher.unit.ts
│   │   │   │   │   ├── router-outlet-component.tsx
│   │   │   │   │   ├── routing.ts
│   │   │   │   │   ├── routing.unit.ts
│   │   │   │   │   ├── scroll-restoration.ts
│   │   │   │   │   ├── server-functions.ts
│   │   │   │   │   ├── server-functions.unit.ts
│   │   │   │   │   ├── service-worker/
│   │   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── qwik-city.service-worker.api.md
│   │   │   │   │   ├── spa-init.ts
│   │   │   │   │   ├── sw-component.tsx
│   │   │   │   │   ├── sw-register-runtime.ts
│   │   │   │   │   ├── sw-register.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   ├── use-endpoint.ts
│   │   │   │   │   ├── use-functions.ts
│   │   │   │   │   ├── utils.ts
│   │   │   │   │   └── utils.unit.ts
│   │   │   │   └── vite.config.mts
│   │   │   ├── static/
│   │   │   │   ├── api-extractor.json
│   │   │   │   ├── extract-params.ts
│   │   │   │   ├── extract-params.unit.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── main-thread.ts
│   │   │   │   ├── node/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── node-main.ts
│   │   │   │   │   ├── node-system.ts
│   │   │   │   │   └── node-worker.ts
│   │   │   │   ├── not-found.ts
│   │   │   │   ├── qwik-city.static.api.md
│   │   │   │   ├── routes.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── worker-thread.ts
│   │   │   └── utils/
│   │   │       ├── format.ts
│   │   │       ├── format.unit.ts
│   │   │       ├── fs.ts
│   │   │       ├── fs.unit.ts
│   │   │       ├── pathname.ts
│   │   │       ├── pathname.unit.ts
│   │   │       └── test-suite.ts
│   │   ├── static.d.ts
│   │   ├── tsconfig.json
│   │   └── vite.d.ts
│   ├── qwik-dom/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   └── package.json
│   ├── qwik-labs/
│   │   ├── .gitignore
│   │   ├── .prettierignore
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── devtools/
│   │   │   │   ├── index.ts
│   │   │   │   └── json.ts
│   │   │   ├── entry.dev.tsx
│   │   │   ├── entry.ssr.tsx
│   │   │   ├── index.ts
│   │   │   ├── insights/
│   │   │   │   └── index.tsx
│   │   │   ├── qwik-types/
│   │   │   │   ├── index.ts
│   │   │   │   └── public-api.ts
│   │   │   └── root.tsx
│   │   ├── src-vite/
│   │   │   ├── index.ts
│   │   │   ├── insights/
│   │   │   │   └── index.ts
│   │   │   └── qwik-types/
│   │   │       ├── generator.ts
│   │   │       ├── index.ts
│   │   │       ├── prettify.ts
│   │   │       └── vite.ts
│   │   ├── tsconfig-vite.json
│   │   ├── tsconfig.json
│   │   ├── vite.config-src-vite.mts
│   │   └── vite.config.mts
│   ├── qwik-react/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── api-extractor.json
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── api-extractor.json
│   │   │   ├── entry.dev.tsx
│   │   │   ├── entry.ssr.tsx
│   │   │   ├── examples/
│   │   │   │   └── app.tsx
│   │   │   ├── index.qwik.ts
│   │   │   ├── react/
│   │   │   │   ├── client.tsx
│   │   │   │   ├── qwikify.tsx
│   │   │   │   ├── server-render.tsx
│   │   │   │   ├── slot.ts
│   │   │   │   └── types.ts
│   │   │   ├── root.tsx
│   │   │   └── vite.ts
│   │   ├── vite.config.mts
│   │   └── vite.d.ts
│   ├── qwik-worker/
│   │   ├── .npmignore
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   └── worker.js
│   │   └── vite.config.ts
│   └── supabase-auth-helpers-qwik/
│       ├── README.md
│       ├── package.json
│       ├── src/
│       │   ├── ambient.d.ts
│       │   ├── index.ts
│       │   └── utils/
│       │       ├── createBrowserClient.ts
│       │       └── createServerClient.ts
│       └── vite.config.ts
├── patches/
│   ├── density-clustering@1.3.0.patch
│   └── domino@2.1.6.patch
├── pnpm-workspace.yaml
├── rust-toolchain
├── rustfmt.toml
├── scripts/
│   ├── api-docs.ts
│   ├── api.ts
│   ├── binding-platform.ts
│   ├── binding-wasm.ts
│   ├── build-clean.ts
│   ├── build.ts
│   ├── compiled-string-plugin.ts
│   ├── create-qwik-cli.ts
│   ├── docs_sync/
│   │   ├── fetch_hackmd.ts
│   │   ├── index.ts
│   │   ├── main.ts
│   │   └── util.ts
│   ├── e2e-cli.ts
│   ├── eslint-docs.ts
│   ├── eslint.ts
│   ├── index.ts
│   ├── link-local-package.ts
│   ├── package-json.ts
│   ├── qwik-auth.ts
│   ├── qwik-city.ts
│   ├── qwik-labs.ts
│   ├── qwik-push-build-repos.ts
│   ├── qwik-react.ts
│   ├── qwik-worker.ts
│   ├── release.ts
│   ├── runBefore.ts
│   ├── submodule-build.ts
│   ├── submodule-cli.ts
│   ├── submodule-core.ts
│   ├── submodule-optimizer.ts
│   ├── submodule-preloader.ts
│   ├── submodule-qwikloader.ts
│   ├── submodule-server.ts
│   ├── submodule-testing.ts
│   ├── supabase-auth-helpers.ts
│   ├── tools/
│   │   └── preinstall-script.js
│   ├── tsc-docs.ts
│   ├── tsc.ts
│   ├── types.d.ts
│   ├── update-qwik-builds.ts
│   ├── util.ts
│   ├── validate-build.ts
│   └── validate-cli.ts
├── starters/
│   ├── .gitignore
│   ├── .prettierrc.json
│   ├── README.md
│   ├── adapters/
│   │   ├── aws-lambda/
│   │   │   ├── .eslintignore
│   │   │   ├── .prettierignore
│   │   │   ├── adapters/
│   │   │   │   └── aws-lambda/
│   │   │   │       └── vite.config.ts
│   │   │   ├── gitignore
│   │   │   ├── package.json
│   │   │   ├── serverless.yml
│   │   │   └── src/
│   │   │       └── entry_aws-lambda.tsx
│   │   ├── azure-swa/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── azure-swa/
│   │   │   │       └── vite.config.ts
│   │   │   ├── azure-functions/
│   │   │   │   └── host.json
│   │   │   ├── gitignore
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   └── staticwebapp.config.json
│   │   │   ├── src/
│   │   │   │   └── entry.azure-swa.tsx
│   │   │   └── swa-cli.config.json
│   │   ├── bun/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── bun/
│   │   │   │       └── vite.config.ts
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── entry.bun.ts
│   │   ├── cloud-run/
│   │   │   ├── Dockerfile
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── cloud-run/
│   │   │   │       └── vite.config.ts
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── entry.cloud-run.tsx
│   │   ├── cloudflare-pages/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── cloudflare-pages/
│   │   │   │       └── vite.config.ts
│   │   │   ├── gitignore
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   ├── _headers
│   │   │   │   └── _redirects
│   │   │   └── src/
│   │   │       └── entry.cloudflare-pages.tsx
│   │   ├── cloudflare-workers/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── cloudflare-workers/
│   │   │   │       └── vite.config.ts
│   │   │   ├── gitignore
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   ├── .assetsignore
│   │   │   │   ├── _headers
│   │   │   │   └── _redirects
│   │   │   ├── src/
│   │   │   │   └── entry.cloudflare-pages.tsx
│   │   │   ├── worker-configuration.d.ts
│   │   │   └── wrangler.jsonc
│   │   ├── deno/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── deno/
│   │   │   │       └── vite.config.ts
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── entry.deno.ts
│   │   ├── express/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── express/
│   │   │   │       └── vite.config.ts
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── entry.express.tsx
│   │   ├── fastify/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── fastify/
│   │   │   │       └── vite.config.ts
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── entry.fastify.tsx
│   │   │       └── plugins/
│   │   │           └── fastify-qwik.ts
│   │   ├── firebase/
│   │   │   ├── .eslintignore
│   │   │   ├── .prettierignore
│   │   │   ├── adapters/
│   │   │   │   └── firebase/
│   │   │   │       └── vite.config.ts
│   │   │   ├── firebase.json
│   │   │   ├── functions/
│   │   │   │   ├── .gitkeep
│   │   │   │   ├── index.js
│   │   │   │   └── package.json
│   │   │   ├── gitignore
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── entry-firebase.tsx
│   │   ├── netlify-edge/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── netlify-edge/
│   │   │   │       └── vite.config.ts
│   │   │   ├── gitignore
│   │   │   ├── netlify.toml
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   └── _headers
│   │   │   └── src/
│   │   │       └── entry.netlify-edge.tsx
│   │   ├── node-server/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── node-server/
│   │   │   │       └── vite.config.ts
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── entry.node-server.tsx
│   │   ├── static/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── static/
│   │   │   │       └── vite.config.ts
│   │   │   └── package.json
│   │   └── vercel-edge/
│   │       ├── README.md
│   │       ├── adapters/
│   │       │   └── vercel-edge/
│   │       │       └── vite.config.ts
│   │       ├── gitignore
│   │       ├── package.json
│   │       ├── src/
│   │       │   └── entry.vercel-edge.tsx
│   │       └── vercel.json
│   ├── apps/
│   │   ├── base/
│   │   │   ├── .npmrc
│   │   │   ├── .prettierignore
│   │   │   ├── .vscode/
│   │   │   │   ├── extensions.json
│   │   │   │   ├── launch.json
│   │   │   │   ├── qwik-city.code-snippets
│   │   │   │   ├── qwik.code-snippets
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── eslint.config.js
│   │   │   ├── gitignore
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   ├── manifest.json
│   │   │   │   └── robots.txt
│   │   │   ├── qwik.env.d.ts
│   │   │   ├── src/
│   │   │   │   ├── entry.dev.tsx
│   │   │   │   ├── entry.preview.tsx
│   │   │   │   ├── entry.ssr.tsx
│   │   │   │   └── global.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── e2e/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   ├── async/
│   │   │       │   │   └── async.tsx
│   │   │       │   ├── attributes/
│   │   │       │   │   └── attributes.tsx
│   │   │       │   ├── broadcast-events/
│   │   │       │   │   └── broadcast-event.tsx
│   │   │       │   ├── build-variables/
│   │   │       │   │   └── build.tsx
│   │   │       │   ├── computed/
│   │   │       │   │   └── computed.tsx
│   │   │       │   ├── containers/
│   │   │       │   │   └── container.tsx
│   │   │       │   ├── context/
│   │   │       │   │   └── context.tsx
│   │   │       │   ├── effect-client/
│   │   │       │   │   └── effect-client.tsx
│   │   │       │   ├── events/
│   │   │       │   │   ├── events-client.tsx
│   │   │       │   │   └── events.tsx
│   │   │       │   ├── factory/
│   │   │       │   │   ├── factory.tsx
│   │   │       │   │   └── utils.tsx
│   │   │       │   ├── lexical-scope/
│   │   │       │   │   └── lexicalScope.tsx
│   │   │       │   ├── mount/
│   │   │       │   │   └── mount.tsx
│   │   │       │   ├── no-resume/
│   │   │       │   │   └── no-resume.tsx
│   │   │       │   ├── ref/
│   │   │       │   │   └── ref.tsx
│   │   │       │   ├── render/
│   │   │       │   │   └── render.tsx
│   │   │       │   ├── resource/
│   │   │       │   │   ├── resource-fn.tsx
│   │   │       │   │   ├── resource-serialization.tsx
│   │   │       │   │   ├── resource.tsx
│   │   │       │   │   └── weather.tsx
│   │   │       │   ├── resuming/
│   │   │       │   │   ├── resuming.tsx
│   │   │       │   │   └── sync-qrl.tsx
│   │   │       │   ├── signals/
│   │   │       │   │   ├── Issue_5001.tsx
│   │   │       │   │   ├── signals.tsx
│   │   │       │   │   └── utils/
│   │   │       │   │       └── utils.tsx
│   │   │       │   ├── slot/
│   │   │       │   │   ├── slot-remove.tsx
│   │   │       │   │   └── slot.tsx
│   │   │       │   ├── streaming/
│   │   │       │   │   ├── demo.tsx
│   │   │       │   │   └── streaming.tsx
│   │   │       │   ├── styles/
│   │   │       │   │   ├── child.css
│   │   │       │   │   ├── child2.css
│   │   │       │   │   ├── empty.css
│   │   │       │   │   ├── parent.css
│   │   │       │   │   ├── parent2.css
│   │   │       │   │   └── styles.tsx
│   │   │       │   ├── toggle/
│   │   │       │   │   └── toggle.tsx
│   │   │       │   ├── treeshaking/
│   │   │       │   │   └── treeshaking.tsx
│   │   │       │   ├── two-listeners/
│   │   │       │   │   └── twolisteners.tsx
│   │   │       │   ├── useid/
│   │   │       │   │   └── useid.tsx
│   │   │       │   └── watch/
│   │   │       │       └── watch.tsx
│   │   │       ├── entry.ssr.tsx
│   │   │       ├── global.css
│   │   │       └── root.tsx
│   │   ├── e2e-library/
│   │   │   └── package.json
│   │   ├── empty/
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   ├── manifest.json
│   │   │   │   └── robots.txt
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   └── router-head/
│   │   │       │       └── router-head.tsx
│   │   │       ├── global.css
│   │   │       ├── root.tsx
│   │   │       └── routes/
│   │   │           └── index.tsx
│   │   ├── library/
│   │   │   ├── .prettierignore
│   │   │   ├── README.md
│   │   │   ├── eslint.config.js
│   │   │   ├── gitignore
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── counter/
│   │   │   │   │   │   └── counter.tsx
│   │   │   │   │   └── logo/
│   │   │   │   │       └── logo.tsx
│   │   │   │   ├── entry.dev.tsx
│   │   │   │   ├── entry.ssr.tsx
│   │   │   │   ├── index.ts
│   │   │   │   └── root.tsx
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── perf.prod/
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   └── app/
│   │   │   │   │       └── app.tsx
│   │   │   │   ├── entry.express.tsx
│   │   │   │   ├── entry.ssr.tsx
│   │   │   │   ├── global.css
│   │   │   │   └── root.tsx
│   │   │   └── vite.config.mts
│   │   ├── playground/
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   ├── manifest.json
│   │   │   │   └── robots.txt
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   ├── router-head/
│   │   │       │   │   └── router-head.tsx
│   │   │       │   └── starter/
│   │   │       │       ├── counter/
│   │   │       │       │   ├── counter.module.css
│   │   │       │       │   └── counter.tsx
│   │   │       │       ├── footer/
│   │   │       │       │   ├── footer.module.css
│   │   │       │       │   └── footer.tsx
│   │   │       │       ├── gauge/
│   │   │       │       │   ├── gauge.module.css
│   │   │       │       │   └── index.tsx
│   │   │       │       ├── header/
│   │   │       │       │   ├── header.module.css
│   │   │       │       │   └── header.tsx
│   │   │       │       ├── hero/
│   │   │       │       │   ├── hero.module.css
│   │   │       │       │   └── hero.tsx
│   │   │       │       ├── icons/
│   │   │       │       │   └── qwik.tsx
│   │   │       │       ├── infobox/
│   │   │       │       │   ├── infobox.module.css
│   │   │       │       │   └── infobox.tsx
│   │   │       │       └── next-steps/
│   │   │       │           ├── next-steps.module.css
│   │   │       │           └── next-steps.tsx
│   │   │       ├── global.css
│   │   │       ├── root.tsx
│   │   │       └── routes/
│   │   │           ├── demo/
│   │   │           │   ├── flower/
│   │   │           │   │   ├── flower.css
│   │   │           │   │   └── index.tsx
│   │   │           │   └── todolist/
│   │   │           │       ├── index.tsx
│   │   │           │       └── todolist.module.css
│   │   │           ├── index.tsx
│   │   │           ├── layout.tsx
│   │   │           └── styles.css
│   │   ├── preloader-test/
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── generated/
│   │   │   │   │   │   ├── counter1.tsx
│   │   │   │   │   │   ├── counter10.tsx
│   │   │   │   │   │   ├── counter100.tsx
│   │   │   │   │   │   ├── counter11.tsx
│   │   │   │   │   │   ├── counter12.tsx
│   │   │   │   │   │   ├── counter13.tsx
│   │   │   │   │   │   ├── counter14.tsx
│   │   │   │   │   │   ├── counter15.tsx
│   │   │   │   │   │   ├── counter16.tsx
│   │   │   │   │   │   ├── counter17.tsx
│   │   │   │   │   │   ├── counter18.tsx
│   │   │   │   │   │   ├── counter19.tsx
│   │   │   │   │   │   ├── counter2.tsx
│   │   │   │   │   │   ├── counter20.tsx
│   │   │   │   │   │   ├── counter21.tsx
│   │   │   │   │   │   ├── counter22.tsx
│   │   │   │   │   │   ├── counter23.tsx
│   │   │   │   │   │   ├── counter24.tsx
│   │   │   │   │   │   ├── counter25.tsx
│   │   │   │   │   │   ├── counter26.tsx
│   │   │   │   │   │   ├── counter27.tsx
│   │   │   │   │   │   ├── counter28.tsx
│   │   │   │   │   │   ├── counter29.tsx
│   │   │   │   │   │   ├── counter3.tsx
│   │   │   │   │   │   ├── counter30.tsx
│   │   │   │   │   │   ├── counter31.tsx
│   │   │   │   │   │   ├── counter32.tsx
│   │   │   │   │   │   ├── counter33.tsx
│   │   │   │   │   │   ├── counter34.tsx
│   │   │   │   │   │   ├── counter35.tsx
│   │   │   │   │   │   ├── counter36.tsx
│   │   │   │   │   │   ├── counter37.tsx
│   │   │   │   │   │   ├── counter38.tsx
│   │   │   │   │   │   ├── counter39.tsx
│   │   │   │   │   │   ├── counter4.tsx
│   │   │   │   │   │   ├── counter40.tsx
│   │   │   │   │   │   ├── counter41.tsx
│   │   │   │   │   │   ├── counter42.tsx
│   │   │   │   │   │   ├── counter43.tsx
│   │   │   │   │   │   ├── counter44.tsx
│   │   │   │   │   │   ├── counter45.tsx
│   │   │   │   │   │   ├── counter46.tsx
│   │   │   │   │   │   ├── counter47.tsx
│   │   │   │   │   │   ├── counter48.tsx
│   │   │   │   │   │   ├── counter49.tsx
│   │   │   │   │   │   ├── counter5.tsx
│   │   │   │   │   │   ├── counter50.tsx
│   │   │   │   │   │   ├── counter51.tsx
│   │   │   │   │   │   ├── counter52.tsx
│   │   │   │   │   │   ├── counter53.tsx
│   │   │   │   │   │   ├── counter54.tsx
│   │   │   │   │   │   ├── counter55.tsx
│   │   │   │   │   │   ├── counter56.tsx
│   │   │   │   │   │   ├── counter57.tsx
│   │   │   │   │   │   ├── counter58.tsx
│   │   │   │   │   │   ├── counter59.tsx
│   │   │   │   │   │   ├── counter6.tsx
│   │   │   │   │   │   ├── counter60.tsx
│   │   │   │   │   │   ├── counter61.tsx
│   │   │   │   │   │   ├── counter62.tsx
│   │   │   │   │   │   ├── counter63.tsx
│   │   │   │   │   │   ├── counter64.tsx
│   │   │   │   │   │   ├── counter65.tsx
│   │   │   │   │   │   ├── counter66.tsx
│   │   │   │   │   │   ├── counter67.tsx
│   │   │   │   │   │   ├── counter68.tsx
│   │   │   │   │   │   ├── counter69.tsx
│   │   │   │   │   │   ├── counter7.tsx
│   │   │   │   │   │   ├── counter70.tsx
│   │   │   │   │   │   ├── counter71.tsx
│   │   │   │   │   │   ├── counter72.tsx
│   │   │   │   │   │   ├── counter73.tsx
│   │   │   │   │   │   ├── counter74.tsx
│   │   │   │   │   │   ├── counter75.tsx
│   │   │   │   │   │   ├── counter76.tsx
│   │   │   │   │   │   ├── counter77.tsx
│   │   │   │   │   │   ├── counter78.tsx
│   │   │   │   │   │   ├── counter79.tsx
│   │   │   │   │   │   ├── counter8.tsx
│   │   │   │   │   │   ├── counter80.tsx
│   │   │   │   │   │   ├── counter81.tsx
│   │   │   │   │   │   ├── counter82.tsx
│   │   │   │   │   │   ├── counter83.tsx
│   │   │   │   │   │   ├── counter84.tsx
│   │   │   │   │   │   ├── counter85.tsx
│   │   │   │   │   │   ├── counter86.tsx
│   │   │   │   │   │   ├── counter87.tsx
│   │   │   │   │   │   ├── counter88.tsx
│   │   │   │   │   │   ├── counter89.tsx
│   │   │   │   │   │   ├── counter9.tsx
│   │   │   │   │   │   ├── counter90.tsx
│   │   │   │   │   │   ├── counter91.tsx
│   │   │   │   │   │   ├── counter92.tsx
│   │   │   │   │   │   ├── counter93.tsx
│   │   │   │   │   │   ├── counter94.tsx
│   │   │   │   │   │   ├── counter95.tsx
│   │   │   │   │   │   ├── counter96.tsx
│   │   │   │   │   │   ├── counter97.tsx
│   │   │   │   │   │   ├── counter98.tsx
│   │   │   │   │   │   ├── counter99.tsx
│   │   │   │   │   │   ├── dynamic1.tsx
│   │   │   │   │   │   ├── dynamic2.tsx
│   │   │   │   │   │   ├── dynamic3.tsx
│   │   │   │   │   │   ├── dynamic4.tsx
│   │   │   │   │   │   ├── dynamic5.tsx
│   │   │   │   │   │   ├── dynamic6.tsx
│   │   │   │   │   │   ├── dynamic7.tsx
│   │   │   │   │   │   ├── dynamic8.tsx
│   │   │   │   │   │   ├── dynamic9.tsx
│   │   │   │   │   │   └── show-dynamic.tsx
│   │   │   │   │   └── router-head/
│   │   │   │   │       └── router-head.tsx
│   │   │   │   ├── entry.dev.tsx
│   │   │   │   ├── entry.preview.tsx
│   │   │   │   ├── entry.ssr.tsx
│   │   │   │   ├── global.css
│   │   │   │   ├── root.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── about/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── counters/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── form/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── hidden/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── layout.tsx
│   │   │   │   └── vendor-lib/
│   │   │   │       ├── helper.ts
│   │   │   │       ├── libA.ts
│   │   │   │       └── libB.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── qwikcity-test/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── auth/
│   │   │       │   └── auth.ts
│   │   │       ├── components/
│   │   │       │   ├── action/
│   │   │       │   │   └── action.tsx
│   │   │       │   ├── breadcrumbs/
│   │   │       │   │   ├── breadcrumbs.css
│   │   │       │   │   └── breadcrumbs.tsx
│   │   │       │   ├── content-nav/
│   │   │       │   │   ├── content-nav.css
│   │   │       │   │   └── content-nav.tsx
│   │   │       │   ├── footer/
│   │   │       │   │   ├── footer.css
│   │   │       │   │   └── footer.tsx
│   │   │       │   ├── header/
│   │   │       │   │   ├── header.css
│   │   │       │   │   └── header.tsx
│   │   │       │   ├── menu/
│   │   │       │   │   ├── menu.css
│   │   │       │   │   └── menu.tsx
│   │   │       │   ├── provider/
│   │   │       │   │   └── provider.tsx
│   │   │       │   └── router-head/
│   │   │       │       ├── router-head.tsx
│   │   │       │       ├── social.tsx
│   │   │       │       └── vendor.tsx
│   │   │       ├── entry.ssr.tsx
│   │   │       ├── global.css
│   │   │       ├── root.tsx
│   │   │       └── routes/
│   │   │           ├── (common)/
│   │   │           │   ├── (auth)/
│   │   │           │   │   ├── layout.css
│   │   │           │   │   ├── layout.tsx
│   │   │           │   │   ├── sign-in/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   └── sign-out/
│   │   │           │   │       └── index.tsx
│   │   │           │   ├── [...catchall]/
│   │   │           │   │   └── index.tsx
│   │   │           │   ├── [country]/
│   │   │           │   │   └── [city]/
│   │   │           │   │       └── index.tsx
│   │   │           │   ├── about-us/
│   │   │           │   │   └── index.tsx
│   │   │           │   ├── actions/
│   │   │           │   │   ├── actions.module.css
│   │   │           │   │   ├── index.tsx
│   │   │           │   │   ├── issue3183/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── issue3497/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── issue4444/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── issue5065/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── issue5463/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── login.tsx
│   │   │           │   │   ├── multiple-handlers/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   └── validated/
│   │   │           │   │       └── index.tsx
│   │   │           │   ├── api/
│   │   │           │   │   ├── [org]/
│   │   │           │   │   │   └── [user].json/
│   │   │           │   │   │       └── index.ts
│   │   │           │   │   ├── data.json/
│   │   │           │   │   │   └── index.ts
│   │   │           │   │   ├── index@api.tsx
│   │   │           │   │   ├── layout-api.css
│   │   │           │   │   └── layout-api.tsx
│   │   │           │   ├── blog/
│   │   │           │   │   ├── [...slug]/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── index.md
│   │   │           │   │   └── layout.tsx
│   │   │           │   ├── index.tsx
│   │   │           │   ├── issue2644/
│   │   │           │   │   ├── data.ts
│   │   │           │   │   ├── index.tsx
│   │   │           │   │   └── other/
│   │   │           │   │       └── index.tsx
│   │   │           │   ├── issue2878/
│   │   │           │   │   └── [...slug]/
│   │   │           │   │       └── index.tsx
│   │   │           │   ├── layout.tsx
│   │   │           │   ├── loaders/
│   │   │           │   │   ├── [id]/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── issue3979/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   └── loader-error/
│   │   │           │   │       ├── index.tsx
│   │   │           │   │       └── uncaught-server/
│   │   │           │   │           └── index.tsx
│   │   │           │   ├── location/
│   │   │           │   │   └── index.tsx
│   │   │           │   ├── mit/
│   │   │           │   │   └── index!.tsx
│   │   │           │   ├── products/
│   │   │           │   │   ├── 404.tsx
│   │   │           │   │   └── [id]/
│   │   │           │   │       └── index.tsx
│   │   │           │   ├── server-func/
│   │   │           │   │   ├── context/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── cookie/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── index.tsx
│   │   │           │   │   ├── resource/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── server-configs/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   └── server-error/
│   │   │           │   │       ├── index.tsx
│   │   │           │   │       ├── loader/
│   │   │           │   │       │   └── index.tsx
│   │   │           │   │       └── primitive/
│   │   │           │   │           └── index.tsx
│   │   │           │   ├── streaming/
│   │   │           │   │   └── index.tsx
│   │   │           │   └── treeshaking/
│   │   │           │       └── index.tsx
│   │   │           ├── action-redirect-without-search-params/
│   │   │           │   └── index.tsx
│   │   │           ├── action-redirect-without-search-params-target/
│   │   │           │   └── index.tsx
│   │   │           ├── dashboard/
│   │   │           │   ├── dashboard.css
│   │   │           │   ├── index.tsx
│   │   │           │   ├── layout.tsx
│   │   │           │   ├── profile/
│   │   │           │   │   └── index.tsx
│   │   │           │   └── settings/
│   │   │           │       └── index.tsx
│   │   │           ├── docs/
│   │   │           │   ├── [category]/
│   │   │           │   │   └── [id]/
│   │   │           │   │       └── index.tsx
│   │   │           │   ├── getting-started/
│   │   │           │   │   └── index.md
│   │   │           │   ├── index.tsx
│   │   │           │   ├── layout.css
│   │   │           │   ├── layout.tsx
│   │   │           │   ├── menu.md
│   │   │           │   └── overview/
│   │   │           │       └── index.md
│   │   │           ├── error/
│   │   │           │   └── index.tsx
│   │   │           ├── issue-loader/
│   │   │           │   ├── action.tsx
│   │   │           │   └── index.tsx
│   │   │           ├── issue-loader-serialization/
│   │   │           │   ├── action.tsx
│   │   │           │   └── index.tsx
│   │   │           ├── issue-route-with-search-params-and-action-redirect-without-search-params/
│   │   │           │   ├── action-redirect-without-search-params/
│   │   │           │   │   └── index.tsx
│   │   │           │   └── action-redirect-without-search-params-target/
│   │   │           │       └── index.tsx
│   │   │           ├── issue2441/
│   │   │           │   ├── abc.endpoint/
│   │   │           │   │   └── index.ts
│   │   │           │   └── abc.page/
│   │   │           │       └── index.tsx
│   │   │           ├── issue2829/
│   │   │           │   ├── a/
│   │   │           │   │   └── index.tsx
│   │   │           │   └── b/
│   │   │           │       └── index.tsx
│   │   │           ├── issue2890/
│   │   │           │   ├── a/
│   │   │           │   │   └── index.tsx
│   │   │           │   └── b/
│   │   │           │       └── index.tsx
│   │   │           ├── issue3438/
│   │   │           │   └── عربي/
│   │   │           │       └── index.mdx
│   │   │           ├── issue4100/
│   │   │           │   └── index.tsx
│   │   │           ├── issue4502/
│   │   │           │   ├── broken/
│   │   │           │   │   ├── index.tsx
│   │   │           │   │   └── route/
│   │   │           │   │       └── index.tsx
│   │   │           │   ├── index.tsx
│   │   │           │   └── layout.tsx
│   │   │           ├── issue4531/
│   │   │           │   ├── index.tsx
│   │   │           │   └── layout.tsx
│   │   │           ├── issue4679/
│   │   │           │   └── index.tsx
│   │   │           ├── issue4792/
│   │   │           │   └── index.tsx
│   │   │           ├── issue4956/
│   │   │           │   └── index.tsx
│   │   │           ├── issue5665/
│   │   │           │   └── projects/
│   │   │           │       └── index.tsx
│   │   │           ├── issue6660/
│   │   │           │   └── index.tsx
│   │   │           ├── issue7182/
│   │   │           │   └── index.tsx
│   │   │           ├── issue7254/
│   │   │           │   └── index.tsx
│   │   │           ├── issue7732/
│   │   │           │   ├── a/
│   │   │           │   │   └── index.tsx
│   │   │           │   ├── b/
│   │   │           │   │   └── index.tsx
│   │   │           │   ├── c/
│   │   │           │   │   └── index.tsx
│   │   │           │   └── layout.tsx
│   │   │           ├── layout.tsx
│   │   │           ├── locale/
│   │   │           │   └── index.tsx
│   │   │           ├── mdx/
│   │   │           │   └── index.mdx
│   │   │           ├── plugin@errors.tsx
│   │   │           ├── plugin@header.ts
│   │   │           ├── plugin@issue4722.tsx
│   │   │           ├── plugin@redirect.ts
│   │   │           ├── prevent-navigate/
│   │   │           │   ├── [id]/
│   │   │           │   │   └── index.tsx
│   │   │           │   ├── index.tsx
│   │   │           │   └── layout.tsx
│   │   │           ├── produkt/
│   │   │           │   └── index.tsx
│   │   │           ├── scroll-restoration/
│   │   │           │   ├── hash/
│   │   │           │   │   └── index.tsx
│   │   │           │   ├── layout.tsx
│   │   │           │   ├── page-long/
│   │   │           │   │   └── index.tsx
│   │   │           │   └── page-short/
│   │   │           │       └── index.tsx
│   │   │           ├── search-params-redirect/
│   │   │           │   └── index.tsx
│   │   │           └── some-code.js/
│   │   │               └── entry.ts
│   │   ├── qwikcity-test.prod/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   └── router-head/
│   │   │       │       ├── router-head.tsx
│   │   │       │       ├── social.tsx
│   │   │       │       └── vendor.tsx
│   │   │       ├── entry.ssr.tsx
│   │   │       ├── global.css
│   │   │       ├── root.tsx
│   │   │       └── routes/
│   │   │           ├── index.tsx
│   │   │           └── server-function/
│   │   │               └── index.tsx
│   │   ├── starter-partytown-test/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   └── app/
│   │   │       │       └── app.tsx
│   │   │       ├── entry.ssr.tsx
│   │   │       ├── global.css
│   │   │       └── root.tsx
│   │   ├── todo-old-test/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   ├── app/
│   │   │       │   │   ├── app.tsx
│   │   │       │   │   ├── base.css
│   │   │       │   │   └── index.css
│   │   │       │   ├── body/
│   │   │       │   │   └── body.tsx
│   │   │       │   ├── footer/
│   │   │       │   │   └── footer.tsx
│   │   │       │   ├── header/
│   │   │       │   │   └── header.tsx
│   │   │       │   └── item/
│   │   │       │       └── item.tsx
│   │   │       ├── entry.dev.tsx
│   │   │       ├── entry.ssr.tsx
│   │   │       ├── root.tsx
│   │   │       └── state/
│   │   │           └── state.ts
│   │   └── todo-test/
│   │       ├── package.json
│   │       └── src/
│   │           ├── components/
│   │           │   ├── app/
│   │           │   │   ├── app.tsx
│   │           │   │   ├── base.css
│   │           │   │   └── index.css
│   │           │   ├── body/
│   │           │   │   └── body.tsx
│   │           │   ├── footer/
│   │           │   │   └── footer.tsx
│   │           │   ├── header/
│   │           │   │   └── header.tsx
│   │           │   └── item/
│   │           │       └── item.tsx
│   │           ├── entry.ssr.tsx
│   │           ├── root.tsx
│   │           └── state/
│   │               └── state.ts
│   ├── dev-server.ts
│   ├── e2e/
│   │   ├── e2e.attributes.spec.ts
│   │   ├── e2e.build-variables.spec.ts
│   │   ├── e2e.computed.spec.ts
│   │   ├── e2e.containers.spec.ts
│   │   ├── e2e.context.spec.ts
│   │   ├── e2e.effect-client.spec.ts
│   │   ├── e2e.events.spec.ts
│   │   ├── e2e.factory.spec.ts
│   │   ├── e2e.lexical-scope.spec.ts
│   │   ├── e2e.mount.spec.ts
│   │   ├── e2e.noresume.spec.ts
│   │   ├── e2e.ref.spec.ts
│   │   ├── e2e.render.spec.ts
│   │   ├── e2e.resource.spec.ts
│   │   ├── e2e.resuming.spec.ts
│   │   ├── e2e.signals.spec.ts
│   │   ├── e2e.slot.spec.ts
│   │   ├── e2e.streaming.spec.ts
│   │   ├── e2e.style.spec.ts
│   │   ├── e2e.sync-qrl.spec.ts
│   │   ├── e2e.toggle.spec.ts
│   │   ├── e2e.two-listeners.spec.ts
│   │   ├── e2e.use-id.spec.ts
│   │   ├── e2e.watch.spec.ts
│   │   ├── global.d.ts
│   │   ├── qwikcity/
│   │   │   ├── actions.spec.ts
│   │   │   ├── adapter.spec.ts
│   │   │   ├── api.spec.ts
│   │   │   ├── auth.spec.ts
│   │   │   ├── catchall.spec.ts
│   │   │   ├── error.spec.ts
│   │   │   ├── fallback.spec.ts
│   │   │   ├── loaders.spec.ts
│   │   │   ├── locale.spec.ts
│   │   │   ├── location.spec.ts
│   │   │   ├── mdx.spec.ts
│   │   │   ├── menu.spec.ts
│   │   │   ├── nav.spec.ts
│   │   │   ├── page.spec.ts
│   │   │   ├── resource.spec.ts
│   │   │   ├── server.spec.ts
│   │   │   ├── url.spec.ts
│   │   │   └── util.ts
│   │   ├── starter-partytown.spec.ts
│   │   ├── todo-old.spec.ts
│   │   └── todo.spec.ts
│   ├── features/
│   │   ├── auth/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── routes/
│   │   │           └── plugin@auth.ts
│   │   ├── bootstrap/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   └── bootstrap/
│   │   │       │       ├── alert.tsx
│   │   │       │       ├── button.tsx
│   │   │       │       ├── index.ts
│   │   │       │       ├── navbar.tsx
│   │   │       │       └── spinner.tsx
│   │   │       ├── constants/
│   │   │       │   └── data.ts
│   │   │       ├── models/
│   │   │       │   └── bootstrap.ts
│   │   │       └── routes/
│   │   │           └── bootstrap/
│   │   │               ├── alerts/
│   │   │               │   └── index.tsx
│   │   │               ├── buttons/
│   │   │               │   └── index.tsx
│   │   │               ├── index.tsx
│   │   │               ├── layout.tsx
│   │   │               └── spinners/
│   │   │                   └── index.tsx
│   │   ├── builder.io/
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   ├── builder-registry.ts
│   │   │       │   ├── counter/
│   │   │       │   │   ├── counter.module.css
│   │   │       │   │   └── counter.tsx
│   │   │       │   └── gauge/
│   │   │       │       ├── gauge.module.css
│   │   │       │       └── index.tsx
│   │   │       └── routes/
│   │   │           └── [...index]/
│   │   │               └── index.tsx
│   │   ├── compiled-i18n/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   └── locale-selector/
│   │   │       │       └── locale-selector.tsx
│   │   │       ├── entry.ssr.tsx
│   │   │       └── routes/
│   │   │           └── plugin@compiled-i18n.ts
│   │   ├── cypress/
│   │   │   ├── cypress/
│   │   │   │   ├── fixtures/
│   │   │   │   │   └── example.json
│   │   │   │   ├── support/
│   │   │   │   │   ├── commands.ts
│   │   │   │   │   ├── component-index.html
│   │   │   │   │   └── component.ts
│   │   │   │   └── tsconfig.cy.json
│   │   │   ├── cypress.config.ts
│   │   │   ├── cypress.d.ts
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── actions/
│   │   │       │   └── example.action.ts
│   │   │       ├── components/
│   │   │       │   └── example/
│   │   │       │       ├── example.cy.tsx
│   │   │       │       └── example.tsx
│   │   │       └── loaders/
│   │   │           └── example.loader.ts
│   │   ├── drizzle/
│   │   │   ├── drizzle/
│   │   │   │   ├── db/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── migrations/
│   │   │   │   │   └── .gitkeep
│   │   │   │   └── schema.ts
│   │   │   ├── drizzle.config.ts
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── routes/
│   │   │           ├── create/
│   │   │           │   └── index.tsx
│   │   │           └── users/
│   │   │               ├── [userId]/
│   │   │               │   └── index.tsx
│   │   │               └── index.tsx
│   │   ├── leaflet-map/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   └── leaflet-map/
│   │   │       │       └── index.tsx
│   │   │       ├── helpers/
│   │   │       │   └── boundary-box.tsx
│   │   │       ├── models/
│   │   │       │   ├── location.ts
│   │   │       │   └── map.ts
│   │   │       └── routes/
│   │   │           └── basic-map/
│   │   │               └── index.tsx
│   │   ├── orama/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── orama/
│   │   │       │   └── index.ts
│   │   │       └── routes/
│   │   │           └── orama/
│   │   │               └── index.tsx
│   │   ├── pandacss/
│   │   │   ├── .eslintignore
│   │   │   ├── .prettierignore
│   │   │   ├── gitignore
│   │   │   ├── package.json
│   │   │   ├── panda.config.ts
│   │   │   ├── postcss.config.js
│   │   │   └── src/
│   │   │       ├── global.css
│   │   │       └── routes/
│   │   │           └── pandacss/
│   │   │               └── index.tsx
│   │   ├── partytown/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── components/
│   │   │           └── partytown/
│   │   │               └── partytown.tsx
│   │   ├── playwright/
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   └── tests/
│   │   │       └── example.spec.ts
│   │   ├── postcss/
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── package.json
│   │   │   └── postcss.config.js
│   │   ├── prisma/
│   │   │   ├── package.json
│   │   │   ├── prisma/
│   │   │   │   └── schema.prisma
│   │   │   └── src/
│   │   │       └── routes/
│   │   │           ├── create/
│   │   │           │   └── index.tsx
│   │   │           └── users/
│   │   │               ├── [userId]/
│   │   │               │   └── index.tsx
│   │   │               └── index.tsx
│   │   ├── react/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── integrations/
│   │   │       │   └── react/
│   │   │       │       └── mui.tsx
│   │   │       └── routes/
│   │   │           └── react/
│   │   │               └── index.tsx
│   │   ├── service-worker/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── routes/
│   │   │           └── service-worker.ts
│   │   ├── storybook/
│   │   │   ├── .storybook/
│   │   │   │   ├── main.ts
│   │   │   │   ├── preview-head.html
│   │   │   │   ├── preview.tsx
│   │   │   │   └── tsconfig.json
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── components/
│   │   │           └── button/
│   │   │               ├── button.stories.tsx
│   │   │               └── button.tsx
│   │   ├── styled-vanilla-extract/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── routes/
│   │   │           └── styled-flower/
│   │   │               ├── flower.css.ts
│   │   │               └── index.tsx
│   │   ├── tailwind/
│   │   │   ├── package.json
│   │   │   ├── prettier.config.js
│   │   │   └── src/
│   │   │       └── global.css
│   │   ├── tailwind-v3/
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── package.json
│   │   │   ├── postcss.config.cjs
│   │   │   ├── prettier.config.js
│   │   │   ├── src/
│   │   │   │   └── global.css
│   │   │   └── tailwind.config.js
│   │   ├── turso/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── utils/
│   │   │           └── turso.ts
│   │   └── vitest/
│   │       ├── package.json
│   │       └── src/
│   │           └── components/
│   │               └── example/
│   │                   ├── example.spec.tsx
│   │                   └── example.tsx
│   ├── playwright.config.ts
│   └── templates/
│       ├── barrel/
│       │   ├── component/
│       │   │   └── index.tsx.template
│       │   ├── markdown/
│       │   │   └── index.md.template
│       │   ├── mdx/
│       │   │   └── index.mdx.template
│       │   └── route/
│       │       └── index.tsx.template
│       └── qwik/
│           ├── component/
│           │   └── [slug].tsx.template
│           ├── markdown/
│           │   └── index.md.template
│           ├── mdx/
│           │   └── index.mdx.template
│           └── route/
│               └── index.tsx.template
├── syncpack-release-conf.json
├── tsconfig-docs.json
├── tsconfig.json
├── tsconfig.scripts.json
├── types.d.ts
├── vitest-setup.ts
├── vitest.config.ts
└── vitest.workspace.js

================================================
FILE CONTENTS
================================================

================================================
FILE: .all-contributorsrc
================================================
{
  "projectName": "qwik",
  "projectOwner": "QwikDev",
  "repoType": "github",
  "repoHost": "https://github.com",
  "files": ["README.md"],
  "imageSize": 100,
  "commit": true,
  "commitConvention": "angular",
  "contributors": [],
  "contributorsPerLine": 7
}


================================================
FILE: .changeset/breezy-items-relax.md
================================================
---
'@builder.io/qwik-city': patch
---

FIX: When a form POST is done, keys like "name.1" mean it's an array. However, later keys could be strings like "name.value". Now, we check if all the keys are numbers, otherwise we make an object instead of an array. This allows for more correct form data handling.


================================================
FILE: .changeset/changelog-github-custom.cjs
================================================
'use strict';
var __assign =
  (this && this.__assign) ||
  function () {
    __assign =
      Object.assign ||
      function (t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
          s = arguments[i];
          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
        }
        return t;
      };
    return __assign.apply(this, arguments);
  };
var __awaiter =
  (this && this.__awaiter) ||
  function (thisArg, _arguments, P, generator) {
    function adopt(value) {
      return value instanceof P
        ? value
        : new P(function (resolve) {
            resolve(value);
          });
    }
    return new (P || (P = Promise))(function (resolve, reject) {
      function fulfilled(value) {
        try {
          step(generator.next(value));
        } catch (e) {
          reject(e);
        }
      }
      function rejected(value) {
        try {
          step(generator['throw'](value));
        } catch (e) {
          reject(e);
        }
      }
      function step(result) {
        result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
      }
      step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
  };
var __generator =
  (this && this.__generator) ||
  function (thisArg, body) {
    var _ = {
        label: 0,
        sent: function () {
          if (t[0] & 1) throw t[1];
          return t[1];
        },
        trys: [],
        ops: [],
      },
      f,
      y,
      t,
      g;
    return (
      (g = { next: verb(0), throw: verb(1), return: verb(2) }),
      typeof Symbol === 'function' &&
        (g[Symbol.iterator] = function () {
          return this;
        }),
      g
    );
    function verb(n) {
      return function (v) {
        return step([n, v]);
      };
    }
    function step(op) {
      if (f) throw new TypeError('Generator is already executing.');
      while ((g && ((g = 0), op[0] && (_ = 0)), _))
        try {
          if (
            ((f = 1),
            y &&
              (t =
                op[0] & 2
                  ? y['return']
                  : op[0]
                    ? y['throw'] || ((t = y['return']) && t.call(y), 0)
                    : y.next) &&
              !(t = t.call(y, op[1])).done)
          )
            return t;
          if (((y = 0), t)) op = [op[0] & 2, t.value];
          switch (op[0]) {
            case 0:
            case 1:
              t = op;
              break;
            case 4:
              _.label++;
              return { value: op[1], done: false };
            case 5:
              _.label++;
              y = op[1];
              op = [0];
              continue;
            case 7:
              op = _.ops.pop();
              _.trys.pop();
              continue;
            default:
              if (
                !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) &&
                (op[0] === 6 || op[0] === 2)
              ) {
                _ = 0;
                continue;
              }
              if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
                _.label = op[1];
                break;
              }
              if (op[0] === 6 && _.label < t[1]) {
                _.label = t[1];
                t = op;
                break;
              }
              if (t && _.label < t[2]) {
                _.label = t[2];
                _.ops.push(op);
                break;
              }
              if (t[2]) _.ops.pop();
              _.trys.pop();
              continue;
          }
          op = body.call(thisArg, _);
        } catch (e) {
          op = [6, e];
          y = 0;
        } finally {
          f = t = 0;
        }
      if (op[0] & 5) throw op[1];
      return { value: op[0] ? op[1] : void 0, done: true };
    }
  };
var __spreadArray =
  (this && this.__spreadArray) ||
  function (to, from, pack) {
    if (pack || arguments.length === 2)
      for (var i = 0, l = from.length, ar; i < l; i++) {
        if (ar || !(i in from)) {
          if (!ar) ar = Array.prototype.slice.call(from, 0, i);
          ar[i] = from[i];
        }
      }
    return to.concat(ar || Array.prototype.slice.call(from));
  };
Object.defineProperty(exports, '__esModule', { value: true });
// @ts-ignore
var get_github_info_1 = require('@changesets/get-github-info');
var dotenv_1 = require('dotenv');
(0, dotenv_1.config)();
var changelogFunctions = {
  getDependencyReleaseLine: function (changesets, dependenciesUpdated, options) {
    return __awaiter(void 0, void 0, void 0, function () {
      var changesetLink, _a, updatedDepenenciesList;
      return __generator(this, function (_b) {
        switch (_b.label) {
          case 0:
            if (!options.repo) {
              throw new Error(
                'Please provide a repo to this changelog generator like this:\n"changelog": ["@changesets/changelog-github", { "repo": "org/repo" }]'
              );
            }
            if (dependenciesUpdated.length === 0) return [2 /*return*/, ''];
            _a = '- Updated dependencies ['.concat;
            return [
              4 /*yield*/,
              Promise.all(
                changesets.map(function (cs) {
                  return __awaiter(void 0, void 0, void 0, function () {
                    var links;
                    return __generator(this, function (_a) {
                      switch (_a.label) {
                        case 0:
                          if (!cs.commit) return [3 /*break*/, 2];
                          return [
                            4 /*yield*/,
                            (0, get_github_info_1.getInfo)({
                              repo: options.repo,
                              commit: cs.commit,
                            }),
                          ];
                        case 1:
                          links = _a.sent().links;
                          return [2 /*return*/, links.commit];
                        case 2:
                          return [2 /*return*/];
                      }
                    });
                  });
                })
              ),
            ];
          case 1:
            changesetLink = _a.apply('- Updated dependencies [', [
              _b
                .sent()
                .filter(function (_) {
                  return _;
                })
                .join(', '),
              ']:',
            ]);
            updatedDepenenciesList = dependenciesUpdated.map(function (dependency) {
              return '  - '.concat(dependency.name, '@').concat(dependency.newVersion);
            });
            return [
              2 /*return*/,
              __spreadArray([changesetLink], updatedDepenenciesList, true).join('\n'),
            ];
        }
      });
    });
  },
  getReleaseLine: function (changeset, type, options) {
    return __awaiter(void 0, void 0, void 0, function () {
      var prFromSummary,
        commitFromSummary,
        usersFromSummary,
        replacedChangelog,
        linkifyIssueHints,
        _a,
        firstLine,
        futureLines,
        links,
        users,
        suffix,
        emojiFirstline;
      return __generator(this, function (_b) {
        switch (_b.label) {
          case 0:
            if (!options || !options.repo) {
              throw new Error(
                'Please provide a repo to this changelog generator like this:\n"changelog": ["@changesets/changelog-github", { "repo": "org/repo" }]'
              );
            }
            usersFromSummary = [];
            replacedChangelog = changeset.summary
              .replace(/^\s*(?:pr|pull|pull\s+request):\s*#?(\d+)/im, function (_, pr) {
                var num = Number(pr);
                if (!isNaN(num)) prFromSummary = num;
                return '';
              })
              .replace(/^\s*commit:\s*([^\s]+)/im, function (_, commit) {
                commitFromSummary = commit;
                return '';
              })
              .replace(/^\s*(?:author|user):\s*@?([^\s]+)/gim, function (_, user) {
                usersFromSummary.push(user);
                return '';
              })
              .trim();
            linkifyIssueHints = function (line) {
              return line.replace(
                /(?<=\( ?(?:fix|fixes|see) )(#\d+)(?= ?\))/g,
                function (issueHash) {
                  return '['
                    .concat(issueHash, '](https://github.com/')
                    .concat(options.repo, '/issues/')
                    .concat(issueHash.substring(1), ')');
                }
              );
            };
            (_a = replacedChangelog.split('\n').map(function (l) {
              return linkifyIssueHints(l.trimEnd());
            })),
              (firstLine = _a[0]),
              (futureLines = _a.slice(1));
            return [
              4 /*yield*/,
              (function () {
                return __awaiter(void 0, void 0, void 0, function () {
                  var links_1, shortCommitId, commitToFetchFrom, links_2;
                  return __generator(this, function (_a) {
                    switch (_a.label) {
                      case 0:
                        if (!(prFromSummary !== undefined)) return [3 /*break*/, 2];
                        return [
                          4 /*yield*/,
                          (0, get_github_info_1.getInfoFromPullRequest)({
                            repo: options.repo,
                            pull: prFromSummary,
                          }),
                        ];
                      case 1:
                        links_1 = _a.sent().links;
                        if (commitFromSummary) {
                          shortCommitId = commitFromSummary.slice(0, 7);
                          links_1 = __assign(__assign({}, links_1), {
                            commit: '[`'
                              .concat(shortCommitId, '`](https://github.com/')
                              .concat(options.repo, '/commit/')
                              .concat(commitFromSummary, ')'),
                          });
                        }
                        return [2 /*return*/, links_1];
                      case 2:
                        commitToFetchFrom = commitFromSummary || changeset.commit;
                        if (!commitToFetchFrom) return [3 /*break*/, 4];
                        return [
                          4 /*yield*/,
                          (0, get_github_info_1.getInfo)({
                            repo: options.repo,
                            commit: commitToFetchFrom,
                          }),
                        ];
                      case 3:
                        links_2 = _a.sent().links;
                        return [2 /*return*/, links_2];
                      case 4:
                        return [
                          2 /*return*/,
                          {
                            commit: null,
                            pull: null,
                            user: null,
                          },
                        ];
                    }
                  });
                });
              })(),
            ];
          case 1:
            links = _b.sent();
            users = usersFromSummary.length
              ? usersFromSummary
                  .map(function (userFromSummary) {
                    return '[@'
                      .concat(userFromSummary, '](https://github.com/')
                      .concat(userFromSummary, ')');
                  })
                  .join(', ')
              : links.user;
            suffix = '';
            if (links.pull || links.commit || users) {
              suffix = '('
                .concat(users ? 'by '.concat(users, ' ') : '', 'in ')
                .concat(links.pull || links.commit, ')');
            }
            emojiFirstline = firstLine
              .replace(/feat:/i, '✨')
              .replace(/chore:/i, '🛠')
              .replace(/infra:/i, '🛠')
              .replace(/fix:/i, '🐞🩹')
              .replace(/docs:/i, '📃');
            return [
              2 /*return*/,
              '\n\n- '
                .concat(emojiFirstline, ' ')
                .concat(suffix, '\n')
                .concat(
                  futureLines
                    .map(function (l) {
                      return '  '.concat(l);
                    })
                    .join('\n')
                ),
            ];
        }
      });
    });
  },
};
exports.default = changelogFunctions;


================================================
FILE: .changeset/changelog-github-custom.ts
================================================
import { ChangelogFunctions } from '@changesets/types';
// @ts-ignore
import { getInfo, getInfoFromPullRequest } from '@changesets/get-github-info';
import { config } from 'dotenv';

config();

const changelogFunctions: ChangelogFunctions = {
  getDependencyReleaseLine: async (changesets, dependenciesUpdated, options) => {
    if (!options.repo) {
      throw new Error(
        'Please provide a repo to this changelog generator like this:\n"changelog": ["@changesets/changelog-github", { "repo": "org/repo" }]'
      );
    }
    if (dependenciesUpdated.length === 0) {
      return '';
    }

    const changesetLink = `- Updated dependencies [${(
      await Promise.all(
        changesets.map(async (cs) => {
          if (cs.commit) {
            const { links } = await getInfo({
              repo: options.repo,
              commit: cs.commit,
            });
            return links.commit;
          }
        })
      )
    )
      .filter((_) => _)
      .join(', ')}]:`;

    const updatedDepenenciesList = dependenciesUpdated.map(
      (dependency) => `  - ${dependency.name}@${dependency.newVersion}`
    );

    return [changesetLink, ...updatedDepenenciesList].join('\n');
  },
  getReleaseLine: async (changeset, type, options) => {
    if (!options || !options.repo) {
      throw new Error(
        'Please provide a repo to this changelog generator like this:\n"changelog": ["@changesets/changelog-github", { "repo": "org/repo" }]'
      );
    }

    let prFromSummary: number | undefined;
    let commitFromSummary: string | undefined;
    const usersFromSummary: string[] = [];

    const replacedChangelog = changeset.summary
      .replace(/^\s*(?:pr|pull|pull\s+request):\s*#?(\d+)/im, (_, pr) => {
        const num = Number(pr);
        if (!isNaN(num)) {
          prFromSummary = num;
        }
        return '';
      })
      .replace(/^\s*commit:\s*([^\s]+)/im, (_, commit) => {
        commitFromSummary = commit;
        return '';
      })
      .replace(/^\s*(?:author|user):\s*@?([^\s]+)/gim, (_, user) => {
        usersFromSummary.push(user);
        return '';
      })
      .trim();

    const linkifyIssueHints = (line: string) =>
      line.replace(/(?<=\( ?(?:fix|fixes|see) )(#\d+)(?= ?\))/g, (issueHash) => {
        return `[${issueHash}](https://github.com/${
          options.repo
        }/issues/${issueHash.substring(1)})`;
      });

    const [firstLine, ...futureLines] = replacedChangelog
      .split('\n')
      .map((l) => linkifyIssueHints(l.trimEnd()));

    const links = await (async () => {
      if (prFromSummary !== undefined) {
        let { links } = await getInfoFromPullRequest({
          repo: options.repo,
          pull: prFromSummary,
        });
        if (commitFromSummary) {
          const shortCommitId = commitFromSummary.slice(0, 7);
          links = {
            ...links,
            commit: `[\`${shortCommitId}\`](https://github.com/${options.repo}/commit/${commitFromSummary})`,
          };
        }
        return links;
      }
      const commitToFetchFrom = commitFromSummary || changeset.commit;
      if (commitToFetchFrom) {
        const { links } = await getInfo({
          repo: options.repo,
          commit: commitToFetchFrom,
        });
        return links;
      }
      return {
        commit: null,
        pull: null,
        user: null,
      };
    })();

    const users = usersFromSummary.length
      ? usersFromSummary
          .map((userFromSummary) => `[@${userFromSummary}](https://github.com/${userFromSummary})`)
          .join(', ')
      : links.user;

    let suffix = '';
    if (links.pull || links.commit || users) {
      suffix = `(${users ? `by ${users} ` : ''}in ${links.pull || links.commit})`;
    }

    const emojiFirstline = firstLine
      .replace(/feat:/i, '✨')
      .replace(/chore:/i, '🛠')
      .replace(/infra:/i, '🛠')
      .replace(/fix:/i, '🐞🩹')
      .replace(/docs:/i, '📃');

    return `\n\n- ${emojiFirstline} ${suffix}\n${futureLines.map((l) => `  ${l}`).join('\n')}`;
  },
};

export default changelogFunctions;


================================================
FILE: .changeset/config.json
================================================
{
  "$schema": "https://unpkg.com/@changesets/config@3.0.1/schema.json",
  "changelog": ["./changelog-github-custom.cjs", { "repo": "QwikDev/qwik" }],
  "commit": false,
  "fixed": [["@builder.io/qwik", "@builder.io/qwik-city", "eslint-plugin-qwik", "create-qwik"]],
  "linked": [],
  "access": "public",
  "baseBranch": "origin/upcoming",
  "updateInternalDependencies": "minor",
  "ignore": [
    "qwik-docs",
    "@builder.io/qwik-labs",
    "insights",
    "@builder.io/qwik-worker",
    "qwik-cli-e2e",
    "qwik-react-test-app",
    "docs-e2e"
  ],
  "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
    "onlyUpdatePeerDependentsWhenOutOfRange": true
  }
}


================================================
FILE: .changeset/deno-production-builds.md
================================================
---
'@builder.io/qwik': patch
'@builder.io/qwik-city': patch
---

FIX: support Deno as package manager for production builds. The Vite plugin now recognizes Deno as a Node-compatible runtime for manifest passing, and SSG delegates to the Node implementation instead of stubbing out.


================================================
FILE: .changeset/eager-sides-sit.md
================================================
---
'@builder.io/qwik': patch
---

FIX: the optimizer was not using the binary builds


================================================
FILE: .changeset/fix-virtual-css-dev-ssr.md
================================================
---
'@builder.io/qwik': patch
---

fix: resolve 404 error for virtual CSS modules during dev SSR


================================================
FILE: .changeset/late-parrots-open.md
================================================
---
'eslint-plugin-qwik': patch
---

Support ESLint v10


================================================
FILE: .changeset/shaky-ends-help.md
================================================
---
'@builder.io/qwik-city': patch
---

fix: Link hash change now properly updates location.url.hash


================================================
FILE: .changeset/small-candies-train.md
================================================
---
'@builder.io/qwik-city': patch
---

fix: handle special characters in dynamic route


================================================
FILE: .changeset/smooth-ends-count.md
================================================
---
'@builder.io/qwik': patch
---

fix: type casts to bridge Rollup vs Rolldown type differences without changing runtime behavior


================================================
FILE: .devcontainer/Dockerfile
================================================
FROM cimg/rust:1.88.0-node

RUN rustup --version; \
    cargo --version; \
    rustc --version; 

RUN rustup update; \
    rustup target add wasm32-unknown-unknown; \
    cargo install cargo-insta --locked; \
    cargo install wasm-pack --locked; \
    rustup component add clippy; \
    corepack enable --install-directory ~/bin

RUN mkdir /home/circleci/store; \
    pnpm config set store-dir /home/circleci/store


================================================
FILE: .devcontainer/devcontainer.json
================================================
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.217.2/containers/docker-existing-dockerfile
{
  "name": "Qwik devcontainer",
  "hostRequirements": {
    "cpus": 4
  },
  // Add the IDs of extensions you want installed when the container is created.
  "extensions": [
    "esbenp.prettier-vscode",
    "rust-lang.rust-analyzer",
    "hdevalke.rust-test-lens",
    "ms-playwright.playwright",
    "manucorporat.vermoji",
    "ms-azuretools.vscode-docker",
    "mitsuhiko.insta",
    "silvenon.mdx",
    "csstools.postcss"
  ],
  "build": {
    "dockerfile": "Dockerfile"
  },
  "waitFor": "updateContentCommand",
  "updateContentCommand": "corepack install && pnpm install",
  "forwardPorts": [3300, 9229],
  "customizations": {
    "codespaces": {
      "openFiles": ["CONTRIBUTING.md"]
    }
  },
  "portsAttributes": {
    "3300": {
      "label": "Serve",
      "onAutoForward": "openPreview"
    }
  }
}


================================================
FILE: .dockerignore
================================================
.history
.vscode
dist
dist-dev
node_modules
tsc-out
external
*.
**/*.log
etc
temp
tsdoc-metadata.json
**/.DS_Store
integration/out/
integration/todo/output
integration/*.js
integration/*.cjs
integration/*.map
packages/qwik/src/napi/package-*
target
*.node
todo-express/
qwik-app/

================================================
FILE: .envrc
================================================
# shellcheck shell=bash
use flake
watch_file rust-toolchain


================================================
FILE: .gitattributes
================================================
*.json  linguist-language=JSON-with-Comments
.yarn/releases/** binary
.yarn/plugins/** binary


================================================
FILE: .github/CODEOWNERS
================================================
# For all PRs
* @QwikDev/core-veterans

# For docs PRs
packages/docs @QwikDev/docs-team @QwikDev/qwik-team
contributing @QwikDev/docs-team @QwikDev/qwik-team
README.md @QwikDev/docs-team @QwikDev/qwik-team
CONTRIBUTING.md @QwikDev/docs-team @QwikDev/qwik-team
CODE_OF_CONDUCT.md @QwikDev/docs-team @QwikDev/qwik-team

# For API changes
api.json @QwikDev/api-guards

# For releases
CHANGELOG.md @QwikDev/api-guards

# Protect the code owners file
.github/CODEOWNERS @mhevery @shairez




================================================
FILE: .github/ISSUE_TEMPLATE/bug.yaml
================================================
name: 🐞 Bug Report
description: Something does not work or is flaky! let us know!
labels: ['TYPE: bug', 'STATUS-1: needs triage']
title: '[🐞]'
body:
  - type: markdown
    attributes:
      value: |
        Thanks for taking the time to fill out this bug report!

  - type: dropdown
    id: component
    attributes:
      label: Which component is affected?
      options:
        - Qwik Runtime
        - Qwik Rollup / Vite plugin
        - Qwik Optimizer (rust)
        - Qwik React
        - Qwik City (routing)
        - Starters / CLI
        - Qwik Playground
    validations:
      required: true

  - type: textarea
    id: description
    attributes:
      description: 'A clear and concise description of what you expected to happen instead. If you intend to submit a PR for this issue, tell us in the description. Thanks!'
      label: Describe the bug
      placeholder: I am doing ... What I expect is ... What actually happening is ...

    validations:
      required: true

  - type: input
    id: reproduction
    attributes:
      label: Reproduction
      description: Please provide a link via [qwik.new](https://qwik.new/) or a link to a repo that can reproduce the problem you ran into. `npm create qwik@latest` can be used as a starter template. A [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) is required ([Why?](https://antfu.me/posts/why-reproductions-are-required)). If a report is vague (e.g. just a generic error message) and has no reproduction, it will receive a "need reproduction" label. If no reproduction is provided after 3 days, it will be auto-closed.
      placeholder: Reproduction URL
    validations:
      required: true

  - type: textarea
    id: reproduction-steps
    attributes:
      label: Steps to reproduce
      description: Please provide any reproduction steps that may need to be described. E.g. if it happens only when running the dev or build script make sure it's clear which one to use.
      placeholder: Run `npm install` followed by `npm run dev`

  - type: textarea
    id: system-info
    attributes:
      label: System Info
      description: Output of `npx envinfo --system --npmPackages '{vite,undici,typescript,@builder.io/*}' --binaries --browsers`
      render: shell
      placeholder: System, Binaries, Browsers
    validations:
      required: true

  - type: textarea
    id: additional_information
    attributes:
      label: Additional Information
    validations:
      required: false


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
contact_links:
  - name: ✨ Feature requests Ideas
    url: https://github.com/QwikDev/qwik-evolution/discussions
    about: Propose new features and improvements and help shape Qwik
  - name: 🤔 Support Question
    url: https://qwik.dev/chat
    about: This issue tracker is not for support questions. Please post your question on the Discord chat.


================================================
FILE: .github/ISSUE_TEMPLATE/docs_suggestion.yml
================================================
name: 📖 Documentation Suggestion
description: Suggestions on how we can improve the documentation.
title: '[📖]'
labels: ['COMP: docs', 'STATUS-1: needs triage']
body:
  - type: markdown
    attributes:
      value: |
        Thanks for taking the time to fill out docs suggestion! However, if you think it's something you can fix yourself, please submit a PR instead.
        In every doc page, you will be able to find the "Edit this page" in the right menu!
        ![Screenshot](https://user-images.githubusercontent.com/127379/203278116-7986d8b2-6aad-45fd-9890-7f171ca26bf0.png)

  - type: textarea
    id: description
    attributes:
      description: 'A clear and concise description of your suggestion to improve the docs.'
      label: Suggestion
    validations:
      required: true


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
<!--
The Qwik Team and Community appreciate all PRs. Thank you for your effort! Not all PRs can be merged, but those that meet the following criteria will be prioritized:

a) Core fixes, and

b) Framework functionality achievable only by the core.

If this PR can be done as a 3rd-Party Community Add-On, we encourage that for quicker adoption.

If you believe your functionality is valuable to the entire Qwik Community, discuss it in the Qwik Discord channels for potential inclusion in the core.

First of all, make sure your PR title is descriptive and matches our commit title guidelines.

Also make sure your PR follows all the guidelines in the [CONTRIBUTING.md](./CONTRIBUTING.md) document.

-->

# What is it?

<!-- pick one and remove the others -->

- Feature / enhancement
- Bug
- Docs / tests / types / typos
- Infra

# Description

<!--
* Include a summary of the motivation and context for this PR
* Is it related to any opened issues? (please add them here)
-->

# Checklist

<!--
* delete the items that are not relevant, so it's easy to tell if the PR is ready to be merged
* add items that are relevant and need to be done before merging
-->

- [ ] My code follows the [developer guidelines of this project](https://github.com/QwikDev/qwik/blob/main/CONTRIBUTING.md)
- [ ] I performed a self-review of my own code
- [ ] I added a changeset with `pnpm change`
- [ ] I made corresponding changes to the Qwik docs
- [ ] I added new tests to cover the fix / functionality


================================================
FILE: .github/workflows/ai-issue-triage.yml
================================================
name: AI Issue Triage

on:
  issues:
    types: [opened]

permissions:
  issues: write

jobs:
  triage:
    if: github.repository == 'QwikDev/qwik'
    runs-on: ubuntu-latest

    steps:
      - name: Check account age (skip accounts < 30 days)
        id: check
        uses: actions/github-script@v7
        with:
          script: |
            const user = await github.rest.users.getByUsername({
              username: context.payload.issue.user.login
            });
            const created = new Date(user.data.created_at);
            const days = (Date.now() - created) / (1000 * 60 * 60 * 24);
            return days >= 30;

      - name: AI triage and apply labels
        if: steps.check.outputs.result == 'true'
        uses: actions/github-script@v7
        env:
          OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
        with:
          script: |
            const issue = context.payload.issue;
            const issueText = `Title: ${issue.title}\n\nBody: ${issue.body || '(empty)'}`;

            // Call OpenCode Zen API (OpenAI-compatible)
            const response = await fetch('https://opencode.ai/zen/v1/chat/completions', {
              method: 'POST',
              headers: {
                'Content-Type': 'application/json',
                'Authorization': `Bearer ${process.env.OPENCODE_API_KEY}`
              },
              body: JSON.stringify({
                model: 'kimi-k2.5',
                messages: [
                  {
                    role: 'system',
                    content: `You are a Qwik framework issue triager. Given an issue, respond with ONLY a JSON array of label strings to apply. No explanation, no markdown, just the JSON array.

            Available labels:

            Type (pick exactly one):
            - "bug" — Something isn't working
            - "enhancement" — New feature or request

            Component (pick if clearly relevant):
            - "runtime", "Optimizer", "Router", "SSR", "Preloader", "starters", "styling", "types", "reactivity", "Insights", "docs", "DX"

            Status (apply if applicable):
            - "needs reproduction" — Bug report lacks a reproduction link

            Rules:
            1. Always include exactly ONE type label.
            2. For bugs without a reproduction link, include "needs reproduction".
            3. Do NOT include "good first issue" unless the fix is obviously trivial.
            4. Respond with ONLY a JSON array like: ["bug", "runtime", "needs reproduction"]`
                  },
                  {
                    role: 'user',
                    content: issueText
                  }
                ],
                temperature: 0
              })
            });

            if (!response.ok) {
              const text = await response.text();
              core.setFailed(`Zen API error ${response.status}: ${text}`);
              return;
            }

            const data = await response.json();
            const content = data.choices[0].message.content.trim();

            // Parse labels from response
            let labels;
            try {
              labels = JSON.parse(content);
            } catch {
              // Try extracting JSON array from response
              const match = content.match(/\[[\s\S]*\]/);
              if (match) {
                labels = JSON.parse(match[0]);
              } else {
                core.setFailed(`Could not parse labels from: ${content}`);
                return;
              }
            }

            if (!Array.isArray(labels) || labels.length === 0) {
              core.setFailed(`Invalid labels response: ${content}`);
              return;
            }

            // Fetch actual repo labels to validate against
            const repoLabels = await github.paginate(github.rest.issues.listLabelsForRepo, {
              owner: context.repo.owner,
              repo: context.repo.repo,
              per_page: 100
            });
            const allowed = new Set(repoLabels.map(l => l.name));
            const valid = labels.filter(l => allowed.has(l));

            if (valid.length === 0) {
              core.setFailed(`No valid labels found in: ${JSON.stringify(labels)}`);
              return;
            }

            // Apply labels
            await github.rest.issues.addLabels({
              owner: context.repo.owner,
              repo: context.repo.repo,
              issue_number: issue.number,
              labels: valid
            });

            core.info(`Applied labels: ${valid.join(', ')}`);

            // Post follow-up comment for needs reproduction
            // (labeling-issues.yml won't fire because GITHUB_TOKEN labels don't trigger labeled events)
            if (valid.includes('needs reproduction')) {
              const author = issue.user.login;
              await github.rest.issues.createComment({
                owner: context.repo.owner,
                repo: context.repo.repo,
                issue_number: issue.number,
                body: `Hello @${author}. Please provide a [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) using a GitHub repository or [StackBlitz](https://qwik.new).\n[Here](https://antfu.me/posts/why-reproductions-are-required#why-reproduction) is why reproductions help us fix issues faster.\nThanks 🙏`
              });
            }


================================================
FILE: .github/workflows/auto-assign-core-team.yml
================================================
name: Auto-assign PRs to core team authors

on:
  pull_request_target:
    types: [opened, reopened, ready_for_review, converted_to_draft]

permissions:
  pull-requests: write
  contents: read

jobs:
  auto_assign:
    name: Assign PR author when core team member
    runs-on: ubuntu-latest
    steps:
      - name: Check team membership via REST
        id: team
        env:
          GH_TOKEN: ${{ secrets.QWIK_AUTO_ASSIGN_PR_PAT }}
          ORG: QwikDev
          TEAM_SLUG: qwik-team
          AUTHOR: ${{ github.event.pull_request.user.login }}
        run: |
          RESPONSE=$(curl -s \
            -H "Authorization: token ${GH_TOKEN}" \
            -H "Accept: application/vnd.github+json" \
            "https://api.github.com/orgs/${ORG}/teams/${TEAM_SLUG}/memberships/${AUTHOR}")

          STATE=$(echo "$RESPONSE" | jq -r '.state // empty')
          if [ "$STATE" = "active" ]; then
            echo "isCore=true" >> $GITHUB_OUTPUT
          else
            echo "isCore=false" >> $GITHUB_OUTPUT
          fi

      - name: Assign PR to author
        if: steps.team.outputs.isCore == 'true'
        env:
          GH_TOKEN: ${{ secrets.QWIK_AUTO_ASSIGN_PR_PAT }}
        run: |
          PR_NUMBER=${{ github.event.pull_request.number }}
          AUTHOR=${{ github.event.pull_request.user.login }}
          curl -s -H "Authorization: token ${GH_TOKEN}" \
            -H "Accept: application/vnd.github+json" \
            -X POST \
            -d "{\"assignees\":[\"${AUTHOR}\"]}" \
            https://api.github.com/repos/${{ github.repository }}/issues/${PR_NUMBER}/assignees

      - name: Add PR to Qwik Development project
        id: add-project
        if: steps.team.outputs.isCore == 'true'
        uses: actions/add-to-project@v1.0.2
        with:
          project-url: https://github.com/orgs/QwikDev/projects/1
          github-token: ${{ secrets.QWIK_AUTO_ASSIGN_PR_PAT }}

      - name: Set status to "In progress" (draft)
        if: steps.team.outputs.isCore == 'true' && github.event.pull_request.draft == true
        uses: titoportas/update-project-fields@v0.1.0
        with:
          project-url: https://github.com/orgs/QwikDev/projects/1
          github-token: ${{ secrets.QWIK_AUTO_ASSIGN_PR_PAT }}
          item-id: ${{ steps.add-project.outputs.itemId }}
          field-keys: Status
          field-values: In progress

      - name: Set status to "Waiting For Review" (ready)
        if: steps.team.outputs.isCore == 'true' && github.event.pull_request.draft == false
        uses: titoportas/update-project-fields@v0.1.0
        with:
          project-url: https://github.com/orgs/QwikDev/projects/1
          github-token: ${{ secrets.QWIK_AUTO_ASSIGN_PR_PAT }}
          item-id: ${{ steps.add-project.outputs.itemId }}
          field-keys: Status
          field-values: Waiting For Review


================================================
FILE: .github/workflows/bench.yml.disabled
================================================
# disabled for now, not working as expected and not checking qwik runtime performance
name: Benchmark

on:
  - push
  - pull_request

jobs:
  changes:
    runs-on: ubuntu-latest
    outputs:
      optimizer: ${{ steps.filter.outputs.optimizer }}

    steps:
      - uses: actions/checkout@v5
      - uses: dorny/paths-filter@v2
        id: filter
        with:
          filters: |
            optimizer:
              - 'src/optimizer/core/**'

  benchmark:
    name: Performance regression check
    needs: changes
    if: ${{ needs.changes.outputs.optimizer == 'true' }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5

      - name: Cache
        uses: actions/cache@v4
        with:
          path: |
            ~/.cargo/bin/
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
            target/
          key: cargo-bench-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}
          restore-keys: |
            cargo-bench-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}

      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: nightly-2021-09-30
          override: true

      - name: Run benchmark
        run: cargo +nightly-2021-09-30 bench --workspace | tee output.txt

      - name: Download previous benchmark results
        run: mkdir raw-data && curl -o raw-data/benchmark-data.json https://raw.githubusercontent.com/QwikDev/qwik-raw-data/gh-pages/benchmark-data.json

      - name: Analyze benchmark result
        uses: benchmark-action/github-action-benchmark@v1
        with:
          # What benchmark tool the output.txt came from
          tool: 'cargo'
          # Where the output from the benchmark tool is stored
          output-file-path: output.txt
          external-data-json-path: ./raw-data/${{ github.sha }}/benchmark-data.json
          # Workflow will fail when an alert happens
          fail-on-alert: false
          # GitHub API token to make a commit comment
          github-token: ${{ secrets.GITHUB_TOKEN }}
          # Enable alert commit comment
          comment-on-alert: true
          comment-always: true
          alert-comment-cc-users: '@manucorporat'
          skip-fetch-gh-pages: true

      - name: Analyze benchmark result (root)
        if: ${{ github.event_name == 'push' }}
        uses: benchmark-action/github-action-benchmark@v1
        with:
          # What benchmark tool the output.txt came from
          tool: 'cargo'
          # Where the output from the benchmark tool is stored
          output-file-path: output.txt
          external-data-json-path: ./raw-data/benchmark-data.json
          # Workflow will fail when an alert happens
          # fail-on-alert: true
          # GitHub API token to make a commit comment
          github-token: ${{ secrets.GITHUB_TOKEN }}
          # Enable alert commit comment
          comment-on-alert: true
          comment-always: true
          alert-comment-cc-users: '@manucorporat'
          max-items-in-chart: 250
          skip-fetch-gh-pages: true
          auto-push: false

      - name: Deploy to qwik-raw-data
        if: ${{ github.ref == 'refs/heads/main' }}
        uses: JamesIves/github-pages-deploy-action@4.1.0
        with:
          token: ${{ secrets.PAT_GITHUB_TOKEN }}
          branch: gh-pages
          folder: raw-data
          clean: false
          single-commit: false
          git-config-email: github-bot@builder.io
          repository-name: QwikDev/qwik-raw-data
          commit-message: 'Update'


================================================
FILE: .github/workflows/ci.yml
================================================
# Build and test everything
#
# First it builds the packages and stores them in artifacts/cache.
# Meanwhile it lints the code.
# Then it runs the unit tests with the artifacts, as well as builds the docs and insights
# Once it all works, it does a release
#
# NOTE: only use pnpm run scripts for build commands
# This way we're sure that dev and CI environments are consistent

name: Qwik CI

# TODO fix e2e tests hanging and not cancelling
# # We only need one instance of the workflow running at a time, per branch
# concurrency:
#   group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
#   cancel-in-progress: true

on:
  pull_request:
  push:
    branches:
      - main
      - upcoming
      - next
      - qwik-labs
      - vercelserverless
      - 'build/**'
  workflow_dispatch:
    inputs:
      disttag:
        description: 'Publish "@builder.io/qwik" to NPM using this dist-tag, push the git-tag to the repo and create a GitHub release. The "latest" and "next" dist-tags will use the version number already committed in package.json.'
        required: true
        type: choice
        default: 'dev'
        options:
          - dev
          - next
          - latest

env:
  # Disable incremental build, speeds up CI
  CARGO_INCREMENTAL: 0

permissions:
  id-token: write
  contents: write
  pull-requests: write

jobs:
  changes:
    name: Setup
    runs-on: ubuntu-latest
    outputs:
      hash-qwik: ${{ steps.cache-qwik.outputs.cache-primary-key }}
      hash-rust: ${{ steps.cache-rust.outputs.cache-primary-key }}
      hash-others: ${{ steps.cache-others.outputs.cache-primary-key }}
      hash-docs: ${{ steps.cache-docs.outputs.cache-primary-key }}
      hash-insights: ${{ steps.cache-insights.outputs.cache-primary-key }}
      hash-unit: ${{ steps.cache-unit.outputs.cache-primary-key }}
      hash-e2e: ${{ steps.cache-e2e.outputs.cache-primary-key }}
      hash-cli-e2e: ${{ steps.cache-cli-e2e.outputs.cache-primary-key }}
      build-qwik: ${{ steps.cache-qwik.outputs.cache-hit != 'true' }}
      build-rust: ${{ steps.cache-rust.outputs.cache-hit != 'true' }}
      build-others: ${{ steps.cache-others.outputs.cache-hit != 'true' }}
      build-docs: ${{ steps.cache-docs.outputs.cache-hit != 'true' }}
      build-insights: ${{ steps.cache-insights.outputs.cache-hit != 'true' }}
      build-unit: ${{ steps.cache-unit.outputs.cache-hit != 'true' }}
      build-e2e: ${{ steps.cache-e2e.outputs.cache-hit != 'true' }}
      build-cli-e2e: ${{ steps.cache-cli-e2e.outputs.cache-hit != 'true' }}
      disttag: ${{ steps.set_dist_tag.outputs.disttag }}

    steps:
      - name: Branch
        run: echo "${{ github.ref }}"
      - name: NPM Dist Tag from input
        run: echo "${{ github.event.inputs.disttag }}"
      - name: Github event
        run: echo event_name=${{ github.event_name }}

      - name: Checkout
        uses: actions/checkout@v5

      - name: Set Dist Tag
        id: set_dist_tag
        if: |
          github.ref == 'refs/heads/upcoming' && (
            github.event_name == 'push' ||
            github.event_name == 'workflow_dispatch'
          )
        run: |
          if [ ${{ github.event_name }} == 'workflow_dispatch' ]; then
            disttag="${{ github.event.inputs.disttag }}"
            echo "Overriding disttag with input: $disttag"
            echo "disttag=${disttag}" >> $GITHUB_OUTPUT
            exit 0
          fi

          is_release=false
          commit_id=${{ github.sha }}
          owner=${{ github.repository_owner }}
          repo=${{ github.event.repository.name }}

          removed_files=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
            "https://api.github.com/repos/$owner/$repo/commits/$commit_id" | jq -r '.files[] | select(.status == "removed") | .filename')

          echo "Removed files: $removed_files"

          md_file_removed=false
          for file in $removed_files; do
            if [[ $file == .changeset/*.md ]]; then
              md_file_removed=true
              break
            fi
          done

          if [ $md_file_removed = true ]; then
            if ! ls .changeset/*.md > /dev/null 2>&1; then
              is_release=true
            fi
          fi

          echo "is_release: $is_release"

          if [ "$is_release" = true ]; then
            disttag='latest'
          else 
            disttag="${{github.event.inputs.disttag}}"
          fi

          echo "disttag: $disttag"

          echo "disttag=${disttag}" >> $GITHUB_OUTPUT

      - run: jq .scripts package.json > scripts.json

      - name: 'check cache: qwik'
        id: cache-qwik
        uses: actions/cache/restore@v4
        with:
          lookup-only: true
          path: packages/qwik/dist
          # Note that this includes the package.json of qwik
          key: ${{ hashfiles('.github/workflows/ci.yml', 'pnpm-lock.yaml', 'scripts.json', 'scripts/**/*', 'packages/qwik/**/*', 'starters/features/**/*', 'starters/adapters/**/*', 'starters/templates/**/*', '!**/*.unit.*', '!**/*.rs', '!starters/apps/e2e') }}
      - run: 'echo ${{ steps.cache-qwik.outputs.cache-primary-key }} > qwik-key.txt'
      - name: 'check cache: rust'
        id: cache-rust
        uses: actions/cache/restore@v4
        with:
          lookup-only: true
          path: packages/qwik/bindings
          key: ${{ hashfiles('Makefile', 'rust-toolchain', '**/Cargo.toml', '**/Cargo.lock', '**/*.rs') }}
      - run: 'echo ${{ steps.cache-rust.outputs.cache-primary-key }} > rust-key.txt'
      - name: 'check cache: others'
        id: cache-others
        uses: actions/cache/restore@v4
        with:
          lookup-only: true
          path: |
            packages/qwik-city/lib
            packages/qwik-labs/lib
            packages/qwik-labs/vite
            packages/qwik-react/lib
            packages/eslint-plugin-qwik/dist
            packages/create-qwik/dist
          # note that all inputs need to be listed here, including qwik, for correct cache invalidation
          key: ${{ hashfiles('qwik-key.txt', 'rust-key.txt', 'packages/qwik-city/**/*', 'packages/qwik-labs/**/*', 'packages/qwik-react/**/*', 'packages/eslint-plugin-qwik/**/*', 'packages/create-qwik/**/*', 'starters/apps/**/*', '!**/*.unit.*') }}
      - run: 'echo ${{ steps.cache-others.outputs.cache-primary-key }} > others-key.txt'
      - name: 'check cache: docs'
        id: cache-docs
        uses: actions/cache/restore@v4
        with:
          lookup-only: true
          path: docs-build-completed.txt
          key: ${{ hashfiles('others-key.txt', 'packages/docs/**/*') }}
      - name: 'check cache: insights'
        id: cache-insights
        uses: actions/cache/restore@v4
        with:
          lookup-only: true
          path: |
            packages/insights/dist
            packages/insights/.netlify
          key: ${{ hashfiles('others-key.txt', 'packages/insights/**/*') }}
      - name: 'check cache: unit tests'
        id: cache-unit
        uses: actions/cache/restore@v4
        with:
          lookup-only: true
          path: unit-tests-completed.txt
          key: ${{ hashfiles('others-key.txt', 'packages/**/*.unit.*') }}
      - name: 'check cache: e2e tests'
        id: cache-e2e
        uses: actions/cache/restore@v4
        with:
          lookup-only: true
          path: e2e-tests-completed.txt
          key: ${{ hashfiles('others-key.txt', 'starters/**/*') }}
      - name: 'check cache: cli e2e tests'
        id: cache-cli-e2e
        uses: actions/cache/restore@v4
        with:
          lookup-only: true
          path: cli-e2e-tests-completed.txt
          key: ${{ hashfiles('others-key.txt', 'e2e/**/*') }}

  ############ BUILD Qwik ############
  build-qwik:
    if: needs.changes.outputs.build-qwik == 'true'
    name: Build Qwik
    needs: changes
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v5

      - uses: pnpm/action-setup@v4
      - name: Setup Node
        uses: actions/setup-node@v5
        with:
          node-version: 24.x
          cache: 'pnpm'
          registry-url: https://registry.npmjs.org/

      - name: Install NPM Dependencies
        run: |
          # Ensure that the qwik binary gets made
          mkdir -p packages/qwik/bindings/
          pnpm install --frozen-lockfile

      - name: 'build: qwik'
        run: pnpm build --qwik --set-dist-tag="${{ needs.changes.outputs.disttag }}"

      - name: Print Qwik Dist Build
        continue-on-error: true
        run: tree -a packages/qwik/dist/

      - name: Save qwik cache
        uses: actions/cache/save@v4
        with:
          key: ${{ needs.changes.outputs.hash-qwik }}
          path: packages/qwik/dist

      - name: Save artifacts
        uses: actions/upload-artifact@v4
        with:
          name: artifact-qwik-no-optimizer
          include-hidden-files: true
          path: packages/qwik/dist/
          if-no-files-found: error

  ############ BUILD PLATFORM BINDINGS ############
  build-bindings:
    if: needs.changes.outputs.build-rust == 'true'
    strategy:
      matrix:
        settings:
          - host: ubuntu-latest
            target: x86_64-unknown-linux-gnu
            wasm: true

          # the last x86 macos available as a standard runner
          - host: macos-13
            target: x86_64-apple-darwin

          - host: macos-latest
            target: aarch64-apple-darwin

          - host: windows-latest
            target: x86_64-pc-windows-msvc

    name: Build optimizer ${{ matrix.settings.target }}
    runs-on: ${{ matrix.settings.host }}

    needs: changes

    steps:
      - name: Checkout
        uses: actions/checkout@v5

      - name: Install Rust toolchain
        uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          components: clippy,rustfmt

      - uses: pnpm/action-setup@v4
      - name: Setup Node
        uses: actions/setup-node@v5
        with:
          node-version: 24.x
          cache: 'pnpm'
          registry-url: https://registry.npmjs.org/

      - run: pnpm install
      - if: matrix.settings.wasm
        run: pnpm install -w wasm-pack

      - name: Lint check
        if: matrix.settings.wasm
        run: pnpm lint.rust

      - name: Unit tests
        if: matrix.settings.wasm
        run: pnpm test.rust

      - name: Build Platform Binding
        run: pnpm build --platform-binding

      - name: Build Wasm Binding
        if: matrix.settings.wasm
        run: pnpm build --wasm

      - name: Print Packages Dist Build
        continue-on-error: true
        run: ls -lR packages/qwik/bindings/

      - name: Upload Platform Binding Artifact
        uses: actions/upload-artifact@v4
        with:
          name: artifact-bindings-${{ matrix.settings.target }}
          include-hidden-files: true
          path: packages/qwik/bindings/
          if-no-files-found: error

  ############ BUILD PACKAGE ############
  combined-qwik:
    name: Bundle Qwik
    if: always()
    runs-on: ubuntu-latest
    needs:
      - build-qwik
      - build-bindings
      - changes

    steps:
      - name: Verify builds
        if: |
          !(
            (needs.build-qwik.result == 'success' || needs.build-qwik.result == 'skipped') &&
            (needs.build-bindings.result == 'success' || needs.build-bindings.result == 'skipped')
          )
        run: exit 1

      - name: Restore artifacts
        if: needs.changes.outputs.build-rust == 'true'
        uses: actions/download-artifact@v4

      - name: Restore Qwik from cache
        uses: actions/cache/restore@v4
        with:
          path: packages/qwik/dist
          key: ${{ needs.changes.outputs.hash-qwik }}

      - name: Restore Rust from cache
        if: needs.changes.outputs.build-rust != 'true'
        uses: actions/cache/restore@v4
        with:
          path: packages/qwik/bindings
          key: ${{ needs.changes.outputs.hash-rust }}

      - name: Move Rust Artifacts
        if: needs.changes.outputs.build-rust == 'true'
        run: |
          mkdir -p packages/qwik/bindings
          mv artifact-bindings-*/* packages/qwik/bindings

      - name: Save rust cache
        if: needs.changes.outputs.build-rust == 'true'
        uses: actions/cache/save@v4
        with:
          key: ${{ needs.changes.outputs.hash-rust }}
          path: packages/qwik/bindings

      - name: Upload Qwik artifact
        uses: actions/upload-artifact@v4
        with:
          name: artifact-qwik
          include-hidden-files: true
          path: |
            packages/qwik/bindings
            packages/qwik/dist
          if-no-files-found: error

  build-other-packages:
    name: Build Other Packages
    needs:
      - changes
      - combined-qwik
    if: always()
    runs-on: ubuntu-latest
    steps:
      - name: Verify combined-qwik
        if: needs.combined-qwik.result != 'success'
        run: exit 1

      - name: Checkout
        if: needs.changes.outputs.build-others == 'true'
        uses: actions/checkout@v5

      - uses: pnpm/action-setup@v4
        if: needs.changes.outputs.build-others == 'true'
      - name: Setup Node
        if: needs.changes.outputs.build-others == 'true'
        uses: actions/setup-node@v5
        with:
          node-version: 24.x
          cache: 'pnpm'
          registry-url: https://registry.npmjs.org/

      - name: Restore Qwik artifact
        uses: actions/download-artifact@v4
        with:
          name: artifact-qwik
          path: packages/qwik/

      - name: Install NPM Dependencies
        if: needs.changes.outputs.build-others == 'true'
        run: pnpm install

      - name: 'build: qwik-city & others'
        if: needs.changes.outputs.build-others == 'true'
        run: pnpm build --tsc --api --qwikcity --cli --qwiklabs --qwikreact --eslint --set-dist-tag="${{ needs.changes.outputs.disttag }}"
      - name: Save others cache
        if: needs.changes.outputs.build-others == 'true'
        uses: actions/cache/save@v4
        with:
          key: ${{ needs.changes.outputs.hash-others }}
          path: |
            packages/qwik-city/lib
            packages/qwik-labs/lib
            packages/qwik-labs/vite
            packages/qwik-react/lib
            packages/eslint-plugin-qwik/dist
            packages/create-qwik/dist

      - name: 'restore: qwik-city & others'
        if: needs.changes.outputs.build-others != 'true'
        uses: actions/cache/restore@v4
        with:
          path: |
            packages/qwik-city/lib
            packages/qwik-labs/lib
            packages/qwik-labs/vite
            packages/qwik-react/lib
            packages/eslint-plugin-qwik/dist
            packages/create-qwik/dist
          key: ${{ needs.changes.outputs.hash-others }}

      - name: Print QwikCity Lib Build
        run: tree -a packages/qwik-city/lib/

      - name: Upload QwikCity Build Artifacts
        uses: actions/upload-artifact@v4
        with:
          name: artifact-qwikcity
          include-hidden-files: true
          path: packages/qwik-city/lib/
          if-no-files-found: error

      - name: Print QwikLabs Lib Build
        run: tree -a packages/qwik-labs/lib/ packages/qwik-labs/vite/

      - name: Upload QwikLabs+React Build Artifacts
        uses: actions/upload-artifact@v4
        with:
          name: artifact-qwiklabs
          include-hidden-files: true
          path: |
            packages/qwik-labs/lib/
            packages/qwik-labs/vite/
            packages/qwik-labs/package.json
          if-no-files-found: error

      - name: Print qwik-react Lib Build
        run: tree -a packages/qwik-react/lib/

      - name: Upload qwik-react Build Artifacts
        uses: actions/upload-artifact@v4
        with:
          name: artifact-qwikreact
          include-hidden-files: true
          path: |
            packages/qwik-react/lib/
            packages/qwik-react/package.json
          if-no-files-found: error

      - name: Print Create Qwik CLI Dist Build
        run: tree -a packages/create-qwik/dist/

      - name: Upload Create Qwik CLI Build Artifacts
        uses: actions/upload-artifact@v4
        with:
          name: artifact-create-qwik
          include-hidden-files: true
          path: packages/create-qwik/dist/
          if-no-files-found: error

      - name: Print Eslint rules Dist Build
        run: tree -a packages/eslint-plugin-qwik/dist/

      - name: Upload Eslint rules Build Artifacts
        uses: actions/upload-artifact@v4
        with:
          name: artifact-eslint-plugin-qwik
          include-hidden-files: true
          path: packages/eslint-plugin-qwik/dist/
          if-no-files-found: error

  ############ BUILD INSIGHTS ############
  build-insights:
    if: always() && needs.changes.outputs.build-insights == 'true'
    name: Build Insights
    needs:
      - changes
      - build-other-packages
    runs-on: ubuntu-latest

    steps:
      - name: Verify build-other-packages
        if: needs.build-other-packages.result != 'success'
        run: exit 1

      - name: Checkout
        uses: actions/checkout@v5

      - name: Download Build Artifacts
        uses: actions/download-artifact@v4

      - name: Move Distribution Artifacts
        run: |
          mv artifact-qwik/* packages/qwik/
          mkdir -p packages/qwik-city/lib/
          mv artifact-qwikcity/* packages/qwik-city/lib/
          mkdir -p packages/create-qwik/dist/
          mv artifact-create-qwik/* packages/create-qwik/dist/
          mkdir -p packages/eslint-plugin-qwik/dist/
          mv artifact-eslint-plugin-qwik/* packages/eslint-plugin-qwik/dist/
          mv artifact-qwiklabs/lib packages/qwik-labs/lib
          mv artifact-qwiklabs/vite packages/qwik-labs/vite

      - uses: pnpm/action-setup@v4
      - name: Setup Node
        uses: actions/setup-node@v5
        with:
          node-version: 24.x
          cache: 'pnpm'
          registry-url: https://registry.npmjs.org/

      - run: pnpm install --frozen-lockfile
      - name: Build Qwik Insights
        run: pnpm run build.packages.insights

      - name: Save Insights Cache
        uses: actions/cache/save@v4
        with:
          key: ${{ needs.changes.outputs.hash-insights }}
          path: |
            packages/insights/dist
            packages/insights/.netlify

  ############ BUILD DOCS ############
  build-docs:
    if: always() && needs.changes.outputs.build-docs == 'true'
    name: Build Docs
    needs:
      - changes
      - build-other-packages
    runs-on: ubuntu-latest

    steps:
      - name: Verify build-other-packages
        if: needs.build-other-packages.result != 'success'
        run: exit 1

      - name: Checkout
        uses: actions/checkout@v5

      - uses: pnpm/action-setup@v4
      - name: Setup Node
        uses: actions/setup-node@v5
        with:
          node-version: 24.x
          cache: 'pnpm'
          registry-url: https://registry.npmjs.org/

      - name: Download Build Artifacts
        uses: actions/download-artifact@v4

      - name: Move Distribution Artifacts
        run: |
          mv artifact-qwik/* packages/qwik/
          mkdir -p packages/qwik-city/lib/
          mv artifact-qwikcity/* packages/qwik-city/lib/
          mkdir -p packages/create-qwik/dist/
          mv artifact-create-qwik/* packages/create-qwik/dist/
          mkdir -p packages/eslint-plugin-qwik/dist/
          mv artifact-eslint-plugin-qwik/* packages/eslint-plugin-qwik/dist/
          mv artifact-qwiklabs/lib packages/qwik-labs/lib
          mv artifact-qwiklabs/vite packages/qwik-labs/vite
          mv artifact-qwikreact/lib packages/qwik-react/lib

      - run: pnpm install --frozen-lockfile
      - name: Build Qwik Docs
        run: pnpm run build.packages.docs && echo ok > docs-build-completed.txt

      - name: Save Docs Artifacts
        uses: actions/upload-artifact@v4
        with:
          name: artifact-docs
          include-hidden-files: true
          path: |
            packages/docs/dist
            packages/docs/server

      - name: Save Docs Cache
        uses: actions/cache/save@v4
        with:
          key: ${{ needs.changes.outputs.hash-docs }}
          path: docs-build-completed.txt

  ############ UNIT TEST ############
  test-unit:
    name: Unit Tests
    if: always() && needs.changes.outputs.build-unit == 'true'
    runs-on: ubuntu-latest
    needs:
      - changes
      - build-other-packages

    steps:
      - name: Verify build-other-packages
        if: needs.build-other-packages.result != 'success'
        run: exit 1

      - name: Checkout
        uses: actions/checkout@v5

      - uses: pnpm/action-setup@v4
      - name: Setup Node
        uses: actions/setup-node@v5
        with:
          node-version: 24.x
          cache: 'pnpm'
          registry-url: https://registry.npmjs.org/

      - name: Download Build Artifacts
        uses: actions/download-artifact@v4

      - name: Move Distribution Artifacts
        run: |
          mv artifact-qwik/* packages/qwik/
          mkdir -p packages/qwik-city/lib/
          mv artifact-qwikcity/* packages/qwik-city/lib/
          mkdir -p packages/create-qwik/dist/
          mv artifact-create-qwik/* packages/create-qwik/dist/
          mkdir -p packages/eslint-plugin-qwik/dist/
          mv artifact-eslint-plugin-qwik/* packages/eslint-plugin-qwik/dist/

      - run: pnpm install --frozen-lockfile

      - name: Unit Tests
        run: pnpm run test.unit && echo ok > unit-tests-completed.txt

      - name: Save unit tests cache
        uses: actions/cache/save@v4
        with:
          key: ${{ needs.changes.outputs.hash-unit }}
          path: unit-tests-completed.txt

  ############ E2E TEST ############
  test-e2e:
    # Sometimes the tests just hang
    timeout-minutes: 20
    name: E2E Tests
    if: always() && needs.changes.outputs.build-e2e == 'true'

    needs:
      - build-other-packages
      - changes
      - test-unit

    strategy:
      matrix:
        settings:
          - host: ubuntu-latest
            browser: chromium
          # too slow and flaky. Perhaps better in v2?
          # - host: ubuntu-latest
          #   browser: firefox
          - host: macos-latest
            browser: webkit
          - host: windows-latest
            browser: chromium

    runs-on: ${{ matrix.settings.host }}

    steps:
      - name: Checkout
        uses: actions/checkout@v5

      - uses: pnpm/action-setup@v4
      - name: Setup Node
        uses: actions/setup-node@v5
        with:
          node-version: 24.x
          cache: 'pnpm'
          registry-url: https://registry.npmjs.org/

      - name: Download Build Artifacts
        uses: actions/download-artifact@v4

      - name: Move Distribution Artifacts
        run: |
          mv artifact-qwik/* packages/qwik/
          mkdir -p packages/qwik-city/lib/
          mv artifact-qwikcity/* packages/qwik-city/lib/
          mkdir -p packages/create-qwik/dist/
          mv artifact-create-qwik/* packages/create-qwik/dist/
          mkdir -p packages/eslint-plugin-qwik/dist/
          mv artifact-eslint-plugin-qwik/* packages/eslint-plugin-qwik/dist/
          mkdir -p packages/qwik-react/lib/
          mv artifact-qwikreact/lib/* packages/qwik-react/lib/

      - run: pnpm install --frozen-lockfile

      - name: Install Playwright
        run: npx playwright install ${{ matrix.settings.browser }} --with-deps

      - name: Playwright E2E Tests
        run: pnpm run test.e2e.${{ matrix.settings.browser }} --timeout 60000 --retries 7 --workers 1

      - name: Playwright E2E Integration Tests
        run: pnpm run test.e2e.integrations.${{ matrix.settings.browser }} --timeout 60000 --retries 7 --workers 1

      - name: Playwright E2E Qwik React Tests
        run: pnpm run test.e2e.qwik-react.${{ matrix.settings.browser }} --timeout 60000 --retries 7 --workers 1

      - name: Validate Create Qwik Cli
        if: matrix.settings.host != 'windows-latest'
        run: pnpm cli.validate

  ############ E2E CLI TEST ############
  test-cli-e2e:
    name: E2E CLI Tests
    if: always() && needs.changes.outputs.build-cli-e2e == 'true'

    needs:
      - build-other-packages
      - changes
      - test-unit

    strategy:
      matrix:
        settings:
          - host: ubuntu-latest
          - host: macos-latest
          - host: windows-latest

    runs-on: ${{ matrix.settings.host }}

    steps:
      - name: Checkout
        uses: actions/checkout@v5

      - uses: pnpm/action-setup@v4
      - name: Setup Node
        uses: actions/setup-node@v5
        with:
          node-version: 24.x
          cache: 'pnpm'
          registry-url: https://registry.npmjs.org/

      - name: Download Build Artifacts
        uses: actions/download-artifact@v4

      - name: Move Distribution Artifacts
        run: |
          mv artifact-qwik/* packages/qwik/
          mkdir -p packages/qwik-city/lib/
          mv artifact-qwikcity/* packages/qwik-city/lib/
          mkdir -p packages/create-qwik/dist/
          mv artifact-create-qwik/* packages/create-qwik/dist/
          mkdir -p packages/eslint-plugin-qwik/dist/
          mv artifact-eslint-plugin-qwik/* packages/eslint-plugin-qwik/dist/

      - run: pnpm install --frozen-lockfile

      - name: CLI E2E Tests
        run: pnpm run test.e2e.cli

  ########### LINT PACKAGES ############
  lint-package:
    name: Lint Package
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v5

      - uses: pnpm/action-setup@v4
      - name: Setup Node
        uses: actions/setup-node@v5
        with:
          node-version: 24.x
          cache: 'pnpm'
          registry-url: https://registry.npmjs.org/

      - run: pnpm install --frozen-lockfile

      - name: SyncPack Check
        if: always()
        run: pnpm run lint.syncpack

      - name: Prettier Check
        if: always()
        run: pnpm run lint.prettier

      - name: Build ESLint
        if: always()
        run: pnpm build --eslint

      - name: ESLint Check
        if: always()
        run: pnpm run lint.eslint

  ############ RELEASE ############
  release:
    name: Release
    runs-on: ubuntu-latest

    needs:
      - changes
      - test-unit
      - test-e2e
      - test-cli-e2e
    # test-unit runs when any packages changes, so we have to release
    # on "upcoming", we always check if we have something to release
    # don't run on forks
    if: |
      always() && 
      github.repository == 'QwikDev/qwik' && (
        github.ref == 'refs/heads/upcoming' ||
        needs.test-unit.result == 'success' || 
        needs.test-unit.result == 'skipped'
      )

    steps:
      - name: Verify test-e2e
        if: needs.test-e2e.result != 'skipped'
        run: |
          if [ "${{ needs.test-e2e.result }}" != success ] ; then
            exit 1
          else
            echo ok > e2e-tests-completed.txt
          fi
      - name: Save e2e tests cache
        if: needs.test-e2e.result != 'skipped'
        uses: actions/cache/save@v4
        with:
          key: ${{ needs.changes.outputs.hash-e2e }}
          path: e2e-tests-completed.txt

      - name: Verify test-cli-e2e
        if: needs.test-cli-e2e.result != 'skipped'
        run: |
          if [ "${{ needs.test-cli-e2e.result }}" != success ] ; then
            exit 1
          else
            echo ok > cli-e2e-tests-completed.txt
          fi
      - name: Save cli-e2e tests cache
        if: needs.test-cli-e2e.result != 'skipped'
        uses: actions/cache/save@v4
        with:
          key: ${{ needs.changes.outputs.hash-cli-e2e }}
          path: cli-e2e-tests-completed.txt

      - name: Checkout
        uses: actions/checkout@v5

      - uses: pnpm/action-setup@v4
      - name: Setup Node
        uses: actions/setup-node@v5
        with:
          node-version: 24.x
          cache: 'pnpm'
          registry-url: https://registry.npmjs.org/

      - name: Download Build Artifacts
        uses: actions/download-artifact@v4

      - name: Move Distribution Artifacts
        run: |
          mv artifact-qwik/* packages/qwik/
          mkdir -p packages/qwik-city/lib/
          mv artifact-qwikcity/* packages/qwik-city/lib/
          mkdir -p packages/create-qwik/dist/
          mv artifact-create-qwik/* packages/create-qwik/dist/
          mkdir -p packages/eslint-plugin-qwik/dist/
          mv artifact-eslint-plugin-qwik/* packages/eslint-plugin-qwik/dist/
          mv artifact-qwiklabs/lib packages/qwik-labs/lib
          mv artifact-qwiklabs/vite packages/qwik-labs/vite
          mv artifact-qwikreact/lib packages/qwik-react/lib
          rm -rf artifact-*

      - run: pnpm install --frozen-lockfile

      # Do this before other release steps to avoid
      # publishing temporary files
      - name: Create Release Pull Request or Publish to npm
        if: github.ref == 'refs/heads/upcoming'
        id: changesets
        uses: changesets/action@v1
        with:
          publish: pnpm release
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Fixup package.json files
        run: pnpm run release.fixup-package-json

      - name: Commit Build Artifacts
        if: github.event_name == 'push'
        env:
          QWIK_API_TOKEN_GITHUB: ${{ secrets.QWIK_API_TOKEN_GITHUB }}
        run: pnpm run qwik-push-build-repos

      - name: Publish packages for testing
        if: github.event_name != 'workflow_dispatch'
        run: pnpm release.pkg-pr-new
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

  ############ TRIGGER QWIKCITY E2E TEST ############
  trigger-qwikcity-e2e:
    name: Trigger Qwik City E2E
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/upcoming'

    needs:
      - changes
      - release

    steps:
      - name: Repository Dispatch
        uses: peter-evans/repository-dispatch@v2
        with:
          token: ${{ secrets.QWIK_API_TOKEN_GITHUB }}
          repository: builderIO/qwik-city-e2e
          event-type: main-updated

  ############ Everything is fine ############
  requirements-passed:
    name: All requirements are met
    runs-on: ubuntu-latest
    needs:
      - test-unit
      - test-e2e
      - test-cli-e2e
      - lint-package
      - build-docs
      - build-insights
    if: always()
    steps:
      - name: check status
        if: |
          !(
            (needs.test-unit.result == 'success' || needs.test-unit.result == 'skipped') &&
            (needs.test-e2e.result == 'success' || needs.test-e2e.result == 'skipped') &&
            (needs.test-cli-e2e.result == 'success' || needs.test-cli-e2e.result == 'skipped') &&
            (needs.lint-package.result == 'success' || needs.lint-package.result == 'skipped') &&
            (needs.build-docs.result == 'success' || needs.build-docs.result == 'skipped') &&
            (needs.build-insights.result == 'success' || needs.build-insights.result == 'skipped')
          )
        run: exit 1


================================================
FILE: .github/workflows/closing-issues.yml
================================================
name: Closing Issues For Inactivity

on:
  schedule:
    - cron: '0 0 * * *'

jobs:
  close-issues:
    if: github.repository == 'QwikDev/qwik'
    runs-on: ubuntu-latest
    steps:
      - name: needs reproduction
        uses: actions-cool/issues-helper@v3
        with:
          actions: 'close-issues'
          token: ${{ secrets.GITHUB_TOKEN }}
          labels: 'STATUS-2: needs reproduction'
          inactive-day: 14

      - name: missing info
        uses: actions-cool/issues-helper@v3
        with:
          actions: 'close-issues'
          token: ${{ secrets.GITHUB_TOKEN }}
          labels: 'STATUS-2: missing info'
          inactive-day: 14


================================================
FILE: .github/workflows/deploy-docs.yml
================================================
# a workflow that runs after the "Qwik CI" workflow is successful
# and deploys the documentation to CloudFlare Pages.

name: Deploy Docs

on:
  workflow_run:
    workflows: ['Qwik CI']
    types:
      - completed

permissions:
  actions: read
  deployments: write
  contents: read
  pull-requests: write

jobs:
  deploy:
    name: Cloudflare Pages Deployment
    if: >
      github.repository == 'QwikDev/qwik'
    runs-on: ubuntu-latest
    steps:
      - name: Check for docs artifact
        id: check-artifact
        uses: actions/github-script@v7
        with:
          retries: 3
          script: |
            try {
              const artifacts = await github.rest.actions.listWorkflowRunArtifacts({
                owner: context.repo.owner,
                repo: context.repo.repo,
                run_id: context.payload.workflow_run.id
              });
              const hasDocsArtifact = artifacts.data.artifacts.some(a => a.name === 'artifact-docs');
              core.setOutput('has-docs', hasDocsArtifact);
            } catch (error) {
              console.error('Error checking for artifacts:', error);
              core.setOutput('has-docs', false);
            }

      - name: Checkout code
        if: ${{ steps.check-artifact.outputs.has-docs == 'true' }}
        uses: actions/checkout@v5

      - name: Download docs artifact
        if: ${{ steps.check-artifact.outputs.has-docs == 'true' }}
        uses: actions/download-artifact@v4
        with:
          name: artifact-docs
          github-token: ${{ secrets.GITHUB_TOKEN }}
          run-id: ${{ github.event.workflow_run.id }}
          path: packages/docs

      - name: Verify dist directory exists
        if: ${{ steps.check-artifact.outputs.has-docs == 'true' }}
        run: |
          ls -la packages/docs
          if [ ! -d "packages/docs/dist" ]; then
            echo "Creating dist directory"
            mkdir -p packages/docs/dist
            cp -r packages/docs/* packages/docs/dist/ || true
          fi

      # not the official version, so be careful when updating
      - name: Deploy to Cloudflare Pages
        if: ${{ steps.check-artifact.outputs.has-docs == 'true' }}
        uses: AdrianGonz97/refined-cf-pages-action@6c0d47ff7c97c48fa702b6d9f71f7e3a7c30c7d8
        with:
          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
          accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
          projectName: 'qwik-docs'
          directory: packages/docs/dist
          githubToken: ${{ secrets.GITHUB_TOKEN }}

      - name: Skip message when no docs artifact
        if: ${{ steps.check-artifact.outputs.has-docs != 'true' }}
        run: echo "No docs artifact found, skipping deployment"


================================================
FILE: .github/workflows/labeling-issues.yml
================================================
name: Labling Issues

on:
  issues:
    types: [labeled]

jobs:
  handle-labeled:
    if: github.repository == 'QwikDev/qwik'
    runs-on: ubuntu-latest

    steps:
      - name: ensure STATUS-1 label is present
        id: status-1-label-presence
        # GH's built-in functions do not allow to search for array values that start with something, so we're using node for this
        run: |
          echo present=$( 
            node -e '
              const labels = JSON.parse(`${{ toJSON(github.event.issue.labels.*.name) }}`);
              console.log(labels.some(l => l.startsWith("STATUS-1:")));
            ' 
          ) >> $GITHUB_OUTPUT
      - name: remove needs triage
        if: steps.status-1-label-presence.outputs.present == 'true' && (contains(github.event.label.name, 'STATUS-2:') || contains(github.event.label.name, 'STATUS-3:'))
        uses: actions-cool/issues-helper@v3
        with:
          actions: 'remove-labels'
          token: ${{ secrets.GITHUB_TOKEN }}
          issue-number: ${{ github.event.issue.number }}
          labels: 'STATUS-1: needs triage'

      - name: needs reproduction time limit
        if: contains(github.event.label.name, 'needs reproduction')
        uses: actions-cool/issues-helper@v3
        with:
          actions: 'create-comment'
          token: ${{ secrets.GITHUB_TOKEN }}
          issue-number: ${{ github.event.issue.number }}
          body: |
            Hello @${{ github.event.issue.user.login }}. Please provide a [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) using a GitHub repository or [StackBlitz](https://qwik.new). 
            [Here](https://antfu.me/posts/why-reproductions-are-required#why-reproduction) is why we really need a minimal reproduction. 
            Issues marked with `needs reproduction` will be automatically closed if they have no activity within 14 days.
            Thanks 🙏

      - name: missing info time limit
        if: contains(github.event.label.name, 'missing info')
        uses: actions-cool/issues-helper@v3
        with:
          actions: 'create-comment'
          token: ${{ secrets.GITHUB_TOKEN }}
          issue-number: ${{ github.event.issue.number }}
          body: |
            Hello @${{ github.event.issue.user.login }}. Please provide the missing information requested above. 
            Issues marked with `missing info` will be automatically closed if they have no activity within 14 days.
            Thanks 🙏


================================================
FILE: .gitignore
================================================
# Keep "OS" and "IDE and local environment" ignores on your local machine in user home
# git config --global core.excludesFile ~/.gitignore
# https://git-scm.com/docs/gitignore

# OS
**/.DS_Store
etc
temp
.history
.lh
*.
**/*.log
*.node

# Application
qwik-app/
/server/
/starters/**/server/
/packages/*/server/
!/packages/qwik/server/
/packages/*/src/styled-system/
todo-express/
target
!/packages/docs/src/routes/demo/events/target
src/napi/package-*

# Node
node_modules

# Artifacts
tsc-out
dist
dist-dev
external
lib
tsdoc-metadata.json
packages/qwik/bindings

# IDE and local environment
.idea
.eslintcache
test-results
.direnv

# Package Managers
.yarn/*
!.yarn/releases
.pnpm-store/*

# Local Netlify folder
.netlify
sandbox

# AI tools
.planning

# We need to ignore this because "changesets" will try to replace it
/CHANGELOG.md

================================================
FILE: .node-version
================================================
24


================================================
FILE: .nvmrc
================================================
24


================================================
FILE: .prettierignore
================================================
**/**.api.md
**/*.log
**/.DS_Store
*.
pnpm-lock.yaml
.*
!.eslintrc.cjs
!.prettierignore
!.prettierrc.json

# Build output
dist
dist-dev
lib
target
starters/apps/**/dist
node_modules

tsconfig.tsbuildinfo

# REPL files
packages/docs/public/repl/repl-sw.js*

# build output
packages/*/lib
packages/*/dist
packages/*/server

# API output files
packages/docs/src/routes/api

# Prettier doesn't handle mdx files well
packages/docs/**/*.mdx

packages/insights/drizzle
packages/insights/.netlify
packages/insights/scripts
packages/insights/**/*.gen.d.ts
packages/qwik-labs/lib-types
packages/qwik-labs/vite

# insights cache files
**/q-insights.json

# Exclude builder js files from formatting - delete after migration
packages/docs/public/builder


================================================
FILE: .prettierrc.json
================================================
{
  "plugins": ["./node_modules/prettier-plugin-jsdoc/dist/index.js"],
  "jsdocPreferCodeFences": true,
  "tsdoc": true,
  "trailingComma": "es5",
  "tabWidth": 2,
  "semi": true,
  "singleQuote": true,
  "printWidth": 100,
  "useTabs": false
}


================================================
FILE: .vscode/extensions.json
================================================
{
  "recommendations": [
    "dbaeumer.vscode-eslint",
    "unifiedjs.vscode-mdx",
    "esbenp.prettier-vscode",
    "ms-playwright.playwright",
    "rust-lang.rust-analyzer",
    "ms-azuretools.vscode-docker",
    "manucorporat.vermoji",
    "vadimcn.vscode-lldb",
    "streetsidesoftware.code-spell-checker",
    "vitest.explorer"
  ],
  "unwantedRecommendations": []
}


================================================
FILE: .vscode/launch.json
================================================
{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "name": "docs dev.debug",
      "request": "launch",
      "skipFiles": ["<node_internals>/**"],
      "cwd": "${workspaceFolder}/packages/docs",
      "program": "${workspaceFolder}/packages/docs/node_modules/vite/bin/vite.js",
      "args": ["--mode", "ssr", "--force"]
    },
    {
      "type": "node",
      "name": "insights dev.debug",
      "request": "launch",
      "skipFiles": ["<node_internals>/**"],
      "cwd": "${workspaceFolder}/packages/insights",
      "program": "${workspaceFolder}/packages/insights/node_modules/vite/bin/vite.js",
      "args": ["--mode", "ssr", "--force"]
    },
    {
      "type": "node",
      "name": "docs build.client",
      "request": "launch",
      "skipFiles": ["<node_internals>/**"],
      "cwd": "${workspaceFolder}/packages/docs",
      "program": "${workspaceFolder}/packages/docs/node_modules/vite/bin/vite.js",
      "args": ["build"]
    },
    {
      "type": "node",
      "name": "docs build.server",
      "request": "launch",
      "skipFiles": ["<node_internals>/**"],
      "cwd": "${workspaceFolder}/packages/docs",
      "program": "${workspaceFolder}/packages/docs/node_modules/vite/bin/vite.js",
      "args": ["build", "-c", "adapters/cloudflare-pages/vite.config.mts"]
    },
    {
      "type": "node",
      "name": "preloader-test build.client",
      "request": "launch",
      "runtimeExecutable": "pnpm",
      "runtimeArgs": [
        "run",
        "build.client"
      ],
      "skipFiles": ["<node_internals>/**"],
      "cwd": "${workspaceFolder}/starters/apps/preloader-test"
    },
    {
      "type": "node",
      "name": "e2e.test",
      "request": "launch",
      "console": "integratedTerminal",
      "internalConsoleOptions": "neverOpen",
      "program": "${workspaceFolder}/./node_modules/tsm/bin.js",
      "cwd": "${workspaceFolder}",
      "args": ["./starters/dev-server.ts", "3301"]
    },
    {
      "type": "node",
      "name": "vitest",
      "request": "launch",
      "console": "integratedTerminal",
      "internalConsoleOptions": "neverOpen",
      "program": "${workspaceFolder}/./node_modules/vitest/vitest.mjs",
      "cwd": "${workspaceFolder}",
      "args": ["${file}"]
    }
  ]
}


================================================
FILE: .vscode/qwik.code-snippets
================================================
{
  "Qwik component": {
    "scope": "typescriptreact",
    "prefix": "q:component w/props",
    "description": "Qwik component w/ props",
    "body": [
      "export interface ${1:${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}}Props {",
      "  $2",
      "}",
      "",
      "export const $1 = component$((props: $1Props) => {",
      "  const state = useStore({",
      "    $3",
      "  });",
      "  ",
      "  return <${4:button} on${5:Click}$={(${6:e}) => {$7}}>$8</${4}>",
      "});",
    ],
  },
  "Qwik component (simple)": {
    "scope": "javascriptreact,typescriptreact",
    "prefix": "q:component simple",
    "description": "Simple Qwik component",
    "body": [
      "export const ${1:${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}} = component$(() => {",
      "  return <${2:button}>$4</$2>",
      "});",
    ],
  },
  "Qwik state": {
    "scope": "javascriptreact,typescriptreact",
    "prefix": "q:useStore$",
    "description": "useStore() declaration",
    "body": ["const ${1:state} = useStore({", "  $2", "});", "$0"],
  },
  "Qwik signal": {
    "scope": "javascriptreact,typescriptreact",
    "prefix": "q:useSignal",
    "description": "useSignal() declaration",
    "body": ["const ${1:signal} = useSignal($2);", "$0"],
  },
  "$ hook": {
    "scope": "javascriptreact,typescriptreact",
    "prefix": "q:$",
    "description": "$() function hook",
    "body": ["$(() => {", "  $0", "});", ""],
  },
  "useVisibleTask": {
    "scope": "javascriptreact,typescriptreact",
    "prefix": "q:useVisibleTask",
    "description": "useVisibleTask$() function hook",
    "body": ["useVisibleTask$(({ track }) => {", "  $0", "});", ""],
  },
  "useTask": {
    "scope": "javascriptreact,typescriptreact",
    "prefix": "q:useTask",
    "description": "useTask$() function hook",
    "body": ["useTask$(({ track }) => {", "  track(() => $1);", "  $0", "});", ""],
  },
  "useResource": {
    "scope": "javascriptreact,typescriptreact",
    "prefix": "q:useResource$",
    "description": "useResource$() declaration",
    "body": ["const $1 = useResource$(({ track, previous, cleanup }) => {", "  $0", "});", ""],
  },
  "useOn": {
    "scope": "javascriptreact,typescriptreact",
    "prefix": "q:useOn",
    "description": "useOn declaration",
    "body": ["useOn(", "'$1',", "$((event) => {", "  const { $3 } = event as $2;", "  })", ");"],
  },
  "useOnDocument": {
    "scope": "javascriptreact,typescriptreact",
    "prefix": "q:useOnDocument",
    "description": "useOnDocument declaration",
    "body": [
      "useOnDocument(",
      "'$1',",
      "$((event) => {",
      "  const { $3 } = event as $2;",
      "  })",
      ");",
    ],
  },
  "useOnWindow": {
    "scope": "javascriptreact,typescriptreact",
    "prefix": "q:useOnWindow",
    "description": "useOnWindow declaration",
    "body": [
      "useOnWindow(",
      "'$1',",
      "$((event) => {",
      "  const { $3 } = event as $2;",
      "  })",
      ");",
    ],
  },
}


================================================
FILE: .vscode/settings.json
================================================
{
  "vitest.include": ["**/*.unit.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
  "vitest.exclude": [
    "**/node_modules/**",
    "**/dist/**",
    "**/dist-dev/**",
    "**/cypress/**",
    "**/.{idea,git,cache,output,temp}/**"
  ],
  "javascript.preferences.autoImportFileExcludePatterns": ["node:test"],
  "typescript.preferences.preferTypeOnlyAutoImports": true,
  "typescript.tsdk": "./node_modules/typescript/lib",
  "typescript.enablePromptUseWorkspaceTsdk": true
}


================================================
FILE: @types/bun.d.ts
================================================
declare const Bun: {
  fileURLToPath: (url: string) => string;
  env: any;
  file: (path: string) => {
    text: () => Promise<string>;
    stream: () => Promise<ReadableStream<Uint8Array>>;
  };
};


================================================
FILE: @types/deno.d.ts
================================================
declare module 'https://deno.land/std/path/mod.ts' {
  export function extname(paths: string): string;
  export function fromFileUrl(url: string): string;
  export function join(...paths: string[]): string;
}

interface FsFile {
  readable: ReadableStream<Uint8Array>;
}
declare const Deno: {
  env: any;
  open(path: string, mode: { read: boolean }): Promise<FsFile>;
  readTextFile(path: string): Promise<string>;
  readFile(path: string): Promise<Uint8Array>;
  version: {
    deno: string;
  };
};


================================================
FILE: AGENTS.md
================================================
# Qwik — AI Agent Instructions

> Canonical instruction file for AI coding agents working on the Qwik monorepo.
> For detailed contributor setup, see [CONTRIBUTING.md](./CONTRIBUTING.md).

## Overview

Qwik is a **resumable** web framework — it serializes application state and framework state into HTML during SSR, then resumes on the client without re-executing component code. This enables it to stream javascript (a.k.a javascript streaming). There’s no waiting for the entire code to be downloaded (a.k.a hydration). The developer can write code very similar to other reactive frameworks; the app is automatically instant, regardless the amount of javascript.

**Key concepts:** Resumability, QRLs (lazy-loading primitives), the `$` suffix transform, fine-grained signals, and the Rust-based optimizer.

## Monorepo Layout

| Package                   | Path                          | Description                                    |
| ------------------------- | ----------------------------- | ---------------------------------------------- |
| `@builder.io/qwik`        | `packages/qwik`               | Core framework (runtime + optimizer)           |
| `@builder.io/qwik-city`   | `packages/qwik-city`          | Meta-framework (routing, middleware, adapters) |
| `@builder.io/qwik-react`  | `packages/qwik-react`         | React integration layer                        |
| `@builder.io/qwik-auth`   | `packages/qwik-auth`          | Auth.js integration                            |
| `@builder.io/qwik-dom`    | `packages/qwik-dom`           | Server-side DOM implementation                 |
| `@builder.io/qwik-worker` | `packages/qwik-worker`        | Web Worker support (experimental)              |
| `@builder.io/qwik-labs`   | `packages/qwik-labs`          | Experimental features (private)                |
| `eslint-plugin-qwik`      | `packages/eslint-plugin-qwik` | ESLint rules for Qwik                          |
| `create-qwik`             | `packages/create-qwik`        | Project scaffolding CLI                        |
| `qwik-docs`               | `packages/docs`               | Documentation site (private)                   |
| `insights`                | `packages/insights`           | Analytics dashboard (private)                  |

## Setup

**Requirements:** Node ≥22.18.0, pnpm ≥10.14.0

```bash
pnpm install
pnpm build.local    # builds everything without Rust (copies optimizer from npm)
```

Use `pnpm build.full` only if you modified Rust/optimizer code.

Prefer `pnpm build --qwik --qwikcity --dev` to build qwik and qwik-city faster.

## Key Commands

| Task                     | Command                  | Notes                                       |
| ------------------------ | ------------------------ | ------------------------------------------- |
| **Install**              | `pnpm install`           |                                             |
| **Install**              | `pnpm install`           |                                             |
| **Build (no Rust)**      | `pnpm build.local`       | For a fresh start                           |
| **Build (with Rust)**    | `pnpm build.full`        | Only for optimizer changes                  |
| **Build core only**      | `pnpm build.core`        | Fast — just Qwik + Qwik City + types        |
| **Watch mode**           | `pnpm build.watch`       | Rebuilds on change                          |
| **Unit tests**           | `pnpm test.unit`         | Vitest — runs `packages/**/*.unit.{ts,tsx}` |
| **E2E tests (Chromium)** | `pnpm test.e2e.chromium` | Playwright                                  |
| **E2E tests (City)**     | `pnpm test.e2e.city`     | Qwik City–specific E2E                      |
| **Lint**                 | `pnpm lint`              | ESLint + Prettier + Rust lint               |
| **Lint fix**             | `pnpm lint.fix`          | Auto-fix ESLint issues                      |
| **Format**               | `pnpm fmt`               | Prettier + syncpack                         |
| **Type check**           | `pnpm tsc.check`         | Full TypeScript check                       |
| **Update API docs**      | `pnpm api.update`        | Regenerates public API `.md` files          |
| **Create changeset**     | `pnpm change`            | Interactive — creates `.changeset/*.md`     |
| **Dev server**           | `pnpm serve`             | Port 3300                                   |
| **Docs dev**             | `pnpm docs.dev`          | Documentation site                          |

### Running a Single Test File

```bash
# Unit test — single file
pnpm vitest run packages/qwik/src/core/qrl/qrl.unit.ts

# E2E test — single file
pnpm playwright test starters/e2e/e2e.events.spec.ts --project chromium
```

## Architecture Essentials

### Resumability

Qwik serializes the full application state into HTML at SSR time. On the client, it **resumes** from that serialized state instead of re-executing components (no hydration). The serialization/deserialization logic lives in `packages/qwik/src/core/container/`.

### QRL & the `$` Transform

A **QRL** (Qwik Resource Locator) is a lazy reference to a closure. Any function ending with `$` (e.g., `component$`, `useTask$`, `$()`) creates a QRL boundary — the optimizer extracts these into separate chunks for lazy loading.

- QRL implementation: `packages/qwik/src/core/qrl/`
- The Rust optimizer rewrites `$`-suffixed calls at build time

### Signals

Fine-grained reactivity system. Signals track subscriptions and update only the DOM nodes or tasks that read them — no virtual DOM diffing.

- Implementation: `packages/qwik/src/core/state/signal.ts`
- Stores (proxy-based deep reactivity): `packages/qwik/src/core/state/store.ts`

### Optimizer (Rust)

The optimizer is a Rust-based compiler plugin (SWC transform) that:

1. Extracts `$`-suffixed closures into separate entry points
2. Captures lexical scope for serialization
3. Generates manifest metadata for prefetching

- Rust source: `packages/qwik/src/optimizer/core/`
- WASM build: `packages/qwik/src/wasm/`
- Native bindings: `packages/qwik/src/napi/`

### Qwik City (Meta-framework)

Qwik City provides file-based routing, data loaders (`routeLoader$`), actions (`routeAction$`), middleware, and server adapters.

- Runtime: `packages/qwik-city/src/runtime/`
- Build tooling: `packages/qwik-city/src/buildtime/`
- Adapters: `packages/qwik-city/src/adapters/`

## Code Style

**Config:** Prettier (`.prettierrc.json`) + ESLint 9 flat config (`eslint.config.js`)

| Rule           | Setting                    |
| -------------- | -------------------------- |
| Semi           | `true`                     |
| Quotes         | Single                     |
| Print width    | 100                        |
| Tabs           | Spaces (2)                 |
| Trailing comma | ES5                        |
| `no-console`   | Error (warn/error allowed) |
| `curly`        | Always required            |

### Naming Conventions

| Pattern        | Usage                                             | Example                             |
| -------------- | ------------------------------------------------- | ----------------------------------- |
| `use*`         | Hooks (must be called in component or task scope) | `useSignal`, `useStore`, `useTask$` |
| `*$`           | QRL boundary — optimizer extracts the closure     | `component$`, `routeLoader$`        |
| `create*`      | Factory functions                                 | `createDOM`, `createContextId`      |
| `*.unit.ts(x)` | Unit test files                                   | `qrl.unit.ts`                       |
| `*.spec.ts`    | E2E test files                                    | `e2e.events.spec.ts`                |

## Testing

### Unit Tests (Vitest)

- File pattern: `*.unit.ts` / `*.unit.tsx`
- Config: `vitest.config.ts` (root)
- Run all: `pnpm test.unit`
- Run one: `pnpm vitest run <path>`
- Server-side DOM helper: `createDOM()` from `@builder.io/qwik/testing`

### E2E Tests (Playwright)

- File pattern: `*.spec.ts` in `starters/e2e/`
- Config: `starters/playwright.config.ts`
- Run: `pnpm test.e2e.chromium`
- Run one: `pnpm playwright test <path> --project chromium`
- Additional E2E suites: `e2e/adapters-e2e/`, `e2e/docs-e2e/`, `e2e/qwik-react-e2e/`

### Rust Tests

- Run: `pnpm test.rust` (or `make test`)
- Update snapshots: `pnpm test.rust.update` (or `make test-update`)

## Git Workflow

### Commit Convention

```
type(scope): description
```

Types: `feat`, `fix`, `docs`, `lint`, `refactor`, `perf`, `test`, `chore`

- Use imperative mood ("add feature" not "added feature")
- No trailing period
- Scope is optional but encouraged (e.g., `fix(qwik-city): ...`)

### Changesets

If your change affects published packages, create a changeset:

```bash
pnpm change
```

This creates a `.changeset/*.md` file describing the change. The core packages (`@builder.io/qwik`, `@builder.io/qwik-city`, `eslint-plugin-qwik`, `create-qwik`) are **fixed-versioned** — they always release together.

### Branch Strategy

- **Base branch:** `main` (trunk-based development)
- PRs target `main`
- CI runs on all PRs

### Before Pushing a PR

1. `pnpm build.core`
2. `pnpm test.unit` (run relevant tests)
3. `pnpm lint`
4. `pnpm api.update` (if you changed public API)
5. `pnpm change` (to document patches or new features)

## Boundaries — What NOT to Do

1. **Don't run the full test suite** — Use `pnpm test.unit` or target specific files. The full `pnpm test` runs build + all tests and takes a very long time.
2. **Don't forget `pnpm api.update`** — If you change any public API, CI will fail without regenerated API docs.
3. **Don't modify Rust code without rebuilding** — After touching `packages/qwik/src/optimizer/core/`, run `pnpm build.full` (requires Rust toolchain + wasm-pack).
4. **Don't skip changesets for user-facing changes** — CI checks for changesets on PRs that touch published packages.
5. **Don't commit `.only` tests** — ESLint rule `no-only-tests` blocks this.
6. **Don't edit generated files** — Files in `dist/`, `lib/`, and API docs under `packages/docs/` are generated. Edit the source instead.


================================================
FILE: CLAUDE.md
================================================
@AGENTS.md


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
  and learning from the experience
- Focusing on what is best not just for us as individuals, but for the
  overall community

Examples of unacceptable behavior include:

- The use of sexualized language or imagery, and sexual attention or
  advances of any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email
  address, without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a
  professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
info@builder.io.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series
of actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.


================================================
FILE: CONTINUOUS_BUILD.md
================================================
# Continuous Build Artifacts

This repo contains build artifacts that are generated as part of the continues build pipeline.

Currently supported artifacts:

- [`@builder.io/qwik`](https://github.com/QwikDev/qwik-build)
- [`@builder.io/qwik-city`](https://github.com/QwikDev/qwik-city-build)
- [`@builder.io/qwik-labs`](https://github.com/QwikDev/qwik-labs-build)

The build artifact is created if:

- Code is merged to `main` branch
- Code is merged to `build/*` branch

## How to use

The build artifacts are useful if you want to:

- Install an un-released change.
- Bisect which specific commit caused a regression.

## Install specific build artifact

To install a specific build artifact change you `package.json` like so (not all lines may be needed):

```json
{
  "dependencies": {
    "@builder.io/qwik": "github:QwikDev/qwik-build#SHA",
    "@builder.io/qwik-city": "github:QwikDev/qwik-city-build#SHA",
    "@builder.io/qwik-labs": "github:QwikDev/qwik-labs-build#SHA"
  }
}
```

Where `#SHA` is one of the following:

- `#SHA` - Install a specific build SHA. You can get the SHA from:
  - [`@builder.io/qwik`](https://github.com/QwikDev/qwik-build/commits/) commits
  - [`@builder.io/qwik-city`](https://github.com/QwikDev/qwik-city-build/commits/) commits
  - [`@builder.io/qwik-labs`](https://github.com/QwikDev/qwik-labs-build/commits/) commits
- `#build/name` (or `#main`) - Install a specific `build/*` (or `#main`) branch:
  - [`@builder.io/qwik`](https://github.com/QwikDev/qwik-build/branches/) branches
  - [`@builder.io/qwik-city`](https://github.com/QwikDev/qwik-city-build/branches/) branches
  - [`@builder.io/qwik-labs`](https://github.com/QwikDev/qwik-labs-build/branches/) branches
    > NOTE: Package managers will treat any SHA in the lock file which is on the branch as valid, and so they will not auto upgrade to the latest. For this reason this is not recommended.

## Bisect for regression

You can bisect different commits to `main` to determine which specific change has cause the regression.

1. Install latest to get an upper mound
2. Install oldest known good to get a lower bound
3. Keep bisecting until you find a specific SHA where the code breaks.

When creating the issue please include which SHA has caused the regression.


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to Qwik

Thank you for taking an interest in contributing to Qwik! We appreciate you! 🫶🏽

Below are the guidelines on how to help in the best possible way.

## Submitting an Issue

Before creating a new issue, please search through open issues using the [GitHub issue search bar](https://docs.github.com/en/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests). You might find the solution to your problem, or can verify that it is an already known issue.

We want a bug-free and best-performing project. That's why we take all reported issues to heart. But please be aware that if we can't reproduce the problem, we won't have a way of locating and adequately fixing it.

Therefore, to solve the problem in the best possible way, please create a minimal repository that reproduces the problem with the least possible code explaining and demonstrating the error.

Without enough information to reproduce the issue, we will close it because we can't recreate and solve it.

## Triaging Issues

If you're interested in helping out with triaging issues, please follow the [Triaging Guide](./contributing/TRIAGE.md).

## Submitting a Pull Request (PR)

### Branch Organization

We adopt [trunk-based development](https://trunkbaseddevelopment.com/) therefore all Pull Requests are made against the main branch.
Before releasing, we merge `main` into a release branch, for testing purposes.

### Good first issue

The issues marked with [_Good first issue_](https://github.com/QwikDev/qwik/issues?q=is%3Aissue+is%3Aopen+label%3A%22COMMUNITY%3A++good+first+issue%22) are a good starting point to familiarize yourself with the project.

Before solving the problem, please check with the maintainers that the issue is still relevant. Feel free to leave a comment on the issue to show your intention to work on it and prevent other people from unintentionally duplicating your effort.

### Sending a Pull Request

Before submitting a pull request, consider the following guidelines:

- Fork the repository into your own account.
- In your forked repository, create a new branch: `git checkout -b my-branch main`
- Make your changes/fixes.
- Run `pnpm fmt` to lint the code.
- Add a changeset with `pnpm change` if needed ([follow this tutorial](https://go.screenpal.com/watch/cZivIcVPJQV))
- Push your branch to GitHub: `git push origin my-branch`
- In GitHub, send a pull request to `QwikDev:main`.

> If you aren't sure your PR is ready, open it as a [draft](https://github.blog/2019-02-14-introducing-draft-pull-requests/) to make it clear to the maintainer.

### ⚠ Troubleshooting PR build issues on CI

Every PR is being automatically merged with `main` before the CI Github actions run.
That's why if the CI checks aren't passing your PR branch is probably not up to date.

**For non documentation PRs please do the following:**

1. Merge `main` into your PR branch
2. Run `pnpm api.update`
3. Run `pnpm build.local` or `pnpm build.full` if you made a change to the Rust code
4. Commit and push any changes as a result of the above steps

## Local development

This is the best approach because all required dependencies will be installed in the docker container for you and won't affect your personal configuration in any way.

### Prerequisites

You need to have these tools up and running in your local machine:

- an editor. We recommend [VSCode](https://code.visualstudio.com/).
- one of the following:
  - [Nix](https://nixos.org)
  - [Docker](https://www.docker.com/)
  - Locally installed NodeJS v22+ and optionally Rust

#### Nix

[Nix](https://nixos.org/download.html) can be used on macOS and Linux. It keeps installation files in `/nix` and doesn't write anywhere else. It has a declarative configuration in the `flake.nix` file, which describes all the tools needed to build the project.

- Install it on your machine and enable flakes. The [DetSys installer](https://github.com/DeterminateSystems/nix-installer) makes that easy.
- run `nix develop` in the project root to open a shell with all the tools, or use `direnv` to have them automatically added into your current shell.

##### Nix + Direnv (optional)

You can additionally use [direnv](https://direnv.net/) to automatically load the dev environment when you enter the project directory.
There is also a VSCode plugin for direnv that reloads the extensions so they get environment changes.
When you install direnv, you'll need to allow it once with `direnv allow` in the project root. From then on, when you `cd` into the project, it will automatically have the correct tools installed.

#### Docker

- Install the [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension in your VSCode.
- Once installed you will be prompted to 'Reopen the folder to develop in a container [learn more](https://code.visualstudio.com/docs/devcontainers/containers) or Clone repository in Docker volume for [better I/O performance](https://code.visualstudio.com/docs/devcontainers/containers#_quick-start-open-a-git-repository-or-github-pr-in-an-isolated-container-volume)'. If you're not prompted, you can run the `Dev Containers: Open Folder in Container` command from the [VSCode Command Palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette).

Alternatively you can use [devcontainers/cli](https://github.com/devcontainers/cli):

- Install devcontainers following their documentation.
- In your terminal navigate to the Qwik's project root directory.
- Then run `devcontainer up --workspace-folder .`. This command will start a Docker container with all required environment dependencies.

> [!TIP]
> If you are using Podman, be sure to update the [VSCode dev container settings](https://code.visualstudio.com/remote/advancedcontainers/docker-options#_podman). Don't forget to allocate enough resources to the Podman machine to avoid slow builds.

> [!NOTE]
> You may run into an `EEXISTS` error when the Dev Container runs the "updateContentCommand" script. This may happen if pnpm gets installed automatically during the setup process. You can ignore the error because the container will be setup correctly, then run `pnpm install` in the project root once the container is connected and the terminal is available.

> [!CAUTION]
> The Dev Container may not work on Windows properly due to a difference with Windows container host volume permissions and ownership. It's recommended to use Mac or Linux instead, or configure your environment to build the project without Dev Containers.

##### Using development container without Dev Containers and VSCode

If you would like to make use of the development container solution, but don't use VSCode or Dev Containers, you still can do so, by following steps:

- Build development container locally: `cd .devcontainer; docker build -t qwik-container .`
- Run development container from Qwik project root, binding the directory to container: `cd ..; docker run --rm -d --name qwik-container -p 3300:3300 -p 9229:9299 -v $PWD:/home/circleci/project -t qwik-container`

Docker command does:

- Create a new container that is removed once stopped,
- In daemon mode,
- With name `qwik-container`,
- That exposes the ports `3300` and `9229`, and
- Binds `qwik` project directory to container working directory.

##### Podman extras

> This section is highly influenced by SO answer: https://serverfault.com/a/1075838/352338
> If you use [Podman](https://podman.io/) instead of Docker as your containers engine, then you need to know the following:

- Container runs as user `circleci` with UID `1001` and GID `1002`.
- As you are accustomed to using Podman, you will need to append `:Z` to `volumes | -v` parameter so the command becomes:

```bash
$ subuid_size=65536
$ subgid_size=65536
$ container_uid=1001
$ container_gid=1002
$ podman run --rm \
    --user $container_uid:$container_gid \
    --uidmap=0:1:$container_uid \
    --uidmap=$((container_uid + 1)):$((container_uid + 1)):$((subuid_size - $container_uid)) \
    --uidmap=$container_uid:0:1 \
    --gidmap=0:1:$container_gid \
    --gidmap=$((container_gid + 1)):$((container_gid + 1)):$((subgid_size - $container_gid)) \
    --gidmap=$container_gid:0:1 \
    -d --name qwik-container \
    -p 3300:3300 -p 9229:9299 \
    -v .:/home/circleci/project:Z \
    -t qwik-container
```

#### Locally installed tools

If you're not able to use the dev container, make sure you have NodeJS v18+ installed, as well as `pnpm`.

Furthermore, to build the optimizer you optionally need Rust.

1. Make sure [Rust](https://www.rust-lang.org/tools/install) is installed.
2. Install [wasm-pack](https://rustwasm.github.io/wasm-pack/installer/) with `cargo install wasm-pack` .
3. Node version >= `22`.
4. Make sure you have [pnpm](https://pnpm.io/installation) installed.
5. run `pnpm install`

> On Windows, Rust requires [C++ build tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/). You can also select _Desktop development with C++_
> while installing Visual Studio.

---

## Development

To build Qwik for local development, install the dev dependencies using [pnpm](https://pnpm.io/) and then do an initial build.

```shell
pnpm install && pnpm build.local
```

If you want to work on the Rust code, use `build.full` instead of `build.local`.

> [!NOTE]
> After running `build.local`, you may see Git diffs for API-related files and `JSXNode`. You should run the `api.update` script to resolve them.

### Fast build

This will build only Qwik and Qwik City and their types. This is not enough to run the docs.

```shell
pnpm build.core
```

### Custom build

Once you have done a full build, the types are built, and you can build just the code you're working on. For qwik and qwik-city, you can do very fast rebuilds with

```shell
pnpm build --dev --qwik --qwikcity
```

The `--dev` flag skips type checking and generating.

You can run `pnpm build` without parameters to see which flags are available. Notable:

- `--tsc`: build types
- `--api`: build API docs and type bundles. Requires `--tsc` to have run.
- `--build`: Qwik (you'll probably also need `--dev`)
- `--qwikcity`: Qwik City (you'll probably also need `--dev`)
- `--qwikreact`: Qwik React
- `--qwiklabs`: Qwik Labs
- `--eslint`: Eslint plugin

E.g. to build only the React integration, you'd run `pnpm build --qwikreact`.

### Full build without Rust

This builds everything except Rust prerequisites and the optimizer binaries. Instead, those binaries are copied from the latest Qwik package on NPM.

```shell
pnpm build.local
```

### Full build with Rust

It will build **everything**, including Rust packages and WASM.

> First build might be very slow.

- Builds each submodule
- Generates bundled `.d.ts` files for each submodule with [API Extractor](https://api-extractor.com/)
- Checks the public API hasn't changed
- Builds a minified `core.min.mjs` file
- Generates the publishing `package.json`

```shell
pnpm build.full
```

The build output will be written to `packages/qwik/dist`, which will be the directory that is published to [@builder.io/qwik](https://www.npmjs.com/package/@builder.io/qwik).

To update the Rust test snapshots after you've made changes to the Rust code, run `pnpm test.rust.update`.

### Run in your own app

Say you made changes to the repo and you want to try them out in your app. Once built, all the Qwik packages are directly usable in your project by using the linking in your package manager.

This is very easy to do with `pnpm`:
Assuming qwik is in `../qwik`, run this inside the root of your app:

```shell
pnpm link ../qwik/packages/qwik
pnpm link ../qwik/packages/qwik-city
```

Other package managers probably need to first be told about the packages. For example, with `bun` you need to `cd ../qwik/packages/qwik` and `bun link`, repeat for `qwik-city`. Then in your app run `bun link @builder.io/qwik @builder.io/qwik-city`.

If you can't use package linking, just copy the contents of `packages/qwik` into your projects' `node_modules/@builder.io/qwik` folder, and/or the contents of `packages/qwik-city` into your projects' `node_modules/@builder.io/qwik-city` folder.

### Working on the docs site

At the root of the Qwik repo folder run:

```shell
pnpm docs.dev
```

### To open the test apps for debugging run

```shell
pnpm serve
```

### Unit Tests Only

Unit tests use [vitest](https://vitest.dev)

```shell
pnpm test.unit
```

### E2E Tests Only

E2E tests use [Playwright](https://playwright.dev/).

To run the Playwright tests headless, from start to finish, run:

```shell
pnpm test.e2e.chromium
```

Finally, you can use `pnpm --filter` command to run packages' commands, for example:

```shell
pnpm --filter qwik-docs start
```

More commands can be found in each package's package.json scripts section.

### Updating dependencies

To update all dependencies, run:

```shell
pnpm deps
```

This will show an interactive UI to update all dependencies. Be careful about performing major updates, especially for the docs site, since not all functionality has test coverage there. Be sure to test thoroughly.

## Starter CLI `create-qwik`

- [Starter CLI](https://github.com/QwikDev/qwik/blob/main/starters/README.md)

## Pull Requests

- [Open Qwik in StackBlitz Codeflow](https://pr.new/github.com/QwikDev/qwik/)
- Review PR in StackBlitz
  ![image](https://user-images.githubusercontent.com/4918140/195581745-8dfca1f9-2dcd-4f6a-b7aa-705f3627f8fa.png)

### Coding conventions

Write code that is clean, simple and easy to understand. Complicated one-liners are generally frowned upon, unless they are for performance reasons and are clearly marked as such with a comment and explanation.

When code does something unexpected, add a comment explaining why.

When a comment is longer, prefer using `/** */` JSDoc comments as that will be auto-formatted as Markdown.
JSDoc comments will also become part of the API documentation when they apply to exports, so write them as such.

`pnpm fmt` is your friend, and we recommend setting up Prettier and using format-on-save in your editor.

### Commit conventions

If you don't follow these commit conventions, your PR will be squashed. This means your local branch will not be part of the commit history of the target branch.
For larger PRs, it would really help if you follow these guidelines.

- Create a commit for each logical unit and make sure it passes linting.
- Keep your commits focused and atomic. Each commit should represent a single, coherent change.
- If you have commits like `wip lol` or `fixup`, squash them. Use `git rebase -i`.
- Commits must follow the format: `type(scope): description`
  For example: `feat(qwik-city): confetti animations` or `chore: pnpm api.update`

  Common types include:
  - feat: A new feature
  - fix: A bug fix
  - docs: Documentation only changes
  - lint: Changes that do not affect the meaning of the code (white-space, formatting, etc)
  - refactor: A code change that neither fixes a bug nor adds a feature
  - perf: A code change that improves performance
  - test: Adding missing tests or correcting existing tests
  - chore: Changes to the build process or auxiliary tools and libraries such as documentation generation

  The `scope` is optional and should be a short identifier for the changed part of the code.

- Use the imperative mood in the description. For example, use "add" instead of "added" or "adds".
- For consistency, there should not be a period at the end of the commit message's summary line (the first line of the commit message).

### Writing good commit messages

In addition to writing properly formatted commit messages, it's important to include relevant information so other developers can later understand _why_ a change was made. While this information usually can be found by digging into the code, pull request discussions or upstream changes, it may require a lot of work.

- Be clear and concise in your commit messages.
- Explain the reason for the change, not just what was changed.
- If the commit fixes a specific issue, reference it in the commit message (e.g., "Fixes #123").

### Adding a changeset

Whenever you make a change that requires mentioning in the changelog, you should add a changeset. This will automatically generate meaningful release notes and changelog files.

You can add multiple changesets in a PR, for example because you implement different features for different packages, or because you have multiple noteworthy commits.

You create a new changeset file by running:

```shell
pnpm change
```

This will ask you which packages should be included in the changeset, and if the changes require a new version bump. Generally you should not select `major`, and you should only select `minor` if there are new features or significant improvements. If you don't select either it will become `patch`.

For your convenience, we prepared a video tutorial that covers the process of adding a changeset:

[📽 TUTORIAL: Adding a changeset](https://go.screenpal.com/watch/cZivIcVPJQV)

## PR merging (maintainers)

Make sure the PR follows all the guidelines in this document. Once you think the PR is good to merge, if the commits are "nice", you can merge the PR. If not, squash the PR.

In case the PR is stuck waiting for the original author to apply a trivial
change (a typo, capitalization change, etc.) and the author allowed the members
to modify the PR, consider applying it yourself (or commit the existing review
suggestion). You should pay extra attention to make sure the addition doesn't go
against the idea of the original PR and would not be opposed by the author.

## Releasing (maintainers)

Merge the "version" PR, that is automatically created when a PR with a changeset is merged. You can first edit the files it created to get a nicer changelog.

Once CI passes, the GitHub Action will publish the new version to NPM.


================================================
FILE: Cargo.toml
================================================
[workspace]

members = [
    "packages/qwik/src/napi",
    "packages/qwik/src/wasm",
    "packages/qwik/src/optimizer/cli",
    "packages/qwik/src/optimizer/core",
]
exclude = ["packages/qwik/src/wasm"]
resolver = "2"

[profile.release]
debug = 0
lto = true
codegen-units = 1
opt-level = "z"
panic = "abort"



================================================
FILE: Dockerfile
================================================
FROM node:16.12.0-buster

RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
ADD . /
ENV PATH="/root/.cargo/bin:${PATH}"
RUN make install-rust-deps
RUN pnpm install
RUN pnpm build


================================================
FILE: GOVERNANCE.md
================================================
# Qwik Project Governance

This governance document reflects our dedication to maintaining Qwik as an open, fair, and collaborative project and is a continuation of our [community values](https://docs.google.com/document/d/1MrSp2caaREETHUL56C2fIIJeFJsBA_sWJ9raL6hWoo8/edit#heading=h.bpbzghkvfgrn).

Qwik is rooted in a commitment to innovation and community-driven development where the needs of the community drive the framework's evolution.

Our decisions are guided by what serves Qwik and the broader web ecosystem best, with a strong emphasis on seeking consensus.

The following outlines the structure of the project, including the roles and responsibilities of its members.

## Community Contributors

A Community contributor is any community member who contributes to the success of the framework.

Contributors usually are part of one or more of the following categories:

1. **Code Contributors** - Developers who contribute by identifying issues, submitting pull requests, or maintaining community-driven Qwik projects.
2. **Docs Contributors** - Members who enhance or correct the Qwik documentation, ensuring it remains accurate and accessible.
3. **Support Contributors** - Members who assist other developers by answering questions and offering support.
4. **Content Creators** - Those who produce educational content, tutorials, and other resources to help the community better understand and use Qwik.
5. **Local Community Leaders** - Members who organize and lead local Qwik communities, fostering in-person engagement and knowledge sharing.

## Qwik Heroes

Qwik Heroes are recognized as top contributors who have exceptional dedication and enthusiasm for Qwik.

Heroes have easier access to the core team and participate in monthly meetings to provide feedback, ask questions, and discuss internal topics together with the team.

#### Nomination

Any community contributor can be nominated as a Qwik Hero by an existing member or by any of the leadership teams. Selections are made by the Community Management Team (and in conjunction with the core team for cases of “code heroes”).

#### Status Change

Removal of Qwik Heroes is done by either a voluntary resignation or by a Community Management Team decision, or (in extreme cases) by a Stewardship Team motion.

Qwik Heroes who become inactive for 6 months are automatically reverted to regular community contributor status.

## Core Team

Core team members are contributors who have merging rights to the project and are actively involved in the ongoing development of Qwik. They are essential to the framework's evolution, participating in weekly sprint meetings and Core Leadership meetings (although only Core Leadership members can vote in these meetings).

The Core Team will have a Core Team Lead who will be in charge of the ongoing project management and development progress.

#### Nomination

A Qwik Hero member can be nominated as a Core Team member by any member of the Core Team. Nominations are decided upon by a standard Core Leadership motion.

#### Status Change

Removal of Core Team members is done by either a voluntary resignation or by a standard Core Leadership motion, or (in extreme cases) by a Stewardship Team motion.

A Core Team member will be automatically converted back to a "Qwik Hero" if they are not active in the project for over 3 months.

## Core Leadership Team

The Core Leadership Team includes Core Team members who are granted voting rights on strategic technical decisions.

These individuals are selected because of their experience, judgment, good faith, and alignment with Qwik's core values.

Members of this team are expected to participate in Core Leadership Team activities and meetings and can cast votes when consensus is not reached on a specific decision.

#### Nomination

Regular Core Team members can be nominated to the Core Leadership Team by any current Core Leadership member, with the final decision made through a standard Core Leadership motion.

#### Status Change

Removal of voting Core Leadership members is done by either a voluntary resignation or by a standard Core Leadership motion, or (in extreme cases) by a Stewardship Team motion.

A Core Leadership member will be automatically converted to a regular Core Team member if they do not participate in 3 consecutive votes or have been inactive for over 4 months.

## Docs Team

The Docs Team is responsible for maintaining and improving Qwik's documentation.

This team ensures that the documentation is up-to-date, accurate, and user-friendly, and also handles the triage of docs-related issues and the merging of related PRs.

#### Nomination

A Qwik Hero member can be nominated as a Docs Team member by any member of the Docs Team. Nominations need to be approved by the Growth Manager.

#### Status Change

Removal of Docs Team members is done by either a voluntary resignation or by a Growth Manager decision, or (in extreme cases) by a Stewardship Team motion.

A Docs Team member will be automatically converted back to a "Qwik Hero" if they are not active in the project for over 3 months.

## Community Management Team

The Community Management Team oversees the onboarding, safety, and overall vibe of the Qwik community.

They ensure that the community remains a friendly and inclusive space where members follow the Qwik community guidelines.

The team is responsible for managing "Local Community Leaders" and "Support Heroes" and helping them succeed in their roles and contributions.

#### Nomination

Qwik Heroes may be nominated to the Community Management Team by any current team member. Nominations need to be approved by the Growth Manager.

#### Status Change

Removal of Community Management Team members is done by either a voluntary resignation or by a Growth Manager decision, or (in extreme cases) by a Stewardship Team motion.

A Community Management Team member will be automatically converted back to a "Qwik Hero" if they are not active in the project for over 3 months.

## Outreach Team

The Outreach Team is responsible of spreading Qwik's message, ensuring that more developers are introduced to the framework and give it a try. Their responsibilities include managing social media, collaborating with content creators, representing Qwik at conferences, and more.

#### Nomination

Qwik Heroes may be nominated to the Outreach Team by any current team member. Nominations need to be approved by the Growth Manager.

#### Status Change

Removal of Outreach Team members is done by either a voluntary resignation or by a Growth Manager decision, or (in extreme cases) by a Stewardship Team motion.

An Outreach Team member will be automatically converted back to a "Qwik Hero" if they are not active in the project for over 3 months.

## Growth Manager

The Growth Manager is responsible for overseeing the Community Management, Outreach, and Docs Teams, ensuring that their efforts are aligned and that messaging across these teams remains consistent.

This role is crucial in driving the strategic direction of Qwik's growth and ensuring that all community-facing activities are cohesive and effective.

The Growth Manager is appointed or replaced by a standard Stewardship Team motion.

## Stewardship Team

The project's stewards are in charge of all aspects regarding the framework.

This includes the development, community, and growth of the framework, but also creating proper management processes, managing sponsorships and budgets, collaborations, and more.

The project stewards are: Misko Hevery and Shai Reznik.

The project stewards will be used as "tiebreakers" in votes and hold veto rights on decisions (to protect the framework from rare and extreme cases).

Because the framework can be forked by the community at any point, the project stewards must manage the project in a fair, honest, and thoughtful way, taking into account what's good for the community and resolving conflicting needs as much as possible.

---

inspired by [Node](https://github.com/nodejs/node/blob/main/GOVERNANCE.md), [Vue](https://github.com/vuejs/vue/wiki/Governance-Document), [Astro](https://github.com/withastro/.github/blob/main/GOVERNANCE.md) and [Nuxt](https://github.com/nuxt/governance)


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2024 QwikDev
Copyright (c) 2021 BuilderIO

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: Makefile
================================================
install-rust:
	curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

install-rust-deps:
	rustup update
	rustup target add wasm32-unknown-unknown
	cargo install cargo-insta
	rustup component add clippy

add-target:
	rustup target add wasm32-unknown-unknown

install-all: install-rust install-rust-deps

install-cli:
	cd src/optimizer/cli && cargo install --path .

fix:
	cargo fmt

check:
	cargo fmt -- --check && cargo check --all-features

lint:
	cargo clippy --all-features && cargo check --all-features && cargo fmt -- --check

# We only test core because there are no other tests and qwik-napi breaks the build
test:
	cargo test --manifest-path packages/qwik/src/optimizer/core/Cargo.toml

test-update:
	if ! cargo test --manifest-path packages/qwik/src/optimizer/core/Cargo.toml; then \
		cd packages/qwik/src/optimizer/core/src/snapshots/; \
		for i in *.new; do f=$$(basename $$i .new); mv $$i $$f; done; \
		cd -; \
		cargo test --manifest-path packages/qwik/src/optimizer/core/Cargo.toml; \
	fi

publish-core:
	cd src/optimizer/core && cargo publish --all-features

publish-cli:
	cd src/optimizer/cli && cargo publish

publish: publish-core publish-cli

validate: check lint test


================================================
FILE: README.md
================================================
<br>
<p align="center">
  <img alt="Qwik Logo" width="400" src="https://raw.githubusercontent.com/QwikDev/qwik/main/packages/docs/public/logos/qwik.svg" />
</p>
<br>
<p align="center">
   <a href="https://github.com/QwikDev/qwik/actions/workflows/ci.yml"><img src="https://github.com/QwikDev/qwik/actions/workflows/ci.yml/badge.svg?event=push" alt="Qwik CI"></a>
</p>
<br>
<br>

<h1 align="center">Instant-loading web apps, without effort</h1>

Qwik offers the fastest possible page load times - regardless of the complexity of your website. Qwik is so fast because it allows fully interactive sites to load with almost no JavaScript and [pickup from where the server left off](https://qwik.dev/docs/concepts/resumable/).

As users interact with the site, only the necessary parts of the site load on-demand. This [precision lazy-loading](https://qwik.dev/docs/concepts/progressive/) is what makes Qwik so quick.

## Getting Started

```sh
npm create qwik@latest
# or
pnpm create qwik@latest
# or
yarn create qwik@latest
# or
bun create qwik@latest
```

- Understand the difference between [resumable and replayable](https://qwik.dev/docs/concepts/resumable/) applications.
- Learn about Qwik's high level [mental model](https://qwik.dev/docs/concepts/think-qwik/).

## Resources

- [Docs](https://qwik.dev/)
- [Examples](https://qwik.dev/examples/introduction/hello-world/)
- [Tutorials](https://qwik.dev/tutorial/welcome/overview/)
- [Videos](https://qwik.dev/media/#videos)
- [Podcasts](https://qwik.dev/media/#podcasts)
- [Presentations](https://qwik.dev/media/#presentations)
- [Blogs](https://qwik.dev/media/#blogs)

## Community

- Ping us at [@QwikDev](https://twitter.com/QwikDev)
- Join our [Discord](https://qwik.dev/chat) community
- Join all the [other community groups](https://qwik.dev/ecosystem/#community)

## Development

- See [Contributing.md](https://github.com/QwikDev/qwik/blob/main/CONTRIBUTING.md) for more information on how to build Qwik from the source and contribute!

## Related

- [Partytown](https://partytown.qwik.dev/): Relocate resource intensive third-party scripts off of the main thread and into a web worker 🎉.
- [Mitosis](https://github.com/BuilderIO/mitosis): Write components once, run everywhere. Compiles to Vue, React, Solid, Angular, Svelte, and more.
- [Builder](https://github.com/BuilderIO/builder): Drag and drop page builder and CMS for React, Vue, Angular, and more.

<br>
<br>

<table align="center">
  <tr align="center">
    <td>special sponsor</td>
  </tr>
  <tr>
    <td align="center">
      <a href="https://www.builder.io/m/developers" rel="noopener">
        <picture>
          <source media="(prefers-color-scheme: dark)" srcset="https://i.imgur.com/eT9FjKT.png">
          <img width="250" alt="Special sponsor Builder.io" src="https://i.imgur.com/32mv01X.png">
        </picture>
      </a>
    </td>
  </tr>
  <tr align="center">
    <td>sponsors</td>
  </tr>
  <tr>
    <td align="center">
      <a href="https://kunaico.com/" target="_blank" rel="noopener">
        <picture>
          <source srcset="https://github.com/user-attachments/assets/47c6d86a-5141-40c6-a0fb-5986266fa589" media="(prefers-color-scheme: dark)">
          <source srcset="https://github.com/user-attachments/assets/84bff951-ed35-43e4-9515-ebe07e8b09e4" media="(prefers-color-scheme: light)">
          <img width="250" src="https://github.com/user-attachments/assets/84bff951-ed35-43e4-9515-ebe07e8b09e4" alt="Company logo">
        </picture>
      </a>    
    </td>
  </tr>
  <tr>
    <td align="center">
      <a href="http://hirez.io/" target="_blank" rel="noopener">
        <picture>
          <source srcset="https://i.imgur.com/DHhJM0J.png" media="(prefers-color-scheme: dark)">
          <source srcset="https://i.imgur.com/DIbsvQC.png" media="(prefers-color-scheme: light)">
          <img width="250" src="https://i.imgur.com/DIbsvQC.png" alt="Company logo">
        </picture>
      </a>    
    </td>
  </tr>
</table>


================================================
FILE: SECURITY.md
================================================
# Reporting Security Issues

The Qwik team and community are dedicated to keeping our project secure, and we appreciate your help in identifying and disclosing security issues responsibly. Your efforts make a big difference!

To report a security issue, please use the "[Report a Vulnerability](https://github.com/QwikDev/qwik/security/advisories/new)" tab on our GitHub Security Advisory page.

After you submit a report, we'll get back to you with the next steps. We'll keep you updated on our progress towards fixing the issue and any related announcements. If we need more information, we might reach out to you for further details.

For security issues in third-party modules, please contact the maintainer of the module directly. Alternatively, you can use the [npm contact form](https://www.npmjs.com/support) and select "I'm reporting a security vulnerability."

Thanks for helping us keep Qwik safe and secure!


================================================
FILE: contributing/TRIAGE.md
================================================
# Triage Titans Guide

Hey there! Welcome to the wild world of the **Triage Titans**, where we tame bugs and nurture enhancements with the precision of true repository doctors.

Let's keep the code healthy, the project smooth, and have some fun along the way.

## Note about tags prefixes:

1. **STATUS-1**: The initial `needs triage` gets automatically added to newly created issues
2. **STATUS-2**: A "waiting for someone/something" status.
3. **STATUS-3**: The final state of an issue. This is a "resolution" status.

---

👇 _Inspiration for the diagrams below came from the Vite project_

## Bug Triaging Process

Our bug triaging process makes sure every reported issue gets the attention it deserves. We categorize, prioritize, and assign bugs to the right person to squash them quickly.

Here's how the Triage Titans handle bug reports in the Qwik repository:

```mermaid
flowchart TD
    start{Missing information?}
    start --YES--> close1[Tag with\n'STATUS-2: missing info'\n\nBot will auto close if\n no update for 14 days]
    start --NO--> dupe{Is duplicate?}
    dupe --YES--> close2[Close, point to duplicate\n and tag with\n'STATUS-3: duplication']
    dupe --NO--> repro{Has proper\nreproduction?}
    repro --NO--> close3[Tag with\n 'STATUS-2: needs reproduction'\nBot will auto close if \nno update for 14 days]
    repro --YES--> real{Is actually a bug?}
    real --NO--> intended{Is the intended\nbehaviour?}
    intended --YES--> explain[Explain and close.\nPoint to docs if needed.\nTag with\n'STATUS-3: works as expected']
    intended --NO--> open[Tag with\n'STATUS-2: requires discussion'\nand either\n'WAITING FOR: team'\n'WAITING FOR: user']
    real --YES--> real2["1. Tag with 'STATUS-2: team is working on this'\n2. Add related feature label if\napplicable (e.g. 'COMP: runtime')\n3. Add priority labels (see below)"]
    real2 --> unusable{Does the\nbug make Qwik\nunusable?}
    unusable --YES--> maj{Does the bug\naffect the majority\nof Qwik users?}
    maj --YES--> P4[P4: urgent]
    maj --NO--> P3[P3: important]
    unusable --NO--> workarounds{Are there\nworkarounds for\nthe bug?}
    workarounds --NO--> P2[P2: minor]
    workarounds --YES--> P1[P1: nice to have / fix]
```

---

## Enhancement Triaging Process

Alright, Triage Titans! Somebody got a cool new feature idea or an awesome improvement to boost Qwik?

It's our job to make sure these enhancements are properly evaluated, prioritized, and brought to life.

What helps the team to prioritize work is the number of 👍 votes by the community on a specific issue.

### A note about enhancements to the core:

We are very careful about which features we introduce into the Qwik core, because we know that every new feature adds complexity and maintenance tasks to the codebase.

Every feature is being carefully evaluated based on our vision and philosophy of "automatic optimization".

That's why we'll often encourage the community to implement a certain feature and evaluate its adoption over time to see if it should actually be part of the core.

.

Now, let's dive into how we handle enhancement requests in the Qwik repository:

```mermaid
flowchart TD
    start{Missing information?}
    start --YES--> close1[Tag with\n'STATUS-2: missing info'\n\nBot will auto close if\n no update for 14 days]
    start --NO--> dupe{Is duplicate?}
    dupe --YES--> close2[Close, point to duplicate\n and tag with\n'STATUS-3: duplication']
    dupe --NO--> discussion{Requires further\ndiscussion?}
    discussion --YES--> close3[Tag with\n 'STATUS-2: requires discussion'\nand 'WAITING FOR: team'\nor 'WAITING FOR: user']
    discussion --NO--> implement{Should it be\nimplemented by core?}
    implement --NO--> community{Should it be implemented\nby the community?}
    community --YES--> incubate[Close and tag with either\n'STATUS-3: incubation'\nor 'STATUS-2: waiting for community PR'\nand 'COMMUNITY: PR is welcomed']
    community --NO--> wontfix[Close and tag with\n'STATUS-3: won't be worked on']
    implement --YES--> doimplement["1. Tag with 'STATUS-2: team is working on this'\n2. Add related feature label if\napplicable (e.g. 'COMP: runtime')\n3. Add version \nlabels (e.g. 'VERSION: upcoming major')"]
```

## Thank You!

A big shoutout to all our amazing contributors and Triage Titans! Your dedication, creativity, and hard work help keep Qwik running smoothly and evolving with exciting new features. We wouldn't be able to do it without you 🫶

Thank you for being a part of our journey and making Qwik awesome. Keep up the great work, and let's continue building something amazing together!


================================================
FILE: cspell.json
================================================
{
  "words": [
    "Aboutus",
    "accumsan",
    "activedescendant",
    "adipiscing",
    "alertdialog",
    "allowpopups",
    "Almeida",
    "amet",
    "antipattern",
    "Arcrole",
    "asynchronicity",
    "basepath",
    "bbar",
    "bbox",
    "bday",
    "beforeinput",
    "bgsound",
    "Bien",
    "bindgen",
    "bivariance",
    "Bivariant",
    "Bkxp",
    "blinkfeatures",
    "Booleanish",
    "brotli",
    "browsermain",
    "builderio",
    "buildtime",
    "bunde",
    "canonicalize",
    "cdylib",
    "cjsx",
    "Clhb",
    "clic",
    "cmps",
    "codegen",
    "colcount",
    "colindex",
    "colspan",
    "columnheader",
    "combobox",
    "complext",
    "composability",
    "consectetur",
    "contentinfo",
    "Counteradd",
    "crossorigin",
    "ctxt",
    "datetime",
    "Dblclick",
    "Debouncer",
    "deno",
    "describedby",
    "dfdfd",
    "disableblinkfeatures",
    "disableguestresize",
    "disablewebsecurity",
    "divfixture",
    "dolor",
    "dropeffect",
    "elems",
    "elit",
    "elli",
    "epressed",
    "errormessage",
    "espree",
    "estree",
    "execa",
    "extensionless",
    "extless",
    "extname",
    "extnames",
    "fargs",
    "Fboth",
    "flowto",
    "frontmatter",
    "gesturechange",
    "gestureend",
    "gesturestart",
    "Gettingstarted",
    "gmsw",
    "gridcell",
    "guestinstance",
    "hackmd",
    "Hasher",
    "haspopup",
    "Hevery",
    "hola",
    "horiz",
    "hostattrs",
    "hotspot",
    "httpreferrer",
    "idents",
    "imagesizes",
    "imagesrcset",
    "importee",
    "Indexapi",
    "inlines",
    "inlist",
    "insta",
    "ipsum",
    "itemprop",
    "itsok",
    "jsxs",
    "keyof",
    "keyshortcuts",
    "Keyup",
    "kleur",
    "labelledby",
    "Layoutapi",
    "layoutname",
    "listbox",
    "listitem",
    "listitems",
    "lkei",
    "Lorem",
    "manu",
    "manualmeida",
    "maxage",
    "mdast",
    "mdxjs",
    "menuitemcheckbox",
    "menuitemradio",
    "middlewares",
    "mimalloc",
    "misko",
    "miško",
    "mjsx",
    "Mobify",
    "mondodb",
    "mpath",
    "msvc",
    "msvideo",
    "mtsx",
    "multiselectable",
    "multistatus",
    "myapp",
    "napi",
    "netify",
    "nodeintegration",
    "noopen",
    "noscript",
    "noserialize",
    "nosniff",
    "nothere",
    "nulll",
    "objs",
    "odzdfdfd",
    "oneline",
    "onrender",
    "onscrolling",
    "onwarn",
    "outdir",
    "outfile",
    "outro",
    "panose",
    "partytown",
    "pathdiff",
    "pfkgyr",
    "Pinterest",
    "posinset",
    "posix",
    "prefetching",
    "prerender",
    "pretium",
    "progressbar",
    "PROPPATCH",
    "proto",
    "QACTION",
    "qcomponent",
    "Qdata",
    "qdev",
    "qerror",
    "qfunc",
    "Qhook",
    "qidle",
    "qinit",
    "qkssr",
    "qprefetch",
    "qqhook",
    "qresume",
    "qrls",
    "QSLOT",
    "qsymbol",
    "quicktime",
    "qvisible",
    "qwik",
    "qwikauth",
    "qwikcity",
    "qwikdeps",
    "qwikdom",
    "qwikevents",
    "qwikfy",
    "qwikify",
    "qwikjson",
    "qwikloader",
    "qwikreact",
    "radiogroup",
    "Rctx",
    "reboostrap",
    "referrerpolicy",
    "regs",
    "rehype",
    "renderz",
    "reparse",
    "replayable",
    "resumability",
    "revalidates",
    "rlib",
    "Roboto",
    "roledescription",
    "rowcount",
    "rowgroup",
    "rowheader",
    "rowindex",
    "rowspan",
    "rsplitn",
    "rsps",
    "SAMEORIGIN",
    "SAMESITE",
    "sdfds",
    "searchbox",
    "serde",
    "Serializability",
    "setsize",
    "shouldkebab",
    "signin",
    "signout",
    "sit",
    "slidein",
    "slotdefault",
    "somefn",
    "somestring",
    "sourcemaps",
    "spinbutton",
    "sref",
    "sstyle",
    "stemh",
    "stemv",
    "styff",
    "stylesscopedblue",
    "stylesscopedgreen",
    "subdir",
    "submitcompleted",
    "svgz",
    "SWC's",
    "tablist",
    "tabpanel",
    "tagname",
    "tdblg",
    "textbox",
    "Textfromdefault",
    "threejs",
    "tlsv",
    "todoapp",
    "todos",
    "treegrid",
    "treeitem",
    "treeitems",
    "treeshake",
    "treeshaked",
    "tsdoc",
    "typecheck",
    "typeof",
    "typesafe",
    "undici",
    "unist",
    "unselectable",
    "unsub",
    "urlset",
    "valign",
    "valuenow",
    "valuetext",
    "Vdom",
    "vfile",
    "vite",
    "Vivamus",
    "Vnode",
    "Vnodes",
    "vulputate",
    "wbmp",
    "webfont",
    "webpreferences",
    "webworker",
    "wmode",
    "xlink"
  ],
  "enableFiletypes": ["mdx"]
}


================================================
FILE: e2e/adapters-e2e/.gitignore
================================================
playwright-report
dist
logs
server
tmp

================================================
FILE: e2e/adapters-e2e/adapters/express/vite.config.ts
================================================
import { nodeServerAdapter } from '@builder.io/qwik-city/adapters/node-server/vite';
import { extendConfig } from '@builder.io/qwik-city/vite';
import baseConfig from '../../vite.config';

export default extendConfig(baseConfig, () => {
  return {
    build: {
      ssr: true,
      rollupOptions: {
        input: ['src/entry.express.tsx', '@qwik-city-plan'],
      },
    },
    plugins: [nodeServerAdapter({ name: 'express' })],
  };
});


================================================
FILE: e2e/adapters-e2e/package.json
================================================
{
  "name": "qwik-buffering-test-app",
  "description": "Qwik buffering test app",
  "engines": {
    "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
  },
  "private": true,
  "scripts": {
    "build": "qwik build",
    "build.client": "vite build",
    "build.preview": "vite build --ssr src/entry.preview.tsx",
    "build.server": "vite build -c adapters/express/vite.config.ts",
    "build.types": "tsc --incremental --noEmit",
    "deploy": "vercel deploy",
    "dev": "vite --mode ssr",
    "dev.debug": "node --inspect-brk ./node_modules/vite/bin/vite.js --mode ssr --force",
    "express": "pnpm build && pnpm serve",
    "fmt": "prettier --write .",
    "fmt.check": "prettier --check .",
    "lint": "eslint \"src/**/*.ts*\"",
    "preview": "qwik build preview && vite preview --open",
    "qwik": "qwik",
    "serve": "node server/entry.express",
    "start": "vite --open --mode ssr",
    "test": "playwright test",
    "test.debug": "playwright test --debug",
    "test.ui": "playwright test --ui"
  },
  "type": "module"
}


================================================
FILE: e2e/adapters-e2e/playwright.config.ts
================================================
import { defineConfig, devices } from '@playwright/test';

/** See https://playwright.dev/docs/test-configuration. */
export default defineConfig({
  testDir: './tests',
  fullyParallel: true,
  forbidOnly: !!process.env.CI,
  retries: process.env.CI ? 2 : 0,
  workers: process.env.CI ? 1 : undefined,
  reporter: 'line',

  use: {
    baseURL: 'http://localhost:3000',
    // trace: 'on-first-retry',
    // screenshot: 'only-on-failure',

    // Increase timeouts for service worker operations
    actionTimeout: 10000,
    navigationTimeout: 10000,
  },

  // Increase global timeout for service worker tests
  timeout: process.env.CI ? 120000 : 30000,

  projects: [
    {
      name: 'chromium',
      use: {
        ...devices['Desktop Chrome'],
      },
    },
    // {
    //   name: 'firefox',
    //   use: { ...devices['Desktop Firefox'] },
    // },
    {
      name: 'webkit',
      use: { ...devices['Desktop Safari'] },
    },
  ],

  webServer: {
    command: 'npm run express',
    port: 3000,
    stdout: 'pipe',
    reuseExistingServer: !process.env.CI,
    timeout: process.env.CI ? 120000 : 30000,
  },
});


================================================
FILE: e2e/adapters-e2e/src/components/click-me/click-me.tsx
================================================
import { component$, useSignal } from '@builder.io/qwik';

// We need to extract the component to see the bug on 1.5.7
export default component$(() => {
  const isOpenSig = useSignal(false);
  return (
    <>
      <button
        onClick$={() => {
          return (isOpenSig.value = !isOpenSig.value);
        }}
      >
        click me
      </button>
      {isOpenSig.value && <div data-testid="hi">Hi 👋</div>}
    </>
  );
});


================================================
FILE: e2e/adapters-e2e/src/components/router-head/router-head.tsx
================================================
import { component$ } from '@builder.io/qwik';
import { useDocumentHead, useLocation } from '@builder.io/qwik-city';

export const RouterHead = component$(() => {
  const head = useDocumentHead();
  const loc = useLocation();

  return (
    <>
      <title>{head.title}</title>

      <link rel="canonical" href={loc.url.href} />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />

      {head.meta.map((m) => (
        <meta key={m.key} {...m} />
      ))}

      {head.links.map((l) => (
        <link key={l.key} {...l} />
      ))}
    </>
  );
});


================================================
FILE: e2e/adapters-e2e/src/entry.dev.tsx
================================================
/*
 * WHAT IS THIS FILE?
 *
 * Development entry point using only client-side modules:
 * - Do not use this mode in production!
 * - No SSR
 * - No portion of the application is pre-rendered on the server.
 * - All of the application is running eagerly in the browser.
 * - More code is transferred to the browser than in SSR mode.
 * - Optimizer/Serialization/Deserialization code is not exercised!
 */
import { render, type RenderOptions } from '@builder.io/qwik';
import Root from './root';

export default function (opts: RenderOptions) {
  return render(document, <Root />, opts);
}


================================================
FILE: e2e/adapters-e2e/src/entry.express.tsx
================================================
/*
 * WHAT IS THIS FILE?
 *
 * It's the entry point for the Express HTTP server when building for production.
 *
 * Learn more about Node.js server integrations here:
 * - https://qwik.dev/docs/deployments/node/
 *
 */
import { createQwikCity, type PlatformNode } from '@builder.io/qwik-city/middleware/node';
import 'dotenv/config';
import qwikCityPlan from '@qwik-city-plan';
import { manifest } from '@qwik-client-manifest';
import render from './entry.ssr';
import express from 'express';
import { fileURLToPath } from 'node:url';
import { join } from 'node:path';

declare global {
  type QwikCityPlatform = PlatformNode;
}

// Directories where the static assets are located
const distDir = join(fileURLToPath(import.meta.url), '..', '..', 'dist');
const buildDir = join(distDir, 'build');

// Allow for dynamic port
const PORT = process.env.PORT ?? 3000;

// Create the Qwik City Node middleware
const { router, notFound } = createQwikCity({
  render,
  qwikCityPlan,
  manifest,
  // getOrigin(req) {
  //   // If deploying under a proxy, you may need to build the origin from the request headers
  //   // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto
  //   const protocol = req.headers["x-forwarded-proto"] ?? "http";
  //   // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host
  //   const host = req.headers["x-forwarded-host"] ?? req.headers.host;
  //   return `${protocol}://${host}`;
  // }
});

// Create the express server
// https://expressjs.com/
const app = express();

// Enable gzip compression
// app.use(compression());

// Static asset handlers
// https://expressjs.com/en/starter/static-files.html
app.use(`/build`, express.static(buildDir, { immutable: true, maxAge: '1y' }));
app.use(express.static(distDir, { redirect: false }));

// Use Qwik City's page and endpoint request handler
app.use(router);

// Use Qwik City's 404 handler
app.use(notFound);

// Start the express server
app.listen(PORT, () => {
  /* eslint-disable */
  console.log(`Server started: http://localhost:${PORT}/`);
});


================================================
FILE: e2e/adapters-e2e/src/entry.preview.tsx
================================================
/*
 * WHAT IS THIS FILE?
 *
 * It's the bundle entry point for `npm run preview`.
 * That is, serving your app built in production mode.
 *
 * Feel free to modify this file, but don't remove it!
 *
 * Learn more about Vite's preview command:
 * - https://vitejs.dev/config/preview-options.html#preview-options
 *
 */
import { createQwikCity } from '@builder.io/qwik-city/middleware/node';
import qwikCityPlan from '@qwik-city-plan';
// make sure qwikCityPlan is imported before entry
import render from './entry.ssr';

/** The default export is the QwikCity adapter used by Vite preview. */
export default createQwikCity({ render, qwikCityPlan });


================================================
FILE: e2e/adapters-e2e/src/entry.ssr.tsx
================================================
/**
 * WHAT IS THIS FILE?
 *
 * SSR entry point, in all cases the application is rendered outside the browser, this entry point
 * will be the common one.
 *
 * - Server (express, cloudflare...)
 * - Npm run start
 * - Npm run preview
 * - Npm run build
 */
import { renderToStream, type RenderToStreamOptions } from '@builder.io/qwik/server';
import { manifest } from '@qwik-client-manifest';
import Root from './root';

export default function (opts: RenderToStreamOptions) {
  return renderToStream(<Root />, {
    manifest,
    ...opts,
    // Use container attributes to set attributes on the html tag.
    containerAttributes: {
      lang: 'en-us',
      ...opts.containerAttributes,
    },
    // prefetchStrategy: {
    //   implementation: {
    //     linkInsert: "html-append",
    //     linkRel: "modulepreload",
    //   },
    // },
    serverData: {
      ...opts.serverData,
    },
  });
}


================================================
FILE: e2e/adapters-e2e/src/root.tsx
================================================
import { component$ } from '@builder.io/qwik';
import { QwikCityProvider, RouterOutlet, ServiceWorkerRegister } from '@builder.io/qwik-city';
import { RouterHead } from './components/router-head/router-head';

export default component$(() => {
  /**
   * The root of a QwikCity site always start with the <QwikCityProvider> component, immediately
   * followed by the document's <head> and <body>.
   *
   * Don't remove the `<head>` and `<body>` elements.
   */

  return (
    <QwikCityProvider>
      <head>
        <meta charSet="utf-8" />
        <RouterHead />
        {/* <PrefetchGraph />
        <PrefetchServiceWorker /> */}
      </head>
      <body lang="en">
        <RouterOutlet />
        <ServiceWorkerRegister />
      </body>
    </QwikCityProvider>
  );
});


================================================
FILE: e2e/adapters-e2e/src/routes/index.tsx
================================================
import { component$ } from '@builder.io/qwik';
import { type DocumentHead } from '@builder.io/qwik-city';
import ClickMe from '~/components/click-me/click-me';

export default component$(() => {
  return (
    <>
      <a href="/profile">go to profile</a>
      <br />
      <h1>Home page</h1>
      <br />
      {/* We need to extract the component to see the bug on 1.5.7 */}
      <ClickMe />
    </>
  );
});

export const head: DocumentHead = {
  title: 'Welcome to Qwik',
  meta: [
    {
      name: 'description',
      content: 'Qwik site description',
    },
  ],
};


================================================
FILE: e2e/adapters-e2e/src/routes/layout.tsx
================================================
import { component$, Slot } from '@builder.io/qwik';

export default component$(() => {
  return <Slot />;
});


================================================
FILE: e2e/adapters-e2e/src/routes/profile/index.tsx
================================================
import { component$ } from '@builder.io/qwik';

export default component$(() => {
  return (
    <>
      <a href="/">go to home</a>
      <br />
      <h1>Profile page 🙂</h1>
    </>
  );
});


================================================
FILE: e2e/adapters-e2e/src/routes/service-worker.ts
================================================
/*
 * WHAT IS THIS FILE?
 *
 * The service-worker.ts file is used to have state of the art prefetching.
 * https://qwik.dev/qwikcity/prefetching/overview/
 *
 * Qwik uses a service worker to speed up your site and reduce latency, ie, not used in the traditional way of offline.
 * You can also use this file to add more functionality that runs in the service worker.
 */
import { setupServiceWorker } from '@builder.io/qwik-city/service-worker';

setupServiceWorker();

addEventListener('install', () => self.skipWaiting());

addEventListener('activate', () => self.clients.claim());

declare const self: ServiceWorkerGlobalScope;


================================================
FILE: e2e/adapters-e2e/tests/express.spec.ts
================================================
import { expect, test } from '@playwright/test';

test.describe('Verifying Express Adapter', () => {
  test('should ignore unknown qdata', async ({ page, request }) => {
    page.goto('/');

    const response = await request.post('/?qfunc=ThisDoesNotExist', {
      headers: {
        'X-Qrl': 'ThisDoesNotExist',
        'Content-Type': 'application/qwik-json',
      },
      data: {
        _entry: '2',
        _objs: ['\u0002_#s_ThisDoesNotExist', 1, ['0', '1']],
      },
    });

    await expect(response.status()).toBe(500);

    // Verify server is still responsive by making another request
    const healthCheck = await request.get('/');
    await expect(healthCheck.ok()).toBeTruthy();

    await page.getByRole('link', { name: 'go to profile' }).click();

    await expect(page.getByRole('heading', { name: 'Profile page' })).toBeVisible();
  });
});


================================================
FILE: e2e/adapters-e2e/tsconfig.json
================================================
{
  "compilerOptions": {
    "baseUrl": ".",
    "allowJs": true,
    "target": "ES2020",
    "module": "ES2022",
    "lib": ["es2022", "DOM", "WebWorker", "DOM.Iterable"],
    "jsx": "react-jsx",
    "jsxImportSource": "@builder.io/qwik",
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "moduleResolution": "Bundler",
    "esModuleInterop": true,
    "skipLibCheck": true,
    "incremental": true,
    "isolatedModules": true,
    "outDir": "tmp",
    "noEmit": true,
    "paths": {
      "~/*": ["./src/*"]
    }
  },

  "include": ["src", "./*.d.ts", "./*.config.ts"]
}


================================================
FILE: e2e/adapters-e2e/vite.config.ts
================================================
/**
 * This is the base config for vite. When building, the adapter config is used which loads this file
 * and extends it.
 */
import { qwikCity } from '@builder.io/qwik-city/vite';
import { qwikVite } from '@builder.io/qwik/optimizer';
import { defineConfig, type UserConfig } from 'vite';
import tsconfigPaths from 'vite-tsconfig-paths';
import pkg from './package.json';

type PkgDep = Record<string, string>;
const { dependencies = {}, devDependencies = {} } = pkg as any as {
  dependencies: PkgDep;
  devDependencies: PkgDep;
  [key: string]: unknown;
};
errorOnDuplicatesPkgDeps(devDependencies, dependencies);

/**
 * Note that Vite normally starts from `index.html` but the qwikCity plugin makes start at
 * `src/entry.ssr.tsx` instead.
 */
export default defineConfig((): UserConfig => {
  return {
    plugins: [qwikCity(), qwikVite(), tsconfigPaths({ root: '.' })],
    // This tells Vite which dependencies to pre-build in dev mode.
    optimizeDeps: {
      // Put problematic deps that break bundling here, mostly those with binaries.
      // For example ['better-sqlite3'] if you use that in server functions.
      exclude: [],
    },

    /**
     * This is an advanced setting. It improves the bundling of your server code. To use it, make
     * sure you understand when your consumed packages are dependencies or dev dependencies.
     * (otherwise things will break in production)
     */
    // ssr:
    //   command === "build" && mode === "production"
    //     ? {
    //         // All dev dependencies should be bundled in the server build
    //         noExternal: Object.keys(devDependencies),
    //         // Anything marked as a dependency will not be bundled
    //         // These should only be production binary deps (including deps of deps), CLI deps, and their module graph
    //         // If a dep-of-dep needs to be external, add it here
    //         // For example, if something uses `bcrypt` but you don't have it as a dep, you can write
    //         // external: [...Object.keys(dependencies), 'bcrypt']
    //         external: Object.keys(dependencies),
    //       }
    //     : undefined,

    server: {
      headers: {
        // Don't cache the server response in dev mode
        'Cache-Control': 'public, max-age=0',
      },
    },
    preview: {
      headers: {
        // Do cache the server response in preview (non-adapter production build)
        'Cache-Control': 'public, max-age=360',
      },
    },
  };
});

// *** utils ***

/**
 * Function to identify duplicate dependencies and throw an error
 *
 * @param {Object} devDependencies - List of development dependencies
 * @param {Object} dependencies - List of production dependencies
 */
function errorOnDuplicatesPkgDeps(devDependencies: PkgDep, dependencies: PkgDep) {
  let msg = '';
  // Create an array 'duplicateDeps' by filtering devDependencies.
  // If a dependency also exists in dependencies, it is considered a duplicate.
  const duplicateDeps = Object.keys(devDependencies).filter((dep) => dependencies[dep]);

  // include any known qwik packages
  const qwikPkg = Object.keys(dependencies).filter((value) => /qwik/i.test(value));

  // any errors for missing "qwik-city-plan"
  // [PLUGIN_ERROR]: Invalid module "@qwik-city-plan" is not a valid package
  msg = `Move qwik packages ${qwikPkg.join(', ')} to devDependencies`;

  if (qwikPkg.length > 0) {
    throw new Error(msg);
  }

  // Format the error message with the duplicates list.
  // The `join` function is used to represent the elements of the 'duplicateDeps' array as a comma-separated string.
  msg = `
    Warning: The dependency "${duplicateDeps.join(', ')}" is listed in both "devDependencies" and "dependencies".
    Please move the duplicated dependencies to "devDependencies" only and remove it from "dependencies"
  `;

  // Throw an error with the constructed message.
  if (duplicateDeps.length > 0) {
    throw new Error(msg);
  }
}


================================================
FILE: e2e/docs-e2e/.gitignore
================================================

# Playwright
node_modules/
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/


================================================
FILE: e2e/docs-e2e/package.json
================================================
{
  "name": "docs-e2e",
  "description": "",
  "private": true,
  "author": "",
  "devDependencies": {
    "@playwright/test": "1.54.1",
    "@types/node": "20.19.0"
  },
  "keywords": [],
  "license": "ISC",
  "main": "index.js",
  "scripts": {
    "test": "pnpm exec playwright test --config=playwright.config.ts --project=chromium",
    "test-ui": "pnpm exec playwright test --config=playwright.config.ts --project=chromium --ui"
  },
  "type": "commonjs"
}


================================================
FILE: e2e/docs-e2e/playwright.config.ts
================================================
import { defineConfig, devices } from '@playwright/test';

/** Read environment variables from file. https://github.com/motdotla/dotenv */
// import dotenv from 'dotenv';
// import path from 'path';
// dotenv.config({ path: path.resolve(__dirname, '.env') });

/** See https://playwright.dev/docs/test-configuration. */

const TestingURL = 'http://127.0.0.1:3000';

export default defineConfig({
  testDir: './tests',
  /* Global timeout for each test */
  timeout: 60_000,
  expect: { timeout: 60_000 },
  /* Run tests in files in parallel */
  fullyParallel: true,
  /* Fail the build on CI if you accidentally left test.only in the source code. */
  forbidOnly: !!process.env.CI,
  /* Retry on CI only */
  retries: process.env.CI ? 2 : 0,
  /* Opt out of parallel tests on CI. */
  workers: process.env.CI ? 1 : undefined,
  /* Reporter to use. See https://playwright.dev/docs/test-reporters */
  reporter: 'html',
  /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
  use: {
    /* Base URL to use in actions like `await page.goto('/')`. */
    baseURL: TestingURL,
    actionTimeout: 30_000,
    navigationTimeout: 60_000,
    /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
    trace: 'on-first-retry',
  },

  /* Configure projects for major browsers */
  projects: [
    {
      name: 'chromium',
      use: { ...devices['Desktop Chrome'] },
    },
    {
      name: 'chrome',
      use: { ...devices['Desktop Chrome'] },
    },

    {
      name: 'firefox',
      use: { ...devices['Desktop Firefox'] },
    },

    {
      name: 'webkit',
      use: { ...devices['Desktop Safari'] },
    },

    /* Test against mobile viewports. */
    // {
    //   name: 'Mobile Chrome',
    //   use: { ...devices['Pixel 5'] },
    // },
    // {
    //   name: 'Mobile Safari',
    //   use: { ...devices['iPhone 12'] },
    // },

    /* Test against branded browsers. */
    // {
    //   name: 'Microsoft Edge',
    //   use: { ...devices['Desktop Edge'], channel: 'msedge' },
    // },
    // {
    //   name: 'Google Chrome',
    //   use: { ...devices['Desktop Chrome'], channel: 'chrome' },
    // },
  ],

  /* Run your local dev server before starting the tests */
  webServer: {
    command: 'pnpm -C ../../ run docs.dev',
    url: TestingURL,
    reuseExistingServer: !process.env.CI,
  },
});


================================================
FILE: e2e/docs-e2e/tests/Docs/advanced-pages-load.spec.ts
================================================
import { test, expect } from '@playwright/test';

test('Advanced Dollar Function page loads', async ({ page }) => {
  await page.goto('/docs/advanced/dollar/');

  await expect(page).toHaveTitle('The $ dollar sign | Advanced 📚 Qwik Documentation');
});

test('Advanced Containers page loads', async ({ page }) => {
  await page.goto('/docs/advanced/containers/');
  await expect(page).toHaveTitle('Containers | Advanced 📚 Qwik Documentation');
});

test('Advanced QRL page loads', async ({ page }) => {
  await page.goto('/docs/advanced/qrl/');
  await expect(page).toHaveTitle('QRL | Advanced 📚 Qwik Documentation');
});

test('Advanced Library page loads', async ({ page }) => {
  await page.goto('/docs/advanced/library/');
  await expect(page).toHaveTitle('Component library | Advanced 📚 Qwik Documentation');
});

test('Advanced Qwikloader page loads', async ({ page }) => {
  await page.goto('/docs/advanced/qwikloader/');
  await expect(page).toHaveTitle('Qwikloader | Advanced 📚 Qwik Documentation');
});

test('Advanced Optimizer page loads', async ({ page }) => {
  await page.goto('/docs/advanced/optimizer/');
  await expect(page).toHaveTitle('Optimizer Rules | Advanced 📚 Qwik Documentation');
});

test('Advanced Prefetching Modules page loads', async ({ page }) => {
  await page.goto('/docs/advanced/modules-prefetching/');
  await expect(page).toHaveTitle('Prefetching | Advanced 📚 Qwik Documentation');
});

test('Advanced Custom Build Directory page loads', async ({ page }) => {
  await page.goto('/docs/advanced/custom-build-dir/');
  await expect(page).toHaveTitle('Custom Build Output Directory | Advanced 📚 Qwik Documentation');
});

test('Advanced Vite page loads', async ({ page }) => {
  await page.goto('/docs/advanced/vite/');
  await expect(page).toHaveTitle('Vite | Advanced 📚 Qwik Documentation');
});

test('Advanced Routing page loads', async ({ page }) => {
  await page.goto('/docs/advanced/routing/');
  await expect(page).toHaveTitle('Advanced Routing | Qwik City 📚 Qwik Documentation');
});

test('Advanced Plugins page loads', async ({ page }) => {
  await page.goto('/docs/advanced/plugins/');
  await expect(page).toHaveTitle('Qwik Plugins | Qwik City 📚 Qwik Documentation');
});

test('Advanced Request Handling page loads', async ({ page }) => {
  await page.goto('/docs/advanced/request-handling/');
  await expect(page).toHaveTitle('Request Handling | Advanced 📚 Qwik Documentation');
});

test('Advanced Speculative Module Fetching page loads', async ({ page }) => {
  await page.goto('/docs/advanced/speculative-module-fetching/');
  await expect(page).toHaveTitle('Speculative Module Fetching | Advanced 📚 Qwik Documentation');
});

test('Advanced Menu page loads', async ({ page }) => {
  await page.goto('/docs/advanced/menu/');
  await expect(page).toHaveTitle('Menu | Advanced 📚 Qwik Documentation');
});

test('Advanced Generating Sitemaps page loads', async ({ page }) => {
  await page.goto('/docs/advanced/sitemaps/');
  await expect(page).toHaveTitle('Generating Sitemaps | Advanced 📚 Qwik Documentation');
});

test('Advanced ESLint-Rules page loads', async ({ page }) => {
  await page.goto('/docs/advanced/eslint/');
  //   currently does not have a custom title
  await expect(page).toHaveTitle('Qwik - Framework reimagined for the edge');
});

test('Advanced Content Security Policy page loads', async ({ page }) => {
  await page.goto('/docs/advanced/content-security-policy/');
  await expect(page).toHaveTitle('Content Security Policy | Advanced 📚 Qwik Documentation');
});

test('Advanced Complex Forms page loads', async ({ page }) => {
  await page.goto('/docs/advanced/complex-forms/');
  await expect(page).toHaveTitle('Complex Forms | Advanced 📚 Qwik Documentation');
});


================================================
FILE: e2e/docs-e2e/tests/Docs/community-pages.load.spec.ts
================================================
import { test, expect } from '@playwright/test';

test('Community Projects page loads', async ({ page }) => {
  await page.goto('/community/projects/');
  await expect(page).toHaveTitle('Projects | Qwik Community 📚 Qwik Documentation');
});

test('Community Groups page loads', async ({ page }) => {
  await page.goto('/community/groups/');
  await expect(page).toHaveTitle('Groups | Qwik Community 📚 Qwik Documentation');
});

test('Community Values page loads', async ({ page }) => {
  await page.goto('/community/values/');
  await expect(page).toHaveTitle('Values | Qwik Community 📚 Qwik Documentation');
});


================================================
FILE: e2e/docs-e2e/tests/Docs/concepts-pages-laod.spec.ts
================================================
import { test, expect } from '@playwright/test';

test('Concepts Think Qwik page loads', async ({ page }) => {
  await page.goto('/docs/concepts/think-qwik/');
  await expect(page).toHaveTitle('Think Qwik | Concepts 📚 Qwik Documentation');
});

test('Concepts Resumable page loads', async ({ page }) => {
  await page.goto('/docs/concepts/resumable/');
  await expect(page).toHaveTitle('Resumable | Concepts 📚 Qwik Documentation');
});

test('Concepts Progressive page loads', async ({ page }) => {
  await page.goto('/docs/concepts/progressive/');
  await expect(page).toHaveTitle('Progressive | Concepts 📚 Qwik Documentation');
});

test('Concepts Reactivity page loads', async ({ page }) => {
  await page.goto('/docs/concepts/reactivity/');
  await expect(page).toHaveTitle('Reactivity | Concepts 📚 Qwik Documentation');
});


================================================
FILE: e2e/docs-e2e/tests/Docs/cookbook-pages-load.spec.ts
================================================
import { test, expect } from '@playwright/test';

test('Cookbook Overview page loads', async ({ page }) => {
  await page.goto('/docs/cookbook/');
  await expect(page).toHaveTitle('Cookbook | Overview 📚 Qwik Documentation');
});

test('Cookbook Algolia Search page loads', async ({ page }) => {
  await page.goto('/docs/cookbook/algolia-search/');
  await expect(page).toHaveTitle('Cookbook | Algolia Search 📚 Qwik Documentation');
});

test('Cookbook Combine Request Handlers page loads', async ({ page }) => {
  await page.goto('/docs/cookbook/combine-request-handlers/');
  await expect(page).toHaveTitle('Cookbook | Combine Request Handlers 📚 Qwik Documentation');
});

test('Cookbook Debouncer page loads', async ({ page }) => {
  await page.goto('/docs/cookbook/debouncer/');
  await expect(page).toHaveTitle('Cookbook | Debouncer 📚 Qwik Documentation');
});

test('Cookbook Fonts page loads', async ({ page }) => {
  await page.goto('/docs/cookbook/fonts/');
  await expect(page).toHaveTitle('Cookbook | Font optimization 📚 Qwik Documentation');
});

test('Cookbook Glob Import & Dynamic Import page loads', async ({ page }) => {
  await page.goto('/docs/cookbook/glob-import/');
  await expect(page).toHaveTitle(
    'Cookbook | Glob Import with import.meta.glob 📚 Qwik Documentation'
  );
});

test('Cookbook NavLink Component page loads', async ({ page }) => {
  await page.goto('/docs/cookbook/nav-link/');
  await expect(page).toHaveTitle('Cookbook | Navbar link 📚 Qwik Documentation');
});

test('Cookbook Deploy with Node using Docker page loads', async ({ page }) => {
  await page.goto('/docs/cookbook/node-docker-deploy/');
  await expect(page).toHaveTitle('Cookbook | Deploy with Node using Docker 📚 Qwik Documentation');
});

test('Cookbook Portals page loads', async ({ page }) => {
  await page.goto('/docs/cookbook/portals/');
  await expect(page).toHaveTitle('Cookbook | Portals 📚 Qwik Documentation');
});

test('Cookbook Streaming/deferred loaders page loads', async ({ page }) => {
  await page.goto('/docs/cookbook/streaming-deferred-loaders/');
  await expect(page).toHaveTitle('Cookbook | Streaming/deferred loaders 📚 Qwik Documentation');
});

test('Cookbook sync$ Events  page loads', async ({ page }) => {
  await page.goto('/docs/cookbook/sync-events/');
  await expect(page).toHaveTitle('Cookbook | Synchronous Events with State 📚 Qwik Documentation');
});

test('Cookbook Theme Management page loads', async ({ page }) => {
  await page.goto('/docs/cookbook/theme-management/');
  await expect(page).toHaveTitle('Cookbook | Dark and Light Theme 📚 Qwik Documentation');
});

test('Cookbook Drag & Drop page loads', async ({ page }) => {
  await page.goto('/docs/cookbook/drag&drop/');
  await expect(page).toHaveTitle('Cookbook | Drag & Drop 📚 Qwik Documentation');
});

test('Cookbook View Transition API page loads', async ({ page }) => {
  await page.goto('/docs/cookbook/view-transition/');
  await expect(page).toHaveTitle('Cookbook | View Transition API 📚 Qwik Documentation');
});


================================================
FILE: e2e/docs-e2e/tests/Docs/deployments-pages-load.spec.ts
================================================
import { test, expect } from '@playwright/test';

test('Deployments Overview page loads', async ({ page }) => {
  await page.goto('/docs/deployments/');
  await expect(page).toHaveTitle('Deployments | Guides 📚 Qwik Documentation');
});

test('Deployments Azure Static Web Apps Middleware page loads', async ({ page }) => {
  await page.goto('/docs/deployments/azure-swa/');
  await expect(page).toHaveTitle('Azure Static Web Apps | Deployments 📚 Qwik Documentation');
});

test('Deployments AWS Adapter page loads', async ({ page }) => {
  await page.goto('/docs/deployments/aws-lambda/');
  await expect(page).toHaveTitle('AWS Lambda | Deployments 📚 Qwik Documentation');
});

test('Deployments Firebase Adapter page loads', async ({ page }) => {
  await page.goto('/docs/deployments/firebase/');
  await expect(page).toHaveTitle('Firebase | Deployments 📚 Qwik Documentation');
});

test('Deployments Google Cloud Run Middleware page loads', async ({ page }) => {
  await page.goto('/docs/deployments/gcp-cloud-run/');
  await expect(page).toHaveTitle('Cloud Run Middleware | Deployments 📚 Qwik Documentation');
});

test('Deployments Cloudflare Pages Adapter page loads', async ({ page }) => {
  await page.goto('/docs/deployments/cloudflare-pages/');
  await expect(page).toHaveTitle(
    'Cloudflare Pages Adapter and Middleware | Deployments 📚 Qwik Documentation'
  );
});

test('Deployments Cloudflare Workers Adapter page loads', async ({ page }) => {
  await page.goto('/docs/deployments/cloudflare-workers/');
  await expect(page).toHaveTitle(
    'Cloudflare Workers Adapter and Middleware | Deployments 📚 Qwik Documentation'
  );
});

test('Deployments Deno Middleware page loads', async ({ page }) => {
  await page.goto('/docs/deployments/deno/');
  await expect(page).toHaveTitle('Deno Middleware | Deployments 📚 Qwik Documentation');
});

test('Deployments Bun Middleware page loads', async ({ page }) => {
  await page.goto('/docs/deployments/bun/');
  await expect(page).toHaveTitle('Bun Middleware | Deployments 📚 Qwik Documentation');
});

test('Deployments Netlify Edge Adapter page loads', async ({ page }) => {
  await page.goto('/docs/deployments/netlify-edge/');
  await expect(page).toHaveTitle(
    'Netlify Edge Adapter and Middleware | Deployments 📚 Qwik Documentation'
  );
});

test('Deployments Node Middleware page loads', async ({ page }) => {
  await page.goto('/docs/deployments/node/');
  await expect(page).toHaveTitle('Node Middleware | Deployments 📚 Qwik Documentation');
});

test('Deployments Vercel Edge Adapter page loads', async ({ page }) => {
  await page.goto('/docs/deployments/vercel-edge/');
  await expect(page).toHaveTitle(
    'Vercel Edge Adapter and Middleware | Deployments 📚 Qwik Documentation'
  );
});

test('Deployments Static Site Adapter page loads', async ({ page }) => {
  await page.goto('/docs/deployments/static/');
  await expect(page).toHaveTitle('Static Site 📚 Qwik Documentation');
});

test('Deployments GitHub Pages Adapter page loads', async ({ page }) => {
  await page.goto('/docs/deployments/github-pages/');
  await expect(page).toHaveTitle('GitHub Pages 📚 Qwik Documentation');
});


================================================
FILE: e2e/docs-e2e/tests/Docs/docs-components-pages-load.spec.ts
================================================
import { test, expect } from '@playwright/test';

test('Components Overview page loads', async ({ page }) => {
  await page.goto('/docs/core/overview/');
  await expect(page).toHaveTitle('Overview | Components 📚 Qwik Documentation');
});

test('Components State page loads', async ({ page }) => {
  await page.goto('/docs/core/state/');
  await expect(page).toHaveTitle('State | Components 📚 Qwik Documentation');
});

test('Components Tasks and Lifecycle page loads', async ({ page }) => {
  await page.goto('/docs/core/tasks/');
  await expect(page).toHaveTitle('Tasks and Lifecycle | Components 📚 Qwik Documentation');
});

test('Components Context page loads', async ({ page }) => {
  await page.goto('/docs/core/context/');
  await expect(page).toHaveTitle('Context | Components 📚 Qwik Documentation');
});

test('Components Slots page loads', async ({ page }) => {
  await page.goto('/docs/core/slots/');
  await expect(page).toHaveTitle('Slots | Components 📚 Qwik Documentation');
});

test('Components Rendering page loads', async ({ page }) => {
  await page.goto('/docs/core/rendering/');
  await expect(page).toHaveTitle('Rendering | Components 📚 Qwik Documentation');
});

test('Components Styles page loads', async ({ page }) => {
  await page.goto('/docs/core/styles/');
  await expect(page).toHaveTitle('Styles | Components 📚 Qwik Documentation');
});

test('Components API Reference page loads', async ({ page }) => {
  await page.goto('/api/qwik/');

  // todo V2: change this to @qwik.dev
  await expect(page).toHaveTitle('@builder.io/qwik API Reference 📚 Qwik Documentation');
});


================================================
FILE: e2e/docs-e2e/tests/Docs/guides-pages-load.spec.ts
================================================
import { test, expect } from '@playwright/test';

test('Guides Qwik in a nutshell page loads', async ({ page }) => {
  await page.goto('/docs/guides/qwik-nutshell/');
  await expect(page).toHaveTitle('Qwik in a nutshell | Introduction 📚 Qwik Documentation');
});

test('Guides MDX page loads', async ({ page }) => {
  await page.goto('/docs/guides/mdx/');
  await expect(page).toHaveTitle('Markdown and MDX | Guides 📚 Qwik Documentation');
});

test('Guides SSG page loads', async ({ page }) => {
  await page.goto('/docs/guides/static-site-generation/');
  await expect(page).toHaveTitle(
    'Static Site Generation (SSG) Overview | Guides 📚 Qwik Documentation'
  );
});

test('Guides Capacitor page loads', async ({ page }) => {
  await page.goto('/docs/guides/capacitor/');
  await expect(page).toHaveTitle('Qwik Hybrid Native App Overview | Guides 📚 Qwik Documentation');
});

test('Guides React Cheat Sheet page loads', async ({ page }) => {
  await page.goto('/docs/guides/react-cheat-sheet/');
  await expect(page).toHaveTitle('Qwik for React developers 📚 Qwik Documentation');
});

test('Guides Best Practices page loads', async ({ page }) => {
  await page.goto('/docs/guides/best-practices/');
  await expect(page).toHaveTitle('Best Practices | Guides 📚 Qwik Documentation');
});

test('Guides Bundle Optimization page loads', async ({ page }) => {
  await page.goto('/docs/guides/bundle/');
  await expect(page).toHaveTitle('Bundle Optimization | Guides 📚 Qwik Documentation');
});

test('Guides Environment Variables page loads', async ({ page }) => {
  await page.goto('/docs/guides/env-variables/');
  await expect(page).toHaveTitle('Environment variables | Qwik City 📚 Qwik Documentation');
});


================================================
FILE: e2e/docs-e2e/tests/Docs/integrations-pages-load.spec.ts
================================================
import { test, expect } from '@playwright/test';

test('Integrations Overview page loads', async ({ page }) => {
  await page.goto('/docs/integrations/');
  await expect(page).toHaveTitle('Qwik City Integrations | Guides 📚 Qwik Documentation');
});

test('Integrations Astro page loads', async ({ page }) => {
  await page.goto('/docs/integrations/astro/');
  await expect(page).toHaveTitle('Astro | Integrations 📚 Qwik Documentation');
});

test('Integrations Auth.js page loads', async ({ page }) => {
  await page.goto('/docs/integrations/authjs/');
  await expect(page).toHaveTitle('Auth.js | Integrations 📚 Qwik Documentation');
});

test('Integrations Bootstrap page loads', async ({ page }) => {
  await page.goto('/docs/integrations/bootstrap/');
  await expect(page).toHaveTitle('Bootstrap | Integrations 📚 Qwik Documentation');
});

test('Integrations Builder.io page loads', async ({ page }) => {
  await page.goto('/docs/integrations/builderio/');
  await expect(page).toHaveTitle('Builder.io | Integrations 📚 Qwik Documentation');
});

test('Integrations Cypress page loads', async ({ page }) => {
  await page.goto('/docs/integrations/cypress/');
  await expect(page).toHaveTitle('Cypress | Integrations 📚 Qwik Documentation');
});

test('Integrations Drizzle page loads', async ({ page }) => {
  await page.goto('/docs/integrations/drizzle/');
  await expect(page).toHaveTitle('Drizzle | Integrations 📚 Qwik Documentation');
});

test('Integrations Internationalization page loads', async ({ page }) => {
  await page.goto('/docs/integrations/i18n/');
  await expect(page).toHaveTitle('Internationalization | Integrations 📚 Qwik Documentation');
});

test('Integrations Icons page loads', async ({ page }) => {
  await page.goto('/docs/integrations/icons/');
  await expect(page).toHaveTitle('Icons | Integrations 📚 Qwik Documentation');
});

test('Integrations Image Optimization page loads', async ({ page }) => {
  await page.goto('/docs/integrations/image-optimization/');
  await expect(page).toHaveTitle('Image Optimization | Integrations 📚 Qwik Documentation');
});

test('Integrations LeafletJS Map page loads', async ({ page }) => {
  await page.goto('/docs/integrations/leaflet-map/');
  await expect(page).toHaveTitle('LeafletJS Map | Integrations 📚 Qwik Documentation');
});

test('Integrations Modular Forms page loads', async ({ page }) => {
  await page.goto('/docs/integrations/modular-forms/');
  await expect(page).toHaveTitle('Modular Forms | Integrations 📚 Qwik Documentation');
});

test('Integrations Nx and enterprise scale monorepos page loads', async ({ page }) => {
  await page.goto('/docs/integrations/nx/');
  await expect(page).toHaveTitle('Nx Monorepos | Integrations 📚 Qwik Documentation');
});

test('Integrations OG Image / Open Graph Image page loads', async ({ page }) => {
  await page.goto('/docs/integrations/og-img/');
  await expect(page).toHaveTitle('OG Image (og-img) | Integrations 📚 Qwik Documentation');
});

test('Integrations Orama page loads', async ({ page }) => {
  await page.goto('/docs/integrations/orama/');
  await expect(page).toHaveTitle('Qwik City and Orama 📚 Qwik Documentation');
});

test('Integrations Panda CSS page loads', async ({ page }) => {
  await page.goto('/docs/integrations/panda-css/');
  await expect(page).toHaveTitle('Panda CSS | Integrations 📚 Qwik Documentation');
});

test('Integrations Partytown page loads', async ({ page }) => {
  await page.goto('/docs/integrations/partytown/');
  await expect(page).toHaveTitle('Partytown | Integrations 📚 Qwik Documentation');
});

test('Integrations Playwright page loads', async ({ page }) => {
  await page.goto('/docs/integrations/playwright/');
  await expect(page).toHaveTitle('Playwright | Integrations 📚 Qwik Documentation');
});

test('Integrations PostCSS page loads', async ({ page }) => {
  await page.goto('/docs/integrations/postcss/');
  await expect(page).toHaveTitle('PostCSS | Integrations 📚 Qwik Documentation');
});

test('Integrations Prisma page loads', async ({ page }) => {
  await page.goto('/docs/integrations/prisma/');
  await expect(page).toHaveTitle('Prisma | Integrations 📚 Qwik Documentation');
});

test('Integrations Qwik React page loads', async ({ page }) => {
  await page.goto('/docs/integrations/react/');
  await expect(page).toHaveTitle('React | Integrations 📚 Qwik Documentation');
});

test('Integrations Storybook page loads', async ({ page }) => {
  await page.goto('/docs/integrations/storybook/');
  await expect(page).toHaveTitle('Storybook | Integrations 📚 Qwik Documentation');
});

test('Integrations Styled Vanilla Extract page loads', async ({ page }) => {
  await page.goto('/docs/integrations/styled-vanilla-extract/');
  await expect(page).toHaveTitle('Styled Vanilla Extract | Integrations 📚 Qwik Documentation');
});

test('Integrations Supabase page loads', async ({ page }) => {
  await page.goto('/docs/integrations/supabase/');
  await expect(page).toHaveTitle('Supabase | Integrations 📚 Qwik Documentation');
});

test('Integrations Tailwind page loads', async ({ page }) => {
  await page.goto('/docs/integrations/tailwind/');
  await expect(page).toHaveTitle('Tailwind | Integrations 📚 Qwik Documentation');
});

test('Integrations Tauri page loads', async ({ page }) => {
  await page.goto('/docs/integrations/tauri/');
  await expect(page).toHaveTitle('Tauri | Integrations 📚 Qwik Documentation');
});

test('Integrations Turso page loads', async ({ page }) => {
  await page.goto('/docs/integrations/turso/');
  await expect(page).toHaveTitle('Turso | Integrations 📚 Qwik Documentation');
});

test('Integrations Vitest page loads', async ({ page }) => {
  await page.goto('/docs/integrations/vitest/');
  await expect(page).toHaveTitle('Vitest | Integrations 📚 Qwik Documentation');
});


================================================
FILE: e2e/docs-e2e/tests/Docs/navBarOnMobile.spec.ts
================================================
import { test, expect, devices } from '@playwright/test';

test.use({
  ...devices['iPhone 13'],
});

test('navbar on mobile', async ({ page }) => {
  await page.goto('/');
  const openIcon = page.locator('.mobile-menu > .more-icon > svg');
  const closeIcon = page.locator('.mobile-menu > .close-icon > svg');
  const navToolKit = page.locator('.menu-toolkit');
  const body = page.locator('body');

  expect(body).not.toHaveClass('header-open');
  await expect(openIcon).toBeVisible();
  await openIcon.click();
  expect(body).toHaveClass('header-open');
  await expect(closeIcon).toBeVisible();

  await expect(navToolKit).toBeVisible();
  const menuItems = await page.locator('.menu-toolkit > li > a').allTextContents();
  const expectedMenuLinks = [
    'Docs',
    'Ecosystem',
    'Tutorial',
    'Qwik Sandbox',
    'Blog',
    'GitHub',
    '@QwikDev',
    'Discord',
  ];

  expect(menuItems).toStrictEqual(expectedMenuLinks);

  await closeIcon.click();
  expect(body).not.toHaveClass('header-open');
  await expect(closeIcon).not.toBeVisible();
  await expect(openIcon).toBeVisible();
  await expect(navToolKit).not.toBeVisible();
});


================================================
FILE: e2e/docs-e2e/tests/Docs/pages-load-test.spec.ts
================================================
import { test, expect } from '@playwright/test';

test('home page loads', async ({ page }) => {
  await page.goto('/');
  await expect(page).toHaveTitle('Framework reimagined for the edge! 📚 Qwik Documentation');
});

test('docs page loads', async ({ page }) => {
  await page.goto('/docs/');

  await expect(page).toHaveTitle('Overview | Introduction 📚 Qwik Documentation');

  const introductionLinksOnPage = await page
    .locator('#qwik-sidebar')
    .locator('details:has(summary h5:text("Introduction")) ul li a')
    .allTextContents();

  const expectedIntroductionLinks = ['Overview', 'Getting Started', 'Project structure', 'FAQ'];

  expect(introductionLinksOnPage).toStrictEqual(expectedIntroductionLinks);

  const componentsLinksOnPage = await page
    .locator('#qwik-sidebar')
    .locator('details:has(summary h5:text("Components")) ul li a')
    .allTextContents();

  const expectedComponentLinks = [
    'Overview',
    'State',
    'Events',
    'Tasks & Lifecycle',
    'Context',
    'Slots',
    'Rendering',
    'Styling',
    'API Reference',
  ];

  expect(componentsLinksOnPage).toStrictEqual(expectedComponentLinks);

  const qwikCityLinksOnPage = await page
    .locator('#qwik-sidebar')
    .locator('details:has(summary h5:text("Qwik City")) ul li a')
    .allTextContents();

  const expectedQwikCityLinks = [
    'Overview',
    'Routing',
    'Pages',
    'Layouts',
    'Loaders',
    'Actions',
    'Validators',
    'Endpoints',
    'Middleware',
    'server$',
    'Error handling',
    'Re-exporting loaders',
    'Caching',
    'HTML attributes',
    'API reference',
  ];

  expect(qwikCityLinksOnPage).toStrictEqual(expectedQwikCityLinks);

  const cookbookLinksOnPage = await page
    .locator('#qwik-sidebar')
    .locator('details:has(summary h5:text("Cookbook")) ul li a')
    .allTextContents();

  const expectedCookbookLinks = [
    'Overview',
    'Algolia Search',
    'Combine Handlers',
    'Debouncer',
    'Fonts',
    'Glob Import',
    'Media Controller',
    'NavLink',
    'Node Docker deploy',
    'Portals',
    'Streaming loaders',
    'Sync events w state',
    'Theme Management',
    'Drag & Drop',
    'View Transition',
  ];

  // if you are adding a new page to the cookbook, please add a new test for the page to load too
  expect(cookbookLinksOnPage).toStrictEqual(expectedCookbookLinks);

  const integrationsLinksOnPage = await page
    .locator('#qwik-sidebar')
    .locator('details:has(summary h5:text("Integrations")) ul li a')
    .allTextContents();

  const expectedIntegrationsLinks = [
    'Overview',
    'Astro',
    'Auth.js',
    'Bootstrap',
    'Builder.io',
    'Cypress',
    'Drizzle',
    'i18n',
    'Icons',
    'Image Optimization',
    'Leaflet Map',
    'Modular Forms',
    'Nx Monorepos',
    'OG Image',
    'Orama',
    'Panda CSS',
    'Partytown',
    'Playwright',
    'PostCSS',
    'Prisma',
    'React',
    'Storybook',
    'Styled Vanilla Extract',
    'Supabase',
    'Tailwind',
    'Tauri',
    'Turso',
    'Vitest',
  ];

  expect(integrationsLinksOnPage).toStrictEqual(expectedIntegrationsLinks);

  const deploymentsLinksOnPage = await page
    .locator('#qwik-sidebar')
    .locator('details:has(summary h5:text("Deployments")) ul li a')
    .allTextContents();

  const expectedDeploymentsLinks = [
    'Overview',
    'Azure SWA',
    'AWS',
    'Firebase',
    'Google Cloud Run',
    'Cloudflare Pages',
    'Cloudflare Workers',
    'Deno',
    'Bun',
    'Netlify Edge',
    'Node',
    'Self-Hosting',
    'Vercel Edge',
    'Static Site',
    'Azion',
  ];

  expect(deploymentsLinksOnPage).toStrictEqual(expectedDeploymentsLinks);

  co
Download .txt
gitextract_s2quyj30/

├── .all-contributorsrc
├── .changeset/
│   ├── breezy-items-relax.md
│   ├── changelog-github-custom.cjs
│   ├── changelog-github-custom.ts
│   ├── config.json
│   ├── deno-production-builds.md
│   ├── eager-sides-sit.md
│   ├── fix-virtual-css-dev-ssr.md
│   ├── late-parrots-open.md
│   ├── shaky-ends-help.md
│   ├── small-candies-train.md
│   └── smooth-ends-count.md
├── .devcontainer/
│   ├── Dockerfile
│   └── devcontainer.json
├── .dockerignore
├── .envrc
├── .gitattributes
├── .github/
│   ├── CODEOWNERS
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug.yaml
│   │   ├── config.yml
│   │   └── docs_suggestion.yml
│   ├── PULL_REQUEST_TEMPLATE.md
│   └── workflows/
│       ├── ai-issue-triage.yml
│       ├── auto-assign-core-team.yml
│       ├── bench.yml.disabled
│       ├── ci.yml
│       ├── closing-issues.yml
│       ├── deploy-docs.yml
│       └── labeling-issues.yml
├── .gitignore
├── .node-version
├── .nvmrc
├── .prettierignore
├── .prettierrc.json
├── .vscode/
│   ├── extensions.json
│   ├── launch.json
│   ├── qwik.code-snippets
│   └── settings.json
├── @types/
│   ├── bun.d.ts
│   └── deno.d.ts
├── AGENTS.md
├── CLAUDE.md
├── CODE_OF_CONDUCT.md
├── CONTINUOUS_BUILD.md
├── CONTRIBUTING.md
├── Cargo.toml
├── Dockerfile
├── GOVERNANCE.md
├── LICENSE
├── Makefile
├── README.md
├── SECURITY.md
├── contributing/
│   └── TRIAGE.md
├── cspell.json
├── e2e/
│   ├── adapters-e2e/
│   │   ├── .gitignore
│   │   ├── adapters/
│   │   │   └── express/
│   │   │       └── vite.config.ts
│   │   ├── package.json
│   │   ├── playwright.config.ts
│   │   ├── src/
│   │   │   ├── components/
│   │   │   │   ├── click-me/
│   │   │   │   │   └── click-me.tsx
│   │   │   │   └── router-head/
│   │   │   │       └── router-head.tsx
│   │   │   ├── entry.dev.tsx
│   │   │   ├── entry.express.tsx
│   │   │   ├── entry.preview.tsx
│   │   │   ├── entry.ssr.tsx
│   │   │   ├── root.tsx
│   │   │   └── routes/
│   │   │       ├── index.tsx
│   │   │       ├── layout.tsx
│   │   │       ├── profile/
│   │   │       │   └── index.tsx
│   │   │       └── service-worker.ts
│   │   ├── tests/
│   │   │   └── express.spec.ts
│   │   ├── tsconfig.json
│   │   └── vite.config.ts
│   ├── docs-e2e/
│   │   ├── .gitignore
│   │   ├── package.json
│   │   ├── playwright.config.ts
│   │   └── tests/
│   │       ├── Docs/
│   │       │   ├── advanced-pages-load.spec.ts
│   │       │   ├── community-pages.load.spec.ts
│   │       │   ├── concepts-pages-laod.spec.ts
│   │       │   ├── cookbook-pages-load.spec.ts
│   │       │   ├── deployments-pages-load.spec.ts
│   │       │   ├── docs-components-pages-load.spec.ts
│   │       │   ├── guides-pages-load.spec.ts
│   │       │   ├── integrations-pages-load.spec.ts
│   │       │   ├── navBarOnMobile.spec.ts
│   │       │   ├── pages-load-test.spec.ts
│   │       │   ├── qwik-city-pages-load.spec.ts
│   │       │   ├── qwik-labs-pages-load.spec.ts
│   │       │   ├── reference-pages-load.spec.ts
│   │       │   └── searchBar.spec.ts
│   │       ├── Ecosystem/
│   │       │   └── ecosystem-pages-load.spec.ts
│   │       └── Sandbox/
│   │           ├── autoComplete.spec.ts
│   │           ├── clockVisible.spec.ts
│   │           ├── counter.spec.ts
│   │           ├── partial.spec.ts
│   │           ├── routing.spec.ts
│   │           ├── sandbox.spec.ts
│   │           └── usetask.spec.ts
│   ├── qwik-cli-e2e/
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── tests/
│   │   │   └── serve.spec.ts
│   │   ├── tsconfig.json
│   │   ├── utils/
│   │   │   ├── index.ts
│   │   │   └── setup.ts
│   │   └── vite.config.ts
│   └── qwik-react-e2e/
│       ├── .gitignore
│       ├── adapters/
│       │   └── express/
│       │       └── vite.config.ts
│       ├── package.json
│       ├── playwright.config.ts
│       ├── src/
│       │   ├── components/
│       │   │   ├── counter/
│       │   │   │   └── index.tsx
│       │   │   └── router-head/
│       │   │       └── router-head.tsx
│       │   ├── entry.dev.tsx
│       │   ├── entry.express.tsx
│       │   ├── entry.preview.tsx
│       │   ├── entry.ssr.tsx
│       │   ├── root.tsx
│       │   └── routes/
│       │       ├── index.tsx
│       │       ├── layout.tsx
│       │       └── react/
│       │           └── index.tsx
│       ├── tests/
│       │   └── express.spec.ts
│       ├── tsconfig.json
│       └── vite.config.ts
├── eslint.config.js
├── flake.nix
├── package.json
├── packages/
│   ├── create-qwik/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── create-qwik.cjs
│   │   ├── index.ts
│   │   ├── package.json
│   │   └── src/
│   │       ├── create-app-facade.ts
│   │       ├── create-app.ts
│   │       ├── helpers/
│   │       │   ├── clearDir.ts
│   │       │   ├── installDepsCli.ts
│   │       │   ├── jokes.json
│   │       │   ├── jokes.ts
│   │       │   ├── logAppCreated.ts
│   │       │   ├── resolveRelativeDir.ts
│   │       │   └── templateManager.ts
│   │       ├── run-create-cli.ts
│   │       ├── run-create-interactive-cli.ts
│   │       └── types.ts
│   ├── docs/
│   │   ├── .gitignore
│   │   ├── .node-version
│   │   ├── .npmrc
│   │   ├── .prettierignore
│   │   ├── README.md
│   │   ├── adapters/
│   │   │   └── cloudflare-pages/
│   │   │       └── vite.config.mts
│   │   ├── algolia.json
│   │   ├── check-qwik-build.ts
│   │   ├── codesandbox.sync.ts
│   │   ├── contributors.ts
│   │   ├── global.d.ts
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── _headers
│   │   │   ├── _redirects
│   │   │   ├── _routes.json
│   │   │   ├── builder/
│   │   │   │   ├── 115b3b36cedd455196b06f5d33a57ac1
│   │   │   │   ├── 281010f5f1694d8bbf399c8ffe4a1d87
│   │   │   │   ├── 2e03c5254011431fb48466e2e1eb08a2
│   │   │   │   ├── 31df46c5b87744fd8a4347d3a17a47a6
│   │   │   │   ├── 329d8065fc13497e8588c3f03df1f49a
│   │   │   │   ├── 42067d8b20a74503a497b72f53665b13
│   │   │   │   ├── 4b7b38f10af348c4b8b2809db664c11f
│   │   │   │   ├── 52a1f6b5be704dc9b5080d64acfb9ccf
│   │   │   │   ├── 644d27976d234ec9b453501c209bffa3
│   │   │   │   ├── 67d3020da766431cb03fbe794e808be8
│   │   │   │   ├── 80ac5f7793b545499d3d8944ff7ff3f3
│   │   │   │   ├── 8f2ccdcaa669452c85c1b74d2c162a3d
│   │   │   │   ├── 91320f7f7e764055b4f1722189241838
│   │   │   │   ├── a27427ee8bac4f509053ca6de1a4553a
│   │   │   │   ├── aee5f202a90e4659bbc6374aed3ff138
│   │   │   │   ├── b6a806948cef4946aec55fa4fa9173cd
│   │   │   │   ├── ba922b4f3134477580035b01dc804a26
│   │   │   │   ├── bef8f28d07034b91a89f4518e06314da
│   │   │   │   ├── c32d1ef92781491a86dcdc8859b193d2
│   │   │   │   ├── ccfe1879407845b8906b870fc4ef607d
│   │   │   │   ├── d1768a789936434a905973daf12768f6
│   │   │   │   ├── d805a18ff6d0410f92603fb691c87349
│   │   │   │   ├── eee9dff8ee0e4b4e9ad1a8825643030c
│   │   │   │   ├── efcf8d0391fe4d8bb7e557e6d295a2b2
│   │   │   │   ├── fdc08238cb4d49d48d3a468308992e15
│   │   │   │   ├── high.js
│   │   │   │   ├── med.js
│   │   │   │   └── qwik-0.100.0.js
│   │   │   ├── docs/
│   │   │   │   └── qwikcity/
│   │   │   │       └── README.md
│   │   │   └── robots.txt
│   │   ├── scripts/
│   │   │   ├── pages.json
│   │   │   └── showcase.ts
│   │   ├── src/
│   │   │   ├── components/
│   │   │   │   ├── code-block/
│   │   │   │   │   ├── code-block.css
│   │   │   │   │   ├── code-block.tsx
│   │   │   │   │   └── prismjs.ts
│   │   │   │   ├── code-sandbox/
│   │   │   │   │   ├── index.css
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── content-nav/
│   │   │   │   │   ├── content-nav.css
│   │   │   │   │   └── content-nav.tsx
│   │   │   │   ├── contributors/
│   │   │   │   │   ├── contributors.css
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── copy-code/
│   │   │   │   │   ├── copy-code-block.tsx
│   │   │   │   │   └── copy-code.css
│   │   │   │   ├── docsearch/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── algolia-logo.tsx
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── context.ts
│   │   │   │   │   ├── doc-search-button.tsx
│   │   │   │   │   ├── doc-search-modal.tsx
│   │   │   │   │   ├── doc-search.css
│   │   │   │   │   ├── doc-search.tsx
│   │   │   │   │   ├── error-screen.tsx
│   │   │   │   │   ├── handleSearch.ts
│   │   │   │   │   ├── hit.tsx
│   │   │   │   │   ├── icons/
│   │   │   │   │   │   ├── ControlKeyIcon.tsx
│   │   │   │   │   │   ├── ErrorIcon.tsx
│   │   │   │   │   │   ├── LoadingIcon.tsx
│   │   │   │   │   │   ├── NoResultsIcon.tsx
│   │   │   │   │   │   ├── RecentIcon.tsx
│   │   │   │   │   │   ├── ResetIcon.tsx
│   │   │   │   │   │   ├── SearchIcon.tsx
│   │   │   │   │   │   ├── SelectIcon.tsx
│   │   │   │   │   │   ├── SourceIcon.tsx
│   │   │   │   │   │   └── StarIcon.tsx
│   │   │   │   │   ├── no-results-screen.tsx
│   │   │   │   │   ├── result.tsx
│   │   │   │   │   ├── results-screen.tsx
│   │   │   │   │   ├── screen-state.tsx
│   │   │   │   │   ├── search-box.tsx
│   │   │   │   │   ├── snippet.tsx
│   │   │   │   │   ├── start-screen.tsx
│   │   │   │   │   ├── stored-searches.ts
│   │   │   │   │   ├── types/
│   │   │   │   │   │   ├── DocSearchHit.ts
│   │   │   │   │   │   ├── InternalDocSearchHit.ts
│   │   │   │   │   │   ├── StoredDocSearchHit.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── useTouchEvents.ts
│   │   │   │   │   ├── useTrapFocus.ts
│   │   │   │   │   ├── utils/
│   │   │   │   │   │   ├── groupBy.ts
│   │   │   │   │   │   ├── identity.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── isSamsung.ts
│   │   │   │   │   │   ├── noop.ts
│   │   │   │   │   │   ├── removeHighlightTags.ts
│   │   │   │   │   │   └── stalledControl.ts
│   │   │   │   │   └── version.ts
│   │   │   │   ├── footer/
│   │   │   │   │   ├── footer.css
│   │   │   │   │   └── footer.tsx
│   │   │   │   ├── header/
│   │   │   │   │   ├── header.css
│   │   │   │   │   └── header.tsx
│   │   │   │   ├── on-this-page/
│   │   │   │   │   ├── on-this-page.css
│   │   │   │   │   └── on-this-page.tsx
│   │   │   │   ├── package-manager-tabs/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── panel-toggle/
│   │   │   │   │   ├── panel-toggle.css
│   │   │   │   │   └── panel-toggle.tsx
│   │   │   │   ├── qwik-gpt/
│   │   │   │   │   ├── gpt.md
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── search.tsx
│   │   │   │   │   └── streaming-gpt.ts
│   │   │   │   ├── real-metrics-optimization/
│   │   │   │   │   └── real-metrics-optimization.tsx
│   │   │   │   ├── router-head/
│   │   │   │   │   ├── router-head.tsx
│   │   │   │   │   ├── social.tsx
│   │   │   │   │   └── vendor.tsx
│   │   │   │   ├── sidebar/
│   │   │   │   │   ├── sidebar.css
│   │   │   │   │   └── sidebar.tsx
│   │   │   │   ├── sponsors/
│   │   │   │   │   └── sponsors.tsx
│   │   │   │   ├── svgs/
│   │   │   │   │   ├── alert-icon.tsx
│   │   │   │   │   ├── bluesky-logo.tsx
│   │   │   │   │   ├── builder-logo.tsx
│   │   │   │   │   ├── chat-icon.tsx
│   │   │   │   │   ├── close-icon.tsx
│   │   │   │   │   ├── copy-code-icon.tsx
│   │   │   │   │   ├── discord-logo.tsx
│   │   │   │   │   ├── edit-icon.tsx
│   │   │   │   │   ├── github-logo.tsx
│   │   │   │   │   ├── more-icon.tsx
│   │   │   │   │   ├── qwik-logo.tsx
│   │   │   │   │   └── twitter-logo.tsx
│   │   │   │   └── theme-toggle/
│   │   │   │       ├── Brilliance.tsx
│   │   │   │       ├── Moon.tsx
│   │   │   │       ├── README.md
│   │   │   │       ├── Sun.tsx
│   │   │   │       ├── load-theme.js
│   │   │   │       ├── theme-script.tsx
│   │   │   │       ├── theme-toggle.css
│   │   │   │       └── theme-toggle.tsx
│   │   │   ├── constants.ts
│   │   │   ├── context.ts
│   │   │   ├── empty.ts
│   │   │   ├── entry.cloudflare-pages.tsx
│   │   │   ├── entry.dev.tsx
│   │   │   ├── entry.preview.tsx
│   │   │   ├── entry.ssr.tsx
│   │   │   ├── global.css
│   │   │   ├── repl/
│   │   │   │   ├── README.md
│   │   │   │   ├── bundler/
│   │   │   │   │   ├── bundled.tsx
│   │   │   │   │   ├── bundler-worker.ts
│   │   │   │   │   ├── client-events-listener.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── repl-ssr-worker.ts
│   │   │   │   │   └── rollup-plugins.ts
│   │   │   │   ├── register-repl-sw.ts
│   │   │   │   ├── repl-constants.ts
│   │   │   │   ├── repl-instance.ts
│   │   │   │   ├── repl-sw.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── ui/
│   │   │   │       ├── editor.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       ├── monaco.tsx
│   │   │   │       ├── repl-commands.tsx
│   │   │   │       ├── repl-console.tsx
│   │   │   │       ├── repl-detail-panel.tsx
│   │   │   │       ├── repl-input-panel.tsx
│   │   │   │       ├── repl-options.tsx
│   │   │   │       ├── repl-output-modules.tsx
│   │   │   │       ├── repl-output-panel.tsx
│   │   │   │       ├── repl-output-segments.tsx
│   │   │   │       ├── repl-output-update.ts
│   │   │   │       ├── repl-share-url.ts
│   │   │   │       ├── repl-share-url.unit.ts
│   │   │   │       ├── repl-tab-button.tsx
│   │   │   │       ├── repl-tab-buttons.tsx
│   │   │   │       ├── repl-version.ts
│   │   │   │       └── repl.css
│   │   │   ├── root.tsx
│   │   │   ├── routes/
│   │   │   │   ├── (blog)/
│   │   │   │   │   ├── blog/
│   │   │   │   │   │   ├── (articles)/
│   │   │   │   │   │   │   ├── astro-qwik/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── fontless/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── framer-motion-qwik/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── introducing-qwik-starters/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── module-extraction-the-silent-web-revolution/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-1-14-preloader/
│   │   │   │   │   │   │   │   ├── index.mdx
│   │   │   │   │   │   │   │   ├── modulepreload-no-delay-demo-crop.webm
│   │   │   │   │   │   │   │   └── service-worker-delay-demo-crop.webm
│   │   │   │   │   │   │   ├── qwik-1-2-performance-autopilot/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-2-coming-soon/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-and-qwik-city-have-reached-beta/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-city-routing/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-city-server-functions/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-next-leap/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-rc-milestone/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-tasks/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-v1/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── resumable-react-how-to-use-react-inside-qwik/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── the-qase-for-qwik-love-at-first-tti/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   └── type-safe-forms-in-qwik/
│   │   │   │   │   │   │       └── index.mdx
│   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   ├── articles-grid.tsx
│   │   │   │   │   │   │   ├── featured-article.tsx
│   │   │   │   │   │   │   └── mdx/
│   │   │   │   │   │   │       ├── article-block.tsx
│   │   │   │   │   │   │       ├── article-hero.tsx
│   │   │   │   │   │   │       └── discord-link.tsx
│   │   │   │   │   │   ├── icons/
│   │   │   │   │   │   │   ├── clock-icon.tsx
│   │   │   │   │   │   │   └── send-icon.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── data.ts
│   │   │   │   │   └── layout.tsx
│   │   │   │   ├── (ecosystem)/
│   │   │   │   │   ├── ecosystem/
│   │   │   │   │   │   ├── ecosystem-menu.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── menu-items.tsx
│   │   │   │   │   │   ├── mobile-ecosystem-menu.tsx
│   │   │   │   │   │   └── qwik-plus-logo.tsx
│   │   │   │   │   ├── ecosystem.css
│   │   │   │   │   ├── ecosystem.json
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   ├── media/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── media.css
│   │   │   │   │   └── showcase/
│   │   │   │   │       ├── generated-pages.json
│   │   │   │   │       ├── index.tsx
│   │   │   │   │       └── styles.css
│   │   │   │   ├── 404/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── 404.css
│   │   │   │   ├── 404.tsx
│   │   │   │   ├── api/
│   │   │   │   │   ├── api.css
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   ├── qwik/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-middleware-aws-lambda/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-middleware-azure-swa/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-middleware-cloudflare-pages/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-middleware-firebase/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-middleware-netlify-edge/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-middleware-node/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-middleware-request-handler/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-middleware-vercel-edge/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-static/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-vite-azure-swa/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-vite-bun-server/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-vite-cloud-run/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-vite-cloudflare-pages/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-vite-netlify-edge/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-vite-node-server/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-vite-static/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-city-vite-vercel/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-optimizer/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── qwik-server/
│   │   │   │   │   │   ├── api.json
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   └── qwik-testing/
│   │   │   │   │       ├── api.json
│   │   │   │   │       └── index.mdx
│   │   │   │   ├── community/
│   │   │   │   │   ├── groups/
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   ├── menu.md
│   │   │   │   │   ├── projects/
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   └── values/
│   │   │   │   │       └── index.mdx
│   │   │   │   ├── demo/
│   │   │   │   │   ├── .prettierrc.json
│   │   │   │   │   ├── api/
│   │   │   │   │   │   └── add/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── component/
│   │   │   │   │   │   ├── child/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── inline-child/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── lazy/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── primitive-props/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── props/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── ref/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── reference-props/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── relativeUrl/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── simple/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── useId/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── context/
│   │   │   │   │   │   └── minimal/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── cookbook/
│   │   │   │   │   │   ├── algolia-search/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── combine-request-handlers/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── debouncer/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── detect-img-tag-onload/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── drag&drop/
│   │   │   │   │   │   │   ├── advanced/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── basic/
│   │   │   │   │   │   │       └── index.tsx
│   │   │   │   │   │   ├── glob-import/
│   │   │   │   │   │   │   ├── examples/
│   │   │   │   │   │   │   │   ├── example1.tsx
│   │   │   │   │   │   │   │   ├── example2.tsx
│   │   │   │   │   │   │   │   └── example3.tsx
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── leaflet-map/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── mediaController/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── nav-link/
│   │   │   │   │   │   │   ├── example/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── portal/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── layout.tsx
│   │   │   │   │   │   │   ├── popup-example.css
│   │   │   │   │   │   │   ├── portal-provider.css
│   │   │   │   │   │   │   └── portal-provider.tsx
│   │   │   │   │   │   ├── re-exporting-loaders/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   ├── shared/
│   │   │   │   │   │   │   │   └── loaders.ts
│   │   │   │   │   │   │   └── third-party/
│   │   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │   │       └── third-party-library.tsx
│   │   │   │   │   │   ├── streaming-deferred-loaders/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── sync-event/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── demo-reset.css
│   │   │   │   │   ├── events/
│   │   │   │   │   │   ├── custom-event/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── extracted-handler/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── global-events/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── mouse-position/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── preventdefault/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── synchronous/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── target/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── use-on/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       └── use-on-window/
│   │   │   │   │   │           └── index.tsx
│   │   │   │   │   ├── getting-started/
│   │   │   │   │   │   ├── 01-route/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── 02-loading-data/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── 03-posting-data/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── 04-state/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── 05-tasks/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── 06-styling/
│   │   │   │   │   │       ├── index.css
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── integration/
│   │   │   │   │   │   ├── img/
│   │   │   │   │   │   │   ├── qwik-image/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── unpic/
│   │   │   │   │   │   │       └── simple/
│   │   │   │   │   │   │           └── index.tsx
│   │   │   │   │   │   └── modular-forms/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   ├── qwikcity/
│   │   │   │   │   │   └── middleware/
│   │   │   │   │   │       ├── basePathname/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── cacheControl/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── component/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── cookie/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── env/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── error/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── exit/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── getWritableStream/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── headerSent/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── headers/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── html/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── json/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── layout.tsx
│   │   │   │   │   │       ├── locale/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── method/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── next/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── params/
│   │   │   │   │   │       │   └── [myId]/
│   │   │   │   │   │       │       └── index.tsx
│   │   │   │   │   │       ├── parseBody/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── platform/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── proxy/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── query/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── redirect/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── request/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── send/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── sharedMap/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── status/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── text/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── throw/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       └── url/
│   │   │   │   │   │           └── index.tsx
│   │   │   │   │   ├── react/
│   │   │   │   │   │   ├── children/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── react.tsx
│   │   │   │   │   │   ├── counter-simple/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── react.tsx
│   │   │   │   │   │   ├── counter-simple-hover/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── react.tsx
│   │   │   │   │   │   ├── counter-two-islands/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── react.tsx
│   │   │   │   │   │   ├── counter-two-islands-host/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── react.tsx
│   │   │   │   │   │   ├── hello-world/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── react.tsx
│   │   │   │   │   │   ├── mui/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── react.tsx
│   │   │   │   │   │   └── slider/
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       └── react.tsx
│   │   │   │   │   ├── resumability/
│   │   │   │   │   │   ├── component.css
│   │   │   │   │   │   ├── component.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── slot/
│   │   │   │   │   │   ├── advanced/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── basic/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── named/
│   │   │   │   │   │   │   ├── index.css
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── unprojected/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── state/
│   │   │   │   │   │   ├── computed/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── counter/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── counter-signal/
│   │   │   │   │   │   │   ├── .prettierrc.json
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── counter-store/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── counter-store-deep/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── counter-store-no-track/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── no-serialize/
│   │   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   │   └── monaco.tsx
│   │   │   │   │   │   ├── passing-context/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── passing-props/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── resource/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── resource-agify/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── resource-joke/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── tasks/
│   │   │   │   │   │   ├── cleanup/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── track/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── track-fn/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── track-server-guard/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── use-task/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── use-visible-task/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── use-visible-task-eager/
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   └── tsconfig.json
│   │   │   │   ├── devtools/
│   │   │   │   │   └── json/
│   │   │   │   │       └── index.tsx
│   │   │   │   ├── docs/
│   │   │   │   │   ├── (qwik)/
│   │   │   │   │   │   ├── advanced/
│   │   │   │   │   │   │   ├── containers/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── custom-build-dir/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── dollar/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── eslint/
│   │   │   │   │   │   │   │   ├── index.mdx
│   │   │   │   │   │   │   │   └── styles.css
│   │   │   │   │   │   │   ├── library/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── modules-prefetching/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── optimizer/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qrl/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwikloader/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   └── vite/
│   │   │   │   │   │   │       └── index.mdx
│   │   │   │   │   │   ├── concepts/
│   │   │   │   │   │   │   ├── progressive/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── resumable/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   └── think-qwik/
│   │   │   │   │   │   │       └── index.mdx
│   │   │   │   │   │   ├── core/
│   │   │   │   │   │   │   ├── context/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── events/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── overview/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── rendering/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── slots/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── state/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── styles/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   └── tasks/
│   │   │   │   │   │   │       └── index.mdx
│   │   │   │   │   │   ├── deprecated-features/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── faq/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── getting-started/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   └── index.mdx
│   │   │   │   │   ├── (qwikcity)/
│   │   │   │   │   │   ├── action/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── advanced/
│   │   │   │   │   │   │   ├── complex-forms/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── content-security-policy/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── menu/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── plugins/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── request-handling/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── routing/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── sitemaps/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── speculative-module-fetching/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   └── static-assets/
│   │   │   │   │   │   │       └── index.mdx
│   │   │   │   │   │   ├── api/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── caching/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── endpoints/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── error-handling/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── guides/
│   │   │   │   │   │   │   ├── best-practices/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── bundle/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── capacitor/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── debugging/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── deploy/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── env-variables/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── mdx/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── qwik-nutshell/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── react-cheat-sheet/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── redirects/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── rewrites/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   ├── serialization/
│   │   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   │   └── static-site-generation/
│   │   │   │   │   │   │       └── index.mdx
│   │   │   │   │   │   ├── html-attributes/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── layout/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── middleware/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── pages/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── project-structure/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── qwikcity/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── qwikcity-deprecated-features/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── re-exporting-loaders/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── route-loader/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── routing/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── server$/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── troubleshooting/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   └── validator/
│   │   │   │   │   │       └── index.mdx
│   │   │   │   │   ├── cookbook/
│   │   │   │   │   │   ├── algolia-search/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── combine-request-handlers/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── debouncer/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── detect-img-tag-onload/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── drag&drop/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── fonts/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── glob-import/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── index.mdx
│   │   │   │   │   │   ├── mediaController/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── nav-link/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── node-docker-deploy/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── portals/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── streaming-deferred-loaders/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── sync-events/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── theme-management/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   └── view-transition/
│   │   │   │   │   │       └── index.mdx
│   │   │   │   │   ├── deployments/
│   │   │   │   │   │   ├── aws-lambda/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── azion/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── azure-swa/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── bun/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── cloudflare-pages/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── cloudflare-workers/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── delete-layout.tsx
│   │   │   │   │   │   ├── deno/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── firebase/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── gcp-cloud-run/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── github-pages/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── index.mdx
│   │   │   │   │   │   ├── netlify-edge/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── node/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── self-hosting/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── static/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   └── vercel-edge/
│   │   │   │   │   │       └── index.mdx
│   │   │   │   │   ├── docs.css
│   │   │   │   │   ├── integrations/
│   │   │   │   │   │   ├── astro/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── authjs/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── bootstrap/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── builderio/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── cypress/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── delete-layout.tsx
│   │   │   │   │   │   ├── drizzle/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── i18n/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── icons/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── image-optimization/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── index.mdx
│   │   │   │   │   │   ├── integrations-list.tsx
│   │   │   │   │   │   ├── leaflet-map/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── modular-forms/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── nx/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── og-img/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── orama/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── panda-css/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── partytown/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── playwright/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── postcss/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── prisma/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── react/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── storybook/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── styled-vanilla-extract/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── supabase/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── tailwind/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── tailwind-v3/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── tauri/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── turso/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   └── vitest/
│   │   │   │   │   │       └── index.mdx
│   │   │   │   │   ├── labs/
│   │   │   │   │   │   ├── devtools/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── index.mdx
│   │   │   │   │   │   ├── insights/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   ├── typed-routes/
│   │   │   │   │   │   │   └── index.mdx
│   │   │   │   │   │   └── usePreventNavigate/
│   │   │   │   │   │       └── index.mdx
│   │   │   │   │   ├── layout.tsx
│   │   │   │   │   └── menu.md
│   │   │   │   ├── examples/
│   │   │   │   │   ├── [...id]/
│   │   │   │   │   │   ├── examples.css
│   │   │   │   │   │   └── index!.tsx
│   │   │   │   │   └── apps/
│   │   │   │   │       ├── README.md
│   │   │   │   │       ├── examples-data.ts
│   │   │   │   │       ├── examples-menu.json
│   │   │   │   │       ├── introduction/
│   │   │   │   │       │   ├── hello-world/
│   │   │   │   │       │   │   ├── app.tsx
│   │   │   │   │       │   │   ├── entry.server.tsx
│   │   │   │   │       │   │   └── root.tsx
│   │   │   │   │       │   └── runtime-less/
│   │   │   │   │       │       ├── app.tsx
│   │   │   │   │       │       ├── entry.server.tsx
│   │   │   │   │       │       └── root.tsx
│   │   │   │   │       ├── partial/
│   │   │   │   │       │   └── hackernews-index/
│   │   │   │   │       │       ├── app.tsx
│   │   │   │   │       │       ├── entry.server.tsx
│   │   │   │   │       │       ├── hacker-news.css
│   │   │   │   │       │       └── root.tsx
│   │   │   │   │       ├── reactivity/
│   │   │   │   │       │   ├── auto-complete/
│   │   │   │   │       │   │   ├── app.tsx
│   │   │   │   │       │   │   ├── entry.server.tsx
│   │   │   │   │       │   │   └── root.tsx
│   │   │   │   │       │   ├── counter/
│   │   │   │   │       │   │   ├── app.tsx
│   │   │   │   │       │   │   ├── entry.server.tsx
│   │   │   │   │       │   │   └── root.tsx
│   │   │   │   │       │   └── task/
│   │   │   │   │       │       ├── app.tsx
│   │   │   │   │       │       ├── entry.server.tsx
│   │   │   │   │       │       └── root.tsx
│   │   │   │   │       └── visibility/
│   │   │   │   │           └── clock/
│   │   │   │   │               ├── app.tsx
│   │   │   │   │               ├── clock.css
│   │   │   │   │               ├── entry.server.tsx
│   │   │   │   │               └── root.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── playground/
│   │   │   │   │   ├── app/
│   │   │   │   │   │   ├── app.tsx
│   │   │   │   │   │   ├── entry.server.tsx
│   │   │   │   │   │   └── root.tsx
│   │   │   │   │   ├── index!.tsx
│   │   │   │   │   ├── playground-data.ts
│   │   │   │   │   └── playground.css
│   │   │   │   ├── plugin@builder.io-redirect.ts
│   │   │   │   ├── plugin@redirects.ts
│   │   │   │   ├── press/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── query/
│   │   │   │   │   ├── [id]/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── repl/
│   │   │   │   │   ├── [catchAll]/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   └── repl-sw.js/
│   │   │   │   │       └── entry.ts
│   │   │   │   └── tutorial/
│   │   │   │       ├── component/
│   │   │   │       │   ├── basic/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── binding/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── composition/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── lite/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── composing/
│   │   │   │       │   ├── dollar/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── use/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── context/
│   │   │   │       │   └── basic/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── events/
│   │   │   │       │   ├── basic/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── document/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── preventdefault/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── programmatic/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── synchronous-sync/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── synchronous-visible/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── hooks/
│   │   │   │       │   ├── use-on/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── use-task/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── use-visible-task/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   ├── app.tsx
│   │   │   │       │       │   └── clock.css
│   │   │   │       │       └── solution/
│   │   │   │       │           ├── app.tsx
│   │   │   │       │           └── clock.css
│   │   │   │       ├── introduction/
│   │   │   │       │   ├── component/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── listeners/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── resource/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── store/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── layout.tsx
│   │   │   │       ├── projection/
│   │   │   │       │   ├── basic/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── fallback/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── slots/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── props/
│   │   │   │       │   ├── basic/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── closures/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── qrl/
│   │   │   │       │   ├── closures/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── data/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── optimizer/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── reactivity/
│   │   │   │       │   ├── explicit/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── resource/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── template/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── store/
│   │   │   │       │   ├── basic/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── no-serialize/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── recursive/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   ├── serialization/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── use-signal/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── style/
│   │   │   │       │   ├── scoped/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── styles/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       ├── tutorial-content-footer.tsx
│   │   │   │       ├── tutorial-content-header.tsx
│   │   │   │       ├── tutorial-data.ts
│   │   │   │       ├── tutorial-menu.json
│   │   │   │       ├── tutorial.css
│   │   │   │       ├── understanding/
│   │   │   │       │   ├── capturing/
│   │   │   │       │   │   ├── index.mdx
│   │   │   │       │   │   ├── problem/
│   │   │   │       │   │   │   └── app.tsx
│   │   │   │       │   │   └── solution/
│   │   │   │       │   │       └── app.tsx
│   │   │   │       │   └── treeshaking/
│   │   │   │       │       ├── index.mdx
│   │   │   │       │       ├── problem/
│   │   │   │       │       │   └── app.tsx
│   │   │   │       │       └── solution/
│   │   │   │       │           └── app.tsx
│   │   │   │       └── welcome/
│   │   │   │           └── overview/
│   │   │   │               ├── index.md
│   │   │   │               ├── problem/
│   │   │   │               │   └── app.tsx
│   │   │   │               └── solution/
│   │   │   │                   └── app.tsx
│   │   │   └── utils/
│   │   │       └── utils.ts
│   │   ├── test-urls.js
│   │   ├── tsconfig.json
│   │   ├── vite.config-repl-sw.mts
│   │   ├── vite.config.mts
│   │   ├── vite.repl-apps.ts
│   │   ├── vite.source-resolver.ts
│   │   ├── wrangler.jsonc
│   │   └── wrangler.toml
│   ├── eslint-plugin-qwik/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── examples.ts
│   │   ├── index.ts
│   │   ├── package.json
│   │   ├── qwik.unit.ts
│   │   ├── src/
│   │   │   ├── jsxAtag.ts
│   │   │   ├── jsxImg.ts
│   │   │   ├── jsxKey.ts
│   │   │   ├── jsxNoScriptUrl.ts
│   │   │   ├── loaderLocation.ts
│   │   │   ├── noAsyncPreventDefault.ts
│   │   │   ├── noReactProps.ts
│   │   │   ├── noUseVisibleTask.ts
│   │   │   ├── preferClasslist.ts
│   │   │   ├── unusedServer.ts
│   │   │   ├── useMethodUsage.ts
│   │   │   └── validLexicalScope.ts
│   │   └── tests/
│   │       ├── loader-location/
│   │       │   ├── invalid-loader-missing-export/
│   │       │   │   └── src/
│   │       │   │       └── routes/
│   │       │   │           └── index.tsx
│   │       │   ├── valid-loader/
│   │       │   │   └── src/
│   │       │   │       └── routes/
│   │       │   │           └── index.tsx
│   │       │   └── valid-loader-export/
│   │       │       └── src/
│   │       │           └── routes/
│   │       │               └── index.tsx
│   │       ├── no-async-prevent-default/
│   │       │   ├── invalid-prevent-default-arrow.tsx
│   │       │   ├── invalid-prevent-default.tsx
│   │       │   ├── valid-prevent-default-arrow.tsx
│   │       │   └── valid-prevent-default.tsx
│   │       ├── no-use-visible-task/
│   │       │   └── invalid-no-comment.tsx
│   │       ├── tsconfig.json
│   │       ├── use-method-usage/
│   │       │   ├── invalid-outside-arrow-fn-inline-value.ts
│   │       │   ├── invalid-outside-arrow-fn-inline.ts
│   │       │   ├── invalid-outside-arrow-fn-return-value.ts
│   │       │   ├── invalid-outside-arrow-fn-return.ts
│   │       │   ├── invalid-outside-arrow-fn.ts
│   │       │   ├── invalid-outside-function.ts
│   │       │   ├── valid-exported-use-methods.ts
│   │       │   ├── valid-exported-use-methonds-can-call-other-use-methods.ts
│   │       │   └── valid-inside-component.tsx
│   │       └── valid-lexical-scope/
│   │           ├── invalid-capture-class.tsx
│   │           ├── invalid-capture-enum.tsx
│   │           ├── invalid-capture-function-event.tsx
│   │           ├── invalid-capture-function.tsx
│   │           ├── invalid-capture-mutable-assignment.tsx
│   │           ├── invalid-capture-symbol.tsx
│   │           ├── invalid-mutable.tsx
│   │           ├── invalid-props-nonserializable-tuple.tsx
│   │           ├── invalid-use-method-factory.tsx
│   │           ├── invalid-use-method-inline.tsx
│   │           ├── valid-capture-jsxoutput.tsx
│   │           ├── valid-capture-signal.tsx
│   │           ├── valid-component-prop-function.tsx
│   │           ├── valid-component-props-click.tsx
│   │           ├── valid-component-props-tuple.tsx
│   │           ├── valid-component-props.tsx
│   │           ├── valid-constant.tsx
│   │           ├── valid-file-scope.tsx
│   │           ├── valid-no-serialize.tsx
│   │           ├── valid-null-value.tsx
│   │           ├── valid-ssr-stream.tsx
│   │           ├── valid-use-doc.tsx
│   │           ├── valid-use-method-factory.tsx
│   │           ├── valid-use-task-getter.tsx
│   │           └── valid-use-task.tsx
│   ├── insights/
│   │   ├── .gitignore
│   │   ├── .node-version
│   │   ├── .npmrc
│   │   ├── .prettierignore
│   │   ├── .vscode/
│   │   │   ├── extensions.json
│   │   │   ├── launch.json
│   │   │   ├── qwik-city.code-snippets
│   │   │   └── qwik.code-snippets
│   │   ├── README.md
│   │   ├── adapters/
│   │   │   └── netlify-edge/
│   │   │       └── vite.config.ts
│   │   ├── drizzle/
│   │   │   ├── 0000_blue_blindfold.sql
│   │   │   ├── 0001_sweet_virginia_dare.sql
│   │   │   ├── 0002_exotic_earthquake.sql
│   │   │   ├── 0003_late_titanium_man.sql
│   │   │   ├── 0004_secret_justice.sql
│   │   │   ├── 0005_cute_marvel_boy.sql
│   │   │   ├── 0006_last_dakota_north.sql
│   │   │   ├── 0007_large_vengeance.sql
│   │   │   ├── 0008_handy_baron_zemo.sql
│   │   │   ├── 0009_flat_celestials.sql
│   │   │   ├── 0010_typical_lockheed.sql
│   │   │   ├── 0011_thin_captain_stacy.sql
│   │   │   ├── 0012_omniscient_leader.sql
│   │   │   ├── 0013_brave_venus.sql
│   │   │   ├── 0014_needy_ben_grimm.sql
│   │   │   ├── 0015_complete_wolf_cub.sql
│   │   │   ├── 0016_demonic_legion.sql
│   │   │   ├── 0017_pink_maestro.sql
│   │   │   ├── 0018_heavy_toad.sql
│   │   │   ├── 0019_known_satana.sql
│   │   │   └── meta/
│   │   │       ├── 0000_snapshot.json
│   │   │       ├── 0001_snapshot.json
│   │   │       ├── 0002_snapshot.json
│   │   │       ├── 0003_snapshot.json
│   │   │       ├── 0004_snapshot.json
│   │   │       ├── 0005_snapshot.json
│   │   │       ├── 0006_snapshot.json
│   │   │       ├── 0007_snapshot.json
│   │   │       ├── 0008_snapshot.json
│   │   │       ├── 0009_snapshot.json
│   │   │       ├── 0010_snapshot.json
│   │   │       ├── 0011_snapshot.json
│   │   │       ├── 0012_snapshot.json
│   │   │       ├── 0013_snapshot.json
│   │   │       ├── 0014_snapshot.json
│   │   │       ├── 0015_snapshot.json
│   │   │       ├── 0016_snapshot.json
│   │   │       ├── 0017_snapshot.json
│   │   │       ├── 0018_snapshot.json
│   │   │       ├── 0019_snapshot.json
│   │   │       └── _journal.json
│   │   ├── drizzle.config.ts
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── _headers
│   │   │   ├── manifest.json
│   │   │   └── robots.txt
│   │   ├── scripts/
│   │   │   └── db.migrate.cjs
│   │   ├── src/
│   │   │   ├── components/
│   │   │   │   ├── app-card/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── avatar/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── bundle/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── button/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── container/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── gauge/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── header/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── histogram/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── icons/
│   │   │   │   │   ├── apps.tsx
│   │   │   │   │   ├── bundle.tsx
│   │   │   │   │   ├── close.tsx
│   │   │   │   │   ├── copy.tsx
│   │   │   │   │   ├── dark-mode.tsx
│   │   │   │   │   ├── dashboard.tsx
│   │   │   │   │   ├── disk.tsx
│   │   │   │   │   ├── edge.tsx
│   │   │   │   │   ├── edit.tsx
│   │   │   │   │   ├── error.tsx
│   │   │   │   │   ├── github.tsx
│   │   │   │   │   ├── light-mode.tsx
│   │   │   │   │   ├── manifest.tsx
│   │   │   │   │   ├── qwik.tsx
│   │   │   │   │   ├── routes.tsx
│   │   │   │   │   ├── slow.tsx
│   │   │   │   │   └── symbol.tsx
│   │   │   │   ├── layout/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── minifest-tile/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── popup-manager/
│   │   │   │   │   └── index.tsx
│   │   │   │   ├── router-head/
│   │   │   │   │   └── router-head.tsx
│   │   │   │   └── symbol-tile/
│   │   │   │       └── index.tsx
│   │   │   ├── db/
│   │   │   │   ├── README.md
│   │   │   │   ├── index.ts
│   │   │   │   ├── logging.ts
│   │   │   │   ├── query-helpers.ts
│   │   │   │   ├── query.ts
│   │   │   │   ├── schema.ts
│   │   │   │   ├── sql-edges.ts
│   │   │   │   ├── sql-manifest.ts
│   │   │   │   ├── sql-routes.ts
│   │   │   │   └── sql-user.ts
│   │   │   ├── entry.dev.tsx
│   │   │   ├── entry.netlify-edge.tsx
│   │   │   ├── entry.preview.tsx
│   │   │   ├── entry.ssr.tsx
│   │   │   ├── global.css
│   │   │   ├── root.tsx
│   │   │   ├── routes/
│   │   │   │   ├── api/
│   │   │   │   │   └── v1/
│   │   │   │   │       └── [publicApiKey]/
│   │   │   │   │           ├── bundles/
│   │   │   │   │           │   ├── bundles.tsx
│   │   │   │   │           │   ├── index.tsx
│   │   │   │   │           │   └── strategy/
│   │   │   │   │           │       └── index.tsx
│   │   │   │   │           ├── layout.ts
│   │   │   │   │           └── post/
│   │   │   │   │               ├── error/
│   │   │   │   │               │   └── index.tsx
│   │   │   │   │               ├── index.tsx
│   │   │   │   │               └── manifest/
│   │   │   │   │                   └── index.tsx
│   │   │   │   ├── app/
│   │   │   │   │   ├── [publicApiKey]/
│   │   │   │   │   │   ├── app.form.tsx
│   │   │   │   │   │   ├── edit/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── errors/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   ├── layout.tsx
│   │   │   │   │   │   ├── manifests/
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   ├── routes/
│   │   │   │   │   │   │   ├── [route]/
│   │   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   │   └── index.tsx
│   │   │   │   │   │   └── symbols/
│   │   │   │   │   │       ├── bundles/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── edge/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       ├── index.tsx
│   │   │   │   │   │       ├── outgoing/
│   │   │   │   │   │       │   └── index.tsx
│   │   │   │   │   │       └── slow/
│   │   │   │   │   │           └── index.tsx
│   │   │   │   │   ├── add/
│   │   │   │   │   │   ├── index.tsx
│   │   │   │   │   │   └── styles.module.css
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── layout.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── plugin@auth.ts
│   │   │   │   ├── plugin@db.ts
│   │   │   │   ├── service-worker.ts
│   │   │   │   └── test/
│   │   │   │       ├── counter/
│   │   │   │       │   └── index.tsx
│   │   │   │       ├── index.tsx
│   │   │   │       └── visible-task/
│   │   │   │           └── index.tsx
│   │   │   ├── routes.config.tsx
│   │   │   ├── routes.gen.d.ts
│   │   │   ├── stats/
│   │   │   │   ├── clustering.unit.ts
│   │   │   │   ├── edges.ts
│   │   │   │   ├── edges.unit.ts
│   │   │   │   ├── vector.ts
│   │   │   │   └── vector.unit.ts
│   │   │   └── types/
│   │   │       └── q-manifest.ts
│   │   ├── tsconfig.json
│   │   ├── vite.config.ts
│   │   └── vitest.config.ts
│   ├── qwik/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── build.d.ts
│   │   ├── global.d.ts
│   │   ├── jsx-dev-runtime.d.ts
│   │   ├── jsx-runtime.d.ts
│   │   ├── loader.d.ts
│   │   ├── optimizer.d.ts
│   │   ├── package.json
│   │   ├── qwik-cli.cjs
│   │   ├── server.d.ts
│   │   ├── src/
│   │   │   ├── api-extractor.json
│   │   │   ├── build/
│   │   │   │   ├── api-extractor.json
│   │   │   │   ├── index.dev.ts
│   │   │   │   ├── index.prod.ts
│   │   │   │   ├── index.ts
│   │   │   │   └── qwik.build.api.md
│   │   │   ├── cli/
│   │   │   │   ├── add/
│   │   │   │   │   ├── print-add-help.ts
│   │   │   │   │   ├── run-add-command.ts
│   │   │   │   │   ├── run-add-interactive.ts
│   │   │   │   │   ├── update-app.ts
│   │   │   │   │   ├── update-files.ts
│   │   │   │   │   ├── update-files.unit.ts
│   │   │   │   │   └── update-vite-config.ts
│   │   │   │   ├── check-client/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── code-mod/
│   │   │   │   │   ├── code-mod.ts
│   │   │   │   │   └── code-mod.unit.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── joke/
│   │   │   │   │   └── run-joke-command.ts
│   │   │   │   ├── migrate-v2/
│   │   │   │   │   ├── rename-import.ts
│   │   │   │   │   ├── replace-package.ts
│   │   │   │   │   ├── run-migration.ts
│   │   │   │   │   ├── tools/
│   │   │   │   │   │   ├── binary-extensions.ts
│   │   │   │   │   │   └── visit-not-ignored-files.ts
│   │   │   │   │   ├── update-configurations.ts
│   │   │   │   │   ├── update-dependencies.ts
│   │   │   │   │   └── versions.ts
│   │   │   │   ├── new/
│   │   │   │   │   ├── print-new-help.ts
│   │   │   │   │   ├── run-new-command.ts
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── qwik.cjs
│   │   │   │   ├── run.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── utils/
│   │   │   │       ├── app-command.ts
│   │   │   │       ├── install-deps.ts
│   │   │   │       ├── integrations.ts
│   │   │   │       ├── log.ts
│   │   │   │       ├── run-build-command.ts
│   │   │   │       ├── templates.ts
│   │   │   │       └── utils.ts
│   │   │   ├── core/
│   │   │   │   ├── api-extractor.json
│   │   │   │   ├── component/
│   │   │   │   │   ├── component.public.ts
│   │   │   │   │   └── component.unit.tsx
│   │   │   │   ├── components/
│   │   │   │   │   └── prefetch.ts
│   │   │   │   ├── container/
│   │   │   │   │   ├── container.ts
│   │   │   │   │   ├── index.html
│   │   │   │   │   ├── pause.ts
│   │   │   │   │   ├── pause.unit.tsx
│   │   │   │   │   ├── render.unit.tsx
│   │   │   │   │   ├── resume.ts
│   │   │   │   │   ├── serializers.ts
│   │   │   │   │   ├── serializers.unit.ts
│   │   │   │   │   └── store.unit.tsx
│   │   │   │   ├── document.ts
│   │   │   │   ├── error/
│   │   │   │   │   ├── assert.ts
│   │   │   │   │   └── error.ts
│   │   │   │   ├── examples.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── internal.ts
│   │   │   │   ├── platform/
│   │   │   │   │   ├── platform.ts
│   │   │   │   │   ├── platform.unit.ts
│   │   │   │   │   ├── readme.md
│   │   │   │   │   └── types.ts
│   │   │   │   ├── preloader/
│   │   │   │   │   ├── bundle-graph.ts
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── preloader.unit.ts
│   │   │   │   │   ├── queue.ts
│   │   │   │   │   └── types.ts
│   │   │   │   ├── qrl/
│   │   │   │   │   ├── inlined-fn.ts
│   │   │   │   │   ├── qrl-class.ts
│   │   │   │   │   ├── qrl.public.ts
│   │   │   │   │   ├── qrl.ts
│   │   │   │   │   └── qrl.unit.ts
│   │   │   │   ├── qwik.core.api.md
│   │   │   │   ├── readme.md
│   │   │   │   ├── render/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── dom/
│   │   │   │   │   │   ├── notify-render.ts
│   │   │   │   │   │   ├── operations.ts
│   │   │   │   │   │   ├── render-dom.ts
│   │   │   │   │   │   ├── render.public.ts
│   │   │   │   │   │   ├── render.unit.tsx
│   │   │   │   │   │   ├── signals.ts
│   │   │   │   │   │   ├── virtual-element.ts
│   │   │   │   │   │   └── visitor.ts
│   │   │   │   │   ├── error-handling.ts
│   │   │   │   │   ├── execute-component.ts
│   │   │   │   │   ├── execute-component.unit.ts
│   │   │   │   │   ├── fast-calls.ts
│   │   │   │   │   ├── jsx/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── factory.ts
│   │   │   │   │   │   ├── factory.unit.ts
│   │   │   │   │   │   ├── jsx-runtime.ts
│   │   │   │   │   │   ├── jsx-runtime.unit.ts
│   │   │   │   │   │   ├── slot.public.ts
│   │   │   │   │   │   ├── types/
│   │   │   │   │   │   │   ├── jsx-generated.ts
│   │   │   │   │   │   │   ├── jsx-node.ts
│   │   │   │   │   │   │   ├── jsx-qwik-attributes.ts
│   │   │   │   │   │   │   ├── jsx-qwik-elements.ts
│   │   │   │   │   │   │   ├── jsx-qwik-events.ts
│   │   │   │   │   │   │   ├── jsx-qwik.ts
│   │   │   │   │   │   │   └── jsx-types.unit.tsx
│   │   │   │   │   │   └── utils.public.ts
│   │   │   │   │   ├── ssr/
│   │   │   │   │   │   ├── render-ssr.ts
│   │   │   │   │   │   └── render-ssr.unit.tsx
│   │   │   │   │   ├── sync-qrl.unit.tsx
│   │   │   │   │   └── types.ts
│   │   │   │   ├── state/
│   │   │   │   │   ├── common.ts
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── context.ts
│   │   │   │   │   ├── listeners.ts
│   │   │   │   │   ├── signal.ts
│   │   │   │   │   └── store.ts
│   │   │   │   ├── style/
│   │   │   │   │   ├── qrl-styles.ts
│   │   │   │   │   ├── scoped-stylesheet.ts
│   │   │   │   │   └── scoped-stylesheet.unit.ts
│   │   │   │   ├── use/
│   │   │   │   │   ├── use-context.ts
│   │   │   │   │   ├── use-core.ts
│   │   │   │   │   ├── use-env-data.ts
│   │   │   │   │   ├── use-error-boundary.ts
│   │   │   │   │   ├── use-id.ts
│   │   │   │   │   ├── use-lexical-scope.public.ts
│   │   │   │   │   ├── use-locale.ts
│   │   │   │   │   ├── use-on.ts
│   │   │   │   │   ├── use-on.unit.ts
│   │   │   │   │   ├── use-resource.ts
│   │   │   │   │   ├── use-sequential-scope.ts
│   │   │   │   │   ├── use-signal.ts
│   │   │   │   │   ├── use-store.public.ts
│   │   │   │   │   ├── use-styles.ts
│   │   │   │   │   ├── use-task.ts
│   │   │   │   │   └── use-task.unit.ts
│   │   │   │   ├── util/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── case.ts
│   │   │   │   │   ├── case.unit.ts
│   │   │   │   │   ├── dom.ts
│   │   │   │   │   ├── element.ts
│   │   │   │   │   ├── event.ts
│   │   │   │   │   ├── flyweight.ts
│   │   │   │   │   ├── hash_code.ts
│   │   │   │   │   ├── implicit_dollar.ts
│   │   │   │   │   ├── log.ts
│   │   │   │   │   ├── markers.ts
│   │   │   │   │   ├── promises.ts
│   │   │   │   │   ├── qdev.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── unitless_number.ts
│   │   │   │   └── version.ts
│   │   │   ├── jsx-runtime.ts
│   │   │   ├── napi/
│   │   │   │   ├── Cargo.toml
│   │   │   │   ├── Cargo.toml.template
│   │   │   │   ├── build.rs
│   │   │   │   ├── napi.config.json
│   │   │   │   ├── src/
│   │   │   │   │   └── lib.rs
│   │   │   │   └── test.cjs
│   │   │   ├── optimizer/
│   │   │   │   ├── api-extractor.json
│   │   │   │   ├── cli/
│   │   │   │   │   ├── Cargo.toml
│   │   │   │   │   └── src/
│   │   │   │   │       └── main.rs
│   │   │   │   ├── core/
│   │   │   │   │   ├── Cargo.toml
│   │   │   │   │   ├── Makefile
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── benches/
│   │   │   │   │   │   └── transform.rs
│   │   │   │   │   └── src/
│   │   │   │   │       ├── add_side_effect.rs
│   │   │   │   │       ├── clean_side_effects.rs
│   │   │   │   │       ├── code_move.rs
│   │   │   │   │       ├── collector.rs
│   │   │   │   │       ├── const_replace.rs
│   │   │   │   │       ├── entry_strategy.rs
│   │   │   │   │       ├── errors.rs
│   │   │   │   │       ├── filter_exports.rs
│   │   │   │   │       ├── fixtures/
│   │   │   │   │       │   └── index.qwik.mjs
│   │   │   │   │       ├── has_branches.rs
│   │   │   │   │       ├── inlined_fn.rs
│   │   │   │   │       ├── is_immutable.rs
│   │   │   │   │       ├── lib.rs
│   │   │   │   │       ├── package_json.rs
│   │   │   │   │       ├── parse.rs
│   │   │   │   │       ├── props_destructuring.rs
│   │   │   │   │       ├── snapshots/
│   │   │   │   │       │   ├── qwik_core__test__example_1.snap
│   │   │   │   │       │   ├── qwik_core__test__example_10.snap
│   │   │   │   │       │   ├── qwik_core__test__example_11.snap
│   │   │   │   │       │   ├── qwik_core__test__example_2.snap
│   │   │   │   │       │   ├── qwik_core__test__example_3.snap
│   │   │   │   │       │   ├── qwik_core__test__example_4.snap
│   │   │   │   │       │   ├── qwik_core__test__example_5.snap
│   │   │   │   │       │   ├── qwik_core__test__example_6.snap
│   │   │   │   │       │   ├── qwik_core__test__example_7.snap
│   │   │   │   │       │   ├── qwik_core__test__example_8.snap
│   │   │   │   │       │   ├── qwik_core__test__example_9.snap
│   │   │   │   │       │   ├── qwik_core__test__example_build_server.snap
│   │   │   │   │       │   ├── qwik_core__test__example_capture_imports.snap
│   │   │   │   │       │   ├── qwik_core__test__example_capturing_fn_class.snap
│   │   │   │   │       │   ├── qwik_core__test__example_class_name.snap
│   │   │   │   │       │   ├── qwik_core__test__example_custom_inlined_functions.snap
│   │   │   │   │       │   ├── qwik_core__test__example_dead_code.snap
│   │   │   │   │       │   ├── qwik_core__test__example_default_export.snap
│   │   │   │   │       │   ├── qwik_core__test__example_default_export_index.snap
│   │   │   │   │       │   ├── qwik_core__test__example_default_export_invalid_ident.snap
│   │   │   │   │       │   ├── qwik_core__test__example_derived_signals_children.snap
│   │   │   │   │       │   ├── qwik_core__test__example_derived_signals_cmp.snap
│   │   │   │   │       │   ├── qwik_core__test__example_derived_signals_complext_children.snap
│   │   │   │   │       │   ├── qwik_core__test__example_derived_signals_div.snap
│   │   │   │   │       │   ├── qwik_core__test__example_derived_signals_multiple_children.snap
│   │   │   │   │       │   ├── qwik_core__test__example_dev_mode.snap
│   │   │   │   │       │   ├── qwik_core__test__example_dev_mode_inlined.snap
│   │   │   │   │       │   ├── qwik_core__test__example_drop_side_effects.snap
│   │   │   │   │       │   ├── qwik_core__test__example_explicit_ext_no_transpile.snap
│   │   │   │   │       │   ├── qwik_core__test__example_explicit_ext_transpile.snap
│   │   │   │   │       │   ├── qwik_core__test__example_export_issue.snap
│   │   │   │   │       │   ├── qwik_core__test__example_exports.snap
│   │   │   │   │       │   ├── qwik_core__test__example_fix_dynamic_import.snap
│   │   │   │   │       │   ├── qwik_core__test__example_functional_component.snap
│   │   │   │   │       │   ├── qwik_core__test__example_functional_component_2.snap
│   │   │   │   │       │   ├── qwik_core__test__example_functional_component_capture_props.snap
│   │   │   │   │       │   ├── qwik_core__test__example_getter_generation.snap
│   │   │   │   │       │   ├── qwik_core__test__example_immutable_analysis.snap
│   │   │   │   │       │   ├── qwik_core__test__example_immutable_function_components.snap
│   │   │   │   │       │   ├── qwik_core__test__example_import_assertion.snap
│   │   │   │   │       │   ├── qwik_core__test__example_inlined_entry_strategy.snap
│   │   │   │   │       │   ├── qwik_core__test__example_input_bind.snap
│   │   │   │   │       │   ├── qwik_core__test__example_invalid_references.snap
│   │   │   │   │       │   ├── qwik_core__test__example_invalid_segment_expr1.snap
│   │   │   │   │       │   ├── qwik_core__test__example_issue_33443.snap
│   │   │   │   │       │   ├── qwik_core__test__example_issue_4438.snap
│   │   │   │   │       │   ├── qwik_core__test__example_jsx.snap
│   │   │   │   │       │   ├── qwik_core__test__example_jsx_import_source.snap
│   │   │   │   │       │   ├── qwik_core__test__example_jsx_keyed.snap
│   │   │   │   │       │   ├── qwik_core__test__example_jsx_keyed_dev.snap
│   │   │   │   │       │   ├── qwik_core__test__example_jsx_listeners.snap
│   │   │   │   │       │   ├── qwik_core__test__example_lightweight_functional.snap
│   │   │   │   │       │   ├── qwik_core__test__example_manual_chunks.snap
│   │   │   │   │       │   ├── qwik_core__test__example_missing_custom_inlined_functions.snap
│   │   │   │   │       │   ├── qwik_core__test__example_multi_capture.snap
│   │   │   │   │       │   ├── qwik_core__test__example_mutable_children.snap
│   │   │   │   │       │   ├── qwik_core__test__example_noop_dev_mode.snap
│   │   │   │   │       │   ├── qwik_core__test__example_of_synchronous_qrl.snap
│   │   │   │   │       │   ├── qwik_core__test__example_optimization_issue_3542.snap
│   │   │   │   │       │   ├── qwik_core__test__example_optimization_issue_3561.snap
│   │   │   │   │       │   ├── qwik_core__test__example_optimization_issue_3795.snap
│   │   │   │   │       │   ├── qwik_core__test__example_optimization_issue_4386.snap
│   │   │   │   │       │   ├── qwik_core__test__example_parsed_inlined_qrls.snap
│   │   │   │   │       │   ├── qwik_core__test__example_preserve_filenames.snap
│   │   │   │   │       │   ├── qwik_core__test__example_preserve_filenames_segments.snap
│   │   │   │   │       │   ├── qwik_core__test__example_prod_node.snap
│   │   │   │   │       │   ├── qwik_core__test__example_props_optimization.snap
│   │   │   │   │       │   ├── qwik_core__test__example_qwik_conflict.snap
│   │   │   │   │       │   ├── qwik_core__test__example_qwik_react.snap
│   │   │   │   │       │   ├── qwik_core__test__example_qwik_react_inline.snap
│   │   │   │   │       │   ├── qwik_core__test__example_qwik_sdk_inline.snap
│   │   │   │   │       │   ├── qwik_core__test__example_reg_ctx_name_segments.snap
│   │   │   │   │       │   ├── qwik_core__test__example_reg_ctx_name_segments_hoisted.snap
│   │   │   │   │       │   ├── qwik_core__test__example_reg_ctx_name_segments_inlined.snap
│   │   │   │   │       │   ├── qwik_core__test__example_renamed_exports.snap
│   │   │   │   │       │   ├── qwik_core__test__example_server_auth.snap
│   │   │   │   │       │   ├── qwik_core__test__example_skip_transform.snap
│   │   │   │   │       │   ├── qwik_core__test__example_spread_jsx.snap
│   │   │   │   │       │   ├── qwik_core__test__example_strip_client_code.snap
│   │   │   │   │       │   ├── qwik_core__test__example_strip_exports_unused.snap
│   │   │   │   │       │   ├── qwik_core__test__example_strip_exports_used.snap
│   │   │   │   │       │   ├── qwik_core__test__example_strip_server_code.snap
│   │   │   │   │       │   ├── qwik_core__test__example_transpile_jsx_only.snap
│   │   │   │   │       │   ├── qwik_core__test__example_transpile_ts_only.snap
│   │   │   │   │       │   ├── qwik_core__test__example_ts_enums.snap
│   │   │   │   │       │   ├── qwik_core__test__example_ts_enums_issue_1341.snap
│   │   │   │   │       │   ├── qwik_core__test__example_ts_enums_no_transpile.snap
│   │   │   │   │       │   ├── qwik_core__test__example_use_client_effect.snap
│   │   │   │   │       │   ├── qwik_core__test__example_use_optimization.snap
│   │   │   │   │       │   ├── qwik_core__test__example_use_server_mount.snap
│   │   │   │   │       │   ├── qwik_core__test__example_with_style.snap
│   │   │   │   │       │   ├── qwik_core__test__example_with_tagname.snap
│   │   │   │   │       │   ├── qwik_core__test__impure_template_fns.snap
│   │   │   │   │       │   ├── qwik_core__test__issue_117.snap
│   │   │   │   │       │   ├── qwik_core__test__issue_150.snap
│   │   │   │   │       │   ├── qwik_core__test__issue_476.snap
│   │   │   │   │       │   ├── qwik_core__test__issue_5008.snap
│   │   │   │   │       │   ├── qwik_core__test__issue_964.snap
│   │   │   │   │       │   ├── qwik_core__test__lib_mode_fn_signal.snap
│   │   │   │   │       │   ├── qwik_core__test__relative_paths.snap
│   │   │   │   │       │   ├── qwik_core__test__special_jsx.snap
│   │   │   │   │       │   └── qwik_core__test__support_windows_paths.snap
│   │   │   │   │       ├── test.rs
│   │   │   │   │       ├── transform.rs
│   │   │   │   │       ├── utils.rs
│   │   │   │   │       └── words.rs
│   │   │   │   └── src/
│   │   │   │       ├── index.ts
│   │   │   │       ├── manifest.ts
│   │   │   │       ├── optimizer.ts
│   │   │   │       ├── path.ts
│   │   │   │       ├── platform.ts
│   │   │   │       ├── plugins/
│   │   │   │       │   ├── bundle-graph.ts
│   │   │   │       │   ├── bundle-graph.unit.ts
│   │   │   │       │   ├── click-to-component.html
│   │   │   │       │   ├── error-host.html
│   │   │   │       │   ├── eslint-plugin.ts
│   │   │   │       │   ├── fixture-output-bundles.json
│   │   │   │       │   ├── image-size-runtime.html
│   │   │   │       │   ├── image-size-server.ts
│   │   │   │       │   ├── perf-warning.html
│   │   │   │       │   ├── plugin.ts
│   │   │   │       │   ├── plugin.unit.ts
│   │   │   │       │   ├── rollup.ts
│   │   │   │       │   ├── rollup.unit.ts
│   │   │   │       │   ├── utils.ts
│   │   │   │       │   ├── vite-dev-server.ts
│   │   │   │       │   ├── vite-dev-server.unit.ts
│   │   │   │       │   ├── vite-error.ts
│   │   │   │       │   ├── vite-utils.ts
│   │   │   │       │   ├── vite.ts
│   │   │   │       │   └── vite.unit.ts
│   │   │   │       ├── qwik-binding-map.ts
│   │   │   │       ├── qwik.optimizer.api.md
│   │   │   │       ├── scripts.ts
│   │   │   │       ├── types.ts
│   │   │   │       └── versions.ts
│   │   │   ├── qwikloader.ts
│   │   │   ├── qwikloader.unit.ts
│   │   │   ├── server/
│   │   │   │   ├── api-extractor.json
│   │   │   │   ├── index.ts
│   │   │   │   ├── platform.ts
│   │   │   │   ├── platform.unit.ts
│   │   │   │   ├── preload-impl.ts
│   │   │   │   ├── preload-strategy.ts
│   │   │   │   ├── preload-utils.ts
│   │   │   │   ├── preload-utils.unit.ts
│   │   │   │   ├── preloading.md
│   │   │   │   ├── qwik.server.api.md
│   │   │   │   ├── render.ts
│   │   │   │   ├── scripts.ts
│   │   │   │   ├── server-modules.d.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── utils.ts
│   │   │   ├── testing/
│   │   │   │   ├── README.md
│   │   │   │   ├── api-extractor.json
│   │   │   │   ├── document.ts
│   │   │   │   ├── document.unit.ts
│   │   │   │   ├── element-fixture.ts
│   │   │   │   ├── expect-dom.tsx
│   │   │   │   ├── html.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── library.ts
│   │   │   │   ├── platform.ts
│   │   │   │   ├── qwik.testing.api.md
│   │   │   │   ├── types.ts
│   │   │   │   ├── util.ts
│   │   │   │   └── util.unit.ts
│   │   │   └── wasm/
│   │   │       ├── Cargo.toml
│   │   │       └── src/
│   │   │           └── lib.rs
│   │   ├── testing.d.ts
│   │   ├── tsconfig.json
│   │   └── tsdoc.json
│   ├── qwik-auth/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   └── vite.config.ts
│   ├── qwik-city/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── adapters/
│   │   │   ├── azure-swa/
│   │   │   │   └── vite.d.ts
│   │   │   ├── bun-server/
│   │   │   │   └── vite.d.ts
│   │   │   ├── cloud-run/
│   │   │   │   └── vite.d.ts
│   │   │   ├── cloudflare-pages/
│   │   │   │   └── vite.d.ts
│   │   │   ├── deno-server/
│   │   │   │   └── vite.d.ts
│   │   │   ├── netlify-edge/
│   │   │   │   └── vite.d.ts
│   │   │   ├── node-server/
│   │   │   │   └── vite.d.ts
│   │   │   ├── shared/
│   │   │   │   └── vite.d.ts
│   │   │   ├── static/
│   │   │   │   └── vite.d.ts
│   │   │   └── vercel-edge/
│   │   │       └── vite.d.ts
│   │   ├── global.d.ts
│   │   ├── index.d.ts
│   │   ├── middleware/
│   │   │   ├── aws-lambda.d.ts
│   │   │   ├── azure-swa.d.ts
│   │   │   ├── bun.d.ts
│   │   │   ├── cloudflare-pages.d.ts
│   │   │   ├── deno.d.ts
│   │   │   ├── firebase.d.ts
│   │   │   ├── netlify-edge.d.ts
│   │   │   ├── node.d.ts
│   │   │   ├── request-handler.d.ts
│   │   │   └── vercel-edge.d.ts
│   │   ├── modules.d.ts
│   │   ├── package.json
│   │   ├── service-worker.d.ts
│   │   ├── src/
│   │   │   ├── adapters/
│   │   │   │   ├── azure-swa/
│   │   │   │   │   ├── adapter.azure-swa.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       └── index.ts
│   │   │   │   ├── bun-server/
│   │   │   │   │   ├── adapter.bun-server.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       └── index.ts
│   │   │   │   ├── cloud-run/
│   │   │   │   │   ├── adapter.cloud-run.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       └── index.ts
│   │   │   │   ├── cloudflare-pages/
│   │   │   │   │   ├── adapter.cloudflare-pages.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       └── index.ts
│   │   │   │   ├── deno-server/
│   │   │   │   │   ├── adapter.deno-server.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       └── index.ts
│   │   │   │   ├── netlify-edge/
│   │   │   │   │   ├── adapter.netlify-edge.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       └── index.ts
│   │   │   │   ├── node-server/
│   │   │   │   │   ├── adapter.node-server.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       └── index.ts
│   │   │   │   ├── shared/
│   │   │   │   │   ├── adapter.shared.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       ├── index.ts
│   │   │   │   │       └── post-build.ts
│   │   │   │   ├── static/
│   │   │   │   │   ├── adapter.static.api.md
│   │   │   │   │   └── vite/
│   │   │   │   │       ├── api-extractor.json
│   │   │   │   │       └── index.ts
│   │   │   │   └── vercel-edge/
│   │   │   │       ├── adapter.vercel-edge.api.md
│   │   │   │       └── vite/
│   │   │   │           ├── api-extractor.json
│   │   │   │           └── index.ts
│   │   │   ├── api-extractor.json
│   │   │   ├── buildtime/
│   │   │   │   ├── build-endpoints.unit.ts
│   │   │   │   ├── build-layout.unit.ts
│   │   │   │   ├── build-menus.unit.ts
│   │   │   │   ├── build-pages-rewrited.unit.ts
│   │   │   │   ├── build-pages.unit.ts
│   │   │   │   ├── build.ts
│   │   │   │   ├── context.ts
│   │   │   │   ├── markdown/
│   │   │   │   │   ├── frontmatter.ts
│   │   │   │   │   ├── frontmatter.unit.ts
│   │   │   │   │   ├── markdown-url.ts
│   │   │   │   │   ├── markdown-url.unit.ts
│   │   │   │   │   ├── mdx.ts
│   │   │   │   │   ├── mdx.unit.ts
│   │   │   │   │   ├── menu.ts
│   │   │   │   │   ├── menu.unit.ts
│   │   │   │   │   ├── rehype.ts
│   │   │   │   │   └── syntax-highlight.ts
│   │   │   │   ├── routing/
│   │   │   │   │   ├── parse-pathname.ts
│   │   │   │   │   ├── parse-pathname.unit.ts
│   │   │   │   │   ├── resolve-source-file.ts
│   │   │   │   │   ├── resolve-source-file.unit.ts
│   │   │   │   │   ├── sort-routes.ts
│   │   │   │   │   ├── sort-routes.unit.ts
│   │   │   │   │   ├── source-file.ts
│   │   │   │   │   ├── source-file.unit.ts
│   │   │   │   │   ├── walk-routes-dir.ts
│   │   │   │   │   └── walk-server-plugins.ts
│   │   │   │   ├── runtime-generation/
│   │   │   │   │   ├── generate-entries.ts
│   │   │   │   │   ├── generate-menus.ts
│   │   │   │   │   ├── generate-qwik-city-plan.ts
│   │   │   │   │   ├── generate-routes.ts
│   │   │   │   │   ├── generate-server-plugins.ts
│   │   │   │   │   ├── generate-service-worker.ts
│   │   │   │   │   ├── sw-register-build.ts
│   │   │   │   │   └── utils.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── vite/
│   │   │   │       ├── api-extractor.json
│   │   │   │       ├── config.ts
│   │   │   │       ├── dev-server.ts
│   │   │   │       ├── format-error.ts
│   │   │   │       ├── get-route-imports.ts
│   │   │   │       ├── get-route-imports.unit.ts
│   │   │   │       ├── image-jsx.ts
│   │   │   │       ├── image-jsx.unit.ts
│   │   │   │       ├── index.ts
│   │   │   │       ├── plugin.ts
│   │   │   │       ├── qwik-city.buildtime.api.md
│   │   │   │       ├── types.ts
│   │   │   │       └── validate-plugin.ts
│   │   │   ├── middleware/
│   │   │   │   ├── aws-lambda/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── middleware.aws-lambda.api.md
│   │   │   │   ├── azure-swa/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── middleware.azure-swa.api.md
│   │   │   │   ├── bun/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── middleware.bun.api.md
│   │   │   │   ├── cloudflare-pages/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── middleware.cloudflare-pages.api.md
│   │   │   │   ├── deno/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── middleware.deno.api.md
│   │   │   │   ├── firebase/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── middleware.firebase.api.md
│   │   │   │   ├── netlify-edge/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── middleware.netlify-edge.api.md
│   │   │   │   ├── node/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── http.ts
│   │   │   │   │   ├── http.unit.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── middleware.node.api.md
│   │   │   │   │   └── node-fetch.ts
│   │   │   │   ├── request-handler/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── cache-control.ts
│   │   │   │   │   ├── cookie.ts
│   │   │   │   │   ├── cookie.unit.ts
│   │   │   │   │   ├── error-handler.ts
│   │   │   │   │   ├── form-parsing.unit.ts
│   │   │   │   │   ├── generated/
│   │   │   │   │   │   ├── not-found-paths.ts
│   │   │   │   │   │   └── static-paths.ts
│   │   │   │   │   ├── http-status-codes.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── middleware.request-handler.api.md
│   │   │   │   │   ├── mime-types.ts
│   │   │   │   │   ├── polyfill.ts
│   │   │   │   │   ├── polyfill.unit.ts
│   │   │   │   │   ├── redirect-handler.ts
│   │   │   │   │   ├── request-event.ts
│   │   │   │   │   ├── request-event.unit.ts
│   │   │   │   │   ├── request-handler.ts
│   │   │   │   │   ├── resolve-request-handlers.ts
│   │   │   │   │   ├── resolve-request-handlers.unit.ts
│   │   │   │   │   ├── response-page.ts
│   │   │   │   │   ├── rewrite-handler.ts
│   │   │   │   │   ├── server-error.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── user-response.ts
│   │   │   │   └── vercel-edge/
│   │   │   │       ├── api-extractor.json
│   │   │   │       ├── index.ts
│   │   │   │       └── middleware.vercel-edge.api.md
│   │   │   ├── runtime/
│   │   │   │   ├── src/
│   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   ├── client-navigate.ts
│   │   │   │   │   ├── client-navigate.unit.ts
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── contexts.ts
│   │   │   │   │   ├── error-boundary.tsx
│   │   │   │   │   ├── form-component.tsx
│   │   │   │   │   ├── head.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── link-component.tsx
│   │   │   │   │   ├── qwik-city-component.tsx
│   │   │   │   │   ├── qwik-city-plan.ts
│   │   │   │   │   ├── qwik-city.runtime.api.md
│   │   │   │   │   ├── route-matcher.ts
│   │   │   │   │   ├── route-matcher.unit.ts
│   │   │   │   │   ├── router-outlet-component.tsx
│   │   │   │   │   ├── routing.ts
│   │   │   │   │   ├── routing.unit.ts
│   │   │   │   │   ├── scroll-restoration.ts
│   │   │   │   │   ├── server-functions.ts
│   │   │   │   │   ├── server-functions.unit.ts
│   │   │   │   │   ├── service-worker/
│   │   │   │   │   │   ├── api-extractor.json
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── qwik-city.service-worker.api.md
│   │   │   │   │   ├── spa-init.ts
│   │   │   │   │   ├── sw-component.tsx
│   │   │   │   │   ├── sw-register-runtime.ts
│   │   │   │   │   ├── sw-register.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   ├── use-endpoint.ts
│   │   │   │   │   ├── use-functions.ts
│   │   │   │   │   ├── utils.ts
│   │   │   │   │   └── utils.unit.ts
│   │   │   │   └── vite.config.mts
│   │   │   ├── static/
│   │   │   │   ├── api-extractor.json
│   │   │   │   ├── extract-params.ts
│   │   │   │   ├── extract-params.unit.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── main-thread.ts
│   │   │   │   ├── node/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── node-main.ts
│   │   │   │   │   ├── node-system.ts
│   │   │   │   │   └── node-worker.ts
│   │   │   │   ├── not-found.ts
│   │   │   │   ├── qwik-city.static.api.md
│   │   │   │   ├── routes.ts
│   │   │   │   ├── types.ts
│   │   │   │   └── worker-thread.ts
│   │   │   └── utils/
│   │   │       ├── format.ts
│   │   │       ├── format.unit.ts
│   │   │       ├── fs.ts
│   │   │       ├── fs.unit.ts
│   │   │       ├── pathname.ts
│   │   │       ├── pathname.unit.ts
│   │   │       └── test-suite.ts
│   │   ├── static.d.ts
│   │   ├── tsconfig.json
│   │   └── vite.d.ts
│   ├── qwik-dom/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   └── package.json
│   ├── qwik-labs/
│   │   ├── .gitignore
│   │   ├── .prettierignore
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── devtools/
│   │   │   │   ├── index.ts
│   │   │   │   └── json.ts
│   │   │   ├── entry.dev.tsx
│   │   │   ├── entry.ssr.tsx
│   │   │   ├── index.ts
│   │   │   ├── insights/
│   │   │   │   └── index.tsx
│   │   │   ├── qwik-types/
│   │   │   │   ├── index.ts
│   │   │   │   └── public-api.ts
│   │   │   └── root.tsx
│   │   ├── src-vite/
│   │   │   ├── index.ts
│   │   │   ├── insights/
│   │   │   │   └── index.ts
│   │   │   └── qwik-types/
│   │   │       ├── generator.ts
│   │   │       ├── index.ts
│   │   │       ├── prettify.ts
│   │   │       └── vite.ts
│   │   ├── tsconfig-vite.json
│   │   ├── tsconfig.json
│   │   ├── vite.config-src-vite.mts
│   │   └── vite.config.mts
│   ├── qwik-react/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── api-extractor.json
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── api-extractor.json
│   │   │   ├── entry.dev.tsx
│   │   │   ├── entry.ssr.tsx
│   │   │   ├── examples/
│   │   │   │   └── app.tsx
│   │   │   ├── index.qwik.ts
│   │   │   ├── react/
│   │   │   │   ├── client.tsx
│   │   │   │   ├── qwikify.tsx
│   │   │   │   ├── server-render.tsx
│   │   │   │   ├── slot.ts
│   │   │   │   └── types.ts
│   │   │   ├── root.tsx
│   │   │   └── vite.ts
│   │   ├── vite.config.mts
│   │   └── vite.d.ts
│   ├── qwik-worker/
│   │   ├── .npmignore
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   └── worker.js
│   │   └── vite.config.ts
│   └── supabase-auth-helpers-qwik/
│       ├── README.md
│       ├── package.json
│       ├── src/
│       │   ├── ambient.d.ts
│       │   ├── index.ts
│       │   └── utils/
│       │       ├── createBrowserClient.ts
│       │       └── createServerClient.ts
│       └── vite.config.ts
├── patches/
│   ├── density-clustering@1.3.0.patch
│   └── domino@2.1.6.patch
├── pnpm-workspace.yaml
├── rust-toolchain
├── rustfmt.toml
├── scripts/
│   ├── api-docs.ts
│   ├── api.ts
│   ├── binding-platform.ts
│   ├── binding-wasm.ts
│   ├── build-clean.ts
│   ├── build.ts
│   ├── compiled-string-plugin.ts
│   ├── create-qwik-cli.ts
│   ├── docs_sync/
│   │   ├── fetch_hackmd.ts
│   │   ├── index.ts
│   │   ├── main.ts
│   │   └── util.ts
│   ├── e2e-cli.ts
│   ├── eslint-docs.ts
│   ├── eslint.ts
│   ├── index.ts
│   ├── link-local-package.ts
│   ├── package-json.ts
│   ├── qwik-auth.ts
│   ├── qwik-city.ts
│   ├── qwik-labs.ts
│   ├── qwik-push-build-repos.ts
│   ├── qwik-react.ts
│   ├── qwik-worker.ts
│   ├── release.ts
│   ├── runBefore.ts
│   ├── submodule-build.ts
│   ├── submodule-cli.ts
│   ├── submodule-core.ts
│   ├── submodule-optimizer.ts
│   ├── submodule-preloader.ts
│   ├── submodule-qwikloader.ts
│   ├── submodule-server.ts
│   ├── submodule-testing.ts
│   ├── supabase-auth-helpers.ts
│   ├── tools/
│   │   └── preinstall-script.js
│   ├── tsc-docs.ts
│   ├── tsc.ts
│   ├── types.d.ts
│   ├── update-qwik-builds.ts
│   ├── util.ts
│   ├── validate-build.ts
│   └── validate-cli.ts
├── starters/
│   ├── .gitignore
│   ├── .prettierrc.json
│   ├── README.md
│   ├── adapters/
│   │   ├── aws-lambda/
│   │   │   ├── .eslintignore
│   │   │   ├── .prettierignore
│   │   │   ├── adapters/
│   │   │   │   └── aws-lambda/
│   │   │   │       └── vite.config.ts
│   │   │   ├── gitignore
│   │   │   ├── package.json
│   │   │   ├── serverless.yml
│   │   │   └── src/
│   │   │       └── entry_aws-lambda.tsx
│   │   ├── azure-swa/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── azure-swa/
│   │   │   │       └── vite.config.ts
│   │   │   ├── azure-functions/
│   │   │   │   └── host.json
│   │   │   ├── gitignore
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   └── staticwebapp.config.json
│   │   │   ├── src/
│   │   │   │   └── entry.azure-swa.tsx
│   │   │   └── swa-cli.config.json
│   │   ├── bun/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── bun/
│   │   │   │       └── vite.config.ts
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── entry.bun.ts
│   │   ├── cloud-run/
│   │   │   ├── Dockerfile
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── cloud-run/
│   │   │   │       └── vite.config.ts
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── entry.cloud-run.tsx
│   │   ├── cloudflare-pages/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── cloudflare-pages/
│   │   │   │       └── vite.config.ts
│   │   │   ├── gitignore
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   ├── _headers
│   │   │   │   └── _redirects
│   │   │   └── src/
│   │   │       └── entry.cloudflare-pages.tsx
│   │   ├── cloudflare-workers/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── cloudflare-workers/
│   │   │   │       └── vite.config.ts
│   │   │   ├── gitignore
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   ├── .assetsignore
│   │   │   │   ├── _headers
│   │   │   │   └── _redirects
│   │   │   ├── src/
│   │   │   │   └── entry.cloudflare-pages.tsx
│   │   │   ├── worker-configuration.d.ts
│   │   │   └── wrangler.jsonc
│   │   ├── deno/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── deno/
│   │   │   │       └── vite.config.ts
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── entry.deno.ts
│   │   ├── express/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── express/
│   │   │   │       └── vite.config.ts
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── entry.express.tsx
│   │   ├── fastify/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── fastify/
│   │   │   │       └── vite.config.ts
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── entry.fastify.tsx
│   │   │       └── plugins/
│   │   │           └── fastify-qwik.ts
│   │   ├── firebase/
│   │   │   ├── .eslintignore
│   │   │   ├── .prettierignore
│   │   │   ├── adapters/
│   │   │   │   └── firebase/
│   │   │   │       └── vite.config.ts
│   │   │   ├── firebase.json
│   │   │   ├── functions/
│   │   │   │   ├── .gitkeep
│   │   │   │   ├── index.js
│   │   │   │   └── package.json
│   │   │   ├── gitignore
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── entry-firebase.tsx
│   │   ├── netlify-edge/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── netlify-edge/
│   │   │   │       └── vite.config.ts
│   │   │   ├── gitignore
│   │   │   ├── netlify.toml
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   └── _headers
│   │   │   └── src/
│   │   │       └── entry.netlify-edge.tsx
│   │   ├── node-server/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── node-server/
│   │   │   │       └── vite.config.ts
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── entry.node-server.tsx
│   │   ├── static/
│   │   │   ├── README.md
│   │   │   ├── adapters/
│   │   │   │   └── static/
│   │   │   │       └── vite.config.ts
│   │   │   └── package.json
│   │   └── vercel-edge/
│   │       ├── README.md
│   │       ├── adapters/
│   │       │   └── vercel-edge/
│   │       │       └── vite.config.ts
│   │       ├── gitignore
│   │       ├── package.json
│   │       ├── src/
│   │       │   └── entry.vercel-edge.tsx
│   │       └── vercel.json
│   ├── apps/
│   │   ├── base/
│   │   │   ├── .npmrc
│   │   │   ├── .prettierignore
│   │   │   ├── .vscode/
│   │   │   │   ├── extensions.json
│   │   │   │   ├── launch.json
│   │   │   │   ├── qwik-city.code-snippets
│   │   │   │   ├── qwik.code-snippets
│   │   │   │   └── settings.json
│   │   │   ├── README.md
│   │   │   ├── eslint.config.js
│   │   │   ├── gitignore
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   ├── manifest.json
│   │   │   │   └── robots.txt
│   │   │   ├── qwik.env.d.ts
│   │   │   ├── src/
│   │   │   │   ├── entry.dev.tsx
│   │   │   │   ├── entry.preview.tsx
│   │   │   │   ├── entry.ssr.tsx
│   │   │   │   └── global.css
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── e2e/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   ├── async/
│   │   │       │   │   └── async.tsx
│   │   │       │   ├── attributes/
│   │   │       │   │   └── attributes.tsx
│   │   │       │   ├── broadcast-events/
│   │   │       │   │   └── broadcast-event.tsx
│   │   │       │   ├── build-variables/
│   │   │       │   │   └── build.tsx
│   │   │       │   ├── computed/
│   │   │       │   │   └── computed.tsx
│   │   │       │   ├── containers/
│   │   │       │   │   └── container.tsx
│   │   │       │   ├── context/
│   │   │       │   │   └── context.tsx
│   │   │       │   ├── effect-client/
│   │   │       │   │   └── effect-client.tsx
│   │   │       │   ├── events/
│   │   │       │   │   ├── events-client.tsx
│   │   │       │   │   └── events.tsx
│   │   │       │   ├── factory/
│   │   │       │   │   ├── factory.tsx
│   │   │       │   │   └── utils.tsx
│   │   │       │   ├── lexical-scope/
│   │   │       │   │   └── lexicalScope.tsx
│   │   │       │   ├── mount/
│   │   │       │   │   └── mount.tsx
│   │   │       │   ├── no-resume/
│   │   │       │   │   └── no-resume.tsx
│   │   │       │   ├── ref/
│   │   │       │   │   └── ref.tsx
│   │   │       │   ├── render/
│   │   │       │   │   └── render.tsx
│   │   │       │   ├── resource/
│   │   │       │   │   ├── resource-fn.tsx
│   │   │       │   │   ├── resource-serialization.tsx
│   │   │       │   │   ├── resource.tsx
│   │   │       │   │   └── weather.tsx
│   │   │       │   ├── resuming/
│   │   │       │   │   ├── resuming.tsx
│   │   │       │   │   └── sync-qrl.tsx
│   │   │       │   ├── signals/
│   │   │       │   │   ├── Issue_5001.tsx
│   │   │       │   │   ├── signals.tsx
│   │   │       │   │   └── utils/
│   │   │       │   │       └── utils.tsx
│   │   │       │   ├── slot/
│   │   │       │   │   ├── slot-remove.tsx
│   │   │       │   │   └── slot.tsx
│   │   │       │   ├── streaming/
│   │   │       │   │   ├── demo.tsx
│   │   │       │   │   └── streaming.tsx
│   │   │       │   ├── styles/
│   │   │       │   │   ├── child.css
│   │   │       │   │   ├── child2.css
│   │   │       │   │   ├── empty.css
│   │   │       │   │   ├── parent.css
│   │   │       │   │   ├── parent2.css
│   │   │       │   │   └── styles.tsx
│   │   │       │   ├── toggle/
│   │   │       │   │   └── toggle.tsx
│   │   │       │   ├── treeshaking/
│   │   │       │   │   └── treeshaking.tsx
│   │   │       │   ├── two-listeners/
│   │   │       │   │   └── twolisteners.tsx
│   │   │       │   ├── useid/
│   │   │       │   │   └── useid.tsx
│   │   │       │   └── watch/
│   │   │       │       └── watch.tsx
│   │   │       ├── entry.ssr.tsx
│   │   │       ├── global.css
│   │   │       └── root.tsx
│   │   ├── e2e-library/
│   │   │   └── package.json
│   │   ├── empty/
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   ├── manifest.json
│   │   │   │   └── robots.txt
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   └── router-head/
│   │   │       │       └── router-head.tsx
│   │   │       ├── global.css
│   │   │       ├── root.tsx
│   │   │       └── routes/
│   │   │           └── index.tsx
│   │   ├── library/
│   │   │   ├── .prettierignore
│   │   │   ├── README.md
│   │   │   ├── eslint.config.js
│   │   │   ├── gitignore
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── counter/
│   │   │   │   │   │   └── counter.tsx
│   │   │   │   │   └── logo/
│   │   │   │   │       └── logo.tsx
│   │   │   │   ├── entry.dev.tsx
│   │   │   │   ├── entry.ssr.tsx
│   │   │   │   ├── index.ts
│   │   │   │   └── root.tsx
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── perf.prod/
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   └── app/
│   │   │   │   │       └── app.tsx
│   │   │   │   ├── entry.express.tsx
│   │   │   │   ├── entry.ssr.tsx
│   │   │   │   ├── global.css
│   │   │   │   └── root.tsx
│   │   │   └── vite.config.mts
│   │   ├── playground/
│   │   │   ├── package.json
│   │   │   ├── public/
│   │   │   │   ├── manifest.json
│   │   │   │   └── robots.txt
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   ├── router-head/
│   │   │       │   │   └── router-head.tsx
│   │   │       │   └── starter/
│   │   │       │       ├── counter/
│   │   │       │       │   ├── counter.module.css
│   │   │       │       │   └── counter.tsx
│   │   │       │       ├── footer/
│   │   │       │       │   ├── footer.module.css
│   │   │       │       │   └── footer.tsx
│   │   │       │       ├── gauge/
│   │   │       │       │   ├── gauge.module.css
│   │   │       │       │   └── index.tsx
│   │   │       │       ├── header/
│   │   │       │       │   ├── header.module.css
│   │   │       │       │   └── header.tsx
│   │   │       │       ├── hero/
│   │   │       │       │   ├── hero.module.css
│   │   │       │       │   └── hero.tsx
│   │   │       │       ├── icons/
│   │   │       │       │   └── qwik.tsx
│   │   │       │       ├── infobox/
│   │   │       │       │   ├── infobox.module.css
│   │   │       │       │   └── infobox.tsx
│   │   │       │       └── next-steps/
│   │   │       │           ├── next-steps.module.css
│   │   │       │           └── next-steps.tsx
│   │   │       ├── global.css
│   │   │       ├── root.tsx
│   │   │       └── routes/
│   │   │           ├── demo/
│   │   │           │   ├── flower/
│   │   │           │   │   ├── flower.css
│   │   │           │   │   └── index.tsx
│   │   │           │   └── todolist/
│   │   │           │       ├── index.tsx
│   │   │           │       └── todolist.module.css
│   │   │           ├── index.tsx
│   │   │           ├── layout.tsx
│   │   │           └── styles.css
│   │   ├── preloader-test/
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── components/
│   │   │   │   │   ├── generated/
│   │   │   │   │   │   ├── counter1.tsx
│   │   │   │   │   │   ├── counter10.tsx
│   │   │   │   │   │   ├── counter100.tsx
│   │   │   │   │   │   ├── counter11.tsx
│   │   │   │   │   │   ├── counter12.tsx
│   │   │   │   │   │   ├── counter13.tsx
│   │   │   │   │   │   ├── counter14.tsx
│   │   │   │   │   │   ├── counter15.tsx
│   │   │   │   │   │   ├── counter16.tsx
│   │   │   │   │   │   ├── counter17.tsx
│   │   │   │   │   │   ├── counter18.tsx
│   │   │   │   │   │   ├── counter19.tsx
│   │   │   │   │   │   ├── counter2.tsx
│   │   │   │   │   │   ├── counter20.tsx
│   │   │   │   │   │   ├── counter21.tsx
│   │   │   │   │   │   ├── counter22.tsx
│   │   │   │   │   │   ├── counter23.tsx
│   │   │   │   │   │   ├── counter24.tsx
│   │   │   │   │   │   ├── counter25.tsx
│   │   │   │   │   │   ├── counter26.tsx
│   │   │   │   │   │   ├── counter27.tsx
│   │   │   │   │   │   ├── counter28.tsx
│   │   │   │   │   │   ├── counter29.tsx
│   │   │   │   │   │   ├── counter3.tsx
│   │   │   │   │   │   ├── counter30.tsx
│   │   │   │   │   │   ├── counter31.tsx
│   │   │   │   │   │   ├── counter32.tsx
│   │   │   │   │   │   ├── counter33.tsx
│   │   │   │   │   │   ├── counter34.tsx
│   │   │   │   │   │   ├── counter35.tsx
│   │   │   │   │   │   ├── counter36.tsx
│   │   │   │   │   │   ├── counter37.tsx
│   │   │   │   │   │   ├── counter38.tsx
│   │   │   │   │   │   ├── counter39.tsx
│   │   │   │   │   │   ├── counter4.tsx
│   │   │   │   │   │   ├── counter40.tsx
│   │   │   │   │   │   ├── counter41.tsx
│   │   │   │   │   │   ├── counter42.tsx
│   │   │   │   │   │   ├── counter43.tsx
│   │   │   │   │   │   ├── counter44.tsx
│   │   │   │   │   │   ├── counter45.tsx
│   │   │   │   │   │   ├── counter46.tsx
│   │   │   │   │   │   ├── counter47.tsx
│   │   │   │   │   │   ├── counter48.tsx
│   │   │   │   │   │   ├── counter49.tsx
│   │   │   │   │   │   ├── counter5.tsx
│   │   │   │   │   │   ├── counter50.tsx
│   │   │   │   │   │   ├── counter51.tsx
│   │   │   │   │   │   ├── counter52.tsx
│   │   │   │   │   │   ├── counter53.tsx
│   │   │   │   │   │   ├── counter54.tsx
│   │   │   │   │   │   ├── counter55.tsx
│   │   │   │   │   │   ├── counter56.tsx
│   │   │   │   │   │   ├── counter57.tsx
│   │   │   │   │   │   ├── counter58.tsx
│   │   │   │   │   │   ├── counter59.tsx
│   │   │   │   │   │   ├── counter6.tsx
│   │   │   │   │   │   ├── counter60.tsx
│   │   │   │   │   │   ├── counter61.tsx
│   │   │   │   │   │   ├── counter62.tsx
│   │   │   │   │   │   ├── counter63.tsx
│   │   │   │   │   │   ├── counter64.tsx
│   │   │   │   │   │   ├── counter65.tsx
│   │   │   │   │   │   ├── counter66.tsx
│   │   │   │   │   │   ├── counter67.tsx
│   │   │   │   │   │   ├── counter68.tsx
│   │   │   │   │   │   ├── counter69.tsx
│   │   │   │   │   │   ├── counter7.tsx
│   │   │   │   │   │   ├── counter70.tsx
│   │   │   │   │   │   ├── counter71.tsx
│   │   │   │   │   │   ├── counter72.tsx
│   │   │   │   │   │   ├── counter73.tsx
│   │   │   │   │   │   ├── counter74.tsx
│   │   │   │   │   │   ├── counter75.tsx
│   │   │   │   │   │   ├── counter76.tsx
│   │   │   │   │   │   ├── counter77.tsx
│   │   │   │   │   │   ├── counter78.tsx
│   │   │   │   │   │   ├── counter79.tsx
│   │   │   │   │   │   ├── counter8.tsx
│   │   │   │   │   │   ├── counter80.tsx
│   │   │   │   │   │   ├── counter81.tsx
│   │   │   │   │   │   ├── counter82.tsx
│   │   │   │   │   │   ├── counter83.tsx
│   │   │   │   │   │   ├── counter84.tsx
│   │   │   │   │   │   ├── counter85.tsx
│   │   │   │   │   │   ├── counter86.tsx
│   │   │   │   │   │   ├── counter87.tsx
│   │   │   │   │   │   ├── counter88.tsx
│   │   │   │   │   │   ├── counter89.tsx
│   │   │   │   │   │   ├── counter9.tsx
│   │   │   │   │   │   ├── counter90.tsx
│   │   │   │   │   │   ├── counter91.tsx
│   │   │   │   │   │   ├── counter92.tsx
│   │   │   │   │   │   ├── counter93.tsx
│   │   │   │   │   │   ├── counter94.tsx
│   │   │   │   │   │   ├── counter95.tsx
│   │   │   │   │   │   ├── counter96.tsx
│   │   │   │   │   │   ├── counter97.tsx
│   │   │   │   │   │   ├── counter98.tsx
│   │   │   │   │   │   ├── counter99.tsx
│   │   │   │   │   │   ├── dynamic1.tsx
│   │   │   │   │   │   ├── dynamic2.tsx
│   │   │   │   │   │   ├── dynamic3.tsx
│   │   │   │   │   │   ├── dynamic4.tsx
│   │   │   │   │   │   ├── dynamic5.tsx
│   │   │   │   │   │   ├── dynamic6.tsx
│   │   │   │   │   │   ├── dynamic7.tsx
│   │   │   │   │   │   ├── dynamic8.tsx
│   │   │   │   │   │   ├── dynamic9.tsx
│   │   │   │   │   │   └── show-dynamic.tsx
│   │   │   │   │   └── router-head/
│   │   │   │   │       └── router-head.tsx
│   │   │   │   ├── entry.dev.tsx
│   │   │   │   ├── entry.preview.tsx
│   │   │   │   ├── entry.ssr.tsx
│   │   │   │   ├── global.css
│   │   │   │   ├── root.tsx
│   │   │   │   ├── routes/
│   │   │   │   │   ├── about/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── counters/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── form/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── hidden/
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── layout.tsx
│   │   │   │   └── vendor-lib/
│   │   │   │       ├── helper.ts
│   │   │   │       ├── libA.ts
│   │   │   │       └── libB.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── qwikcity-test/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── auth/
│   │   │       │   └── auth.ts
│   │   │       ├── components/
│   │   │       │   ├── action/
│   │   │       │   │   └── action.tsx
│   │   │       │   ├── breadcrumbs/
│   │   │       │   │   ├── breadcrumbs.css
│   │   │       │   │   └── breadcrumbs.tsx
│   │   │       │   ├── content-nav/
│   │   │       │   │   ├── content-nav.css
│   │   │       │   │   └── content-nav.tsx
│   │   │       │   ├── footer/
│   │   │       │   │   ├── footer.css
│   │   │       │   │   └── footer.tsx
│   │   │       │   ├── header/
│   │   │       │   │   ├── header.css
│   │   │       │   │   └── header.tsx
│   │   │       │   ├── menu/
│   │   │       │   │   ├── menu.css
│   │   │       │   │   └── menu.tsx
│   │   │       │   ├── provider/
│   │   │       │   │   └── provider.tsx
│   │   │       │   └── router-head/
│   │   │       │       ├── router-head.tsx
│   │   │       │       ├── social.tsx
│   │   │       │       └── vendor.tsx
│   │   │       ├── entry.ssr.tsx
│   │   │       ├── global.css
│   │   │       ├── root.tsx
│   │   │       └── routes/
│   │   │           ├── (common)/
│   │   │           │   ├── (auth)/
│   │   │           │   │   ├── layout.css
│   │   │           │   │   ├── layout.tsx
│   │   │           │   │   ├── sign-in/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   └── sign-out/
│   │   │           │   │       └── index.tsx
│   │   │           │   ├── [...catchall]/
│   │   │           │   │   └── index.tsx
│   │   │           │   ├── [country]/
│   │   │           │   │   └── [city]/
│   │   │           │   │       └── index.tsx
│   │   │           │   ├── about-us/
│   │   │           │   │   └── index.tsx
│   │   │           │   ├── actions/
│   │   │           │   │   ├── actions.module.css
│   │   │           │   │   ├── index.tsx
│   │   │           │   │   ├── issue3183/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── issue3497/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── issue4444/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── issue5065/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── issue5463/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── login.tsx
│   │   │           │   │   ├── multiple-handlers/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   └── validated/
│   │   │           │   │       └── index.tsx
│   │   │           │   ├── api/
│   │   │           │   │   ├── [org]/
│   │   │           │   │   │   └── [user].json/
│   │   │           │   │   │       └── index.ts
│   │   │           │   │   ├── data.json/
│   │   │           │   │   │   └── index.ts
│   │   │           │   │   ├── index@api.tsx
│   │   │           │   │   ├── layout-api.css
│   │   │           │   │   └── layout-api.tsx
│   │   │           │   ├── blog/
│   │   │           │   │   ├── [...slug]/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── index.md
│   │   │           │   │   └── layout.tsx
│   │   │           │   ├── index.tsx
│   │   │           │   ├── issue2644/
│   │   │           │   │   ├── data.ts
│   │   │           │   │   ├── index.tsx
│   │   │           │   │   └── other/
│   │   │           │   │       └── index.tsx
│   │   │           │   ├── issue2878/
│   │   │           │   │   └── [...slug]/
│   │   │           │   │       └── index.tsx
│   │   │           │   ├── layout.tsx
│   │   │           │   ├── loaders/
│   │   │           │   │   ├── [id]/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── issue3979/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   └── loader-error/
│   │   │           │   │       ├── index.tsx
│   │   │           │   │       └── uncaught-server/
│   │   │           │   │           └── index.tsx
│   │   │           │   ├── location/
│   │   │           │   │   └── index.tsx
│   │   │           │   ├── mit/
│   │   │           │   │   └── index!.tsx
│   │   │           │   ├── products/
│   │   │           │   │   ├── 404.tsx
│   │   │           │   │   └── [id]/
│   │   │           │   │       └── index.tsx
│   │   │           │   ├── server-func/
│   │   │           │   │   ├── context/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── cookie/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── index.tsx
│   │   │           │   │   ├── resource/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   ├── server-configs/
│   │   │           │   │   │   └── index.tsx
│   │   │           │   │   └── server-error/
│   │   │           │   │       ├── index.tsx
│   │   │           │   │       ├── loader/
│   │   │           │   │       │   └── index.tsx
│   │   │           │   │       └── primitive/
│   │   │           │   │           └── index.tsx
│   │   │           │   ├── streaming/
│   │   │           │   │   └── index.tsx
│   │   │           │   └── treeshaking/
│   │   │           │       └── index.tsx
│   │   │           ├── action-redirect-without-search-params/
│   │   │           │   └── index.tsx
│   │   │           ├── action-redirect-without-search-params-target/
│   │   │           │   └── index.tsx
│   │   │           ├── dashboard/
│   │   │           │   ├── dashboard.css
│   │   │           │   ├── index.tsx
│   │   │           │   ├── layout.tsx
│   │   │           │   ├── profile/
│   │   │           │   │   └── index.tsx
│   │   │           │   └── settings/
│   │   │           │       └── index.tsx
│   │   │           ├── docs/
│   │   │           │   ├── [category]/
│   │   │           │   │   └── [id]/
│   │   │           │   │       └── index.tsx
│   │   │           │   ├── getting-started/
│   │   │           │   │   └── index.md
│   │   │           │   ├── index.tsx
│   │   │           │   ├── layout.css
│   │   │           │   ├── layout.tsx
│   │   │           │   ├── menu.md
│   │   │           │   └── overview/
│   │   │           │       └── index.md
│   │   │           ├── error/
│   │   │           │   └── index.tsx
│   │   │           ├── issue-loader/
│   │   │           │   ├── action.tsx
│   │   │           │   └── index.tsx
│   │   │           ├── issue-loader-serialization/
│   │   │           │   ├── action.tsx
│   │   │           │   └── index.tsx
│   │   │           ├── issue-route-with-search-params-and-action-redirect-without-search-params/
│   │   │           │   ├── action-redirect-without-search-params/
│   │   │           │   │   └── index.tsx
│   │   │           │   └── action-redirect-without-search-params-target/
│   │   │           │       └── index.tsx
│   │   │           ├── issue2441/
│   │   │           │   ├── abc.endpoint/
│   │   │           │   │   └── index.ts
│   │   │           │   └── abc.page/
│   │   │           │       └── index.tsx
│   │   │           ├── issue2829/
│   │   │           │   ├── a/
│   │   │           │   │   └── index.tsx
│   │   │           │   └── b/
│   │   │           │       └── index.tsx
│   │   │           ├── issue2890/
│   │   │           │   ├── a/
│   │   │           │   │   └── index.tsx
│   │   │           │   └── b/
│   │   │           │       └── index.tsx
│   │   │           ├── issue3438/
│   │   │           │   └── عربي/
│   │   │           │       └── index.mdx
│   │   │           ├── issue4100/
│   │   │           │   └── index.tsx
│   │   │           ├── issue4502/
│   │   │           │   ├── broken/
│   │   │           │   │   ├── index.tsx
│   │   │           │   │   └── route/
│   │   │           │   │       └── index.tsx
│   │   │           │   ├── index.tsx
│   │   │           │   └── layout.tsx
│   │   │           ├── issue4531/
│   │   │           │   ├── index.tsx
│   │   │           │   └── layout.tsx
│   │   │           ├── issue4679/
│   │   │           │   └── index.tsx
│   │   │           ├── issue4792/
│   │   │           │   └── index.tsx
│   │   │           ├── issue4956/
│   │   │           │   └── index.tsx
│   │   │           ├── issue5665/
│   │   │           │   └── projects/
│   │   │           │       └── index.tsx
│   │   │           ├── issue6660/
│   │   │           │   └── index.tsx
│   │   │           ├── issue7182/
│   │   │           │   └── index.tsx
│   │   │           ├── issue7254/
│   │   │           │   └── index.tsx
│   │   │           ├── issue7732/
│   │   │           │   ├── a/
│   │   │           │   │   └── index.tsx
│   │   │           │   ├── b/
│   │   │           │   │   └── index.tsx
│   │   │           │   ├── c/
│   │   │           │   │   └── index.tsx
│   │   │           │   └── layout.tsx
│   │   │           ├── layout.tsx
│   │   │           ├── locale/
│   │   │           │   └── index.tsx
│   │   │           ├── mdx/
│   │   │           │   └── index.mdx
│   │   │           ├── plugin@errors.tsx
│   │   │           ├── plugin@header.ts
│   │   │           ├── plugin@issue4722.tsx
│   │   │           ├── plugin@redirect.ts
│   │   │           ├── prevent-navigate/
│   │   │           │   ├── [id]/
│   │   │           │   │   └── index.tsx
│   │   │           │   ├── index.tsx
│   │   │           │   └── layout.tsx
│   │   │           ├── produkt/
│   │   │           │   └── index.tsx
│   │   │           ├── scroll-restoration/
│   │   │           │   ├── hash/
│   │   │           │   │   └── index.tsx
│   │   │           │   ├── layout.tsx
│   │   │           │   ├── page-long/
│   │   │           │   │   └── index.tsx
│   │   │           │   └── page-short/
│   │   │           │       └── index.tsx
│   │   │           ├── search-params-redirect/
│   │   │           │   └── index.tsx
│   │   │           └── some-code.js/
│   │   │               └── entry.ts
│   │   ├── qwikcity-test.prod/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   └── router-head/
│   │   │       │       ├── router-head.tsx
│   │   │       │       ├── social.tsx
│   │   │       │       └── vendor.tsx
│   │   │       ├── entry.ssr.tsx
│   │   │       ├── global.css
│   │   │       ├── root.tsx
│   │   │       └── routes/
│   │   │           ├── index.tsx
│   │   │           └── server-function/
│   │   │               └── index.tsx
│   │   ├── starter-partytown-test/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   └── app/
│   │   │       │       └── app.tsx
│   │   │       ├── entry.ssr.tsx
│   │   │       ├── global.css
│   │   │       └── root.tsx
│   │   ├── todo-old-test/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   ├── app/
│   │   │       │   │   ├── app.tsx
│   │   │       │   │   ├── base.css
│   │   │       │   │   └── index.css
│   │   │       │   ├── body/
│   │   │       │   │   └── body.tsx
│   │   │       │   ├── footer/
│   │   │       │   │   └── footer.tsx
│   │   │       │   ├── header/
│   │   │       │   │   └── header.tsx
│   │   │       │   └── item/
│   │   │       │       └── item.tsx
│   │   │       ├── entry.dev.tsx
│   │   │       ├── entry.ssr.tsx
│   │   │       ├── root.tsx
│   │   │       └── state/
│   │   │           └── state.ts
│   │   └── todo-test/
│   │       ├── package.json
│   │       └── src/
│   │           ├── components/
│   │           │   ├── app/
│   │           │   │   ├── app.tsx
│   │           │   │   ├── base.css
│   │           │   │   └── index.css
│   │           │   ├── body/
│   │           │   │   └── body.tsx
│   │           │   ├── footer/
│   │           │   │   └── footer.tsx
│   │           │   ├── header/
│   │           │   │   └── header.tsx
│   │           │   └── item/
│   │           │       └── item.tsx
│   │           ├── entry.ssr.tsx
│   │           ├── root.tsx
│   │           └── state/
│   │               └── state.ts
│   ├── dev-server.ts
│   ├── e2e/
│   │   ├── e2e.attributes.spec.ts
│   │   ├── e2e.build-variables.spec.ts
│   │   ├── e2e.computed.spec.ts
│   │   ├── e2e.containers.spec.ts
│   │   ├── e2e.context.spec.ts
│   │   ├── e2e.effect-client.spec.ts
│   │   ├── e2e.events.spec.ts
│   │   ├── e2e.factory.spec.ts
│   │   ├── e2e.lexical-scope.spec.ts
│   │   ├── e2e.mount.spec.ts
│   │   ├── e2e.noresume.spec.ts
│   │   ├── e2e.ref.spec.ts
│   │   ├── e2e.render.spec.ts
│   │   ├── e2e.resource.spec.ts
│   │   ├── e2e.resuming.spec.ts
│   │   ├── e2e.signals.spec.ts
│   │   ├── e2e.slot.spec.ts
│   │   ├── e2e.streaming.spec.ts
│   │   ├── e2e.style.spec.ts
│   │   ├── e2e.sync-qrl.spec.ts
│   │   ├── e2e.toggle.spec.ts
│   │   ├── e2e.two-listeners.spec.ts
│   │   ├── e2e.use-id.spec.ts
│   │   ├── e2e.watch.spec.ts
│   │   ├── global.d.ts
│   │   ├── qwikcity/
│   │   │   ├── actions.spec.ts
│   │   │   ├── adapter.spec.ts
│   │   │   ├── api.spec.ts
│   │   │   ├── auth.spec.ts
│   │   │   ├── catchall.spec.ts
│   │   │   ├── error.spec.ts
│   │   │   ├── fallback.spec.ts
│   │   │   ├── loaders.spec.ts
│   │   │   ├── locale.spec.ts
│   │   │   ├── location.spec.ts
│   │   │   ├── mdx.spec.ts
│   │   │   ├── menu.spec.ts
│   │   │   ├── nav.spec.ts
│   │   │   ├── page.spec.ts
│   │   │   ├── resource.spec.ts
│   │   │   ├── server.spec.ts
│   │   │   ├── url.spec.ts
│   │   │   └── util.ts
│   │   ├── starter-partytown.spec.ts
│   │   ├── todo-old.spec.ts
│   │   └── todo.spec.ts
│   ├── features/
│   │   ├── auth/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── routes/
│   │   │           └── plugin@auth.ts
│   │   ├── bootstrap/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   └── bootstrap/
│   │   │       │       ├── alert.tsx
│   │   │       │       ├── button.tsx
│   │   │       │       ├── index.ts
│   │   │       │       ├── navbar.tsx
│   │   │       │       └── spinner.tsx
│   │   │       ├── constants/
│   │   │       │   └── data.ts
│   │   │       ├── models/
│   │   │       │   └── bootstrap.ts
│   │   │       └── routes/
│   │   │           └── bootstrap/
│   │   │               ├── alerts/
│   │   │               │   └── index.tsx
│   │   │               ├── buttons/
│   │   │               │   └── index.tsx
│   │   │               ├── index.tsx
│   │   │               ├── layout.tsx
│   │   │               └── spinners/
│   │   │                   └── index.tsx
│   │   ├── builder.io/
│   │   │   ├── README.md
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   ├── builder-registry.ts
│   │   │       │   ├── counter/
│   │   │       │   │   ├── counter.module.css
│   │   │       │   │   └── counter.tsx
│   │   │       │   └── gauge/
│   │   │       │       ├── gauge.module.css
│   │   │       │       └── index.tsx
│   │   │       └── routes/
│   │   │           └── [...index]/
│   │   │               └── index.tsx
│   │   ├── compiled-i18n/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   └── locale-selector/
│   │   │       │       └── locale-selector.tsx
│   │   │       ├── entry.ssr.tsx
│   │   │       └── routes/
│   │   │           └── plugin@compiled-i18n.ts
│   │   ├── cypress/
│   │   │   ├── cypress/
│   │   │   │   ├── fixtures/
│   │   │   │   │   └── example.json
│   │   │   │   ├── support/
│   │   │   │   │   ├── commands.ts
│   │   │   │   │   ├── component-index.html
│   │   │   │   │   └── component.ts
│   │   │   │   └── tsconfig.cy.json
│   │   │   ├── cypress.config.ts
│   │   │   ├── cypress.d.ts
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── actions/
│   │   │       │   └── example.action.ts
│   │   │       ├── components/
│   │   │       │   └── example/
│   │   │       │       ├── example.cy.tsx
│   │   │       │       └── example.tsx
│   │   │       └── loaders/
│   │   │           └── example.loader.ts
│   │   ├── drizzle/
│   │   │   ├── drizzle/
│   │   │   │   ├── db/
│   │   │   │   │   └── .gitkeep
│   │   │   │   ├── migrations/
│   │   │   │   │   └── .gitkeep
│   │   │   │   └── schema.ts
│   │   │   ├── drizzle.config.ts
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── routes/
│   │   │           ├── create/
│   │   │           │   └── index.tsx
│   │   │           └── users/
│   │   │               ├── [userId]/
│   │   │               │   └── index.tsx
│   │   │               └── index.tsx
│   │   ├── leaflet-map/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── components/
│   │   │       │   └── leaflet-map/
│   │   │       │       └── index.tsx
│   │   │       ├── helpers/
│   │   │       │   └── boundary-box.tsx
│   │   │       ├── models/
│   │   │       │   ├── location.ts
│   │   │       │   └── map.ts
│   │   │       └── routes/
│   │   │           └── basic-map/
│   │   │               └── index.tsx
│   │   ├── orama/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── orama/
│   │   │       │   └── index.ts
│   │   │       └── routes/
│   │   │           └── orama/
│   │   │               └── index.tsx
│   │   ├── pandacss/
│   │   │   ├── .eslintignore
│   │   │   ├── .prettierignore
│   │   │   ├── gitignore
│   │   │   ├── package.json
│   │   │   ├── panda.config.ts
│   │   │   ├── postcss.config.js
│   │   │   └── src/
│   │   │       ├── global.css
│   │   │       └── routes/
│   │   │           └── pandacss/
│   │   │               └── index.tsx
│   │   ├── partytown/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── components/
│   │   │           └── partytown/
│   │   │               └── partytown.tsx
│   │   ├── playwright/
│   │   │   ├── package.json
│   │   │   ├── playwright.config.ts
│   │   │   └── tests/
│   │   │       └── example.spec.ts
│   │   ├── postcss/
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── package.json
│   │   │   └── postcss.config.js
│   │   ├── prisma/
│   │   │   ├── package.json
│   │   │   ├── prisma/
│   │   │   │   └── schema.prisma
│   │   │   └── src/
│   │   │       └── routes/
│   │   │           ├── create/
│   │   │           │   └── index.tsx
│   │   │           └── users/
│   │   │               ├── [userId]/
│   │   │               │   └── index.tsx
│   │   │               └── index.tsx
│   │   ├── react/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       ├── integrations/
│   │   │       │   └── react/
│   │   │       │       └── mui.tsx
│   │   │       └── routes/
│   │   │           └── react/
│   │   │               └── index.tsx
│   │   ├── service-worker/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── routes/
│   │   │           └── service-worker.ts
│   │   ├── storybook/
│   │   │   ├── .storybook/
│   │   │   │   ├── main.ts
│   │   │   │   ├── preview-head.html
│   │   │   │   ├── preview.tsx
│   │   │   │   └── tsconfig.json
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── components/
│   │   │           └── button/
│   │   │               ├── button.stories.tsx
│   │   │               └── button.tsx
│   │   ├── styled-vanilla-extract/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── routes/
│   │   │           └── styled-flower/
│   │   │               ├── flower.css.ts
│   │   │               └── index.tsx
│   │   ├── tailwind/
│   │   │   ├── package.json
│   │   │   ├── prettier.config.js
│   │   │   └── src/
│   │   │       └── global.css
│   │   ├── tailwind-v3/
│   │   │   ├── .vscode/
│   │   │   │   └── settings.json
│   │   │   ├── package.json
│   │   │   ├── postcss.config.cjs
│   │   │   ├── prettier.config.js
│   │   │   ├── src/
│   │   │   │   └── global.css
│   │   │   └── tailwind.config.js
│   │   ├── turso/
│   │   │   ├── package.json
│   │   │   └── src/
│   │   │       └── utils/
│   │   │           └── turso.ts
│   │   └── vitest/
│   │       ├── package.json
│   │       └── src/
│   │           └── components/
│   │               └── example/
│   │                   ├── example.spec.tsx
│   │                   └── example.tsx
│   ├── playwright.config.ts
│   └── templates/
│       ├── barrel/
│       │   ├── component/
│       │   │   └── index.tsx.template
│       │   ├── markdown/
│       │   │   └── index.md.template
│       │   ├── mdx/
│       │   │   └── index.mdx.template
│       │   └── route/
│       │       └── index.tsx.template
│       └── qwik/
│           ├── component/
│           │   └── [slug].tsx.template
│           ├── markdown/
│           │   └── index.md.template
│           ├── mdx/
│           │   └── index.mdx.template
│           └── route/
│               └── index.tsx.template
├── syncpack-release-conf.json
├── tsconfig-docs.json
├── tsconfig.json
├── tsconfig.scripts.json
├── types.d.ts
├── vitest-setup.ts
├── vitest.config.ts
└── vitest.workspace.js
Download .txt
Showing preview only (279K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (2990 symbols across 696 files)

FILE: .changeset/changelog-github-custom.cjs
  function adopt (line 19) | function adopt(value) {
  function fulfilled (line 27) | function fulfilled(value) {
  function rejected (line 34) | function rejected(value) {
  function step (line 41) | function step(result) {
  function verb (line 71) | function verb(n) {
  function step (line 76) | function step(op) {

FILE: @types/deno.d.ts
  type FsFile (line 7) | interface FsFile {

FILE: e2e/adapters-e2e/src/entry.express.tsx
  type QwikCityPlatform (line 20) | type QwikCityPlatform = PlatformNode;
  constant PORT (line 28) | const PORT = process.env.PORT ?? 3000;

FILE: e2e/adapters-e2e/vite.config.ts
  type PkgDep (line 11) | type PkgDep = Record<string, string>;
  function errorOnDuplicatesPkgDeps (line 75) | function errorOnDuplicatesPkgDeps(devDependencies: PkgDep, dependencies:...

FILE: e2e/qwik-cli-e2e/tests/serve.spec.ts
  constant SERVE_PORT (line 17) | let SERVE_PORT = 3535;
  function expectHtmlOnARootPage (line 116) | async function expectHtmlOnARootPage(host: string) {

FILE: e2e/qwik-cli-e2e/utils/index.ts
  type QwikProjectType (line 10) | type QwikProjectType = 'playground' | 'library' | 'empty';
  function scaffoldQwikProject (line 11) | function scaffoldQwikProject(type: QwikProjectType): {
  function cleanup (line 36) | function cleanup(tmpDir: string) {
  function getTmpDirSync (line 41) | function getTmpDirSync(tmpDirOverride?: string) {
  function runCreateQwikCommand (line 61) | function runCreateQwikCommand(tmpDir: string, type: 'playground' | 'libr...
  function replacePackagesWithLocalOnes (line 69) | function replacePackagesWithLocalOnes(tmpDir: string) {
  function patchPackageJsonForPlugin (line 83) | function patchPackageJsonForPlugin(tmpDirName: string, npmPackageName: s...
  function registerExecutedChildProcess (line 90) | function registerExecutedChildProcess(process: ChildProcess) {
  function runCommandUntil (line 99) | function runCommandUntil(
  function stripConsoleColors (line 134) | function stripConsoleColors(log: string): string {
  function getPageHtml (line 142) | async function getPageHtml(pageUrl: string): Promise<Document> {
  function assertHostUnused (line 147) | async function assertHostUnused(host: string): Promise<void> {
  function killAllRegisteredProcesses (line 174) | async function killAllRegisteredProcesses() {
  function _computeWorkspaceRoot (line 188) | function _computeWorkspaceRoot(cwd: string) {
  function log (line 203) | function log(text: string) {
  constant DEFAULT_TIMEOUT (line 208) | const DEFAULT_TIMEOUT = process.env.CI ? 120000 : 30000;

FILE: e2e/qwik-cli-e2e/utils/setup.ts
  function ensurePackageBuilt (line 20) | function ensurePackageBuilt() {
  function packPackages (line 27) | function packPackages() {

FILE: e2e/qwik-react-e2e/src/components/counter/index.tsx
  type IProps (line 5) | interface IProps {
  function Counter (line 10) | function Counter({ onMount, onUnmount }: IProps) {

FILE: e2e/qwik-react-e2e/src/entry.express.tsx
  type QwikCityPlatform (line 20) | type QwikCityPlatform = PlatformNode;
  constant PORT (line 28) | const PORT = process.env.PORT ?? 3000;

FILE: e2e/qwik-react-e2e/vite.config.ts
  type PkgDep (line 12) | type PkgDep = Record<string, string>;
  function errorOnDuplicatesPkgDeps (line 76) | function errorOnDuplicatesPkgDeps(devDependencies: PkgDep, dependencies:...

FILE: packages/create-qwik/index.ts
  function runCli (line 7) | async function runCli() {
  function checkNodeVersion (line 26) | function checkNodeVersion() {

FILE: packages/create-qwik/src/create-app-facade.ts
  function createAppFacade (line 7) | async function createAppFacade(opts: CreateAppOptions): Promise<CreateAp...

FILE: packages/create-qwik/src/create-app.ts
  type Options (line 8) | type Options = {
  type CreateFromStarterOptions (line 15) | type CreateFromStarterOptions = {
  function isValidOption (line 22) | function isValidOption(value: any) {
  function validateOptions (line 26) | function validateOptions(opts: Options) {
  function createApp (line 36) | async function createApp(opts: Options): Promise<CreateAppResult> {
  function createFromStarter (line 52) | async function createFromStarter({

FILE: packages/create-qwik/src/helpers/installDepsCli.ts
  type Sinner (line 3) | type Sinner = ReturnType<typeof spinner>;
  type Params (line 5) | type Params = {
  function installDepsCli (line 10) | async function installDepsCli(fn: () => Promise<boolean>, { pkgManager, ...

FILE: packages/create-qwik/src/helpers/jokes.ts
  function getRandomJoke (line 3) | function getRandomJoke() {

FILE: packages/create-qwik/src/helpers/logAppCreated.ts
  function logAppCreated (line 9) | function logAppCreated(pkgManager: string, result: CreateAppResult, ranI...

FILE: packages/create-qwik/src/helpers/resolveRelativeDir.ts
  function resolveRelativeDir (line 4) | function resolveRelativeDir(dir: string) {

FILE: packages/create-qwik/src/helpers/templateManager.ts
  constant LIBRARY_ID (line 7) | const LIBRARY_ID = 'library';
  constant BASE_ID (line 8) | const BASE_ID = 'base';
  class AppNotFoundError (line 10) | class AppNotFoundError extends Error {
    method constructor (line 11) | constructor(id: string, templates: IntegrationData[]) {
  function getAppById (line 28) | function getAppById(
  function getBaseApp (line 38) | function getBaseApp(): IntegrationData | undefined {
  function getBootstrapApps (line 42) | function getBootstrapApps(id: string): {
  type TemplateManager (line 81) | type TemplateManager = Awaited<ReturnType<typeof makeTemplateManager>>;

FILE: packages/create-qwik/src/run-create-cli.ts
  type Args (line 16) | type Args = {
  function parseArgs (line 23) | function parseArgs(args: string[], templates: string[]) {
  function runCreateCli (line 56) | async function runCreateCli(...args: string[]): Promise<CreateAppResult> {
  function writeToCwd (line 106) | function writeToCwd() {
  function isStackBlitz (line 110) | function isStackBlitz() {

FILE: packages/create-qwik/src/run-create-interactive-cli.ts
  function runCreateInteractiveCli (line 18) | async function runCreateInteractiveCli(): Promise<CreateAppResult> {

FILE: packages/create-qwik/src/types.ts
  type Args (line 1) | type Args = {

FILE: packages/docs/codesandbox.sync.ts
  function scanFiles (line 4) | function scanFiles(
  function mdxFiles (line 20) | function mdxFiles(path: string) {
  function transformFile (line 24) | function transformFile(
  function readFile (line 33) | function readFile(path: string) {
  function findCodeSandboxes (line 43) | function findCodeSandboxes(
  function syncCodeSandboxes (line 88) | function syncCodeSandboxes(path: string) {
  function syncCodeSandbox (line 92) | function syncCodeSandbox(mdxPath: string, srcPath: string, lines: string...

FILE: packages/docs/contributors.ts
  constant PRIVATE_GITHUB_ACCESS_TOKEN (line 9) | const PRIVATE_GITHUB_ACCESS_TOKEN =
  function updateContributors (line 12) | async function updateContributors() {
  function updateDocsDir (line 17) | async function updateDocsDir(dir: string) {
  function updateGithubCommits (line 32) | async function updateGithubCommits(filePath: string) {

FILE: packages/docs/public/builder/med.js
  function updateQueryParam (line 16) | function updateQueryParam(uri,key,value){if(uri === void 0){uri = '';}va...
  function tryAppendWidth (line 16) | function tryAppendWidth(url){var match = url.match(/[?&]width=(\d+)/);va...
  function a (line 38) | function a(e) {
  function u (line 46) | function u(e) {
  function l (line 54) | function l(e) {
  function u (line 86) | function u(i) {
  function main (line 156) | function main() {

FILE: packages/docs/public/builder/qwik-0.100.0.js
  function f (line 8) | function f(e){if(t&&!i(e))throw console.error("Not a Qwik Element, got",...
  function d (line 8) | function d(e){if(t&&!s(e))throw console.error("Not a Element, got",e),ne...
  method importSymbol (line 8) | importSymbol(e,t,n){if(!t)throw x(31,n);if(!e)throw x(30,t,n);const o=P(...
  function N (line 8) | function N(e,n,...o){if(t){if(null!=e)return;throw $(n,...o)}}
  function z (line 8) | function z(e,n,o,...r){if(t){if(e===n)return;throw $(o,...r)}}
  function A (line 8) | function A(e,n,...o){if(t){if(!0===e)return;throw $(n,...o)}}
  function _ (line 8) | function _(e,n,...o){if(t){if("number"==typeof e)return;throw $(n,...o)}}
  function He (line 8) | function He(e){return function(e){return e&&"number"==typeof e.nodeType}...
  class Ye (line 8) | class Ye{}
  class Ze (line 8) | class Ze extends Ye{constructor(e,t,n){super(),this[Ve]=0,this.untracked...
    method constructor (line 8) | constructor(e,t,n){super(),this[Ve]=0,this.untrackedValue=e,this[Ue]=t...
    method valueOf (line 8) | valueOf(){throw new TypeError("Cannot coerce a Signal, use `.value` in...
    method toString (line 8) | toString(){return`[Signal ${String(this.value)}]`}
    method toJSON (line 8) | toJSON(){return{value:this.value}}
    method value (line 8) | get value(){if(2&this[Be])throw Ge;const e=yt()?.B;return e&&this[Ue]....
    method value (line 8) | set value(e){if(t){if(1&this[Be])throw new Error("Cannot mutate immuta...
  class et (line 8) | class et extends Ye{constructor(e,t,n){super(),this.te=e,this.ne=t,this....
    method constructor (line 8) | constructor(e,t,n){super(),this.te=e,this.ne=t,this.oe=n}
    method value (line 8) | get value(){return this.te.apply(void 0,this.ne)}
  class tt (line 8) | class tt extends Ye{constructor(e,t){super(),this.ref=e,this.prop=t}get[...
    method constructor (line 8) | constructor(e,t){super(),this.ref=e,this.prop=t}
    method [Ue] (line 8) | get[Ue](){return ji(this.ref)}
    method value (line 8) | get value(){return this.ref[this.prop]}
    method value (line 8) | set value(e){this.ref[this.prop]=e}
  class at (line 8) | class at{constructor(e,t){this.re=e,this.se=t}deleteProperty(e,t){if(2&e...
    method constructor (line 8) | constructor(e,t){this.re=e,this.se=t}
    method deleteProperty (line 8) | deleteProperty(e,t){if(2&e[De])throw x(17);return"string"==typeof t&&d...
    method get (line 8) | get(e,t){if("symbol"==typeof t)return t===Je?e:t===Ue?this.se:e[t];let...
    method set (line 8) | set(e,n,o){if("symbol"==typeof n)return e[n]=o,!0;const r=e[De]??0;if(...
    method has (line 8) | has(e,t){if(t===Je)return!0;const n=Object.prototype.hasOwnProperty;re...
    method ownKeys (line 8) | ownKeys(e){const t=e[De]??0;if(_(t,"flags must be an number"),0==(2&t)...
    method getOwnPropertyDescriptor (line 8) | getOwnPropertyDescriptor(e,t){return C(e)||"symbol"==typeof t?Object.g...
  function vt (line 8) | function vt(e){if(void 0===$t){const t=yt();if(t&&t.we)return t.we;if(vo...
  function wt (line 8) | function wt(e,t){const n=$t;try{return $t=e,t()}finally{$t=n}}
  function kt (line 8) | function kt(e,t,...n){const o=bt;let r;try{bt=e,r=t.apply(this,n)}finall...
  class cn (line 8) | class cn{constructor(e,t){this.open=e,this.close=t,this._qc_=null,this.n...
    method constructor (line 8) | constructor(e,t){this.open=e,this.close=t,this._qc_=null,this.nodeType...
    method insertBefore (line 8) | insertBefore(e,t){const n=this.parentElement;if(n){const o=t||this.clo...
    method remove (line 8) | remove(){const e=this.parentElement;if(e){const t=Array.from(this.chil...
    method appendChild (line 8) | appendChild(e){return this.insertBefore(e,null)}
    method insertBeforeTo (line 8) | insertBeforeTo(e,t){const n=Array.from(this.childNodes);e.insertBefore...
    method appendTo (line 8) | appendTo(e){this.insertBeforeTo(e,null)}
    method namespaceURI (line 8) | get namespaceURI(){return this.parentElement?.namespaceURI??""}
    method removeChild (line 8) | removeChild(e){this.parentElement?this.parentElement.removeChild(e):th...
    method getAttribute (line 8) | getAttribute(e){return this.attributes.get(e)??null}
    method hasAttribute (line 8) | hasAttribute(e){return this.attributes.has(e)}
    method setAttribute (line 8) | setAttribute(e,t){this.attributes.set(e,t)}
    method removeAttribute (line 8) | removeAttribute(e){this.attributes.delete(e)}
    method matches (line 8) | matches(e){return!1}
    method compareDocumentPosition (line 8) | compareDocumentPosition(e){return this.open.compareDocumentPosition(e)}
    method closest (line 8) | closest(e){const t=this.parentElement;return t?t.closest(e):null}
    method querySelectorAll (line 8) | querySelectorAll(e){const t=[];return Mr(this,"elements").forEach((n=>...
    method querySelector (line 8) | querySelector(e){for(const t of this.childNodes)if(s(t)){if(t.matches(...
    method firstChild (line 8) | get firstChild(){if(this.parentElement){const e=this.open.nextSibling;...
    method nextSibling (line 8) | get nextSibling(){return this.close.nextSibling}
    method previousSibling (line 8) | get previousSibling(){return this.open.previousSibling}
    method childNodes (line 8) | get childNodes(){if(!this.parentElement)return this.template.childNode...
    method isConnected (line 8) | get isConnected(){return this.open.isConnected}
    method parentElement (line 8) | get parentElement(){return this.open.parentElement}
  function Mn (line 8) | function Mn(e){return e.startsWith("aria-")}
  class uo (line 8) | class uo{constructor(e){this.nodeType=e,this[co]=null,n(this)}}
    method constructor (line 8) | constructor(e){this.nodeType=e,this[co]=null,n(this)}
  method write (line 8) | write(e){o.write(e),o.write(lo)}
  method write (line 8) | write(e){s===l?o.write(e):u.push(e)}
  class Vo (line 8) | class Vo{constructor(e,t,o,r,s,i){this.tt=e,this.de=t,this.nt=o,this.ot=...
    method constructor (line 8) | constructor(e,t,o,r,s,i){this.tt=e,this.de=t,this.nt=o,this.ot=r,this....
  method acceptNode (line 8) | acceptNode(e){if(s(o=e)&&o.hasAttribute($e))return 2;var o;const r=t(e);...
  class mr (line 8) | class mr{constructor(e,t,n,o,r,s=null){this.type=e,this.props=t,this.imm...
    method constructor (line 8) | constructor(e,t,n,o,r,s=null){this.type=e,this.props=t,this.immutableP...
  method acceptNode (line 8) | acceptNode(e){const o=un(e);return o&&Se(o,t)===n?1:2}
  method cleanup (line 8) | cleanup(e){l.push(e)}
  method cache (line 8) | cache(e){let t=0;t="immutable"===e?1/0:e,u._cache=t}
  method cleanup (line 8) | cleanup(e){c.push(e)}
  class Hs (line 8) | class Hs{constructor(e,t,n,o,r){this.fe=e,this.dt=t,this.ut=n,this.xe=o,...
    method constructor (line 8) | constructor(e,t,n,o,r){this.fe=e,this.dt=t,this.ut=n,this.xe=o,this.Qe=r}
  method collect (line 8) | collect(e,t,n){if(to(e.ref,t,n),yi(e.ref)){const o=ji(e.ref);di(t.re.F,o...
  method prepare (line 8) | prepare(r){for(const s of ii){const i=s.prefix;if(r.startsWith(i)){const...
  method subs (line 8) | subs(t,n){const r=o.get(t);return!!r&&(r.subs(t,n,e),!0)}
  method fill (line 8) | fill(t,o){const r=n.get(t);return!!r&&(r.fill(t,o,e),!0)}
  class Mi (line 8) | class Mi{constructor(e,t,o){this.Ve=e,this.re=t,this.Ue=[],o&&this.lt(o)...
    method constructor (line 8) | constructor(e,t,o){this.Ve=e,this.re=t,this.Ue=[],o&&this.lt(o),n(this)}
    method lt (line 8) | lt(e){this.Ue.push(...e);for(const e of this.Ue)this.bt(e[1],this)}
    method bt (line 8) | bt(e,t){let n=this.Ve.get(e);n||this.Ve.set(e,n=[]),n.includes(t)||n.p...
    method $t (line 8) | $t(e){const t=this.Ue;for(let n=0;n<t.length;n++)t[n][1]===e&&(t.splic...
    method G (line 8) | G(e,t){const n=this.Ue,o=e[1];0===e[0]&&n.some((([e,n,r])=>0===e&&n===...
    method ee (line 8) | ee(e){const t=this.Ue;for(const n of t){const t=n[n.length-1];e&&t&&t!...
  function h (line 8) | function h(e,t){return(...n)=>{const r=Qi(),s=d();return J(s,(s=>{if(T(s...
  function Ni (line 8) | function Ni(e){if(t&&!Li(e))throw new Error("Not a QRL")}
  function t (line 8) | function t(t,n,o){Ni(e),_(o,"The Qwik Component was not invocated correc...
  function Vi (line 8) | function Vi(e,t,...n){const o={children:arguments.length>2?Fi(n):F};let ...
  method cleanup (line 8) | cleanup(){!function(e,t){const n=e.ke.re.F;es(t,e.ke,n,!0),(e=>{delete e...
  function tc (line 8) | function tc(e,t){return St().ge.ke.re.J[e]??t}
  function u (line 8) | function u(t){o.push(e.substring(i,t)),i=t}
  function a (line 8) | function a(e){c===fc||d()||(u(e),o.push(".",ae,t))}
  function f (line 8) | function f(t){let n=0;if(e.charCodeAt(s)===Oc)for(let t=1;t<10;t++)if(e....
  function d (line 8) | function d(){return-1!==r.indexOf(fc)||-1!==r.indexOf(hc)}

FILE: packages/docs/scripts/showcase.ts
  type InputPageData (line 6) | type InputPageData = {
  type PageData (line 12) | type PageData = InputPageData & {
  constant OUTPUT_JSON (line 31) | const OUTPUT_JSON = 'src/routes/(ecosystem)/showcase/generated-pages.json';
  function captureMultipleScreenshots (line 32) | async function captureMultipleScreenshots() {
  function getPagespeedData (line 171) | async function getPagespeedData(url: string) {
  function wait (line 192) | function wait(ms: number) {

FILE: packages/docs/src/components/code-block/code-block.tsx
  type CodeBlockProps (line 18) | interface CodeBlockProps {

FILE: packages/docs/src/components/code-sandbox/index.tsx
  function examplePath (line 83) | function examplePath(

FILE: packages/docs/src/components/docsearch/algolia-logo.tsx
  type AlgoliaLogoTranslations (line 3) | type AlgoliaLogoTranslations = Partial<{
  type AlgoliaLogoProps (line 7) | type AlgoliaLogoProps = {

FILE: packages/docs/src/components/docsearch/constants.ts
  constant MAX_QUERY_SIZE (line 1) | const MAX_QUERY_SIZE = 100;

FILE: packages/docs/src/components/docsearch/doc-search-button.tsx
  function isAppleDevice (line 4) | function isAppleDevice() {
  type ButtonTranslations (line 8) | type ButtonTranslations = Partial<{
  type DocSearchButtonProps (line 13) | interface DocSearchButtonProps {

FILE: packages/docs/src/components/docsearch/doc-search-modal.tsx
  type ModalTranslations (line 24) | type ModalTranslations = Partial<{
  type DocSearchModalProps (line 29) | type DocSearchModalProps = DocSearchProps & {

FILE: packages/docs/src/components/docsearch/doc-search.tsx
  type DocSearchTranslations (line 19) | type DocSearchTranslations = Partial<{
  type DocSearchState (line 24) | type DocSearchState = {
  type DocSearchProps (line 37) | interface DocSearchProps {
  function isEditingContent (line 48) | function isEditingContent(event: KeyboardEvent): boolean {
  function open (line 86) | function open() {

FILE: packages/docs/src/components/docsearch/error-screen.tsx
  type ErrorScreenTranslations (line 4) | type ErrorScreenTranslations = Partial<{

FILE: packages/docs/src/components/docsearch/handleSearch.ts
  function handleSearch (line 13) | function handleSearch(

FILE: packages/docs/src/components/docsearch/hit.tsx
  type HitProps (line 5) | interface HitProps {

FILE: packages/docs/src/components/docsearch/icons/SourceIcon.tsx
  function AnchorIcon (line 28) | function AnchorIcon() {
  function ContentIcon (line 43) | function ContentIcon() {

FILE: packages/docs/src/components/docsearch/no-results-screen.tsx
  type NoResultsScreenTranslations (line 5) | type NoResultsScreenTranslations = Partial<{
  type NoResultsScreenProps (line 12) | type NoResultsScreenProps = {

FILE: packages/docs/src/components/docsearch/screen-state.tsx
  type ScreenStateTranslations (line 10) | type ScreenStateTranslations = Partial<{
  type ScreenStateProps (line 15) | interface ScreenStateProps {

FILE: packages/docs/src/components/docsearch/search-box.tsx
  type SearchBoxTranslations (line 9) | type SearchBoxTranslations = Partial<{
  type SearchBoxProps (line 16) | interface SearchBoxProps {
  function getNextActiveItemId (line 132) | function getNextActiveItemId(
  function getItemsCount (line 157) | function getItemsCount(state: DocSearchState) {

FILE: packages/docs/src/components/docsearch/snippet.tsx
  function getPropertyByPath (line 3) | function getPropertyByPath(object: Record<string, any>, path: string): a...
  type SnippetProps (line 14) | interface SnippetProps<TItem> {

FILE: packages/docs/src/components/docsearch/stored-searches.ts
  function isLocalStorageSupported (line 4) | function isLocalStorageSupported() {
  function createStorage (line 16) | function createStorage<TItem>(key: string) {
  type CreateStoredSearchesOptions (line 47) | type CreateStoredSearchesOptions = {
  type StoredSearchPlugin (line 52) | type StoredSearchPlugin<TItem> = {
  function createStoredSearches (line 58) | function createStoredSearches<TItem extends StoredDocSearchHit>({

FILE: packages/docs/src/components/docsearch/types/DocSearchHit.ts
  type ContentType (line 1) | type ContentType = 'content' | 'lvl0' | 'lvl1' | 'lvl2' | 'lvl3' | 'lvl4...
  type DocSearchHitAttributeHighlightResult (line 3) | interface DocSearchHitAttributeHighlightResult {
  type DocSearchHitHighlightResultHierarchy (line 10) | interface DocSearchHitHighlightResultHierarchy {
  type DocSearchHitHighlightResult (line 20) | interface DocSearchHitHighlightResult {
  type DocSearchHitAttributeSnippetResult (line 26) | interface DocSearchHitAttributeSnippetResult {
  type DocSearchHitSnippetResult (line 31) | interface DocSearchHitSnippetResult {
  type DocSearchHit (line 37) | type DocSearchHit = {

FILE: packages/docs/src/components/docsearch/types/InternalDocSearchHit.ts
  type InternalDocSearchHit (line 3) | type InternalDocSearchHit = DocSearchHit & {

FILE: packages/docs/src/components/docsearch/types/StoredDocSearchHit.ts
  type StoredDocSearchHit (line 3) | type StoredDocSearchHit = Omit<DocSearchHit, '_highlightResult' | '_snip...

FILE: packages/docs/src/components/docsearch/useTouchEvents.ts
  type UseTouchEventsProps (line 4) | interface UseTouchEventsProps {
  function useTouchEvents (line 11) | function useTouchEvents({

FILE: packages/docs/src/components/docsearch/useTrapFocus.ts
  type UseTrapFocusProps (line 3) | interface UseTrapFocusProps {
  function useTrapFocus (line 7) | function useTrapFocus(props: UseTrapFocusProps) {

FILE: packages/docs/src/components/docsearch/utils/groupBy.ts
  function groupBy (line 1) | function groupBy<TValue extends Record<string, unknown>>(

FILE: packages/docs/src/components/docsearch/utils/identity.ts
  function identity (line 1) | function identity<TParam>(x: TParam): TParam {

FILE: packages/docs/src/components/docsearch/utils/isSamsung.ts
  function isSamsung (line 3) | function isSamsung(userAgent: string) {

FILE: packages/docs/src/components/docsearch/utils/noop.ts
  function noop (line 1) | function noop(..._args: any[]): void {}

FILE: packages/docs/src/components/docsearch/utils/removeHighlightTags.ts
  function removeHighlightTags (line 6) | function removeHighlightTags(hit: DocSearchHit | InternalDocSearchHit): ...

FILE: packages/docs/src/components/docsearch/utils/stalledControl.ts
  function setStalled (line 4) | function setStalled(cb: () => void) {
  function clearStalled (line 10) | function clearStalled() {

FILE: packages/docs/src/components/on-this-page/on-this-page.tsx
  constant QWIK_GROUP (line 11) | const QWIK_GROUP = [
  constant QWIK_ADVANCED_GROUP (line 20) | const QWIK_ADVANCED_GROUP = [
  constant QWIKCITY_GROUP (line 33) | const QWIKCITY_GROUP = [
  constant QWIKCITY_ADVANCED_GROUP (line 53) | const QWIKCITY_ADVANCED_GROUP = [

FILE: packages/docs/src/components/package-manager-tabs/index.tsx
  type PkgManagers (line 14) | type PkgManagers = (typeof pkgManagers)[number];

FILE: packages/docs/src/components/panel-toggle/panel-toggle.tsx
  type PanelToggleProps (line 4) | interface PanelToggleProps {

FILE: packages/docs/src/components/qwik-gpt/search.tsx
  function normalizeLine (line 116) | function normalizeLine(line: string) {
  function getResultsHash (line 133) | async function getResultsHash(docsData: any[]) {
  function resolveContext (line 140) | async function resolveContext(docsData: any[]) {
  function get_docs_ranges (line 205) | function get_docs_ranges(ranges: [number, number][], fileContent: string...

FILE: packages/docs/src/components/real-metrics-optimization/real-metrics-optimization.tsx
  type RealMetricsOptimizationProps (line 108) | interface RealMetricsOptimizationProps {

FILE: packages/docs/src/components/router-head/router-head.tsx
  method URL (line 22) | get URL() {

FILE: packages/docs/src/components/router-head/social.tsx
  type SocialProps (line 33) | interface SocialProps {

FILE: packages/docs/src/components/sidebar/sidebar.tsx
  type MarkdownItems (line 45) | type MarkdownItems = Record<string, MDX>;
  type MDX (line 46) | type MDX = {
  function Items (line 101) | function Items({
  function createBreadcrumbs (line 153) | function createBreadcrumbs(menu: ContentMenu | undefined, pathname: stri...

FILE: packages/docs/src/components/svgs/alert-icon.tsx
  type AlertIconProps (line 1) | interface AlertIconProps {

FILE: packages/docs/src/components/svgs/bluesky-logo.tsx
  type Props (line 1) | interface Props {

FILE: packages/docs/src/components/svgs/builder-logo.tsx
  type BuilderLogoProps (line 1) | interface BuilderLogoProps {

FILE: packages/docs/src/components/svgs/chat-icon.tsx
  type ChatIconProps (line 1) | interface ChatIconProps {

FILE: packages/docs/src/components/svgs/close-icon.tsx
  type CloseIconProps (line 1) | interface CloseIconProps {

FILE: packages/docs/src/components/svgs/copy-code-icon.tsx
  type CopyIconProps (line 1) | interface CopyIconProps {

FILE: packages/docs/src/components/svgs/discord-logo.tsx
  type DiscordLogoProps (line 3) | type DiscordLogoProps = {

FILE: packages/docs/src/components/svgs/edit-icon.tsx
  type EditIconProps (line 1) | interface EditIconProps {

FILE: packages/docs/src/components/svgs/github-logo.tsx
  type GithubLogoProps (line 1) | interface GithubLogoProps {

FILE: packages/docs/src/components/svgs/more-icon.tsx
  type MoreIconProps (line 1) | interface MoreIconProps {

FILE: packages/docs/src/components/svgs/qwik-logo.tsx
  type QwikLogoProps (line 3) | type QwikLogoProps = {

FILE: packages/docs/src/components/svgs/twitter-logo.tsx
  type TwitterLogoProps (line 1) | interface TwitterLogoProps {

FILE: packages/docs/src/components/theme-toggle/Brilliance.tsx
  type BrillianceIconProps (line 3) | interface BrillianceIconProps {

FILE: packages/docs/src/components/theme-toggle/Moon.tsx
  type MoonIconProps (line 3) | interface MoonIconProps {

FILE: packages/docs/src/components/theme-toggle/Sun.tsx
  type SunIconProps (line 3) | interface SunIconProps {

FILE: packages/docs/src/components/theme-toggle/theme-toggle.tsx
  type ThemePreference (line 7) | type ThemePreference = 'dark' | 'light' | 'auto';

FILE: packages/docs/src/constants.ts
  constant BUILDER_PUBLIC_API_KEY (line 1) | const BUILDER_PUBLIC_API_KEY = 'YJIGb4i01jvw0SRdL5Bt';
  constant QWIK_PUBLIC_API_KEY (line 2) | const QWIK_PUBLIC_API_KEY = 'fe30f73e01ef40558cd69a9493eba2a2';
  constant BUILDER_TOP_BAR_MODEL (line 3) | const BUILDER_TOP_BAR_MODEL = 'oss-top-bar';
  constant BUILDER_FOOTER_MODEL (line 4) | const BUILDER_FOOTER_MODEL = 'oss-footer';
  constant QWIK_MODEL (line 5) | const QWIK_MODEL = 'content-page';

FILE: packages/docs/src/context.ts
  type SiteStore (line 5) | interface SiteStore {

FILE: packages/docs/src/repl/bundler/bundler-worker.ts
  type MessageBase (line 7) | interface MessageBase {
  type InitMessage (line 11) | interface InitMessage extends MessageBase {
  type BundleMessage (line 17) | interface BundleMessage extends MessageBase {
  type ReadyMessage (line 23) | interface ReadyMessage extends MessageBase {
  type ResultMessage (line 27) | interface ResultMessage extends MessageBase {
  type ErrorMessage (line 33) | interface ErrorMessage extends MessageBase {
  type IncomingMessage (line 40) | type IncomingMessage = InitMessage | BundleMessage;
  type OutgoingMessage (line 41) | type OutgoingMessage = ReadyMessage | ResultMessage | ErrorMessage;
  function loadOptimizer (line 85) | async function loadOptimizer() {
  function performBundle (line 116) | async function performBundle(message: BundleMessage): Promise<ReplResult> {

FILE: packages/docs/src/repl/bundler/index.ts
  class Bundler (line 10) | class Bundler {
    method constructor (line 22) | constructor(public version: string) {
    method initWorker (line 27) | initWorker() {
    method keepAlive (line 68) | keepAlive() {
    method bundle (line 73) | bundle(options: Omit<ReplInputOptions, 'version' | 'serverUrl'>): Prom...
    method terminateWorker (line 92) | terminateWorker(): void {

FILE: packages/docs/src/repl/bundler/repl-ssr-worker.ts
  type MessageBase (line 8) | interface MessageBase {
  type InitSSRMessage (line 12) | interface InitSSRMessage extends MessageBase {
  type SSRReadyMessage (line 20) | interface SSRReadyMessage extends MessageBase {
  type SSRResultMessage (line 24) | interface SSRResultMessage extends MessageBase {
  type SSRErrorMessage (line 30) | interface SSRErrorMessage extends MessageBase {
  type IncomingMessage (line 36) | type IncomingMessage = InitSSRMessage;
  type OutgoingMessage (line 37) | type OutgoingMessage = SSRReadyMessage | SSRResultMessage | SSRErrorMess...
  function executeSSR (line 76) | async function executeSSR(message: InitSSRMessage): Promise<{ html: stri...

FILE: packages/docs/src/repl/bundler/rollup-plugins.ts
  method transform (line 10) | transform(code) {
  method resolveId (line 54) | resolveId(id, importer) {
  method load (line 107) | async load(id) {
  method resolveId (line 151) | resolveId(id) {
  method load (line 158) | load(id) {
  method generateBundle (line 174) | async generateBundle(_, bundle) {
  constant TERSER_OPTIONS (line 190) | const TERSER_OPTIONS: MinifyOptions = {

FILE: packages/docs/src/repl/repl-constants.ts
  constant QWIK_PKG_NAME_V1 (line 1) | const QWIK_PKG_NAME_V1 = '@builder.io/qwik';
  constant QWIK_PKG_NAME_V2 (line 2) | const QWIK_PKG_NAME_V2 = '@qwik.dev/core';

FILE: packages/docs/src/repl/repl-instance.ts
  class ReplInstance (line 19) | class ReplInstance {
    method constructor (line 24) | constructor(
    method _ensureBundled (line 44) | async _ensureBundled() {
    method _ensureSsr (line 83) | async _ensureSsr() {
    method ensureBuilt (line 99) | ensureBuilt() {
    method rebuild (line 126) | private async rebuild(): Promise<ReplResult> {
    method getFile (line 202) | async getFile(path: string): Promise<string | null> {
    method executeSSR (line 248) | private async executeSSR(result: ReplResult): Promise<{ html: string; ...
    method markDirty (line 296) | markDirty(): void {
  function errorHtml (line 302) | function errorHtml(error: any, type: string) {

FILE: packages/docs/src/repl/repl-sw.ts
  type RequestMessage (line 14) | type RequestMessage = {
  type ResponseMessage (line 20) | type ResponseMessage = {

FILE: packages/docs/src/repl/types.ts
  type ReplAppInput (line 10) | interface ReplAppInput {
  type PkgUrls (line 18) | type PkgUrls = { [pkgName: string]: { [path: string]: string; version: s...
  type ReplInputOptions (line 19) | interface ReplInputOptions extends Omit<QwikRollupPluginOptions, 'srcDir...
  type ReplStore (line 27) | interface ReplStore {
  type ReplModuleInput (line 50) | interface ReplModuleInput {
  type ReplModuleOutput (line 56) | interface ReplModuleOutput {
  type ReplEvent (line 63) | interface ReplEvent {
  type ReplResult (line 81) | interface ReplResult {
  type ReplMessageBase (line 92) | interface ReplMessageBase {
  type InitSSRMessage (line 98) | interface InitSSRMessage {
  type ExecuteSSRMessage (line 103) | interface ExecuteSSRMessage {
  type SSRResultMessage (line 111) | interface SSRResultMessage {
  type SSRErrorMessage (line 118) | interface SSRErrorMessage {
  type OutputPanel (line 125) | type OutputPanel =
  type OutputDetail (line 133) | type OutputDetail = 'options' | 'console';

FILE: packages/docs/src/repl/ui/editor.tsx
  type EditorProps (line 77) | interface EditorProps {
  type EditorStore (line 86) | interface EditorStore {

FILE: packages/docs/src/repl/ui/index.tsx
  type ReplProps (line 138) | interface ReplProps {

FILE: packages/docs/src/repl/ui/monaco.tsx
  constant MONACO_VERSION (line 348) | const MONACO_VERSION = '0.45.0';
  constant MONACO_VS_URL (line 349) | const MONACO_VS_URL = getNpmCdnUrl(bundled, 'monaco-editor', MONACO_VERS...
  constant MONACO_LOADER_URL (line 350) | const MONACO_LOADER_URL = `${MONACO_VS_URL}/loader.js`;
  constant CLIENT_LIB (line 352) | const CLIENT_LIB = `
  type Monaco (line 360) | type Monaco = typeof MonacoTypes;
  type IStandaloneCodeEditor (line 361) | type IStandaloneCodeEditor = MonacoTypes.editor.IStandaloneCodeEditor;
  type ICodeEditorViewState (line 362) | type ICodeEditorViewState = MonacoTypes.editor.ICodeEditorViewState;
  type IStandaloneEditorConstructionOptions (line 363) | type IStandaloneEditorConstructionOptions =
  type IModelContentChangedEvent (line 365) | type IModelContentChangedEvent = MonacoTypes.editor.IModelContentChanged...
  type TypeScriptWorker (line 366) | type TypeScriptWorker = MonacoTypes.languages.typescript.TypeScriptWorker;
  type TypeScriptDiagnostic (line 367) | type TypeScriptDiagnostic = MonacoTypes.languages.typescript.Diagnostic;
  type DiagnosticMessageChain (line 368) | type DiagnosticMessageChain = MonacoTypes.languages.typescript.Diagnosti...
  type MonacoContext (line 370) | interface MonacoContext {
  type NodeModuleDep (line 376) | interface NodeModuleDep {

FILE: packages/docs/src/repl/ui/repl-commands.tsx
  type ReplCommandProps (line 61) | interface ReplCommandProps {

FILE: packages/docs/src/repl/ui/repl-console.tsx
  type ReplConsoleProps (line 4) | interface ReplConsoleProps {
  function ReplLog (line 17) | function ReplLog({ log }: { log: ReplEvent }) {
  function renderConsoleMessage (line 69) | function renderConsoleMessage(texts: string[]) {
  function basename (line 83) | function basename(str: string) {
  function renderElapsed (line 91) | function renderElapsed(millis: number) {

FILE: packages/docs/src/repl/ui/repl-detail-panel.tsx
  type ReplDetailPanelProps (line 43) | interface ReplDetailPanelProps {

FILE: packages/docs/src/repl/ui/repl-input-panel.tsx
  type ReplInputPanelProps (line 65) | interface ReplInputPanelProps {

FILE: packages/docs/src/repl/ui/repl-options.tsx
  constant BUILD_MODE_OPTIONS (line 71) | const BUILD_MODE_OPTIONS = ['development', 'production'];
  constant ENTRY_STRATEGY_OPTIONS (line 74) | const ENTRY_STRATEGY_OPTIONS = ['component', 'segment', 'single', 'smart'];
  type StoreOptionProps (line 76) | interface StoreOptionProps {
  type StoreBooleanProps (line 85) | interface StoreBooleanProps {
  type ReplOptionsProps (line 91) | interface ReplOptionsProps {

FILE: packages/docs/src/repl/ui/repl-output-modules.tsx
  constant FILE_MODULE_DIV_ID (line 4) | const FILE_MODULE_DIV_ID = 'file-modules-client-modules';
  type ReplOutputModulesProps (line 71) | interface ReplOutputModulesProps {

FILE: packages/docs/src/repl/ui/repl-output-panel.tsx
  type ReplOutputPanelProps (line 146) | interface ReplOutputPanelProps {

FILE: packages/docs/src/repl/ui/repl-output-segments.tsx
  constant FILE_MODULE_DIV_ID (line 4) | const FILE_MODULE_DIV_ID = 'file-modules-symbol';
  type TransformModuleV2 (line 6) | type TransformModuleV2 = TransformModule & {
  type ReplOutputSymbolsProps (line 75) | interface ReplOutputSymbolsProps {

FILE: packages/docs/src/repl/ui/repl-share-url.ts
  function compressFiles (line 138) | function compressFiles(files: any[]) {
  function parseUncompressedFiles (line 153) | function parseUncompressedFiles(filesBase64: string) {
  function parseCompressedFiles (line 165) | function parseCompressedFiles(filesBase64: string) {
  type PlaygroundShareUrl (line 183) | interface PlaygroundShareUrl {

FILE: packages/docs/src/repl/ui/repl-tab-button.tsx
  type ReplTabButtonProps (line 32) | interface ReplTabButtonProps {

FILE: packages/docs/src/repl/ui/repl-tab-buttons.tsx
  type ReplTabButtonsProps (line 9) | interface ReplTabButtonsProps {

FILE: packages/docs/src/repl/ui/repl-version.ts
  constant QWIK_NPM_V1_DATA (line 109) | const QWIK_NPM_V1_DATA = `https://data.jsdelivr.com/v1/package/npm/@buil...
  constant QWIK_NPM_V2_DATA (line 110) | const QWIK_NPM_V2_DATA = `https://data.jsdelivr.com/v1/package/npm/@qwik...
  constant NPM_STORAGE_KEY (line 112) | const NPM_STORAGE_KEY = `qwikNpmData`;
  type NpmData (line 114) | interface NpmData {

FILE: packages/docs/src/root.tsx
  function collectSymbols (line 79) | function collectSymbols() {

FILE: packages/docs/src/routes/(blog)/blog/components/mdx/article-block.tsx
  type Props (line 6) | type Props = { authorLink: string };

FILE: packages/docs/src/routes/(blog)/blog/components/mdx/article-hero.tsx
  type Props (line 5) | type Props = { image: string; authorLinks: string[] };

FILE: packages/docs/src/routes/(blog)/blog/components/mdx/discord-link.tsx
  type Props (line 3) | type Props = { text?: string };

FILE: packages/docs/src/routes/(blog)/data.ts
  type BlogArticle (line 18) | type BlogArticle = {

FILE: packages/docs/src/routes/(ecosystem)/ecosystem/index.tsx
  type GridItemProps (line 362) | interface GridItemProps {
  type LibraryGridItemProps (line 370) | interface LibraryGridItemProps {

FILE: packages/docs/src/routes/(ecosystem)/media/index.tsx
  constant MEDIA (line 13) | const MEDIA = mediaObj({
  type MediaEntry (line 443) | interface MediaEntry {
  function youtube (line 589) | function youtube(
  function mediaObj (line 632) | function mediaObj<T extends string>(obj: Record<T, MediaEntry[]>) {

FILE: packages/docs/src/routes/(ecosystem)/showcase/index.tsx
  type MediaEntry (line 6) | interface MediaEntry {
  function getLighthouseColorForScore (line 177) | function getLighthouseColorForScore(score: number) {
  function getLighthouseColorForMs (line 180) | function getLighthouseColorForMs(ms: number, goodMs: number, badMs: numb...
  function getLighthouseColorForCls (line 183) | function getLighthouseColorForCls(cls: number) {
  function getPagespeedInsightsUrl (line 186) | function getPagespeedInsightsUrl(url: string) {

FILE: packages/docs/src/routes/demo/component/primitive-props/index.tsx
  type ItemProps (line 4) | interface ItemProps {

FILE: packages/docs/src/routes/demo/component/props/index.tsx
  type ItemProps (line 3) | interface ItemProps {

FILE: packages/docs/src/routes/demo/component/reference-props/index.tsx
  type ItemProps (line 3) | interface ItemProps {

FILE: packages/docs/src/routes/demo/cookbook/algolia-search/index.tsx
  type AlgoliaResult (line 3) | type AlgoliaResult = {

FILE: packages/docs/src/routes/demo/cookbook/drag&drop/advanced/index.tsx
  type Item (line 3) | type Item = {
  function swapElements (line 192) | function swapElements(arr: Item[], index1: number, index2: number) {
  function insertElement (line 198) | function insertElement(arr: Item[], index: number, item: Item) {

FILE: packages/docs/src/routes/demo/cookbook/leaflet-map/index.tsx
  type MapProps (line 80) | interface MapProps {
  type LocationsProps (line 86) | interface LocationsProps {
  type MarkersProps (line 93) | interface MarkersProps {

FILE: packages/docs/src/routes/demo/cookbook/mediaController/index.tsx
  constant AUDIO_SRC (line 9) | const AUDIO_SRC =
  constant VIDEO_SRC (line 11) | const VIDEO_SRC =

FILE: packages/docs/src/routes/demo/cookbook/nav-link/index.tsx
  type NavLinkProps (line 4) | type NavLinkProps = LinkProps & { activeClass?: string };

FILE: packages/docs/src/routes/demo/cookbook/portal/portal-provider.tsx
  type ContextPair (line 31) | type ContextPair<T> = { id: ContextId<T>; value: T };
  type Portal (line 40) | interface Portal {

FILE: packages/docs/src/routes/demo/events/custom-event/index.tsx
  type ButtonProps (line 11) | type ButtonProps = {

FILE: packages/docs/src/routes/demo/events/use-on/index.tsx
  function useMousePosition (line 5) | function useMousePosition() {

FILE: packages/docs/src/routes/demo/events/use-on/use-on-window/index.tsx
  function useCloseDropdown (line 5) | function useCloseDropdown() {

FILE: packages/docs/src/routes/demo/integration/modular-forms/index.tsx
  type LoginForm (line 22) | type LoginForm = v.InferInput<typeof LoginSchema>;

FILE: packages/docs/src/routes/demo/layout.tsx
  function logQSymbols (line 16) | function logQSymbols() {

FILE: packages/docs/src/routes/demo/qwikcity/middleware/component/index.tsx
  function isLoggedIn (line 14) | function isLoggedIn() {

FILE: packages/docs/src/routes/demo/qwikcity/middleware/sharedMap/index.tsx
  type User (line 8) | interface User {
  function loadUserFromCookie (line 26) | function loadUserFromCookie(cookie: Cookie): User | null {

FILE: packages/docs/src/routes/demo/qwikcity/middleware/throw/index.tsx
  function isLoggedIn (line 22) | function isLoggedIn() {

FILE: packages/docs/src/routes/demo/react/children/react.tsx
  function Frame (line 6) | function Frame({ children }: { children?: ReactNode[] }) {

FILE: packages/docs/src/routes/demo/react/counter-simple-hover/react.tsx
  function Counter (line 7) | function Counter() {

FILE: packages/docs/src/routes/demo/react/counter-simple/react.tsx
  function Counter (line 6) | function Counter() {

FILE: packages/docs/src/routes/demo/react/counter-two-islands-host/react.tsx
  function Button (line 6) | function Button({ children }: { children?: ReactNode[] }) {
  function Display (line 11) | function Display({ count }: { count: number }) {

FILE: packages/docs/src/routes/demo/react/counter-two-islands/react.tsx
  function Button (line 5) | function Button({ onClick }: { onClick: () => void }) {
  function Display (line 10) | function Display({ count }: { count: number }) {

FILE: packages/docs/src/routes/demo/react/hello-world/react.tsx
  function Greetings (line 5) | function Greetings() {

FILE: packages/docs/src/routes/demo/resumability/component.tsx
  function ReadyIcon (line 217) | function ReadyIcon(props: PropsOf<'svg'>, key: string) {

FILE: packages/docs/src/routes/demo/resumability/index.tsx
  function isHTMLElement (line 77) | function isHTMLElement(node: any): node is HTMLElement {
  function isPortal (line 84) | function isPortal(element: HTMLElement) {
  type HoverEvent (line 88) | type HoverEvent = CustomEvent<(jsx: JSXOutput) => void>;

FILE: packages/docs/src/routes/demo/state/no-serialize/monaco.tsx
  class Monaco (line 1) | class Monaco {}
  method create (line 3) | create(element: HTMLElement, { value }: { value: string }): any {

FILE: packages/docs/src/routes/demo/state/passing-context/index.tsx
  constant CTX (line 10) | const CTX = createContextId<{ count: number }>('stuff');

FILE: packages/docs/src/routes/demo/state/passing-props/index.tsx
  type ChildProps (line 8) | interface ChildProps {

FILE: packages/docs/src/routes/demo/tasks/track-fn/index.tsx
  function delay (line 32) | function delay(time: number) {

FILE: packages/docs/src/routes/examples/[...id]/index!.tsx
  constant PANELS (line 167) | const PANELS: ActivePanel[] = ['Examples', 'Input', 'Output', 'Console'];
  type ExamplesStore (line 169) | interface ExamplesStore extends ReplAppInput {
  type ActivePanel (line 174) | type ActivePanel = 'Examples' | 'Input' | 'Output' | 'Console';

FILE: packages/docs/src/routes/examples/apps/examples-data.ts
  type ExampleSection (line 3) | interface ExampleSection {
  type ExampleApp (line 9) | interface ExampleApp {

FILE: packages/docs/src/routes/examples/apps/partial/hackernews-index/app.tsx
  type IComment (line 132) | interface IComment {
  type IStory (line 140) | interface IStory {

FILE: packages/docs/src/routes/examples/apps/reactivity/auto-complete/app.tsx
  type IState (line 18) | interface IState {
  function debounce (line 82) | function debounce<F extends (...args: any) => any>(fn: F, delay = 500) {

FILE: packages/docs/src/routes/playground/index!.tsx
  type PlaygroundStore (line 127) | interface PlaygroundStore extends ReplAppInput {

FILE: packages/docs/src/routes/playground/playground-data.ts
  type PlaygroundApp (line 3) | interface PlaygroundApp {

FILE: packages/docs/src/routes/tutorial/component/binding/problem/app.tsx
  constant DESCRIPTION (line 19) | const DESCRIPTION = `

FILE: packages/docs/src/routes/tutorial/component/binding/solution/app.tsx
  constant DESCRIPTION (line 18) | const DESCRIPTION = `

FILE: packages/docs/src/routes/tutorial/composing/dollar/problem/app.tsx
  function delayQrl (line 3) | function delayQrl<T>(fn: QRL<() => T>, delayInMs: number): Promise<T> {

FILE: packages/docs/src/routes/tutorial/composing/dollar/solution/app.tsx
  function delayQrl (line 3) | function delayQrl<T>(fn: QRL<() => T>, delayInMs: number): Promise<T> {

FILE: packages/docs/src/routes/tutorial/composing/use/solution/app.tsx
  function useMousePosition (line 3) | function useMousePosition() {

FILE: packages/docs/src/routes/tutorial/context/basic/problem/app.tsx
  type TodosStore (line 3) | interface TodosStore {

FILE: packages/docs/src/routes/tutorial/context/basic/solution/app.tsx
  type TodosStore (line 9) | interface TodosStore {

FILE: packages/docs/src/routes/tutorial/hooks/use-visible-task/problem/app.tsx
  type ClockStore (line 4) | interface ClockStore {
  function updateClock (line 35) | function updateClock(store: ClockStore) {

FILE: packages/docs/src/routes/tutorial/hooks/use-visible-task/solution/app.tsx
  type ClockStore (line 4) | interface ClockStore {
  function updateClock (line 36) | function updateClock(store: ClockStore) {

FILE: packages/docs/src/routes/tutorial/introduction/resource/problem/app.tsx
  function getRepositories (line 53) | async function getRepositories(

FILE: packages/docs/src/routes/tutorial/introduction/resource/solution/app.tsx
  function getRepositories (line 53) | async function getRepositories(

FILE: packages/docs/src/routes/tutorial/layout.tsx
  type TutorialStore (line 166) | interface TutorialStore extends ReplAppInput {
  constant PANELS (line 174) | const PANELS = ['Tutorial', 'Input', 'Output'];

FILE: packages/docs/src/routes/tutorial/projection/fallback/problem/app.tsx
  constant CSS (line 38) | const CSS = `

FILE: packages/docs/src/routes/tutorial/projection/fallback/solution/app.tsx
  constant CSS (line 38) | const CSS = `

FILE: packages/docs/src/routes/tutorial/props/basic/problem/app.tsx
  type GreeterProps (line 11) | interface GreeterProps {}

FILE: packages/docs/src/routes/tutorial/props/basic/solution/app.tsx
  type GreeterProps (line 11) | interface GreeterProps {

FILE: packages/docs/src/routes/tutorial/props/closures/problem/app.tsx
  type MyComponentProps (line 12) | interface MyComponentProps {

FILE: packages/docs/src/routes/tutorial/props/closures/solution/app.tsx
  type MyComponentProps (line 12) | interface MyComponentProps {

FILE: packages/docs/src/routes/tutorial/reactivity/explicit/problem/app.tsx
  type AppStore (line 4) | interface AppStore {

FILE: packages/docs/src/routes/tutorial/reactivity/explicit/solution/app.tsx
  type AppStore (line 4) | interface AppStore {

FILE: packages/docs/src/routes/tutorial/reactivity/resource/problem/app.tsx
  function getRepositories (line 53) | async function getRepositories(

FILE: packages/docs/src/routes/tutorial/reactivity/resource/solution/app.tsx
  function getRepositories (line 53) | async function getRepositories(

FILE: packages/docs/src/routes/tutorial/reactivity/template/problem/app.tsx
  type AppStore (line 4) | interface AppStore {

FILE: packages/docs/src/routes/tutorial/reactivity/template/solution/app.tsx
  type AppStore (line 4) | interface AppStore {

FILE: packages/docs/src/routes/tutorial/store/no-serialize/problem/app.tsx
  type AppStore (line 3) | interface AppStore {

FILE: packages/docs/src/routes/tutorial/store/no-serialize/solution/app.tsx
  type AppStore (line 3) | interface AppStore {

FILE: packages/docs/src/routes/tutorial/store/recursive/problem/app.tsx
  type DisplayProps (line 15) | interface DisplayProps {

FILE: packages/docs/src/routes/tutorial/store/recursive/solution/app.tsx
  type DisplayProps (line 15) | interface DisplayProps {

FILE: packages/docs/src/routes/tutorial/store/serialization/problem/app.tsx
  type ParentStore (line 3) | interface ParentStore {
  type ChildStore (line 8) | interface ChildStore {

FILE: packages/docs/src/routes/tutorial/store/serialization/solution/app.tsx
  type ParentStore (line 3) | interface ParentStore {
  type ChildStore (line 8) | interface ChildStore {

FILE: packages/docs/src/routes/tutorial/tutorial-content-footer.tsx
  type TutorialContentFooterProps (line 51) | interface TutorialContentFooterProps {

FILE: packages/docs/src/routes/tutorial/tutorial-content-header.tsx
  type Tutorial (line 43) | interface Tutorial {
  type TutorialContentHeaderProps (line 48) | interface TutorialContentHeaderProps {

FILE: packages/docs/src/routes/tutorial/tutorial-data.ts
  type TutorialSection (line 3) | interface TutorialSection {
  type TutorialApp (line 9) | interface TutorialApp {

FILE: packages/docs/src/routes/tutorial/understanding/capturing/problem/app.tsx
  type AppStore (line 4) | interface AppStore {

FILE: packages/docs/src/routes/tutorial/understanding/capturing/solution/app.tsx
  type AppStore (line 4) | interface AppStore {

FILE: packages/docs/src/routes/tutorial/understanding/treeshaking/problem/app.tsx
  type CountStore (line 4) | interface CountStore {

FILE: packages/docs/src/routes/tutorial/understanding/treeshaking/solution/app.tsx
  type CountStore (line 4) | interface CountStore {

FILE: packages/docs/test-urls.js
  constant QWIK_GROUP (line 7) | const QWIK_GROUP = [
  constant QWIK_ADVANCED_GROUP (line 16) | const QWIK_ADVANCED_GROUP = [
  constant QWIKCITY_GROUP (line 29) | const QWIKCITY_GROUP = [
  constant QWIKCITY_ADVANCED_GROUP (line 48) | const QWIKCITY_ADVANCED_GROUP = [
  function makeEditPageUrl (line 61) | function makeEditPageUrl(url) {
  function checkUrl (line 111) | function checkUrl(url) {
  function testAllPaths (line 152) | async function testAllPaths() {

FILE: packages/docs/vite.repl-apps.ts
  function playgroundData (line 12) | function playgroundData(routesDir: string): Plugin {
  function examplesData (line 45) | function examplesData(routesDir: string): Plugin {
  function tutorialData (line 145) | function tutorialData(routesDir: string): Plugin {
  function rawSource (line 266) | function rawSource(): Plugin {

FILE: packages/docs/vite.source-resolver.ts
  constant SOURCE_PREFIX (line 4) | const SOURCE_PREFIX = 'source:';
  constant RESOLVED_SOURCE_PREFIX (line 5) | const RESOLVED_SOURCE_PREFIX = '\0source:';
  function sourceResolver (line 7) | function sourceResolver(root: string): Plugin {

FILE: packages/eslint-plugin-qwik/examples.ts
  type QwikEslintExample (line 16) | type QwikEslintExample = {
  type QwikEslintExamples (line 23) | type QwikEslintExamples = Record<

FILE: packages/eslint-plugin-qwik/index.ts
  type Rules (line 16) | type Rules = NonNullable<TSESLint.FlatConfig.Plugin['rules']>;
  method recommended (line 76) | get recommended() {
  method strict (line 79) | get strict() {

FILE: packages/eslint-plugin-qwik/qwik.unit.ts
  type RuleTesterRule (line 32) | type RuleTesterRule = Parameters<RuleTester['defineRule']>[1];
  type TestCase (line 34) | interface TestCase {
  type InvalidTestCase (line 39) | interface InvalidTestCase extends TestCase {

FILE: packages/eslint-plugin-qwik/src/jsxAtag.ts
  method create (line 20) | create(context) {

FILE: packages/eslint-plugin-qwik/src/jsxImg.ts
  method create (line 31) | create(context) {
  function imgImportName (line 144) | function imgImportName(value: string) {
  function toPascalCase (line 151) | function toPascalCase(string) {

FILE: packages/eslint-plugin-qwik/src/jsxKey.ts
  function isFunctionLikeExpression (line 8) | function isFunctionLikeExpression(node) {
  method create (line 62) | create(context) {

FILE: packages/eslint-plugin-qwik/src/jsxNoScriptUrl.ts
  method create (line 33) | create(context) {

FILE: packages/eslint-plugin-qwik/src/loaderLocation.ts
  constant ROUTE_FNS (line 4) | const ROUTE_FNS: Record<string, boolean> = {
  constant LINTER_FNS (line 11) | const LINTER_FNS: Record<string, boolean> = {
  method create (line 55) | create(context) {
  function normalizePath (line 152) | function normalizePath(path: string) {
  function isExported (line 282) | function isExported(variableDeclarator: Rule.Node): boolean {
  function getProgramBody (line 310) | function getProgramBody(variableDeclarator) {

FILE: packages/eslint-plugin-qwik/src/noAsyncPreventDefault.ts
  method create (line 16) | create(context) {

FILE: packages/eslint-plugin-qwik/src/noReactProps.ts
  method create (line 27) | create(context) {

FILE: packages/eslint-plugin-qwik/src/noUseVisibleTask.ts
  method create (line 15) | create(context) {

FILE: packages/eslint-plugin-qwik/src/preferClasslist.ts
  method create (line 41) | create(context) {

FILE: packages/eslint-plugin-qwik/src/unusedServer.ts
  method create (line 17) | create(context) {

FILE: packages/eslint-plugin-qwik/src/useMethodUsage.ts
  method create (line 18) | create(context) {

FILE: packages/eslint-plugin-qwik/src/validLexicalScope.ts
  type DetectorOptions (line 12) | interface DetectorOptions {
  method create (line 54) | create(context) {
  function canCapture (line 232) | function canCapture(
  type TypeReason (line 244) | interface TypeReason {
  function humanizeTypeReason (line 251) | function humanizeTypeReason(reason: TypeReason) {
  function isTypeCapturable (line 262) | function isTypeCapturable(
  function _isTypeCapturable (line 281) | function _isTypeCapturable(
  function isSymbolCapturable (line 444) | function isSymbolCapturable(
  function getElementTypeOfArrayType (line 457) | function getElementTypeOfArrayType(type: ts.Type, checker: ts.TypeChecke...
  function getTypesOfTupleType (line 461) | function getTypesOfTupleType(
  function isTypeQRL (line 470) | function isTypeQRL(type: ts.Type): boolean {
  function getContent (line 476) | function getContent(symbol: ts.Symbol, sourceCode: string) {
  function isQwikHook (line 486) | function isQwikHook(variable, context) {
  function isFromQwikModule (line 507) | function isFromQwikModule(resolvedVar) {
  constant ALLOWED_CLASSES (line 521) | const ALLOWED_CLASSES = {

FILE: packages/eslint-plugin-qwik/tests/use-method-usage/invalid-outside-function.ts
  function noUseSession (line 4) | function noUseSession() {

FILE: packages/eslint-plugin-qwik/tests/use-method-usage/valid-exported-use-methods.ts
  function useSession1 (line 3) | function useSession1() {
  function useSession2 (line 6) | function useSession2() {
  function useSession3 (line 9) | function useSession3() {

FILE: packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-class.tsx
  class Stuff (line 5) | class Stuff {}

FILE: packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-enum.tsx
  type Color (line 5) | enum Color {

FILE: packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-capture-function.tsx
  function getValue (line 4) | function getValue() {

FILE: packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-props-nonserializable-tuple.tsx
  type Props (line 3) | interface Props {

FILE: packages/eslint-plugin-qwik/tests/valid-lexical-scope/invalid-use-method-inline.tsx
  function useMethod (line 5) | function useMethod() {

FILE: packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-capture-jsxoutput.tsx
  type FooState (line 3) | type FooState = {

FILE: packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-capture-signal.tsx
  type Color (line 2) | enum Color {

FILE: packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-component-props-tuple.tsx
  type Props (line 3) | interface Props {

FILE: packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-component-props.tsx
  type Props (line 3) | interface Props {

FILE: packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-constant.tsx
  function getValue (line 3) | async function getValue() {

FILE: packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-no-serialize.tsx
  type NoSerialize (line 1) | type NoSerialize<T> = (T & { __no_serialize__: true }) | undefined;
  type Value (line 3) | interface Value {
  function getFn (line 7) | function getFn(): NoSerialize<() => void> {

FILE: packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-null-value.tsx
  type Value (line 2) | interface Value {
  type NullValue (line 5) | type NullValue = Value | null;
  function useMethod (line 7) | function useMethod(foo: string, bar: () => string) {

FILE: packages/eslint-plugin-qwik/tests/valid-lexical-scope/valid-use-task-getter.tsx
  function getValue (line 3) | function getValue(): number | string | null | undefined | { prop: string...

FILE: packages/insights/drizzle.config.ts
  constant PRIVATE_LIBSQL_DB_URL (line 6) | const PRIVATE_LIBSQL_DB_URL = process.env.PRIVATE_LIBSQL_DB_URL!;
  constant PRIVATE_LIBSQL_DB_API_TOKEN (line 7) | const PRIVATE_LIBSQL_DB_API_TOKEN = process.env.PRIVATE_LIBSQL_DB_API_TO...

FILE: packages/insights/drizzle/0000_blue_blindfold.sql
  type `applications` (line 1) | CREATE TABLE `applications` (
  type `symbols` (line 8) | CREATE TABLE `symbols` (
  type `publicApiKeyIndex` (line 20) | CREATE UNIQUE INDEX `publicApiKeyIndex` ON `applications` (`public_api_k...

FILE: packages/insights/drizzle/0002_exotic_earthquake.sql
  type `errors` (line 1) | CREATE TABLE `errors` (

FILE: packages/insights/drizzle/0004_secret_justice.sql
  type `symbolDetail` (line 1) | CREATE TABLE `symbolDetail` (

FILE: packages/insights/drizzle/0005_cute_marvel_boy.sql
  type `edges` (line 1) | CREATE TABLE `edges` (
  type `edgeIndex` (line 111) | CREATE UNIQUE INDEX `edgeIndex` ON `edges` (`public_api_key`,`manifest_h...

FILE: packages/insights/drizzle/0006_last_dakota_north.sql
  type `manifests` (line 1) | CREATE TABLE `manifests` (
  type `edgeIndex_PublicApiKey` (line 10) | CREATE INDEX `edgeIndex_PublicApiKey` ON `edges` (`public_api_key`)
  type `edgeIndex_PublicApiKey_manifestHash` (line 11) | CREATE INDEX `edgeIndex_PublicApiKey_manifestHash` ON `edges` (`public_a...

FILE: packages/insights/drizzle/0007_large_vengeance.sql
  type `edgeIndex_PublicApiKey` (line 4) | CREATE INDEX `edgeIndex_PublicApiKey` ON `edges` (`public_api_key`)
  type `edgeIndex_PublicApiKey_manifestHash` (line 5) | CREATE INDEX `edgeIndex_PublicApiKey_manifestHash` ON `edges` (`public_a...

FILE: packages/insights/drizzle/0009_flat_celestials.sql
  type `hashIndex` (line 1) | CREATE UNIQUE INDEX `hashIndex` ON `manifests` (`hash`)

FILE: packages/insights/drizzle/0010_typical_lockheed.sql
  type `hashIndex` (line 2) | CREATE UNIQUE INDEX `hashIndex` ON `manifests` (`hash`,`public_api_key`)

FILE: packages/insights/drizzle/0011_thin_captain_stacy.sql
  type `routes` (line 1) | CREATE TABLE `routes` (
  type `routeIndex_Symbol` (line 60) | CREATE UNIQUE INDEX `routeIndex_Symbol` ON `routes` (`public_api_key`,`m...

FILE: packages/insights/drizzle/0012_omniscient_leader.sql
  type `symbolDetailTmp` (line 1) | CREATE TABLE `symbolDetailTmp` (

FILE: packages/insights/drizzle/0014_needy_ben_grimm.sql
  type `userApplicationMap` (line 1) | CREATE TABLE `userApplicationMap` (
  type `users` (line 8) | CREATE TABLE `users` (
  type `userApplicationIndex` (line 15) | CREATE UNIQUE INDEX `userApplicationIndex` ON `userApplicationMap` (`app...
  type `emailIndex` (line 16) | CREATE UNIQUE INDEX `emailIndex` ON `users` (`email`)

FILE: packages/insights/drizzle/0016_demonic_legion.sql
  type `idx_edge_publicApiKey_manifestHash` (line 3) | CREATE INDEX `idx_edge_publicApiKey_manifestHash` ON `edges` (`public_ap...
  type `idx_edge_apiKey_manifestHash_from_to` (line 4) | CREATE INDEX `idx_edge_apiKey_manifestHash_from_to` ON `edges` (`public_...
  type `idx_manifests_apiKey_hash` (line 6) | CREATE UNIQUE INDEX `idx_manifests_apiKey_hash` ON `manifests` (`hash`,`...
  type `idx_manifests_public_apiKey` (line 7) | CREATE INDEX `idx_manifests_public_apiKey` ON `manifests` (`public_api_k...
  type `idx_manifests_hash` (line 8) | CREATE INDEX `idx_manifests_hash` ON `manifests` (`hash`)
  type `idx_routes_publicApiKey_manifestHash` (line 9) | CREATE INDEX `idx_routes_publicApiKey_manifestHash` ON `routes` (`public...
  type `idx_symbolDetail_apiKey_manifestHash` (line 10) | CREATE UNIQUE INDEX `idx_symbolDetail_apiKey_manifestHash` ON `symbolDet...

FILE: packages/insights/drizzle/0017_pink_maestro.sql
  type `idx_manifests_apiKey_hash_2` (line 1) | CREATE INDEX `idx_manifests_apiKey_hash_2` ON `manifests` (`public_api_k...
  type `idx_manifest_api_timestamp` (line 2) | CREATE INDEX `idx_manifest_api_timestamp` ON `manifests` (`public_api_ke...

FILE: packages/insights/drizzle/0018_heavy_toad.sql
  type `idx_apiKey_hash_from` (line 1) | CREATE INDEX `idx_apiKey_hash_from` ON `edges` (`public_api_key`,`from`,...
  type `idx_hash_to` (line 2) | CREATE INDEX `idx_hash_to` ON `edges` (`manifest_hash`,`to`)

FILE: packages/insights/drizzle/0019_known_satana.sql
  type `idx_edge_from_to` (line 1) | CREATE INDEX `idx_edge_from_to` ON `edges` (`from`,`to`)

FILE: packages/insights/scripts/db.migrate.cjs
  function migrateDB (line 4) | async function migrateDB() {
  function migrateLibSql (line 10) | async function migrateLibSql(url, authToken) {
  function env (line 26) | function env(name) {

FILE: packages/insights/src/components/app-card/index.tsx
  type AppCardProps (line 6) | type AppCardProps = {

FILE: packages/insights/src/components/avatar/index.tsx
  type AvatarProps (line 3) | type AvatarProps = {

FILE: packages/insights/src/components/button/index.tsx
  type ButtonProps (line 3) | type ButtonProps = QwikIntrinsicElements['button'] & {

FILE: packages/insights/src/components/container/index.tsx
  type LayoutProps (line 3) | type LayoutProps = {

FILE: packages/insights/src/components/gauge/index.tsx
  type GaugeProps (line 3) | type GaugeProps = {

FILE: packages/insights/src/components/histogram/index.tsx
  function formatNumber (line 111) | function formatNumber(number: number): string {

FILE: packages/insights/src/components/icons/apps.tsx
  function AppsIcon (line 3) | function AppsIcon(props: QwikIntrinsicElements['svg'], key: string) {

FILE: packages/insights/src/components/icons/bundle.tsx
  function BundleIcon (line 3) | function BundleIcon(props: QwikIntrinsicElements['svg'], key: string) {

FILE: packages/insights/src/components/icons/close.tsx
  function CloseIcon (line 3) | function CloseIcon(props: QwikIntrinsicElements['svg'], key: string) {

FILE: packages/insights/src/components/icons/copy.tsx
  type CopyIconProps (line 3) | interface CopyIconProps {

FILE: packages/insights/src/components/icons/dark-mode.tsx
  function DarkModeIcon (line 3) | function DarkModeIcon(props: QwikIntrinsicElements['svg'], key: string) {

FILE: packages/insights/src/components/icons/dashboard.tsx
  function DashboardIcon (line 3) | function DashboardIcon(props: QwikIntrinsicElements['svg'], key: string) {

FILE: packages/insights/src/components/icons/disk.tsx
  function DiskIcon (line 3) | function DiskIcon(props: QwikIntrinsicElements['svg'], key: string) {

FILE: packages/insights/src/components/icons/edge.tsx
  function EdgeIcon (line 3) | function EdgeIcon(props: QwikIntrinsicElements['svg'], key: string) {

FILE: packages/insights/src/components/icons/github.tsx
  function GithubIcon (line 3) | function GithubIcon(props: QwikIntrinsicElements['svg'], key: string) {

FILE: packages/insights/src/components/icons/light-mode.tsx
  function LightModeIcon (line 3) | function LightModeIcon(props: QwikIntrinsicElements['svg'], key: string) {

FILE: packages/insights/src/components/icons/manifest.tsx
  function ManifestIcon (line 3) | function ManifestIcon(props: QwikIntrinsicElements['svg'], key: string) {

FILE: packages/insights/src/components/icons/routes.tsx
  function RoutesIcon (line 3) | function RoutesIcon(props: QwikIntrinsicElements['svg'], key: string) {

FILE: packages/insights/src/components/layout/index.tsx
  type LayoutProps (line 5) | type LayoutProps = {

FILE: packages/insights/src/components/popup-manager/index.tsx
  method show (line 34) | show<T extends {}>(component: Component<T>, props: T) {
  function isHTMLElement (line 87) | function isHTMLElement(target: any): target is HTMLElement {
  type PopupEvent (line 91) | type PopupEvent = CustomEvent<{

FILE: packages/insights/src/components/symbol-tile/index.tsx
  function codeHighlight (line 152) | function codeHighlight(

FILE: packages/insights/src/db/index.ts
  type AppDatabase (line 5) | type AppDatabase = LibSQLDatabase<DatabaseSchema>;
  function getDB (line 9) | function getDB() {
  function initializeDbIfNeeded (line 17) | async function initializeDbIfNeeded(factory: () => Promise<AppDatabase>) {

FILE: packages/insights/src/db/logging.ts
  constant LOG_TIMING (line 3) | const LOG_TIMING: boolean = isDev;
  function time (line 7) | async function time<T>(name: string, fn: () => Promise<T>): Promise<T> {

FILE: packages/insights/src/db/query-helpers.ts
  type VectorKeys (line 5) | type VectorKeys<PREFIX extends string> =
  type VectorFields (line 56) | type VectorFields<PREFIX extends string> = Record<VectorKeys<PREFIX>, nu...
  function latencyBucketField (line 58) | function latencyBucketField(bucket: number): VectorKeys<`latencyCount`> {
  function delayBucketField (line 62) | function delayBucketField(bucket: number): VectorKeys<`delayCount`> {
  function pad (line 66) | function pad(value: number): VectorKeys<''> {
  function createEdgeRow (line 70) | function createEdgeRow({
  function listToVector (line 931) | function listToVector(list: string): number[] {
  function toVector (line 935) | function toVector<PREFIX extends string>(prefix: PREFIX, dat: VectorFiel...
  function timelineBucketField (line 991) | function timelineBucketField(bucket: number): VectorKeys<`timeline`> {
  function createRouteRow (line 995) | function createRouteRow({

FILE: packages/insights/src/db/query.ts
  function getEdges (line 27) | async function getEdges(
  type SlowEdge (line 61) | interface SlowEdge {
  function getSlowEdges (line 67) | async function getSlowEdges(
  type SymbolDetailForApp (line 94) | type SymbolDetailForApp = Pick<
  function getSymbolDetails (line 99) | async function getSymbolDetails(
  function getAppInfo (line 123) | async function getAppInfo(
  function getEdgeCount (line 162) | async function getEdgeCount(db: AppDatabase, publicApiKey: string): Prom...
  function getSymbolEdgeCount (line 170) | async function getSymbolEdgeCount(db: AppDatabase, publicApiKey: string)...
  function updateEdge (line 178) | async function updateEdge(
  function updateRoutes (line 219) | async function updateRoutes(

FILE: packages/insights/src/db/schema.ts
  type DatabaseSchema (line 11) | type DatabaseSchema = {
  type ApplicationRow (line 33) | type ApplicationRow = InferSelectModel<typeof applicationTable>;
  type ApplicationRowSansId (line 34) | type ApplicationRowSansId = InferInsertModel<typeof applicationTable>;
  type SymbolRow (line 47) | type SymbolRow = InferSelectModel<typeof symbolTable>;
  type SymbolRowSansId (line 48) | type SymbolRowSansId = InferInsertModel<typeof symbolTable>;
  type ErrorRow (line 65) | type ErrorRow = InferSelectModel<typeof errorTable>;
  type ManifestRow (line 87) | type ManifestRow = InferSelectModel<typeof manifestTable>;
  type SymbolDetailRow (line 117) | type SymbolDetailRow = InferSelectModel<typeof symbolDetailTable>;
  type SymbolDetailRowSansId (line 118) | type SymbolDetailRowSansId = InferInsertModel<typeof symbolDetailTable>;
  type EdgeRow (line 253) | type EdgeRow = InferSelectModel<typeof edgeTable>;
  type EdgeRowSansId (line 254) | type EdgeRowSansId = InferInsertModel<typeof edgeTable>;
  type RouteRow (line 329) | type RouteRow = InferSelectModel<typeof routesTable>;
  type RouteRowSansId (line 330) | type RouteRowSansId = InferInsertModel<typeof routesTable>;

FILE: packages/insights/src/db/sql-edges.ts
  type OutgoingEdge (line 6) | interface OutgoingEdge {
  function dbGetOutgoingEdges (line 13) | async function dbGetOutgoingEdges(

FILE: packages/insights/src/db/sql-manifest.ts
  function dbGetManifests (line 6) | async function dbGetManifests(
  type ManifestStatsRow (line 20) | interface ManifestStatsRow {
  function dbGetManifestStats (line 26) | async function dbGetManifestStats(
  function dbGetManifestInfo (line 52) | async function dbGetManifestInfo(
  function dbGetManifestHashes (line 78) | async function dbGetManifestHashes(

FILE: packages/insights/src/db/sql-routes.ts
  type RouteSymbolRow (line 6) | interface RouteSymbolRow {
  function getRoutes (line 12) | async function getRoutes(
  type RouteRow (line 43) | interface RouteRow {
  function getRouteNames (line 48) | async function getRouteNames(
  type RouteSymbolRow (line 76) | interface RouteSymbolRow {
  function getRouteTimeline (line 82) | async function getRouteTimeline(

FILE: packages/insights/src/db/sql-user.ts
  class InsightsUser (line 5) | class InsightsUser {
    method constructor (line 11) | constructor(
    method isAuthorizedForApp (line 23) | isAuthorizedForApp(publicApiKey: string) {

FILE: packages/insights/src/entry.netlify-edge.tsx
  type QwikCityPlatform (line 18) | type QwikCityPlatform = PlatformNetlify;

FILE: packages/insights/src/routes.config.tsx
  function AppLink (line 19) | function AppLink(props: AppLinkProps & QwikIntrinsicElements['a']) {

FILE: packages/insights/src/routes.gen.d.ts
  type AppRoutes (line 5) | type AppRoutes =
  type AppRouteMap (line 29) | interface AppRouteMap {
  type AppRouteParamsFunction (line 57) | interface AppRouteParamsFunction {
  type AppLinkProps (line 127) | type AppLinkProps =

FILE: packages/insights/src/routes/api/v1/[publicApiKey]/bundles/bundles.tsx
  function getBundleGrouping (line 6) | async function getBundleGrouping({

FILE: packages/insights/src/routes/api/v1/[publicApiKey]/bundles/strategy/index.tsx
  type Strategy (line 8) | interface Strategy {
  type Prefetch (line 13) | interface Prefetch {
  function getRoutePrefetch (line 52) | function getRoutePrefetch(route: string): Prefetch {

FILE: packages/insights/src/routes/api/v1/[publicApiKey]/post/index.tsx
  function cleanupSymbolName (line 50) | function cleanupSymbolName(symbolName?: string | null): string | null {
  function migrate1 (line 60) | function migrate1(payloadJson: any) {

FILE: packages/insights/src/routes/app/[publicApiKey]/app.form.tsx
  type ApplicationForm (line 9) | type ApplicationForm = z.infer<typeof ApplicationForm>;

FILE: packages/insights/src/routes/app/[publicApiKey]/routes/[route]/index.tsx
  type SymbolData (line 69) | interface SymbolData {
  function routeRowsToRouteTree (line 76) | function routeRowsToRouteTree(routes: RouteSymbolRow[]): SymbolData[] {

FILE: packages/insights/src/routes/app/[publicApiKey]/symbols/bundles/index.tsx
  type BundleInfo (line 19) | interface BundleInfo {
  function cells (line 195) | function cells(row: number[], symbols: Symbol[]) {
  function toRGB (line 227) | function toRGB(value: number): string {

FILE: packages/insights/src/routes/app/[publicApiKey]/symbols/edge/index.tsx
  function SymbolTree (line 35) | function SymbolTree({ symbol, depth, count }: { symbol: Symbol; depth: n...

FILE: packages/insights/src/routes/app/[publicApiKey]/symbols/index.tsx
  type Symbol (line 12) | interface Symbol {
  type Manifest (line 21) | interface Manifest {
  type SymbolsInfo (line 27) | interface SymbolsInfo {
  function getSymbol (line 70) | function getSymbol(name: string) {
  function getSymbolManifest (line 86) | function getSymbolManifest(symbol: Symbol, manifestHash: string) {
  function getManifest (line 99) | function getManifest(manifestHash: string) {

FILE: packages/insights/src/routes/app/[publicApiKey]/symbols/outgoing/index.tsx
  type OutgoingInfo (line 10) | interface OutgoingInfo {

FILE: packages/insights/src/routes/app/[publicApiKey]/symbols/slow/index.tsx
  type SlowSymbol (line 17) | interface SlowSymbol {

FILE: packages/insights/src/routes/app/layout.tsx
  constant INSIGHT_USER (line 16) | const INSIGHT_USER = 'insightUser';
  function setInsightUser (line 17) | function setInsightUser(sharedMap: Map<string, any>, insightUser: Insigh...
  function getInsightUser (line 22) | function getInsightUser(sharedMap: Map<string, any>) {

FILE: packages/insights/src/routes/layout.tsx
  type SessionData (line 7) | type SessionData = Awaited<GetSessionResult>['data'];

FILE: packages/insights/src/routes/plugin@db.ts
  constant LOG_QUERY (line 13) | const LOG_QUERY: boolean = false;
  function initLibSql (line 15) | function initLibSql(url: string, authToken: string): () => Promise<AppDa...

FILE: packages/insights/src/stats/edges.ts
  type Symbol (line 4) | interface Symbol {
  type Edge (line 21) | interface Edge {
  type SymbolPairs (line 29) | interface SymbolPairs {
  type SymbolDetail (line 36) | interface SymbolDetail {
  function computeSymbolGraph (line 42) | function computeSymbolGraph(rows: SymbolPairs[], details?: SymbolDetail[...
  type SymbolVectors (line 140) | interface SymbolVectors {
  function computeSymbolVectors (line 145) | function computeSymbolVectors(symbols: Symbol[]): SymbolVectors {
  type Bundle (line 203) | interface Bundle {
  function computeBundles (line 208) | function computeBundles(symbolVectors: SymbolVectors): Bundle[] {

FILE: packages/insights/src/stats/edges.unit.ts
  function edge (line 116) | function edge(name: string): SymbolPairs {
  function toResult (line 126) | function toResult(symbolVectors: SymbolVectors): Record<string, number[]> {

FILE: packages/insights/src/stats/vector.ts
  constant NUMBER_OF_BUCKETS (line 2) | const NUMBER_OF_BUCKETS = 50;
  constant MAX_VALUE (line 8) | const MAX_VALUE = 10000;
  constant TIMELINE_MAX_VALUE (line 9) | const TIMELINE_MAX_VALUE = 15 * 60 * 1000;
  constant VALUE_OFFSET (line 15) | const VALUE_OFFSET = Math.floor(Math.pow(2, 2.5));
  constant TIMELINE_VALUE_OFFSET (line 16) | const TIMELINE_VALUE_OFFSET = Math.floor(Math.pow(2, 10));
  function toBucket (line 42) | function toBucket(value: number): number {
  function toBucketTimeline (line 50) | function toBucketTimeline(value: number): number {
  type Bucket (line 58) | interface Bucket {
  constant BUCKETS (line 77) | const BUCKETS: Bucket[] = computeBuckets(MAX_VALUE, toBucket);
  constant TIMELINE_BUCKETS (line 78) | const TIMELINE_BUCKETS: Bucket[] = computeBuckets(TIMELINE_MAX_VALUE, to...
  function fromBucket (line 80) | function fromBucket(bucket: number): {
  function vectorSum (line 88) | function vectorSum(vector: number[]): number {
  function vectorSum2 (line 95) | function vectorSum2(vector: number[], split: number): [number, number] {
  function vectorAdd (line 109) | function vectorAdd(dst: number[], src: number[]) {
  function vectorAvg (line 117) | function vectorAvg(vector: number[], buckets: Bucket[] = BUCKETS): number {
  function vectorMax (line 128) | function vectorMax(vector: number[]): number {
  constant VECTOR_TEMPLATE (line 137) | const VECTOR_TEMPLATE = (() => {
  function vectorNew (line 145) | function vectorNew(): number[] {

FILE: packages/qwik-auth/src/index.ts
  type GetSessionResult (line 16) | type GetSessionResult = Promise<{ data: Session | null; cookie: any }>;
  type QwikAuthConfig (line 17) | type QwikAuthConfig = AuthConfig;
  function serverAuthQrl (line 30) | function serverAuthQrl(authOptions: QRL<(ev: RequestEventCommon) => Qwik...
  function authAction (line 136) | async function authAction(
  function getSessionData (line 203) | async function getSessionData(req: Request, options: AuthConfig): GetSes...

FILE: packages/qwik-city/global.d.ts
  type RequestEventInternal (line 4) | type RequestEventInternal =
  type AsyncStore (line 6) | type AsyncStore = import('node:async_hooks').AsyncLocalStorage
  type ExperimentalFeatures (line 15) | type ExperimentalFeatures = import('@builder.io/qwik/optimizer').Experim...

FILE: packages/qwik-city/src/adapters/azure-swa/vite/index.ts
  function azureSwaAdapter (line 7) | function azureSwaAdapter(opts: AzureSwaAdapterOptions = {}): any {
  type AzureSwaAdapterOptions (line 68) | interface AzureSwaAdapterOptions extends ServerAdapterOptions {}

FILE: packages/qwik-city/src/adapters/bun-server/vite/index.ts
  function bunServerAdapter (line 5) | function bunServerAdapter(opts: bunServerAdapterOptions = {}): any {
  type bunServerAdapterOptions (line 28) | interface bunServerAdapterOptions extends ServerAdapterOptions {

FILE: packages/qwik-city/src/adapters/cloud-run/vite/index.ts
  function cloudRunAdapter (line 5) | function cloudRunAdapter(opts: CloudRunAdapterOptions = {}): any {
  type CloudRunAdapterOptions (line 24) | interface CloudRunAdapterOptions extends ServerAdapterOptions {}

FILE: packages/qwik-city/src/adapters/cloudflare-pages/vite/index.ts
  function cloudflarePagesAdapter (line 8) | function cloudflarePagesAdapter(opts: CloudflarePagesAdapterOptions = {}...
  type CloudflarePagesAdapterOptions (line 70) | interface CloudflarePagesAdapterOptions extends ServerAdapterOptions {

FILE: packages/qwik-city/src/adapters/deno-server/vite/index.ts
  function denoServerAdapter (line 5) | function denoServerAdapter(opts: DenoServerAdapterOptions = {}): any {
  type DenoServerAdapterOptions (line 40) | interface DenoServerAdapterOptions extends ServerAdapterOptions {

FILE: packages/qwik-city/src/adapters/netlify-edge/vite/index.ts
  function netlifyEdgeAdapter (line 8) | function netlifyEdgeAdapter(opts: NetlifyEdgeAdapterOptions = {}): any {
  type NetlifyEdgeAdapterOptions (line 99) | interface NetlifyEdgeAdapterOptions extends ServerAdapterOptions {

FILE: packages/qwik-city/src/adapters/node-server/vite/index.ts
  function nodeServerAdapter (line 5) | function nodeServerAdapter(opts: NodeServerAdapterOptions = {}): any {
  type NodeServerAdapterOptions (line 28) | interface NodeServerAdapterOptions extends ServerAdapterOptions {

FILE: packages/qwik-city/src/adapters/shared/vite/index.ts
  function viteAdapter (line 14) | function viteAdapter(opts: ViteAdapterPluginOptions) {
  function getParentDir (line 242) | function getParentDir(startDir: string, dirName: string) {
  type ViteAdapterPluginOptions (line 258) | interface ViteAdapterPluginOptions {
  type ServerAdapterOptions (line 280) | interface ServerAdapterOptions {
  type AdapterSSGOptions (line 291) | interface AdapterSSGOptions extends Omit<StaticGenerateRenderOptions, 'o...
  constant STATIC_PATHS_ID (line 316) | const STATIC_PATHS_ID = '@qwik-city-static-paths';
  constant RESOLVED_STATIC_PATHS_ID (line 319) | const RESOLVED_STATIC_PATHS_ID = `${STATIC_PATHS_ID}.js`;
  constant NOT_FOUND_PATHS_ID (line 322) | const NOT_FOUND_PATHS_ID = '@qwik-city-not-found-paths';
  constant RESOLVED_NOT_FOUND_PATHS_ID (line 325) | const RESOLVED_NOT_FOUND_PATHS_ID = `${NOT_FOUND_PATHS_ID}.js`;

FILE: packages/qwik-city/src/adapters/shared/vite/post-build.ts
  function postBuild (line 5) | async function postBuild(
  function normalizeTrailingSlash (line 69) | function normalizeTrailingSlash(pathname: string) {
  function createNotFoundPathsModule (line 76) | function createNotFoundPathsModule(basePathname: string, notFounds: stri...
  function createStaticPathsModule (line 120) | function createStaticPathsModule(basePathname: string, staticPaths: Set<...

FILE: packages/qwik-city/src/adapters/static/vite/index.ts
  function staticAdapter (line 5) | function staticAdapter(opts: StaticGenerateAdapterOptions): any {
  type StaticGenerateAdapterOptions (line 17) | interface StaticGenerateAdapterOptions extends Omit<StaticGenerateRender...

FILE: packages/qwik-city/src/adapters/vercel-edge/vite/index.ts
  function vercelEdgeAdapter (line 7) | function vercelEdgeAdapter(opts: VercelEdgeAdapterOptions = {}): any {
  type VercelEdgeAdapterOptions (line 106) | interface VercelEdgeAdapterOptions extends ServerAdapterOptions {

FILE: packages/qwik-city/src/buildtime/build.ts
  function build (line 7) | async function build(ctx: BuildContext) {
  function updateBuildContext (line 24) | async function updateBuildContext(ctx: BuildContext) {
  function rewriteRoutes (line 50) | function rewriteRoutes(ctx: BuildContext, resolvedFiles: ReturnType<type...
  function translateRoute (line 97) | function translateRoute(
  function validateBuild (line 159) | function validateBuild(ctx: BuildContext) {

FILE: packages/qwik-city/src/buildtime/context.ts
  function createBuildContext (line 5) | function createBuildContext(
  function resetBuildContext (line 31) | function resetBuildContext(ctx: BuildContext | null) {
  function normalizeOptions (line 43) | function normalizeOptions(

FILE: packages/qwik-city/src/buildtime/markdown/frontmatter.ts
  function parseFrontmatter (line 9) | function parseFrontmatter(ctx: BuildContext): Transformer {
  function parseFrontmatterAttrs (line 26) | function parseFrontmatterAttrs(yaml: string) {
  function frontmatterAttrsToDocumentHead (line 51) | function frontmatterAttrsToDocumentHead(attrs: FrontmatterAttrs | undefi...

FILE: packages/qwik-city/src/buildtime/markdown/markdown-url.ts
  function getMarkdownRelativeUrl (line 8) | function getMarkdownRelativeUrl(

FILE: packages/qwik-city/src/buildtime/markdown/mdx.ts
  function createMdxTransformer (line 10) | async function createMdxTransformer(ctx: BuildContext): Promise<MdxTrans...
  type MdxTransform (line 108) | type MdxTransform = (

FILE: packages/qwik-city/src/buildtime/markdown/menu.ts
  function createMenu (line 6) | function createMenu(opts: NormalizedPluginOptions, filePath: string) {
  function resolveMenu (line 14) | function resolveMenu(opts: NormalizedPluginOptions, menuSourceFile: Rout...
  function transformMenu (line 18) | async function transformMenu(
  function parseMenu (line 29) | function parseMenu(

FILE: packages/qwik-city/src/buildtime/markdown/rehype.ts
  function rehypeSlug (line 16) | function rehypeSlug(): Transformer {
  function rehypePage (line 34) | function rehypePage(ctx: BuildContext): Transformer {
  function renameClassname (line 46) | function renameClassname(): Transformer {
  function wrapTableWithDiv (line 61) | function wrapTableWithDiv(): Transformer {
  function updateContentLinks (line 77) | function updateContentLinks(mdast: Root, opts: NormalizedPluginOptions, ...
  function exportFrontmatter (line 99) | function exportFrontmatter(ctx: BuildContext, mdast: Root, sourcePath: s...
  function exportContentHead (line 104) | function exportContentHead(ctx: BuildContext, mdast: Root, sourcePath: s...
  function exportContentHeadings (line 112) | function exportContentHeadings(mdast: Root) {
  function createExport (line 134) | function createExport(mdast: Root, identifierName: string, val: any) {
  function hasProperty (line 168) | function hasProperty(node: any, propName: string) {

FILE: packages/qwik-city/src/buildtime/markdown/syntax-highlight.ts
  function rehypeSyntaxHighlight (line 7) | function rehypeSyntaxHighlight(): Transformer {
  function syntaxHighlight (line 34) | function syntaxHighlight(node: any, lang: string) {
  function getLanguage (line 42) | function getLanguage(className: string) {

FILE: packages/qwik-city/src/buildtime/routing/parse-pathname.ts
  function parseRoutePathname (line 8) | function parseRoutePathname(basePathname: string, pathname: string): Par...
  constant PARAM_PATTERN (line 96) | const PARAM_PATTERN = /^(\.\.\.)?(\w+)?$/;
  constant DYNAMIC_SEGMENT (line 97) | const DYNAMIC_SEGMENT = /\[(.+?)\]/;

FILE: packages/qwik-city/src/buildtime/routing/resolve-source-file.ts
  function resolveSourceFiles (line 20) | function resolveSourceFiles(opts: NormalizedPluginOptions, sourceFiles: ...
  function resolveLayout (line 75) | function resolveLayout(opts: NormalizedPluginOptions, layoutSourceFile: ...
  constant LAYOUT_ID (line 107) | const LAYOUT_ID = 'layout';
  constant LAYOUT_NAMED_PREFIX (line 108) | const LAYOUT_NAMED_PREFIX = LAYOUT_ID + '-';
  constant LAYOUT_TOP_SUFFIX (line 109) | const LAYOUT_TOP_SUFFIX = '!';
  function resolveRoute (line 111) | function resolveRoute(
  function resolveServerPlugin (line 170) | function resolveServerPlugin(opts: NormalizedPluginOptions, sourceFile: ...
  function resolveEntry (line 180) | function resolveEntry(opts: NormalizedPluginOptions, sourceFile: RouteSo...
  function resolveServiceWorkerEntry (line 194) | function resolveServiceWorkerEntry(opts: NormalizedPluginOptions, source...

FILE: packages/qwik-city/src/buildtime/routing/sort-routes.ts
  function routeSortCompare (line 3) | function routeSortCompare(a: BuildRoute, b: BuildRoute) {

FILE: packages/qwik-city/src/buildtime/routing/sort-routes.unit.ts
  function route (line 45) | function route(r: TestRoute) {
  type TestRoute (line 58) | interface TestRoute {

FILE: packages/qwik-city/src/buildtime/routing/source-file.ts
  function getSourceFile (line 16) | function getSourceFile(fileName: string) {

FILE: packages/qwik-city/src/buildtime/routing/walk-routes-dir.ts
  function walkRoutes (line 7) | async function walkRoutes(routesDir: string) {
  function walkRouteDir (line 13) | async function walkRouteDir(sourceFiles: RouteSourceFile[], dirPath: str...

FILE: packages/qwik-city/src/buildtime/routing/walk-server-plugins.ts
  function walkServerPlugins (line 14) | async function walkServerPlugins(opts: NormalizedPluginOptions) {

FILE: packages/qwik-city/src/buildtime/runtime-generation/generate-entries.ts
  function createEntries (line 3) | function createEntries(ctx: BuildContext, c: string[]) {
  function generateQwikCityEntries (line 17) | function generateQwikCityEntries(ctx: BuildContext) {

FILE: packages/qwik-city/src/buildtime/runtime-generation/generate-menus.ts
  function createMenus (line 5) | function createMenus(ctx: BuildContext, c: string[], esmImports: string[...

FILE: packages/qwik-city/src/buildtime/runtime-generation/generate-qwik-city-plan.ts
  function generateQwikCityPlan (line 9) | function generateQwikCityPlan(

FILE: packages/qwik-city/src/buildtime/runtime-generation/generate-routes.ts
  function createRoutes (line 6) | function createRoutes(
  function createRouteData (line 66) | function createRouteData(
  function getClientRouteBundleNames (line 89) | function getClientRouteBundleNames(qwikPlugin: QwikVitePlugin, r: BuildR...

FILE: packages/qwik-city/src/buildtime/runtime-generation/generate-server-plugins.ts
  function createServerPlugins (line 5) | function createServerPlugins(

FILE: packages/qwik-city/src/buildtime/runtime-generation/generate-service-worker.ts
  function generateServiceWorkerRegister (line 3) | function generateServiceWorkerRegister(ctx: BuildContext, swRegister: st...
  constant SW_UNREGISTER (line 23) | const SW_UNREGISTER = `

FILE: packages/qwik-city/src/buildtime/runtime-generation/utils.ts
  function getImportPath (line 1) | function getImportPath(importPath: string) {

FILE: packages/qwik-city/src/buildtime/types.ts
  type BuildContext (line 1) | interface BuildContext {
  type Yaml (line 19) | type Yaml = string | number | boolean | null | { [attrName: string]: Yam...
  type FrontmatterAttrs (line 21) | interface FrontmatterAttrs {
  type Diagnostic (line 25) | interface Diagnostic {
  type RouteSourceFile (line 30) | interface RouteSourceFile extends RouteSourceFileName {
  type RouteSourceFileName (line 37) | interface RouteSourceFileName {
  type RouteSourceType (line 45) | type RouteSourceType = 'route' | 'layout' | 'entry' | 'menu' | 'service-...
  type BuildRoute (line 47) | interface BuildRoute extends ParsedPathname {
  type BuildServerPlugin (line 58) | interface BuildServerPlugin {
  type ParsedPathname (line 66) | interface ParsedPathname {
  type PathnameSegment (line 73) | type PathnameSegment = PathnameSegmentPart[];
  type PathnameSegmentPart (line 75) | interface PathnameSegmentPart {
  type BuildLayout (line 81) | interface BuildLayout {
  type BuildEntry (line 89) | interface BuildEntry extends ParsedPathname {
  type BuildMenu (line 95) | interface BuildMenu {
  type ParsedMenuItem (line 100) | interface ParsedMenuItem {
  type RewriteRouteOption (line 107) | interface RewriteRouteOption {
  type PluginOptions (line 113) | interface PluginOptions {
  type MdxPlugins (line 138) | interface MdxPlugins {
  type NormalizedPluginOptions (line 144) | interface NormalizedPluginOptions extends Required<PluginOptions> {
  type MarkdownAttributes (line 148) | interface MarkdownAttributes {

FILE: packages/qwik-city/src/buildtime/vite/config.ts
  function extendConfig (line 5) | function extendConfig(

FILE: packages/qwik-city/src/buildtime/vite/dev-server.ts
  function ssrDevMiddleware (line 33) | function ssrDevMiddleware(ctx: BuildContext, server: ViteDevServer) {
  function getUnmatchedRouteHtml (line 349) | function getUnmatchedRouteHtml(url: URL, ctx: BuildContext): string {
  function staticDistMiddleware (line 428) | function staticDistMiddleware({ config }: ViteDevServer) {
  function formatDevSerializeError (line 473) | function formatDevSerializeError(err: any, routeModulePaths: WeakMap<Rou...
  constant FS_PREFIX (line 509) | const FS_PREFIX = `/@fs/`;
  constant VALID_ID_PREFIX (line 510) | const VALID_ID_PREFIX = `/@id/`;
  constant VITE_PUBLIC_PATH (line 511) | const VITE_PUBLIC_PATH = `/@vite/`;
  function shouldSkipRequest (line 515) | function shouldSkipRequest(pathname: string) {
  function isVitePing (line 538) | function isVitePing(url: string, headers: Connect.IncomingMessage['heade...
  constant SKIP_SRC_EXTS (line 542) | const SKIP_SRC_EXTS: { [ext: string]: boolean } = {
  constant STATIC_CONTENT_TYPES (line 557) | const STATIC_CONTENT_TYPES: { [ext: string]: string } = {
  constant DEV_SERVICE_WORKER (line 571) | const DEV_SERVICE_WORKER = `/* Qwik City Dev Service Worker */

FILE: packages/qwik-city/src/buildtime/vite/format-error.ts
  function formatError (line 8) | function formatError(e: any) {

FILE: packages/qwik-city/src/buildtime/vite/get-route-imports.ts
  function getRouteImports (line 6) | function getRouteImports(routes: BuildRoute[], manifest: QwikManifest) {
  function isBundlePartOfRoute (line 41) | function isBundlePartOfRoute(bundle: QwikBundle, routeAndLayoutPaths: st...

FILE: packages/qwik-city/src/buildtime/vite/image-jsx.ts
  function imagePlugin (line 11) | function imagePlugin(userOpts?: QwikCityVitePluginOptions): PluginOption...
  function optimizeSvg (line 121) | function optimizeSvg(

FILE: packages/qwik-city/src/buildtime/vite/plugin.ts
  function qwikCity (line 31) | function qwikCity(userOpts?: QwikCityVitePluginOptions): PluginOption[] {
  function qwikCityPlugin (line 35) | function qwikCityPlugin(userOpts?: QwikCityVitePluginOptions): any {
  constant QWIK_SERIALIZER (line 324) | const QWIK_SERIALIZER = '@qwik-serializer';
  constant QWIK_CITY_PLAN_ID (line 325) | const QWIK_CITY_PLAN_ID = '@qwik-city-plan';
  constant QWIK_CITY_ENTRIES_ID (line 326) | const QWIK_CITY_ENTRIES_ID = '@qwik-city-entries';
  constant QWIK_CITY (line 327) | const QWIK_CITY = '@builder.io/qwik-city';
  constant QWIK_CITY_SW_REGISTER (line 328) | const QWIK_CITY_SW_REGISTER = '@qwik-city-sw-register';

FILE: packages/qwik-city/src/buildtime/vite/types.ts
  type ImageOptimizationOptions (line 9) | interface ImageOptimizationOptions {
  type QwikCityVitePluginOptions (line 25) | interface QwikCityVitePluginOptions extends Omit<PluginOptions, 'basePat...
  type MdxOptions (line 34) | type MdxOptions = CompileOptions;
  type PluginContext (line 36) | interface PluginContext {
  type P (line 43) | type P<T> = VitePlugin<T> & { api: T };
  type QwikCityPlugin (line 46) | interface QwikCityPlugin extends P<QwikCityPluginApi> {
  type QwikCityPluginApi (line 51) | interface QwikCityPluginApi {

FILE: packages/qwik-city/src/buildtime/vite/validate-plugin.ts
  function validatePlugin (line 5) | async function validatePlugin(opts: NormalizedPluginOptions) {

FILE: packages/qwik-city/src/middleware/aws-lambda/index.ts
  type AwsOpt (line 6) | interface AwsOpt {
  function createQwikCity (line 13) | function createQwikCity(opts: AwsOpt) {
  type QwikCityAwsLambdaOptions (line 59) | interface QwikCityAwsLambdaOptions extends ServerRenderOptions {}
  type PlatformAwsLambda (line 62) | interface PlatformAwsLambda extends Object {}

FILE: packages/qwik-city/src/middleware/azure-swa/index.ts
  type AzureResponse (line 15) | interface AzureResponse {
  type AzureCookie (line 22) | interface AzureCookie {
  function createQwikCity (line 51) | function createQwikCity(opts: QwikCityAzureOptions): AzureFunction {
  type QwikCityAzureOptions (line 152) | interface QwikCityAzureOptions extends ServerRenderOptions {}
  type PlatformAzure (line 155) | interface PlatformAzure extends Partial<Context> {}

FILE: packages/qwik-city/src/middleware/bun/index.ts
  function getRequestUrl (line 19) | function getRequestUrl(request: Request, opts: QwikCityBunOptions) {
  function createQwikCity (line 29) | function createQwikCity(opts: QwikCityBunOptions) {
  type QwikCityBunOptions (line 194) | interface QwikCityBunOptions extends ServerRenderOptions {

FILE: packages/qwik-city/src/middleware/cloudflare-pages/index.ts
  function createQwikCity (line 18) | function createQwikCity(opts: QwikCityCloudflarePagesOptions) {
  type QwikCityCloudflarePagesOptions (line 141) | interface QwikCityCloudflarePagesOptions extends ServerRenderOptions {}
  type PlatformCloudflarePages (line 144) | interface PlatformCloudflarePages {

FILE: packages/qwik-city/src/middleware/deno/index.ts
  type NetAddr (line 21) | interface NetAddr {
  type ServeHandlerInfo (line 28) | interface ServeHandlerInfo {
  function getRequestUrl (line 32) | function getRequestUrl(request: Request, opts: QwikCityDenoOptions, info...
  function createQwikCity (line 42) | function createQwikCity(opts: QwikCityDenoOptions) {
  type QwikCityDenoOptions (line 187) | interface QwikCityDenoOptions extends ServerRenderOptions {

FILE: packages/qwik-city/src/middleware/firebase/index.ts
  function createQwikCity (line 6) | function createQwikCity(opts: QwikCityFirebaseOptions) {
  type QwikCityFirebaseOptions (line 32) | interface QwikCityFirebaseOptions extends ServerRenderOptions {}
  type PlatformFirebase (line 35) | interface PlatformFirebase extends Object {}

FILE: packages/qwik-city/src/middleware/netlify-edge/index.ts
  function createQwikCity (line 20) | function createQwikCity(opts: QwikCityNetlifyOptions) {
  type QwikCityNetlifyOptions (line 102) | interface QwikCityNetlifyOptions extends ServerRenderOptions {}
  type PlatformNetlify (line 105) | interface PlatformNetlify extends Partial<Omit<Context, 'next' | 'cookie...

FILE: packages/qwik-city/src/middleware/node/http.ts
  function computeOrigin (line 10) | function computeOrigin(
  function fallbackOrigin (line 17) | function fallbackOrigin(req: IncomingMessage | Http2ServerRequest) {
  function getUrl (line 29) | function getUrl(req: IncomingMessage | Http2ServerRequest, origin: strin...
  function isIgnoredError (line 34) | function isIgnoredError(message = '') {
  function normalizeUrl (line 42) | function normalizeUrl(url: string, base: string) {
  function fromNodeHttp (line 53) | async function fromNodeHttp(

FILE: packages/qwik-city/src/middleware/node/index.ts
  function createQwikCity (line 22) | function createQwikCity(opts: QwikCityNodeRequestOptions) {
  type PlatformNode (line 148) | interface PlatformNode {
  type QwikCityNodeRequestOptions (line 155) | interface QwikCityNodeRequestOptions extends ServerRenderOptions {
  type NodeRequestNextFunction (line 184) | interface NodeRequestNextFunction {

FILE: packages/qwik-city/src/middleware/node/node-fetch.ts
  function patchGlobalThis (line 12) | function patchGlobalThis() {

FILE: packages/qwik-city/src/middleware/request-handler/cache-control.ts
  function createCacheControl (line 3) | function createCacheControl(cacheControl: CacheControl) {

FILE: packages/qwik-city/src/middleware/request-handler/cookie.ts
  constant SAMESITE (line 3) | const SAMESITE = {
  constant UNIT (line 12) | const UNIT = {
  function tryDecodeUriComponent (line 58) | function tryDecodeUriComponent(str: string) {
  function resolveSameSite (line 81) | function resolveSameSite(sameSite: CookieOptions['sameSite']) {
  constant REQ_COOKIE (line 94) | const REQ_COOKIE = Symbol('request-cookies');
  constant RES_COOKIE (line 95) | const RES_COOKIE = Symbol('response-cookies');
  constant LIVE_COOKIE (line 96) | const LIVE_COOKIE = Symbol('live-cookies');
  class Cookie (line 98) | class Cookie implements CookieInterface {
    method constructor (line 104) | constructor(cookieString?: string | undefined | null) {
    method get (line 109) | get(cookieName: string, live: boolean = true) {
    method getAll (line 125) | getAll(live: boolean = true) {
    method has (line 135) | has(cookieName: string, live: boolean = true) {
    method set (line 139) | set(
    method append (line 154) | append(
    method delete (line 173) | delete(name: string, options?: Pick<CookieOptions, 'path' | 'domain' |...
    method headers (line 178) | headers() {

FILE: packages/qwik-city/src/middleware/request-handler/cookie.unit.ts
  type TestData (line 5) | interface TestData {

FILE: packages/qwik-city/src/middleware/request-handler/error-handler.ts
  function getErrorHtml (line 2) | function getErrorHtml(status: number, e: any) {
  function minimalHtmlResponse (line 16) | function minimalHtmlResponse(status: number, message?: string) {
  constant ESCAPE_HTML (line 43) | const ESCAPE_HTML = /[&<>]/g;
  constant COLOR_400 (line 60) | const COLOR_400 = '#006ce9';
  constant COLOR_500 (line 61) | const COLOR_500 = '#713fc2';

FILE: packages/qwik-city/src/middleware/request-handler/generated/not-found-paths.ts
  function getNotFound (line 5) | function getNotFound(_pathname: string) {

FILE: packages/qwik-city/src/middleware/request-handler/generated/static-paths.ts
  function isStaticPath (line 8) | function isStaticPath(method: string, url: URL) {

FILE: packages/qwik-city/src/middleware/request-handler/http-status-codes.ts
  type HttpStatus (line 6) | enum HttpStatus {

FILE: packages/qwik-city/src/middleware/request-handler/mime-types.ts
  constant MIME_TYPES (line 2) | const MIME_TYPES: { [ext: string]: string } = {

FILE: packages/qwik-city/src/middleware/request-handler/polyfill.ts
  class _TextEncoderStream_polyfill (line 9) | class _TextEncoderStream_polyfill {
    method encoding (line 63) | get encoding() {
    method readable (line 67) | get readable() {
    method writable (line 71) | get writable() {
  method [Symbol.toStringTag] (line 75) | get [Symbol.toStringTag]() {

FILE: packages/qwik-city/src/middleware/request-handler/polyfill.unit.ts
  method transform (line 122) | transform(chunk, controller) {

FILE: packages/qwik-city/src/middleware/request-handler/redirect-handler.ts
  class AbortMessage (line 2) | class AbortMessage {}
  class RedirectMessage (line 5) | class RedirectMessage extends AbortMessage {}

FILE: packages/qwik-city/src/middleware/request-handler/request-event.ts
  function createRequestEvent (line 46) | function createRequestEvent(
  type RequestEventInternal (line 333) | interface RequestEventInternal extends Readonly<RequestEvent>, Readonly<...
  function getRequestLoaders (line 361) | function getRequestLoaders(requestEv: RequestEventCommon) {
  function getRequestTrailingSlash (line 365) | function getRequestTrailingSlash(requestEv: RequestEventCommon) {
  function getRequestRoute (line 369) | function getRequestRoute(requestEv: RequestEventCommon) {
  function getRequestMode (line 373) | function getRequestMode(requestEv: RequestEventCommon) {
  constant ABORT_INDEX (line 377) | const ABORT_INDEX = Number.MAX_SAFE_INTEGER;

FILE: packages/qwik-city/src/middleware/request-handler/request-event.unit.ts
  function createMockServerRequestEvent (line 12) | function createMockServerRequestEvent(url = 'http://localhost:3000/test'...
  function createMockRequestEvent (line 39) | function createMockRequestEvent(url = 'http://localhost:3000/test') {

FILE: packages/qwik-city/src/middleware/request-handler/request-handler.ts
  function requestHandler (line 13) | async function requestHandler<T = unknown>(
  function loadRequestHandlers (line 68) | async function loadRequestHandlers(

FILE: packages/qwik-city/src/middleware/request-handler/resolve-request-handlers.ts
  function actionsMiddleware (line 196) | function actionsMiddleware(routeActions: ActionInternal[], routeLoaders:...
  function runValidators (line 292) | async function runValidators(
  function isAsyncIterator (line 321) | function isAsyncIterator(obj: unknown): obj is AsyncIterable<unknown> {
  function runServerFunction (line 325) | async function runServerFunction(ev: RequestEvent) {
  function fixTrailingSlash (line 382) | function fixTrailingSlash(ev: RequestEvent) {
  function verifySerializable (line 418) | function verifySerializable(qwikSerializer: QwikSerializer, data: any, q...
  function isLastModulePageRoute (line 433) | function isLastModulePageRoute(routeModules: RouteModule[]) {
  function getPathname (line 438) | function getPathname(url: URL, trailingSlash: boolean | undefined) {
  function csrfLaxProtoCheckMiddleware (line 459) | function csrfLaxProtoCheckMiddleware(requestEv: RequestEvent) {
  function csrfCheckMiddleware (line 462) | function csrfCheckMiddleware(requestEv: RequestEvent) {
  function checkCSRF (line 465) | function checkCSRF(requestEv: RequestEvent, laxProto?: 'lax-proto') {
  function renderQwikMiddleware (line 500) | function renderQwikMiddleware(render: Render) {
  function handleQDataRedirect (line 558) | async function handleQDataRedirect(requestEv: RequestEvent) {
  function renderQData (line 587) | async function renderQData(requestEv: RequestEvent) {
  function makeQDataPath (line 620) | function makeQDataPath(href: string) {
  function now (line 634) | function now() {
  function measure (line 638) | async function measure<T>(
  function getContentType (line 656) | function getContentType(headers: Headers): string {
  function isContentType (line 660) | function isContentType(headers: Headers, ...types: string[]) {

FILE: packages/qwik-city/src/middleware/request-handler/resolve-request-handlers.unit.ts
  function createMockServerRequestEvent (line 14) | function createMockServerRequestEvent(url = 'http://localhost:3000/test'...
  function createMockRequestEvent (line 41) | function createMockRequestEvent(url = 'http://localhost:3000/test', trai...

FILE: packages/qwik-city/src/middleware/request-handler/response-page.ts
  function getQwikCityServerData (line 12) | function getQwikCityServerData(requestEv: RequestEvent) {

FILE: packages/qwik-city/src/middleware/request-handler/rewrite-handler.ts
  class RewriteMessage (line 4) | class RewriteMessage extends AbortMessage {
    method constructor (line 5) | constructor(readonly pathname: string) {

FILE: packages/qwik-city/src/middleware/request-handler/server-error.ts
  class ServerError (line 2) | class ServerError<T = any> extends Error {
    method constructor (line 3) | constructor(
  class ErrorResponse (line 12) | class ErrorResponse extends ServerError {
    method constructor (line 13) | constructor(

FILE: packages/qwik-city/src/middleware/request-handler/types.ts
  type EnvGetter (line 10) | interface EnvGetter {
  type ClientConn (line 15) | interface ClientConn {
  type ServerRequestEvent (line 24) | interface ServerRequestEvent<T = unknown> {
  type ServerRequestMode (line 36) | type ServerRequestMode = 'dev' | 'static' | 'server';
  type ServerResponseHandler (line 39) | type ServerResponseHandler<T = any> = (
  type ServerRenderOptions (line 48) | interface ServerRenderOptions extends RenderOptions {
  type RequestHandler (line 65) | type RequestHandler<PLATFORM = QwikCityPlatform> = (
  type SendMethod (line 70) | interface SendMethod {
  type StatusCodes (line 75) | type StatusCodes =
  type ErrorCodes (line 83) | type ErrorCodes = ClientErrorCode | ServerErrorCode;
  type InformationalCode (line 89) | type InformationalCode =
  type SuccessCode (line 99) | type SuccessCode =
  type RedirectCode (line 115) | type RedirectCode =
  type ClientErrorCode (line 129) | type ClientErrorCode =
  type ServerErrorCode (line 165) | type ServerErrorCode =
  type RequestEventCommon (line 179) | interface RequestEventCommon<PLATFORM = QwikCityPlatform>
  type RequestEventBase (line 252) | interface RequestEventBase<PLATFORM = QwikCityPlatform> {
  type CacheControl (line 364) | type CacheControl =
  type CacheControlOptions (line 376) | interface CacheControlOptions {
  type CacheControlTarget (line 449) | type CacheControlTarget =
  type RequestEvent (line 458) | interface RequestEvent<PLATFORM = QwikCityPlatform> extends RequestEvent...
  type QwikCityPlatform (line 479) | interface QwikCityPlatform {}
  type RequestEventAction (line 483) | interface RequestEventAction<PLATFORM = QwikCityPlatform>
  type DeferReturn (line 489) | type DeferReturn<T> = () => Promise<T>;
  type RequestEventLoader (line 492) | interface RequestEventLoader<PLATFORM = QwikCityPlatform>
  type ResolveValue (line 499) | interface ResolveValue {
  type ResolveSyncValue (line 505) | interface ResolveSyncValue {
  type Cookie (line 511) | interface Cookie {
  type CookieOptions (line 541) | interface CookieOptions {
  type CookieValue (line 582) | interface CookieValue {
  type QwikSerializer (line 589) | interface QwikSerializer {
  type HttpMethod (line 596) | type HttpMethod =

FILE: packages/qwik-city/src/middleware/request-handler/user-response.ts
  type QwikCityRun (line 20) | interface QwikCityRun<T> {
  function runQwikCity (line 40) | function runQwikCity<T>(
  function runNext (line 70) | async function runNext(
  function getRouteMatchPathname (line 160) | function getRouteMatchPathname(pathname: string, trailingSlash: boolean ...
  constant QDATA_JSON (line 173) | const QDATA_JSON = '/q-data.json';

FILE: packages/qwik-city/src/middleware/vercel-edge/index.ts
  constant COUNTRY_HEADER_NAME (line 15) | const COUNTRY_HEADER_NAME = 'x-vercel-ip-country';
  constant IP_HEADER_NAME (line 16) | const IP_HEADER_NAME = 'x-real-ip';
  constant VERCEL_COOKIE (line 17) | const VERCEL_COOKIE = '__vdpl';
  constant VERCEL_SKEW_PROTECTION_ENABLED (line 18) | const VERCEL_SKEW_PROTECTION_ENABLED = 'VERCEL_SKEW_PROTECTION_ENABLED';
  constant VERCEL_DEPLOYMENT_ID (line 19) | const VERCEL_DEPLOYMENT_ID = 'VERCEL_DEPLOYMENT_ID';
  constant BASE_URL (line 20) | const BASE_URL = 'BASE_URL';
  function createQwikCity (line 23) | function createQwikCity(opts: QwikCityVercelEdgeOptions) {
  type QwikCityVercelEdgeOptions (line 129) | interface QwikCityVercelEdgeOptions extends ServerRenderOptions {}
  type PlatformVercel (line 132) | interface PlatformVercel {}

FILE: packages/qwik-city/src/runtime/src/client-navigate.unit.ts
  function createTestWindow (line 80) | function createTestWindow<T>(href: string): [testWindow: TestWindow, url...
  type TestWindow (line 134) | interface TestWindow extends Window {

FILE: packages/qwik-city/src/runtime/src/constants.ts
  constant MODULE_CACHE (line 3) | const MODULE_CACHE = /*#__PURE__*/ new WeakMap<any, any>();
  constant CLIENT_DATA_CACHE (line 5) | const CLIENT_DATA_CACHE = new Map<string, Promise<ClientPageData | undef...
  constant QACTION_KEY (line 7) | const QACTION_KEY = 'qaction';
  constant QFN_KEY (line 9) | const QFN_KEY = 'qfunc';
  constant QDATA_KEY (line 11) | const QDATA_KEY = 'qdata';

FILE: packages/qwik-city/src/runtime/src/error-boundary.tsx
  type ErrorBoundaryProps (line 4) | interface ErrorBoundaryProps {

FILE: packages/qwik-city/src/runtime/src/form-component.tsx
  type FormSubmitCompletedDetail (line 14) | interface FormSubmitCompletedDetail<T> {
  type FormProps (line 20) | interface FormProps<O, I>

FILE: packages/qwik-city/src/runtime/src/link-component.tsx
  type AnchorAttributes (line 141) | type AnchorAttributes = QwikIntrinsicElements['a'];
  type LinkProps (line 144) | interface LinkProps extends AnchorAttributes {

FILE: packages/qwik-city/src/runtime/src/qwik-city-component.tsx
  constant QWIK_CITY_SCROLLER (line 69) | const QWIK_CITY_SCROLLER = '_qCityScroller';
  type QwikCityProps (line 72) | interface QwikCityProps {
  function run (line 336) | async function run() {
  function getContainer (line 663) | function getContainer(elm: Node): HTMLElement {
  type QwikCityMockLoaderProp (line 671) | interface QwikCityMockLoaderProp<T = any> {
  type QwikCityMockActionProp (line 680) | interface QwikCityMockActionProp<T = any> {
  type QwikCityMockProps (line 689) | interface QwikCityMockProps {
  type ClientSPAWindow (line 809) | interface ClientSPAWindow extends Window {

FILE: packages/qwik-city/src/runtime/src/route-matcher.ts
  function matchRoute (line 10) | function matchRoute(route: string, path: string): PathParams | null {
  function matchRoutePart (line 18) | function matchRoutePart(
  function isRestParameter (line 90) | function isRestParameter(text: string, idx: number): boolean {
  function lengthNoTrailingSlash (line 94) | function lengthNoTrailingSlash(text: string): number {
  function allConsumed (line 99) | function allConsumed(text: string, idx: number): boolean {
  function startIdxSkipSlash (line 104) | function startIdxSkipSlash(text: string): 0 | 1 {
  function isThreeDots (line 108) | function isThreeDots(text: string, idx: number): boolean {
  function scan (line 116) | function scan(text: string, idx: number, end: number, ch: Char, suffix: ...
  type Char (line 129) | const enum Char {
  function recursiveScan (line 136) | function recursiveScan(
  function lastIndexOf (line 170) | function lastIndexOf(

FILE: packages/qwik-city/src/runtime/src/routing.ts
  constant CACHE (line 13) | const CACHE = new Map<RouteData, Promise<any>>();

FILE: packages/qwik-city/src/runtime/src/scroll-restoration.ts
  type ScrollHistoryState (line 57) | interface ScrollHistoryState {

FILE: packages/qwik-city/src/runtime/src/server-functions.ts
  function action (line 63) | function action() {
  function loader (line 192) | function loader() {
  method validate (line 272) | async validate(ev, inputData) {
  method validate (line 338) | async validate(ev, inputData) {
  function rpc (line 403) | function rpc() {

FILE: packages/qwik-city/src/runtime/src/server-functions.unit.ts
  type ErrorType (line 74) | type ErrorType = ValidatorErrorType<z.infer<typeof zodSchema>>['fieldErr...
  type ErrorType (line 86) | type ErrorType = ValidatorErrorType<z.infer<typeof zodSchema>>['fieldErr...
  type ErrorType (line 102) | type ErrorType = ValidatorErrorType<z.infer<typeof zodSchema>>['fieldErr...
  type ErrorType (line 146) | type ErrorType = ValidatorErrorType<z.infer<typeof UserSchema>>['fieldEr...
  type EqualType (line 147) | type EqualType = {

FILE: packages/qwik-city/src/runtime/src/types.ts
  type RouteModule (line 36) | interface RouteModule<BODY = unknown> {
  type PageModule (line 48) | interface PageModule extends RouteModule {
  type LayoutModule (line 55) | interface LayoutModule extends RouteModule {
  type MenuModule (line 60) | interface MenuModule {
  type RouteLocation (line 65) | interface RouteLocation {
  type NavigationType (line 73) | type NavigationType = 'initial' | 'form' | 'link' | 'popstate';
  type RouteStateInternal (line 76) | type RouteStateInternal = {
  type RebuildRouteInfoInternal (line 84) | type RebuildRouteInfoInternal = (
  type PreventNavigateCallback (line 99) | type PreventNavigateCallback = (url?: number | URL) => ValueOrPromise<bo...
  type RoutePreventNavigate (line 102) | type RoutePreventNavigate = QRL<(cb$: QRL<PreventNavigateCallback>) => (...
  type ScrollState (line 104) | type ScrollState = {
  type RouteNavigate (line 112) | type RouteNavigate = QRL<
  type RouteAction (line 126) | type RouteAction = Signal<RouteActionValue>;
  type RouteActionResolver (line 128) | type RouteActionResolver = { status: number; result: unknown };
  type RouteActionValue (line 129) | type RouteActionValue =
  type MutableRouteLocation (line 138) | type MutableRouteLocation = Mutable<RouteLocation>;
  type Mutable (line 140) | type Mutable<T> = { -readonly [K in keyof T]: T[K] };
  type DocumentHeadValue (line 143) | interface DocumentHeadValue<
  type ResolvedDocumentHead (line 168) | type ResolvedDocumentHead<
  type DocumentMeta (line 173) | interface DocumentMeta {
  type DocumentLink (line 184) | interface DocumentLink {
  type DocumentStyle (line 205) | interface DocumentStyle {
  type DocumentScript (line 212) | interface DocumentScript {
  type DocumentHeadProps (line 219) | interface DocumentHeadProps extends RouteLocation {
  type DocumentHead (line 226) | type DocumentHead = DocumentHeadValue | ((props: DocumentHeadProps) => D...
  type ContentStateInternal (line 228) | type ContentStateInternal = NoSerialize<ContentModule[]>;
  type ContentState (line 231) | interface ContentState {
  type ContentMenu (line 237) | interface ContentMenu {
  type ContentHeading (line 244) | interface ContentHeading {
  type ContentModuleLoader (line 250) | type ContentModuleLoader = () => Promise<ContentModule>;
  type EndpointModuleLoader (line 251) | type EndpointModuleLoader = () => Promise<RouteModule>;
  type ModuleLoader (line 252) | type ModuleLoader = ContentModuleLoader | EndpointModuleLoader;
  type MenuModuleLoader (line 253) | type MenuModuleLoader = () => Promise<MenuModule>;
  type RouteData (line 256) | type RouteData =
  type MenuData (line 266) | type MenuData = [pathname: string, menuLoader: MenuModuleLoader];
  type QwikCityPlan (line 269) | interface QwikCityPlan {
  type PathParams (line 279) | type PathParams = Record<string, string>;
  type ContentModule (line 281) | type ContentModule = PageModule | LayoutModule;
  type ContentModuleHead (line 283) | type ContentModuleHead = DocumentHead | ResolvedDocumentHead;
  type LoadedRoute (line 285) | type LoadedRoute = [
  type LoadedContent (line 293) | interface LoadedContent extends LoadedRoute {
  type RequestHandlerBody (line 297) | type RequestHandlerBody<BODY> = BODY | string | number | boolean | undef...
  type RequestHandlerBodyFunction (line 299) | type RequestHandlerBodyFunction<BODY> = () =>
  type EndpointResponse (line 303) | interface EndpointResponse {
  type ClientPageData (line 310) | interface ClientPageData extends Omit<EndpointResponse, 'status'> {
  type StaticGenerateHandler (line 318) | type StaticGenerateHandler = ({
  type StaticGenerate (line 325) | interface StaticGenerate {
  type QwikCityRenderDocument (line 329) | interface QwikCityRenderDocument extends Document {}
  type QwikCityEnvData (line 331) | interface QwikCityEnvData {
  type SimpleURL (line 339) | interface SimpleURL {
  type Editable (line 347) | type Editable<T> = {
  type UnionKeys (line 351) | type UnionKeys<T> = T extends T ? keyof T : never;
  type StrictUnionHelper (line 352) | type StrictUnionHelper<T, TAll> = T extends any
  type StrictUnion (line 357) | type StrictUnion<T> = Prettify<StrictUnionHelper<T, T>>;
  type Prettify (line 359) | type Prettify<T> = {} & {
  type JSONValue (line 364) | type JSONValue = string | number | boolean | { [x: string]: JSONValue } ...
  type JSONObject (line 367) | type JSONObject = { [x: string]: JSONValue };
  type GetValidatorInputType (line 370) | type GetValidatorInputType<VALIDATOR extends TypedDataValidator> =
  type GetValidatorOutputType (line 378) | type GetValidatorOutputType<VALIDATOR extends TypedDataValidator> =
  type GetValidatorType (line 386) | type GetValidatorType<VALIDATOR extends TypedDataValidator> =
  type CommonLoaderActionOptions (line 390) | interface CommonLoaderActionOptions {
  type FailOfRest (line 396) | type FailOfRest<REST extends readonly DataValidator[]> = REST extends re...
  type IsAny (line 402) | type IsAny<Type> = 0 extends 1 & Type ? true : false;
  type ValidatorErrorKeyDotNotation (line 405) | type ValidatorErrorKeyDotNotation<T, Prefix extends string = ''> =
  type ValidatorErrorType (line 425) | type ValidatorErrorType<T, U = string> = {
  type ActionConstructor (line 435) | type ActionConstructor = {
  type ActionConstructorQRL (line 536) | type ActionConstructorQRL = {
  type LoaderOptions (line 633) | type LoaderOptions = {
  type LoaderConstructor (line 638) | type LoaderConstructor = {
  type LoaderConstructorQRL (line 653) | type LoaderConstructorQRL = {
  type LoaderStateHolder (line 667) | type LoaderStateHolder = Record<string, Signal<unknown>>;
  type ActionReturn (line 670) | type ActionReturn<RETURN> = {
  type ActionStore (line 676) | type ActionStore<RETURN, INPUT, OPTIONAL extends boolean = true> = {
  type Failed (line 754) | type Failed = {
  type FailReturn (line 759) | type FailReturn<T> = T & Failed;
  type LoaderSignal (line 762) | type LoaderSignal<TYPE> = TYPE extends () => ValueOrPromise<infer VALIDA...
  type Loader (line 767) | type Loader<RETURN> = {
  type LoaderInternal (line 775) | interface LoaderInternal extends Loader<any> {
  type Action (line 784) | type Action<RETURN, INPUT = Record<string, unknown>, OPTIONAL extends bo...
  type ActionInternal (line 793) | interface ActionInternal extends Action<any, any> {
  type ValidatorReturn (line 802) | type ValidatorReturn<T extends Record<string, any> = {}> =
  type ValidatorReturnSuccess (line 806) | type ValidatorReturnSuccess = {
  type ValidatorReturnFail (line 811) | type ValidatorReturnFail<T extends Record<string, any> = {}> = {
  type DataValidator (line 818) | type DataValidator<T extends Record<string, any> = {}> = {
  type ValidatorConstructor (line 822) | type ValidatorConstructor = {
  type ValidatorConstructorQRL (line 828) | type ValidatorConstructorQRL = {
  type ValibotDataValidator (line 835) | type ValibotDataValidator<
  type ValibotConstructor (line 846) | type ValibotConstructor = {
  type ValibotConstructorQRL (line 854) | type ValibotConstructorQRL = {
  type ZodDataValidator (line 862) | type ZodDataValidator<T extends z.ZodType = z.ZodType> = {
  type ZodConstructor (line 871) | type ZodConstructor = {
  type ZodConstructorQRL (line 881) | type ZodConstructorQRL = {
  type TypedDataValidator (line 891) | type TypedDataValidator = ValibotDataValidator | ZodDataValidator;
  type ServerConfig (line 894) | interface ServerConfig {
  type ServerFunction (line 910) | type ServerFunction = {
  type ServerQRL (line 921) | type ServerQRL<T extends ServerFunction> = QRL<

FILE: packages/qwik-city/src/static/extract-params.ts
  function extractParamNames (line 6) | function extractParamNames(routeName: string): string[] {

FILE: packages/qwik-city/src/static/index.ts
  function generate (line 15) | async function generate(opts: StaticGenerateOptions) {
  function getEntryModulePath (line 23) | function getEntryModulePath() {
  function getEntryModule (line 33) | function getEntryModule() {
  function isDeno (line 41) | function isDeno() {
  function isBun (line 45) | function isBun() {
  function isNode (line 49) | function isNode() {
  function isCjs (line 53) | function isCjs() {

FILE: packages/qwik-city/src/static/main-thread.ts
  function mainThread (line 14) | async function mainThread(sys: System) {
  function validateOptions (line 229) | function validateOptions(opts: StaticGenerateOptions) {

FILE: packages/qwik-city/src/static/node/index.ts
  function generate (line 7) | async function generate(opts: StaticGenerateOptions) {

FILE: packages/qwik-city/src/static/node/node-main.ts
  function createNodeMainProcess (line 17) | async function createNodeMainProcess(sys: System, opts: StaticGenerateOp...
  function ssgWorkerCompare (line 240) | function ssgWorkerCompare(a: StaticGeneratorWorker, b: StaticGeneratorWo...
  type WorkerMainTask (line 250) | type WorkerMainTask = (result: StaticWorkerRenderResult) => void;
  type StaticGeneratorWorker (line 252) | interface StaticGeneratorWorker {

FILE: packages/qwik-city/src/static/node/node-system.ts
  function createSystem (line 11) | async function createSystem(opts: StaticGenerateOptions) {

FILE: packages/qwik-city/src/static/node/node-worker.ts
  function createNodeWorkerProcess (line 4) | async function createNodeWorkerProcess(

FILE: packages/qwik-city/src/static/not-found.ts
  function generateNotFoundPages (line 5) | async function generateNotFoundPages(

FILE: packages/qwik-city/src/static/routes.ts
  function createRouteTester (line 1) | function createRouteTester(
  function routesToRegExps (line 35) | function routesToRegExps(routes: string[] | undefined) {
  function routeToRegExp (line 42) | function routeToRegExp(rule: string) {

FILE: packages/qwik-city/src/static/types.ts
  type System (line 5) | interface System {
  type StaticStreamWriter (line 22) | interface StaticStreamWriter extends StreamWriter {
  type MainContext (line 28) | interface MainContext {
  type Logger (line 34) | interface Logger {
  type StaticGenerateRenderOptions (line 41) | interface StaticGenerateRenderOptions extends RenderOptions {
  type StaticGenerateOptions (line 102) | interface StaticGenerateOptions extends StaticGenerateRenderOptions {
  type StaticGenerateHandlerOptions (line 116) | interface StaticGenerateHandlerOptions
  type WorkerInputMessage (line 120) | type WorkerInputMessage = StaticRenderInput | WorkerCloseMessage;
  type WorkerOutputMessage (line 122) | type WorkerOutputMessage = StaticWorkerRenderResult | WorkerCloseMessage;
  type StaticRenderInput (line 124) | interface StaticRenderInput extends StaticRoute {
  type StaticRoute (line 128) | interface StaticRoute {
  type WorkerCloseMessage (line 133) | interface WorkerCloseMessage {
  type StaticWorkerRenderResult (line 137) | interface StaticWorkerRenderResult {
  type StaticGenerateResult (line 149) | interface StaticGenerateResult {

FILE: packages/qwik-city/src/static/worker-thread.ts
  function workerThread (line 15) | async function workerThread(sys: System) {
  function workerRender (line 42) | async function workerRender(
  method close (line 266) | async close() {}
  method abort (line 267) | async abort() {}
  method write (line 268) | async write() {}
  method releaseLock (line 269) | releaseLock() {}
  method locked (line 273) | get locked() {
  method locked (line 276) | set locked(_: boolean) {}
  method abort (line 277) | async abort() {}
  method close (line 278) | async close() {}
  method getWriter (line 279) | getWriter() {

FILE: packages/qwik-city/src/utils/format.ts
  function toTitleCase (line 3) | function toTitleCase(str: string) {
  function addError (line 9) | function addError(ctx: BuildContext, e: any) {
  function addWarning (line 16) | function addWarning(ctx: BuildContext, message: string) {
  function msToString (line 23) | function msToString(ms: number) {

FILE: packages/qwik-city/src/utils/fs.ts
  function parseRouteIndexName (line 6) | function parseRouteIndexName(extlessName: string) {
  function getPathnameFromDirPath (line 23) | function getPathnameFromDirPath(opts: NormalizedPluginOptions, dirPath: ...
  function getMenuPathname (line 42) | function getMenuPathname(opts: NormalizedPluginOptions, filePath: string) {
  function getExtension (line 48) | function getExtension(fileName: string) {
  function removeExtension (line 62) | function removeExtension(fileName: string) {
  function normalizePath (line 71) | function normalizePath(path: string) {
  function normalizePathSlash (line 75) | function normalizePathSlash(path: string) {
  function createFileId (line 100) | function createFileId(
  constant PAGE_MODULE_EXTS (line 135) | const PAGE_MODULE_EXTS: { [type: string]: boolean } = {
  constant MODULE_EXTS (line 140) | const MODULE_EXTS: { [type: string]: boolean } = {
  constant MARKDOWN_EXTS (line 145) | const MARKDOWN_EXTS: { [type: string]: boolean } = {
  function isIndexModule (line 150) | function isIndexModule(extlessName: string) {
  function isPluginModule (line 154) | function isPluginModule(extlessName: string) {
  function isLayoutModule (line 158) | function isLayoutModule(extlessName: string) {
  function isPageModuleExt (line 162) | function isPageModuleExt(ext: string) {
  function isModuleExt (line 166) | function isModuleExt(ext: string) {
  function isMarkdownExt (line 170) | function isMarkdownExt(ext: string) {
  function isPageExt (line 174) | function isPageExt(ext: string) {
  function isMenuFileName (line 178) | function isMenuFileName(fileName: string) {
  function isServiceWorkerName (line 182) | function isServiceWorkerName(extlessName: string) {
  function isEntryName (line 186) | function isEntryName(extlessName: string) {
  function isErrorName (line 190) | function isErrorName(extlessName: string) {
  function isGroupedLayoutName (line 200) | function isGroupedLayoutName(dirName: string, warn = true) {

FILE: packages/qwik-city/src/utils/pathname.ts
  function normalizePathname (line 3) | function normalizePathname(
  function getPathnameForDynamicRoute (line 50) | function getPathnameForDynamicRoute(
  function isSameOriginUrl (line 70) | function isSameOriginUrl(url: string) {
  constant PROTOCOLS (line 91) | const PROTOCOLS: { [protocol: string]: boolean } = {

FILE: packages/qwik-city/src/utils/pathname.unit.ts
  function getPathname (line 191) | function getPathname(t: { originalPathname: string; basePathname: string...

FILE: packages/qwik-city/src/utils/test-suite.ts
  function suite (line 21) | function suite(title: string = 'qwik-city') {
  function testAppSuite (line 38) | function testAppSuite(
  type TestAppBuildContext (line 100) | interface TestAppBuildContext extends TestContext {
  type TestContext (line 105) | interface TestContext {

FILE: packages/qwik-labs/src-vite/insights/index.ts
  type InsightManifest (line 18) | interface InsightManifest {
  function qwikInsights (line 23) | async function qwikInsights(qwikInsightsOpts: {

FILE: packages/qwik-labs/src-vite/qwik-types/generator.ts
  function generateRouteTypes (line 5) | async function generateRouteTypes(srcDir: string, routesDir: string, rou...
  function generateSrcRoutesConfig (line 11) | async function generateSrcRoutesConfig(srcDir: string) {
  function exists (line 56) | async function exists(file: string): Promise<boolean> {
  function generateSrcRoutesGen (line 64) | async function generateSrcRoutesGen(srcDir: string, routes: string[]) {
  function toParams (line 92) | function toParams(route: string) {
  function toInterface (line 103) | function toInterface(paramName: string, route: string): string {
  constant GENERATED_HEADER (line 113) | const GENERATED_HEADER = `
  function s (line 119) | function s(text: string): string {

FILE: packages/qwik-labs/src-vite/qwik-types/prettify.ts
  function prettify (line 8) | async function prettify(

FILE: packages/qwik-labs/src-vite/qwik-types/vite.ts
  function qwikTypes (line 6) | function qwikTypes(): Plugin {
  function regenerateRoutes (line 17) | async function regenerateRoutes(srcDir: string, routesDir: string): Prom...
  function assertDirectoryExists (line 29) | async function assertDirectoryExists(directoryPath: string) {
  function getRouteDirectory (line 40) | function getRouteDirectory(id: string): string | null {
  function collectRoutes (line 56) | async function collectRoutes(base: string, directoryPath: string, routes...

FILE: packages/qwik-labs/src/devtools/json.ts
  function runQwikJsonDebug (line 9) | function runQwikJsonDebug(window: Window, document: Document, debug: typ...
  function qwikJsonDebug (line 29) | function qwikJsonDebug(document: Document, qwikJson: QwikJson, derivedFn...
  type QwikJson (line 443) | interface QwikJson {
  type QwikJsonObjsPrimitives (line 457) | type QwikJsonObjsPrimitives = string | boolean | number | null;
  type QwikJsonObjsObj (line 458) | type QwikJsonObjsObj = Record<string, QwikJsonObjsPrimitives>;
  type Base (line 460) | interface Base {
  type QRL (line 465) | interface QRL extends Base {
  type QRefs (line 471) | interface QRefs {
  type Listener (line 477) | interface Listener {
  type SubscriberEffect (line 482) | interface SubscriberEffect {}
  type QContext (line 484) | interface QContext {
  type DebugState (line 495) | interface DebugState {

FILE: packages/qwik-labs/src/insights/index.tsx
  type InsightsPayload (line 4) | interface InsightsPayload {
  type InsightSymbol (line 31) | interface InsightSymbol {
  type InsightsError (line 54) | interface InsightsError {
  type QwikSymbolTrackerWindow (line 101) | interface QwikSymbolTrackerWindow extends Window {
  type QSymbolDetail (line 108) | interface QSymbolDetail {

FILE: packages/qwik-labs/src/qwik-types/public-api.ts
  function omitProps (line 39) | function omitProps<T, KEYS extends keyof T>(obj: T, keys: KEYS[]): Omit<...

FILE: packages/qwik-react/src/react/qwikify.tsx
  function qwikifyQrl (line 23) | function qwikifyQrl<PROPS extends Record<any, any>>(

FILE: packages/qwik-react/src/react/server-render.tsx
  function renderFromServer (line 6) | async function renderFromServer(

FILE: packages/qwik-react/src/react/slot.ts
  type SlotState (line 6) | interface SlotState {
  function main (line 13) | function main(slotEl: Element | undefined, scopeId: string, RootCmp: any...
  function mainExactProps (line 18) | function mainExactProps(
  class SlotElement (line 37) | class SlotElement extends Component {
    method shouldComponentUpdate (line 43) | shouldComponentUpdate(): boolean {
    method componentDidMount (line 47) | componentDidMount(): void {
    method render (line 61) | render() {
  constant HOST_PREFIX (line 135) | const HOST_PREFIX = 'host:';

FILE: packages/qwik-react/src/react/types.ts
  type Internal (line 5) | interface Internal<PROPS> {
  type QwikifyBase (line 10) | interface QwikifyBase {
  type TransformProps (line 91) | type TransformProps<PROPS extends Record<any, any>> = {
  type QwikifyProps (line 95) | type QwikifyProps<PROPS extends Record<any, any>> = TransformProps<PROPS...
  type QwikifyOptions (line 97) | interface QwikifyOptions {

FILE: packages/qwik-react/src/vite.ts
  function qwikReact (line 1) | function qwikReact(): any {

FILE: packages/qwik-worker/src/index.ts
  type ServerFunction (line 12) | interface ServerFunction {
  type WorkerConstructorQRL (line 15) | interface WorkerConstructorQRL {

FILE: packages/qwik-worker/src/worker.js
  method dispatchEvent (line 6) | dispatchEvent() {
  method createElement (line 9) | createElement() {
  method closest (line 25) | closest() {
  method getAttribute (line 28) | getAttribute(name) {

FILE: packages/qwik/global.d.ts
  type ExperimentalFeatures (line 4) | type ExperimentalFeatures = import('./src/optimizer/src/plugins/plugin')...

FILE: packages/qwik/src/cli/add/print-add-help.ts
  constant SPACE_TO_HINT (line 9) | const SPACE_TO_HINT = 25;
  constant MAX_HINT_LENGTH (line 10) | const MAX_HINT_LENGTH = 50;
  function renderIntegration (line 12) | function renderIntegration(integrations: IntegrationData[]) {
  function printAddHelp (line 23) | async function printAddHelp(app: AppCommand) {

FILE: packages/qwik/src/cli/add/run-add-command.ts
  function runAddCommand (line 6) | async function runAddCommand(app: AppCommand) {

FILE: packages/qwik/src/cli/add/run-add-interactive.ts
  function runAddInteractive (line 13) | async function runAddInteractive(app: AppCommand, id: string | undefined) {
  function logUpdateAppResult (line 91) | async function logUpdateAppResult(pkgManager: string, result: UpdateAppR...
  function logUpdateAppCommitResult (line 173) | function logUpdateAppCommitResult(result: UpdateAppResult, pkgManager: s...

FILE: packages/qwik/src/cli/add/update-app.ts
  function updateApp (line 12) | async function updateApp(pkgManager: string, opts: UpdateAppOptions) {

FILE: packages/qwik/src/cli/add/update-files.ts
  function mergeIntegrationDir (line 7) | async function mergeIntegrationDir(
  function getFinalDestPath (line 62) | function getFinalDestPath(
  function mergePackageJsons (line 86) | async function mergePackageJsons(fileUpdates: FsUpdates, srcPath: string...
  function mergeVSCodeSettings (line 114) | async function mergeVSCodeSettings(fileUpdates: FsUpdates, srcPath: stri...
  function mergePackageJsonSort (line 138) | function mergePackageJsonSort(src: any, dest: any, prop: string) {
  function mergeReadmes (line 155) | async function mergeReadmes(fileUpdates: FsUpdates, srcPath: string, des...
  function mergeIgnoresFile (line 181) | async function mergeIgnoresFile(fileUpdates: FsUpdates, srcPath: string,...
  function mergeCss (line 210) | async function mergeCss(

FILE: packages/qwik/src/cli/add/update-files.unit.ts
  function setup (line 12) | function setup() {
  function createFakeFiles (line 37) | function createFakeFiles(dir: string) {

FILE: packages/qwik/src/cli/add/update-vite-config.ts
  function updateViteConfigs (line 8) | async function updateViteConfigs(

FILE: packages/qwik/src/cli/check-client/index.ts
  function runQwikClientCommand (line 14) | async function runQwikClientCommand(app: AppCommand) {
  function checkClientCommand (line 31) | async function checkClientCommand(app: AppCommand, src: string, dist: st...
  function goBuild (line 54) | async function goBuild(app: AppCommand) {
  function getManifestTs (line 69) | async function getManifestTs(manifestPath: string) {
  function clientDirExists (line 89) | async function clientDirExists(path: string): Promise<boolean> {
  function hasNewer (line 108) | async function hasNewer(srcPath: string, timestamp: number): Promise<boo...

FILE: packages/qwik/src/cli/code-mod/code-mod.ts
  function updateViteConfig (line 16) | function updateViteConfig(ts: TypeScript, sourceText: string, updates?: ...
  function ensureImport (line 65) | function ensureImport(ts: TypeScript, tsSourceFile: SourceFile, importDa...
  function ensureNamedImport (line 84) | function ensureNamedImport(
  function ensureDefaultImport (line 96) | function ensureDefaultImport(
  function hasNamedImport (line 108) | function hasNamedImport(
  function hasDefaultImport (line 117) | function hasDefaultImport(ts: TypeScript, tsSourceFile: SourceFile, impo...
  function findNamedImport (line 121) | function findNamedImport(
  function findDefaultImport (line 149) | function findDefaultImport(
  function findImportDeclarations (line 169) | function findImportDeclarations(ts: TypeScript, tsSourceFile: SourceFile) {
  function appendImports (line 173) | function appendImports(
  function findLastImportIndex (line 268) | function findLastImportIndex(ts: TypeScript, tsSourceFile: SourceFile) {
  function updateDefineConfig (line 281) | function updateDefineConfig(ts: TypeScript, callExp: CallExpression, upd...
  function updateDefineConfigFnReturn (line 331) | function updateDefineConfigFnReturn(ts: TypeScript, fnBody: Block, updat...
  function updateVitConfigObj (line 345) | function updateVitConfigObj(
  function updatePlugins (line 359) | function updatePlugins(ts: TypeScript, obj: ObjectLiteralExpression, upd...
  function updatePluginsArray (line 383) | function updatePluginsArray(
  function createPluginCall (line 436) | function createPluginCall(ts: TypeScript, vitePlugin: string): CallExpre...
  function updateQwikCityPlugin (line 452) | function updateQwikCityPlugin(
  function updateObjectLiteralExpression (line 469) | function updateObjectLiteralExpression(
  function transformSource (line 503) | function transformSource(ts: TypeScript, sourceText: string, transformer...
  type TypeScript (line 517) | type TypeScript = typeof import('typescript');

FILE: packages/qwik/src/cli/joke/run-joke-command.ts
  function runJokeCommand (line 5) | async function runJokeCommand() {

FILE: packages/qwik/src/cli/migrate-v2/rename-import.ts
  function replaceImportInFiles (line 5) | function replaceImportInFiles(

FILE: packages/qwik/src/cli/migrate-v2/replace-package.ts
  function updateFileContent (line 7) | function updateFileContent(path: string, content: string) {
  function replacePackage (line 12) | function replacePackage(
  function replacePackageInDependencies (line 24) | function replacePackageInDependencies(oldPackageName: string, newPackage...
  function replaceMentions (line 51) | function replaceMentions(oldPackageName: string, newPackageName: string) {

FILE: packages/qwik/src/cli/migrate-v2/run-migration.ts
  function runV2Migration (line 12) | async function runV2Migration(app: AppCommand) {

FILE: packages/qwik/src/cli/migrate-v2/tools/binary-extensions.ts
  function isBinaryPath (line 275) | function isBinaryPath(path: string): boolean {

FILE: packages/qwik/src/cli/migrate-v2/tools/visit-not-ignored-files.ts
  function visitNotIgnoredFiles (line 6) | function visitNotIgnoredFiles(dirPath: string, visitor: (path: string) =...

FILE: packages/qwik/src/cli/migrate-v2/update-configurations.ts
  function updateConfigurations (line 4) | function updateConfigurations() {
  function updateTsconfig (line 12) | function updateTsconfig() {

FILE: packages/qwik/src/cli/migrate-v2/update-dependencies.ts
  function updateDependencies (line 8) | async function updateDependencies() {
  function getPackageTag (line 41) | function getPackageTag() {
  function installTsMorph (line 75) | async function installTsMorph() {
  function runInstall (line 89) | async function runInstall() {
  function removeTsMorphFromPackageJson (line 97) | async function removeTsMorphFromPackageJson() {

FILE: packages/qwik/src/cli/new/print-new-help.ts
  function printNewHelp (line 5) | async function printNewHelp() {

FILE: packages/qwik/src/cli/new/run-new-command.ts
  constant SLUG_KEY (line 12) | const SLUG_KEY = '[slug]';
  constant NAME_KEY (line 13) | const NAME_KEY = '[name]';
  constant MARKDOWN_SUFFIX (line 14) | const MARKDOWN_SUFFIX = '.md';
  constant MDX_SUFFIX (line 15) | const MDX_SUFFIX = '.mdx';
  function runNewCommand (line 17) | async function runNewCommand(app: AppCommand) {
  function selectType (line 107) | async function selectType() {
  function selectName (line 125) | async function selectName(type: 'route' | 'component' | 'markdown' | 'md...
  function selectTemplate (line 174) | async function selectTemplate(typeArg: (typeof POSSIBLE_TYPES)[number]) {
  function writeToFile (line 198) | async function writeToFile(name: string, slug: string, template: Templat...
  function inject (line 232) | function inject(raw: string, vars: string[][]) {
  function parseInputName (line 242) | function parseInputName(input: string) {
  function toSlug (line 251) | function toSlug(list: string[]) {
  function toPascal (line 255) | function toPascal(list: string[]) {

FILE: packages/qwik/src/cli/new/utils.ts
  constant POSSIBLE_TYPES (line 1) | const POSSIBLE_TYPES = ['component', 'route', 'markdown', 'mdx'] as const;

FILE: packages/qwik/src/cli/run.ts
  constant SPACE_TO_HINT (line 13) | const SPACE_TO_HINT = 18;
  constant COMMANDS (line 14) | const COMMANDS = [
  function runCli (line 80) | async function runCli() {
  function runCommand (line 95) | async function runCommand(app: AppCommand) {
  function printHelp (line 139) | async function printHelp(app: AppCommand) {
  function printVersion (line 181) | function printVersion() {

FILE: packages/qwik/src/cli/types.ts
  type CreateAppOptions (line 3) | interface CreateAppOptions {
  type CreateAppResult (line 8) | interface CreateAppResult extends CreateAppOptions {
  type UpdateAppOptions (line 13) | interface UpdateAppOptions {
  type UpdateAppResult (line 20) | interface UpdateAppResult {
  type FsUpdates (line 27) | interface FsUpdates {
  type IntegrationData (line 37) | interface IntegrationData {
  type IntegrationType (line 51) | type IntegrationType = 'app' | 'feature' | 'adapter';
  type Feature (line 53) | interface Feature {
  type FeatureCmd (line 59) | type FeatureCmd = (app: AppCommand) => Promise<void>;
  type NextSteps (line 61) | interface NextSteps {
  type IntegrationPackageJson (line 66) | interface IntegrationPackageJson {
  type QwikIntegrationConfig (line 88) | interface QwikIntegrationConfig {
  type EnsureImport (line 98) | interface EnsureImport {
  type ViteConfigUpdates (line 104) | interface ViteConfigUpdates {
  type Template (line 112) | interface Template {
  type TemplateSet (line 117) | interface TemplateSet {

FILE: packages/qwik/src/cli/utils/app-command.ts
  class AppCommand (line 5) | class AppCommand {
    method constructor (line 12) | constructor(opts: { rootDir: string; cwd: string; args: string[] }) {
    method rootDir (line 19) | get rootDir() {
    method rootDir (line 41) | set rootDir(rootDir) {
    method packageJson (line 45) | get packageJson(): PackageJSON {
    method getArg (line 53) | getArg(name: string): string | undefined {

FILE: packages/qwik/src/cli/utils/install-deps.ts
  function installDeps (line 8) | function installDeps(pkgManager: string, dir: string) {
  function runInPkg (line 12) | function runInPkg(pkgManager: string, args: string[], cwd: string) {
  function backgroundInstallDeps (line 21) | function backgroundInstallDeps(pkgManager: string, baseApp: IntegrationD...
  function setupTmpInstall (line 96) | function setupTmpInstall(baseApp: IntegrationData) {

FILE: packages/qwik/src/cli/utils/integrations.ts
  function sortIntegrationsAndReturnAsClackOptions (line 8) | async function sortIntegrationsAndReturnAsClackOptions(
  function loadIntegrations (line 29) | async function loadIntegrations() {

FILE: packages/qwik/src/cli/utils/log.ts
  function logSuccessFooter (line 4) | function logSuccessFooter(docs: string[]) {
  function logNextStep (line 23) | function logNextStep(nextSteps: NextSteps | undefined, packageManager: s...

FILE: packages/qwik/src/cli/utils/run-build-command.ts
  type Step (line 6) | interface Step {
  function runBuildCommand (line 10) | async function runBuildCommand(app: AppCommand) {
  function attachArg (line 341) | function attachArg(command: string, key: string, value?: string): string {
  function isString (line 348) | function isString(s: string | null | undefined): s is string {

FILE: packages/qwik/src/cli/utils/templates.ts
  function loadTemplates (line 8) | async function loadTemplates() {
  function readTemplates (line 41) | async function readTemplates(rootDir: string) {
  function parseTemplatePath (line 60) | function parseTemplatePath(path: string, type: string) {

FILE: packages/qwik/src/cli/utils/utils.ts
  function runCommand (line 11) | function runCommand(cmd: string, args: string[], cwd: string) {
  function readPackageJson (line 53) | async function readPackageJson(dir: string) {
  function writePackageJson (line 59) | async function writePackageJson(dir: string, pkgJson: IntegrationPackage...
  function wait (line 64) | function wait(ms: number) {
  function cleanPackageJson (line 68) | function cleanPackageJson(srcPkg: IntegrationPackageJson) {
  function dashToTitleCase (line 100) | function dashToTitleCase(str: string) {
  function toDashCase (line 108) | function toDashCase(str: string) {
  function limitLength (line 112) | function limitLength(hint: string, maxLength: number = 50) {
  function getPackageManager (line 119) | function getPackageManager() {
  function pmRunCmd (line 123) | function pmRunCmd() {
  function panic (line 131) | function panic(msg: string) {
  function bye (line 136) | function bye(): never {
  function printHeader (line 141) | function printHeader() {
  function getFilesDeep (line 162) | async function getFilesDeep(root: string) {
  function isUnicodeSupported (line 187) | function isUnicodeSupported() {
  constant S_BAR (line 208) | const S_BAR = s('│', '|');
  constant S_BAR_H (line 209) | const S_BAR_H = s('─', '-');
  constant S_CORNER_TOP_RIGHT (line 210) | const S_CORNER_TOP_RIGHT = s('╮', '+');
  constant S_CONNECT_LEFT (line 211) | const S_CONNECT_LEFT = s('├', '+');
  constant S_CORNER_BOTTOM_RIGHT (line 212) | const S_CORNER_BOTTOM_RIGHT = s('╯', '+');
  constant S_STEP_SUBMIT (line 213) | const S_STEP_SUBMIT = s('◇', 'o');
  function ansiRegex (line 215) | function ansiRegex() {

FILE: packages/qwik/src/core/component/component.public.ts
  type IsAny (line 20) | type IsAny<T> = 0 extends T & 1 ? true : false;
  type ObjectProps (line 22) | type ObjectProps<T> =
  type PropsOf (line 50) | type PropsOf<COMP> = COMP extends string
  type Component (line 86) | type Component<PROPS = unknown> = FunctionComponent<PublicProps<PROPS>>;
  type ComponentChildren (line 88) | type ComponentChildren<PROPS> = PROPS extends {
  type PublicProps (line 99) | type PublicProps<PROPS> =
  type _AllowPlainQrl (line 111) | type _AllowPlainQrl<Q> =
  type _Only$ (line 127) | type _Only$<P> = {
  function QwikComponent (line 189) | function QwikComponent(props: PublicProps<PROPS>, key: string | null, fl...
  type PropFunctionProps (line 216) | type PropFunctionProps<PROPS extends Record<any, any>> = {
  type OnRenderFn (line 283) | type OnRenderFn<PROPS> = (props: PROPS) => JSXOutput;
  type RenderFactoryOutput (line 285) | interface RenderFactoryOutput<PROPS> {

FILE: packages/qwik/src/core/component/component.unit.tsx
  type Input3Props (line 130) | type Input3Props = {
  type Input4Props (line 138) | type Input4Props = {
  type TestProps (line 168) | type TestProps = PropsOf<'h1'> & {
  type TestProps (line 209) | type TestProps = PropsOf<'h1'> & {
  type ItemObj (line 291) | interface ItemObj {
  type ItemsObj (line 296) | interface ItemsObj {
  function delay (line 326) | function delay(milliseconds: number): Promise<void> {

FILE: packages/qwik/src/core/components/prefetch.ts
  constant PREFETCH_CODE (line 63) | const PREFETCH_CODE = /*#__PURE__*/ ((

FILE: packages/qwik/src/core/container/container.ts
  type GetObject (line 19) | type GetObject = (id: string) => any;
  type GetObjID (line 20) | type GetObjID = (obj: any) => string | null;
  type MustGetObjID (line 21) | type MustGetObjID = (obj: any) => string;
  type SnapshotMetaValue (line 24) | interface SnapshotMetaValue {
  type SnapshotMeta (line 32) | type SnapshotMeta = Record<string, SnapshotMetaValue>;
  type SnapshotState (line 35) | interface SnapshotState {
  type SnapshotListener (line 43) | interface SnapshotListener {
  type SnapshotResult (line 50) | interface SnapshotResult {
  type ObjToProxyMap (line 59) | type ObjToProxyMap = WeakMap<any, any>;
  type PauseContext (line 62) | interface PauseContext {
  type ContainerState (line 69) | interface ContainerState {
  constant CONTAINER_STATE (line 97) | const CONTAINER_STATE = Symbol('ContainerState');
  constant SHOW_ELEMENT (line 173) | const SHOW_ELEMENT = 1;
  constant SHOW_COMMENT (line 174) | const SHOW_COMMENT = 128;
  constant FILTER_ACCEPT (line 175) | const FILTER_ACCEPT = 1;
  constant FILTER_REJECT (line 176) | const FILTER_REJECT = 2;
  constant FILTER_SKIP (line 177) | const FILTER_SKIP = 3;
  type QContainerElement (line 200) | interface QContainerElement extends Element {

FILE: packages/qwik/src/core/container/pause.ts
  method acceptNode (line 584) | acceptNode(node) {
  type Collector (line 602) | interface Collector {
  constant PROMISE_VALUE (line 778) | const PROMISE_VALUE = Symbol();
  type PromiseValue (line 780) | interface PromiseValue {
  function serializeObjects (line 938) | function serializeObjects(

FILE: packages/qwik/src/core/container/serializers.ts
  constant UNDEFINED_PREFIX (line 57) | const UNDEFINED_PREFIX = '\u0001';
  type SerializerInput (line 59) | interface SerializerInput<T> {
  type Serializer (line 86) | interface Serializer<T> extends Omit<SerializerInput<T>, '$prefix$' | '$...
  function serializer (line 101) | function serializer<T>(serializer: SerializerInput<T>): Serializer<T> {
  constant SERIALIZABLE_STATE (line 239) | const SERIALIZABLE_STATE = Symbol('serializable-data');
  method $collect$ (line 322) | $collect$(obj, collector, leaks) {
  constant DATA (line 467) | const DATA = Symbol();
  function getSerializer (line 577) | function getSerializer(obj: any): Serializer<unknown> | undefined {
  type Parser (line 629) | interface Parser {
  method prepare (line 640) | prepare(data: string) {
  method subs (line 654) | subs(obj: any, subs: Subscriptions[]) {
  method fill (line 662) | fill(obj: any, getObject: GetObject) {
  constant OBJECT_TRANSFORMS (line 673) | const OBJECT_TRANSFORMS: Record<string, (obj: any, containerState: Conta...

FILE: packages/qwik/src/core/document.ts
  type QwikDocument (line 2) | interface QwikDocument extends Document {

FILE: packages/qwik/src/core/error/assert.ts
  constant ASSERT_DISCLAIMER (line 6) | const ASSERT_DISCLAIMER = 'Internal assert, this is likely caused by a b...
  function assertDefined (line 8) | function assertDefined<T>(
  function assertEqual (line 21) | function assertEqual(
  function assertFail (line 36) | function assertFail(text: string, ...parts: any[]) {
  function assertTrue (line 42) | function assertTrue(value1: any, text: string, ...parts: any[]): asserts...
  function assertNumber (line 51) | function assertNumber(value1: any, text: string, ...parts: any[]): asser...
  function assertString (line 60) | function assertString(value1: any, text: string, ...parts: any[]): asser...
  function assertQwikElement (line 69) | function assertQwikElement(el: any): asserts el is QwikElement {
  function assertElement (line 78) | function assertElement(el: Node | VirtualElement): asserts el is Element {

FILE: packages/qwik/src/core/examples.tsx
  type CounterProps (line 27) | interface CounterProps {
  function useClick (line 83) | function useClick() {
  function useScroll (line 102) | function useScroll() {
  function useAnalytics (line 121) | function useAnalytics() {
  type User (line 266) | interface User {
  function User (line 269) | function User(props: { user: User }) {
  function useCounter (line 368) | function useCounter(step: number) {
  function expensiveInitialValue (line 386) | function expensiveInitialValue() {
  function Child (line 390) | function Child(_props: any) {
  type TodosStore (line 399) | interface TodosStore {
  function useMyFunction (line 450) | function useMyFunction(callback: QRL<() => void>) {
  function doExtraStuff (line 457) | function doExtraStuff() {
  function topLevelFn (line 481) | function topLevelFn() {}
  function myCode (line 483) | function myCode() {
  function myApi (line 505) | function myApi(callback: QRL<() => void>): void {

FILE: packages/qwik/src/core/platform/platform.ts
  method importSymbol (line 17) | importSymbol(containerEl, url, symbolName) {
  method chunkForSymbol (line 55) | chunkForSymbol(symbolName, chunk) {

FILE: packages/qwik/src/core/platform/types.ts
  type CorePlatform (line 24) | interface CorePlatform {
  type CorePlatformServer (line 105) | interface CorePlatformServer extends CorePlatform {

FILE: packages/qwik/src/core/preloader/types.ts
  type BundleInfo (line 7) | type BundleInfo = {
  type BundleImport (line 13) | type BundleImport = BundleInfo & {
  type BundleImports (line 21) | type BundleImports = Map<string, BundleImport>;
  type ImportProbability (line 23) | type ImportProbability = {
  type BundleGraph (line 32) | type BundleGraph = Map<string, ImportProbability[]>;

FILE: packages/qwik/src/core/qrl/qrl-class.ts
  constant SYNC_QRL (line 29) | const SYNC_QRL = '<sync>';
  type QRLInternalMethods (line 36) | type QRLInternalMethods<TYPE> = {
  type QRLInternal (line 64) | type QRLInternal<TYPE = unknown> = QRL<TYPE> & QRLInternalMethods<TYPE>;
  function invokeFn (line 174) | function invokeFn(
  function assertQrl (line 249) | function assertQrl<T>(qrl: QRL<T>): asserts qrl is QRLInternal<T> {
  function assertSignal (line 257) | function assertSignal<T>(obj: unknown): asserts obj is SignalInternal<T> {
  constant EMITTED (line 265) | const EMITTED = /*#__PURE__*/ new Set();

FILE: packages/qwik/src/core/qrl/qrl.public.ts
  type QrlArgs (line 7) | type QrlArgs<T> = T extends (...args: infer ARGS) => any ? ARGS : unknow...
  type QrlReturn (line 8) | type QrlReturn<T> = T extends (...args: any) => infer R ? Awaited<R> : u...
  type QRL (line 136) | type QRL<TYPE = unknown> = {
  type BivariantQrlFn (line 153) | type BivariantQrlFn<ARGS extends any[], RETURN> = {
  type PropFnInterface (line 167) | type PropFnInterface<ARGS extends any[], RET> = {
  type PropFunction (line 179) | type PropFunction<T> = QRL<T>;
  type SyncQRL (line 277) | interface SyncQRL<TYPE extends Function = any> extends QRL<TYPE> {

FILE: packages/qwik/src/core/qrl/qrl.ts
  constant EXTRACT_IMPORT_PATH (line 20) | const EXTRACT_IMPORT_PATH = /\(\s*(['"])([^\1]+)\1\s*\)/;
  constant EXTRACT_SELF_IMPORT (line 23) | const EXTRACT_SELF_IMPORT = /Promise\s*\.\s*resolve/;
  constant EXTRACT_FILE_NAME (line 26) | const EXTRACT_FILE_NAME = /[\\/(]([\w\d.\-_]+\.(js|ts)x?):/;
  type QRLDev (line 31) | interface QRLDev {
  type QRLSerializeOptions (line 151) | interface QRLSerializeOptions {

FILE: packages/qwik/src/core/qrl/qrl.unit.ts
  function matchProps (line 8) | function matchProps(obj: any, properties: Record<string, any>) {

FILE: packages/qwik/src/core/render/dom/render-dom.ts
  class ProcessedJSXNodeImpl (line 67) | class ProcessedJSXNodeImpl implements ProcessedJSXNode {
    method constructor (line 74) | constructor(
  type ProcessedJSXNodeType (line 203) | type ProcessedJSXNodeType =
  type ProcessedJSXNode (line 210) | interface ProcessedJSXNode {

FILE: packages/qwik/src/core/render/dom/render.public.ts
  type RenderOptions (line 25) | interface RenderOptions {
  type RenderResult (line 30) | interface RenderResult {
  method cleanup (line 81) | cleanup() {
  function cleanupContainer (line 125) | function cleanupContainer(renderCtx: RenderContext, container: Element) {

FILE: packages/qwik/src/core/render/dom/render.unit.tsx
  function expectRendered (line 814) | async function expectRendered(fixture: ElementFixture, expected: string) {
  function getFirstNode (line 819) | function getFirstNode(el: Element) {
  type CleanupProps (line 1071) | interface CleanupProps {

FILE: packages/qwik/src/core/render/dom/signals.ts
  function getQwikElement (line 105) | function getQwikElement(element: QwikElement | Text): QwikElement {

FILE: packages/qwik/src/core/render/dom/virtual-element.ts
  type VirtualElement (line 15) | interface VirtualElement {
  type QwikElement (line 48) | type QwikElement = Element | VirtualElement;
  constant SHOW_COMMENT (line 85) | const SHOW_COMMENT = 128;
  constant FILTER_ACCEPT (line 86) | const FILTER_ACCEPT = 1;
  constant FILTER_REJECT (line 87) | const FILTER_REJECT = 2;
  method acceptNode (line 91) | acceptNode(c) {
  constant VIRTUAL (line 128) | const VIRTUAL = ':virtual';
  class VirtualElementImpl (line 130) | class VirtualElementImpl implements VirtualElement {
    method constructor (line 141) | constructor(
    method insertBefore (line 155) | insertBefore<T extends Node>(node: T, ref: Node | null): T {
    method remove (line 166) | remove() {
    method appendChild (line 179) | appendChild<T extends Node>(node: T): T {
    method insertBeforeTo (line 183) | insertBeforeTo(newParent: QwikElement, child: Node | null) {
    method appendTo (line 198) | appendTo(newParent: QwikElement) {
    method namespaceURI (line 202) | get namespaceURI() {
    method removeChild (line 206) | removeChild(child: Node) {
    method getAttribute (line 214) | getAttribute(prop: string) {
    method hasAttribute (line 218) | hasAttribute(prop: string) {
    method setAttribute (line 222) | setAttribute(prop: string, value: string) {
    method removeAttribute (line 229) | removeAttribute(prop: string) {
    method matches (line 236) | matches(_: string) {
    method compareDocumentPosition (line 240) | compareDocumentPosition(other: Node) {
    method closest (line 244) | closest(query: string) {
    method querySelectorAll (line 252) | querySelectorAll(query: string) {
    method querySelector (line 266) | querySelector(query: string) {
    method innerHTML (line 281) | get innerHTML() {
    method innerHTML (line 285) | set innerHTML(html: string) {
    method firstChild (line 296) | get firstChild() {
    method nextSibling (line 307) | get nextSibling() {
    method previousSibling (line 310) | get previousSibling() {
    method childNodes (line 313) | get childNodes(): Node[] {
    method isConnected (line 327) | get isConnected() {
    method parentElement (line 331) | get parentElement() {

FILE: packages/qwik/src/core/render/dom/visitor.ts
  constant SVG_NS (line 88) | const SVG_NS = 'http://www.w3.org/2000/svg';
  constant IS_SVG (line 90) | const IS_SVG = 1 << 0;
  constant IS_HEAD (line 91) | const IS_HEAD = 1 << 1;
  constant IS_IMMUTABLE (line 92) | const IS_IMMUTABLE = 1 << 2;
  type KeyToIndexMap (line 94) | type KeyToIndexMap = { [key: string]: number };
  constant CHILDREN_PLACEHOLDER (line 96) | const CHILDREN_PLACEHOLDER: ProcessedJSXNode[] = [];
  type PropHandler (line 97) | type PropHandler = (
  type ChildrenMode (line 104) | type ChildrenMode = 'root' | 'head' | 'elements';
  type SlotMaps (line 882) | interface SlotMaps {
  constant PROP_HANDLER_MAP (line 974) | const PROP_HANDLER_MAP: Record<string, PropHandler | undefined> = {

FILE: packages/qwik/src/core/render/error-handling.ts
  type ErrorBoundaryStore (line 10) | interface ErrorBoundaryStore {
  constant ERROR_CONTEXT (line 14) | const ERROR_CONTEXT = /*#__PURE__*/ createContextId<ErrorBoundaryStore>(...

FILE: packages/qwik/src/core/render/execute-component.ts
  type ExecuteComponentOutput (line 23) | interface ExecuteComponentOutput {
  function isAriaAttribute (line 227) | function isAriaAttribute(prop: string): boolean {

FILE: packages/qwik/src/core/render/jsx/factory.ts
  function h (line 21) | function h<TYPE extends string | FunctionComponent<PROPS>, PROPS extends...

FILE: packages/qwik/src/core/render/jsx/jsx-runtime.ts
  constant SKIP_RENDER_TYPE (line 164) | const SKIP_RENDER_TYPE = ':skipRender';
  class JSXNodeImpl (line 166) | class JSXNodeImpl<T> implements JSXNode<T> {
    method constructor (line 168) | constructor(
  type JsxDevOpts (line 364) | interface JsxDevOpts {

FILE: packages/qwik/src/core/render/jsx/types/jsx-generated.ts
  type Booleanish (line 5) | type Booleanish = boolean | `${boolean}`;
  type Size (line 7) | type Size = number | string;
  type Numberish (line 9) | type Numberish = number | `${number}`;
  type CSSProperties (line 12) | interface CSSProperties
  type AriaAttributes (line 31) | interface AriaAttributes {
  type AriaRole (line 308) | type AriaRole =
  type UnwantedKeys (line 381) | type UnwantedKeys =
  type HTMLAttributesBase (line 399) | interface HTMLAttributesBase extends AriaAttributes {
  type HTMLElementAttrs (line 456) | interface HTMLElementAttrs extends HTMLAttributesBase, FilterBase<HTMLEl...
  type HTMLAttributes (line 459) | interface HTMLAttributes<E extends Element> extends HTMLElementAttrs, DO...
  type Prettify (line 461) | type Prettify<T> = {} & {
  type IfEquals (line 465) | type IfEquals<X, Y, A, B> =
  type IsReadOnlyKey (line 467) | type IsReadOnlyKey<T, K extends keyof T> = IfEquals<
  type IsAcceptableDOMValue (line 473) | type IsAcceptableDOMValue<T> = T extends boolean | number | string | nul...
  type Filtered (line 480) | type Filtered<T, A = {}> = {
  type FilterBase (line 483) | type FilterBase<T> = {
  type Augmented (line 509) | type Augmented<E, A = {}> = Prettify<Filtered<E, A> & A>;
  type TableCellSpecialAttrs (line 511) | type TableCellSpecialAttrs = {
  type MediaSpecialAttrs (line 517) | type MediaSpecialAttrs = {
  type PopoverTargetAction (line 520) | type PopoverTargetAction = 'hide' | 'show' | 'toggle';
  type SpecialAttrs (line 522) | type SpecialAttrs = {
  type Attrs (line 729) | type Attrs<
  type HTMLAttributeAnchorTarget (line 736) | type HTMLAttributeAnchorTarget = '_self' | '_blank' | '_parent' | '_top'...
  type HTMLAttributeReferrerPolicy (line 738) | type HTMLAttributeReferrerPolicy = ReferrerPolicy;
  type AnchorHTMLAttributes (line 740) | interface AnchorHTMLAttributes<T extends Element> extends Attrs<'a', T> {}
  type AreaHTMLAttributes (line 742) | interface AreaHTMLAttributes<T extends Element> extends Attrs<'area', T> {}
  type MediaHTMLAttributes (line 744) | interface MediaHTMLAttributes<T extends Element>
  type AudioHTMLAttributes (line 748) | interface AudioHTMLAttributes<T extends Element> extends Attrs<'audio', ...
  type BaseHTMLAttributes (line 750) | interface BaseHTMLAttributes<T extends Element> extends Attrs<'base', T> {}
  type BlockquoteHTMLAttributes (line 752) | interface BlockquoteHTMLAttributes<T extends Element> extends Attrs<'blo...
  type ButtonHTMLAttributes (line 754) | interface ButtonHTMLAttributes<T extends Element> extends Attrs<'button'...
  type CanvasHTMLAttributes (line 756) | interface CanvasHTMLAttributes<T extends Element> extends Attrs<'canvas'...
  type ColHTMLAttributes (line 758) | interface ColHTMLAttributes<T extends Element> extends Attrs<'col', T> {}
  type ColgroupHTMLAttributes (line 760) | interface ColgroupHTMLAttributes<T extends Element> extends Attrs<'colgr...
  type DataHTMLAttributes (line 762) | interface DataHTMLAttributes<T extends Element> extends Attrs<'data', T> {}
  type DelHTMLAttributes (line 764) | interface DelHTMLAttributes<T extends Element> extends Attrs<'del', T> {}
  type DetailsHTMLAttributes (line 766) | interface DetailsHTMLAttributes<T extends Element> extends Attrs<'detail...
  type DialogHTMLAttributes (line 768) | interface DialogHTMLAttributes<T extends Element> extends Attrs<'dialog'...
  type EmbedHTMLAttributes (line 770) | interface EmbedHTMLAttributes<T extends Element> extends Attrs<'embed', ...
  type FieldsetHTMLAttributes (line 772) | interface FieldsetHTMLAttributes<T extends Element> extends Attrs<'field...
  type FormHTMLAttributes (line 774) | interface FormHTMLAttributes<T extends Element> extends Attrs<'form', T> {}
  type HtmlHTMLAttributes (line 776) | interface HtmlHTMLAttributes<T extends Element> extends Attrs<'html', T> {}
  type IframeHTMLAttributes (line 778) | interface IframeHTMLAttributes<T extends Element> extends Attrs<'iframe'...
  type ImgHTMLAttributes (line 780) | interface ImgHTMLAttributes<T extends Element> extends Attrs<'img', T> {}
  type HrHTMLAttributes (line 782) | interface HrHTMLAttributes<T extends Element> extends Attrs<'hr', T> {}
  type HTMLCrossOriginAttribute (line 784) | type HTMLCrossOriginAttribute = 'anonymous' | 'use-credentials' | '' | u...
  type HTMLInputTypeAttribute (line 786) | type HTMLInputTypeAttribute =
  type HTMLInputAutocompleteAttribute (line 812) | type HTMLInputAutocompleteAttribute =
  type InputHTMLAttributes (line 863) | type InputHTMLAttributes<T extends Element> = Attrs<'input', T, HTMLInpu...
  type InsHTMLAttributes (line 865) | interface InsHTMLAttributes<T extends Element> extends Attrs<'ins', T> {}
  type KeygenHTMLAttributes (line 867) | interface KeygenHTMLAttributes<T extends Element> extends Attrs<'base', ...
  type LabelHTMLAttributes (line 869) | interface LabelHTMLAttributes<T extends Element> extends Attrs<'label', ...
  type LiHTMLAttributes (line 871) | interface LiHTMLAttributes<T extends Element> extends Attrs<'li', T> {}
  type LinkHTMLAttributes (line 873) | interface LinkHTMLAttributes<T extends Element> extends Attrs<'link', T> {}
  type MapHTMLAttributes (line 875) | interface MapHTMLAttributes<T extends Element> extends Attrs<'map', T> {}
  type MenuHTMLAttributes (line 877) | interface MenuHTMLAttributes<T extends Element> extends Attrs<'menu', T> {}
  type MetaHTMLAttributes (line 879) | interface MetaHTMLAttributes<T extends Element> extends Attrs<'meta', T> {}
  type MeterHTMLAttributes (line 881) | interface MeterHTMLAttributes<T extends Element> extends Attrs<'meter', ...
  type ObjectHTMLAttributes (line 883) | interface ObjectHTMLAttributes<T extends Element> extends Attrs<'object'...
  type OlHTMLAttributes (line 885) | interface OlHTMLAttributes<T extends Element> extends Attrs<'ol', T> {}
  type OptgroupHTMLAttributes (line 887) | interface OptgroupHTMLAttributes<T extends Element> extends Attrs<'optgr...
  type OptionHTMLAttributes (line 889) | interface OptionHTMLAttributes<T extends Element> extends Attrs<'option'...
  type OutputHTMLAttributes (line 891) | interface OutputHTMLAttributes<T extends Element> extends Attrs<'output'...
  type ParamHTMLAttributes (line 893) | interface ParamHTMLAttributes<T extends Element>
  type ProgressHTMLAttributes (line 896) | interface ProgressHTMLAttributes<T extends Element> extends Attrs<'progr...
  type QuoteHTMLAttributes (line 898) | interface QuoteHTMLAttributes<T extends Element> extends Attrs<'q', T> {}
  type SlotHTMLAttributes (line 900) | interface SlotHTMLAttributes<T extends Element> extends Attrs<'slot', T> {}
  type ScriptHTMLAttributes (line 902) | interface ScriptHTMLAttributes<T extends Element> extends Attrs<'script'...
  type SelectHTMLAttributes (line 904) | interface SelectHTMLAttributes<T extends Element> extends Attrs<'select'...
  type SourceHTMLAttributes (line 906) | interface SourceHTMLAttributes<T extends Element> extends Attrs<'source'...
  type StyleHTMLAttributes (line 908) | interface StyleHTMLAttributes<T extends Element> extends Attrs<'style', ...
  type TableHTMLAttributes (line 910) | interface TableHTMLAttributes<T extends Element> extends Attrs<'table', ...
  type TdHTMLAttributes (line 912) | interface TdHTMLAttributes<T extends Element> extends Attrs<'td', T> {}
  type TextareaHTMLAttributes (line 914) | interface TextareaHTMLAttributes<T extends Element> extends Attrs<'texta...
  type ThHTMLAttributes (line 916) | interface ThHTMLAttributes<T extends Element> extends Attrs<'tr', T> {}
  type TimeHTMLAttributes (line 918) | interface TimeHTMLAttributes<T extends Element> extends Attrs<'time', T> {}
  type TitleHTMLAttributes (line 920) | interface TitleHTMLAttributes<T extends Element> extends Attrs<'title', ...
  type TrackHTMLAttributes (line 922) | interface TrackHTMLAttributes<T extends Element> extends Attrs<'track', ...
  type VideoHTMLAttributes (line 924) | interface VideoHTMLAttributes<T extends Element> extends Attrs<'video', ...
  type WebViewHTMLAttributes (line 931) | interface WebViewHTMLAttributes<T extends Element> extends HTMLAttribute...
  type SVGAttributes (line 958) | interface SVGAttributes<T extends Element = Element> extends AriaAttribu...
  type SVGProps (line 1235) | interface SVGProps<T extends Element> extends SVGAttributes, QwikAttribu...
  type LenientSVGProps (line 1237) | interface LenientSVGProps<T extends Element> extends SVGAttributes, DOMA...
  type IntrinsicElements (line 1239) | interface IntrinsicElements extends IntrinsicHTMLElements, IntrinsicSVGE...
  type IntrinsicHTMLElements (line 1246) | type IntrinsicHTMLElements = {
  type IntrinsicSVGElements (line 1259) | type IntrinsicSVGElements = {
  type QwikHTMLElements (line 1270) | type QwikHTMLElements = {
  type QwikSVGElements (line 1280) | type QwikSVGElements = {

FILE: packages/qwik/src/core/render/jsx/types/jsx-node.ts
  type JSXOutput (line 8) | type JSXOutput = JSXNode | string | number | boolean | null | undefined ...
  type FunctionComponent (line 17) | type FunctionComponent<P = unknown> = {
  type DevJSX (line 22) | interface DevJSX {
  type JSXNode (line 34) | interface JSXNode<T extends string | FunctionComponent | unknown = unkno...
  type JSXNodeInternal (line 47) | interface JSXNodeInternal<T extends string | FunctionComponent | unknown...

FILE: packages/qwik/src/core/render/jsx/types/jsx-qwik-attributes.ts
  type PascalCaseNames (line 19) | type PascalCaseNames =
  type LcEventNameMap (line 88) | type LcEventNameMap = {
  type PascalMap (line 96) | type PascalMap<M> = {
  type PreventDefault (line 102) | type PreventDefault = {
  type StopPropagation (line 106) | type StopPropagation = {
  type AllEventMapRaw (line 110) | type AllEventMapRaw = HTMLElementEventMap &
  type CorrectedToggleEvent (line 121) | interface CorrectedToggleEvent extends Event {
  type EventCorrectionMap (line 126) | type EventCorrectionMap = {
  type AllEventsMap (line 135) | type AllEventsMap = Omit<AllEventMapRaw, keyof EventCorrectionMap> & Eve...
  type AllPascalEventMaps (line 136) | type AllPascalEventMaps = PascalMap<AllEventsMap>;
  type AllEventKeys (line 138) | type AllEventKeys = keyof AllEventsMap;
  type LcEvent (line 140) | type LcEvent<T extends string, C extends string = Lowercase<T>> = C exte...
  type EventFromName (line 144) | type EventFromName<T extends string> = LcEvent<T>;
  type ClassList (line 156) | type ClassList =
  type EventHandler (line 169) | type EventHandler<EV = Event, EL = Element> = {
  type QRLEventHandlerMulti (line 179) | type QRLEventHandlerMulti<EV extends Event, EL> =
  type QwikCustomEvents (line 186) | type QwikCustomEvents<EL> = {
  type QwikCustomEventsPlain (line 192) | type QwikCustomEventsPlain<EL> = {
  type QwikKnownEvents (line 199) | type QwikKnownEvents<EL> = {
  type QwikKnownEventsPlain (line 205) | type QwikKnownEventsPlain<EL> = {
  type QwikEvents (line 212) | type QwikEvents<EL, Plain extends boolean = true> = Plain extends true
  type JSXTagName (line 217) | type JSXTagName = keyof HTMLElementTagNameMap | Omit<string, keyof HTMLE...
  type ComponentBaseProps (line 220) | interface ComponentBaseProps {
  type JSXChildren (line 226) | type JSXChildren =
  type QwikIntrinsicAttributes (line 240) | interface QwikIntrinsicAttributes {
  type Ref (line 256) | type Ref<EL extends Element = Element> = Signal<Element | undefined> | R...
  type RefFnInterface (line 257) | type RefFnInterface<EL> = {
  type RefAttr (line 260) | interface RefAttr<EL extends Element> {
  type DOMAttributesBase (line 263) | interface DOMAttributesBase<EL extends Element>
  type DOMAttributes (line 272) | interface DOMAttributes<EL extends Element> extends DOMAttributesBase<EL...
  type QwikAttributes (line 277) | interface QwikAttributes<EL extends Element>

FILE: packages/qwik/src/core/render/jsx/types/jsx-qwik-elements.ts
  type QwikIntrinsicElements (line 34) | interface QwikIntrinsicElements extends QwikHTMLElements, QwikSVGElement...
  type LenientQwikElements (line 40) | interface LenientQwikElements extends IntrinsicHTMLElements, IntrinsicSV...

FILE: packages/qwik/src/core/render/jsx/types/jsx-qwik-events.ts
  type QwikVisibleEvent (line 4) | type QwikVisibleEvent = CustomEvent<IntersectionObserverEntry>;
  type QwikSymbolEvent (line 6) | type QwikSymbolEvent = CustomEvent<{
  type QwikInitEvent (line 16) | type QwikInitEvent = CustomEvent<{}>;
  type QwikIdleEvent (line 18) | type QwikIdleEvent = CustomEvent<{}>;
  type QwikViewTransitionEvent (line 20) | type QwikViewTransitionEvent = CustomEvent<ViewTransition>;
  type QwikErrorEvent (line 22) | type QwikErrorEvent = CustomEvent<
  type Primitive (line 32) | type Primitive = null | undefined | string | number | boolean | symbol |...
  type LiteralUnion (line 58) | type LiteralUnion<LiteralType, BaseType extends Primitive> =
  type KnownEventNames (line 68) | type KnownEventNames = LiteralUnion<AllEventKeys, string>;
  type SyntheticEvent (line 71) | type SyntheticEvent<T = Element, E = Event> = E & { target: EventTarget ...
  type NativeAnimationEvent (line 73) | type NativeAnimationEvent = AnimationEvent;
  type NativeClipboardEvent (line 75) | type NativeClipboardEvent = ClipboardEvent;
  type NativeCompositionEvent (line 77) | type NativeCompositionEvent = CompositionEvent;
  type NativeDragEvent (line 79) | type NativeDragEvent = DragEvent;
  type NativeFocusEvent (line 81) | type NativeFocusEvent = FocusEvent;
  type NativeKeyboardEvent (line 83) | type NativeKeyboardEvent = KeyboardEvent;
  type NativeMouseEvent (line 85) | type NativeMouseEvent = MouseEvent;
  type NativeTouchEvent (line 87) | type NativeTouchEvent = TouchEvent;
  type NativePointerEvent (line 89) | type NativePointerEvent = PointerEvent;
  type NativeTransitionEvent (line 91) | type NativeTransitionEvent = TransitionEvent;
  type NativeUIEvent (line 93) | type NativeUIEvent = UIEvent;
  type NativeWheelEvent (line 95) | type NativeWheelEvent = WheelEvent;
  type QwikAnimationEvent (line 97) | type QwikAnimationEvent<T = Element> = NativeAnimationEvent;
  type QwikClipboardEvent (line 99) | type QwikClipboardEvent<T = Element> = NativeClipboardEvent;
  type QwikCompositionEvent (line 101) | type QwikCompositionEvent<T = Element> = NativeCompositionEvent;
  type QwikDragEvent (line 103) | type QwikDragEvent<T = Element> = NativeDragEvent;
  type QwikPointerEvent (line 105) | type QwikPointerEvent<T = Element> = NativePointerEvent;
  type QwikFocusEvent (line 107) | type QwikFocusEvent<T = Element> = NativeFocusEvent;
  type QwikSubmitEvent (line 109) | type QwikSubmitEvent<T = Element> = SubmitEvent;
  type QwikInvalidEvent (line 111) | type QwikInvalidEvent<T = Element> = Event;
  type QwikChangeEvent (line 113) | type QwikChangeEvent<T = Element> = Event;
  type QwikKeyboardEvent (line 115) | type QwikKeyboardEvent<T = Element> = NativeKeyboardEvent;
  type QwikMouseEvent (line 117) | type QwikMouseEvent<T = Element, E = NativeMouseEvent> = E;
  type QwikTouchEvent (line 119) | type QwikTouchEvent<T = Element> = NativeTouchEvent;
  type QwikUIEvent (line 121) | type QwikUIEvent<T = Element> = NativeUIEvent;
  type QwikWheelEvent (line 123) | type QwikWheelEvent<T = Element> = NativeWheelEvent;
  type QwikTransitionEvent (line 125) | type QwikTransitionEvent<T = Element> = NativeTransitionEvent;

FILE: packages/qwik/src/core/render/jsx/types/jsx-qwik.ts
  type Element (line 7) | type Element = JSXOutput;
  type ElementType (line 8) | type ElementType = string | FunctionComponent<Record<any, any>>;
  type IntrinsicAttributes (line 10) | interface IntrinsicAttributes extends QwikIntrinsicAttributes {}
  type ElementChildrenAttribute (line 11) | interface ElementChildrenAttribute {
  type IntrinsicElements (line 14) | interface IntrinsicElements extends LenientQwikElements {}
  type QwikDOMAttributes (line 17) | interface QwikDOMAttributes extends DOMAttributes<Element> {}

FILE: packages/qwik/src/core/render/jsx/utils.public.ts
  type SSRStreamProps (line 26) | type SSRStreamProps = {
  type SSRHintProps (line 38) | type SSRHintProps = {

FILE: packages/qwik/src/core/render/ssr/render-ssr.ts
  constant FLUSH_COMMENT (line 56) | const FLUSH_COMMENT = '<!--qkssr-f-->';
  type StreamWriter (line 59) | type StreamWriter = {
  type RenderSSROptions (line 64) | interface RenderSSROptions {
  type SSRContext (line 80) | interface SSRContext {
  type SSRContextStatic (line 87) | interface SSRContextStatic {
  constant IS_HEAD (line 94) | const IS_HEAD = 1 << 0;
  constant IS_HTML (line 95) | const IS_HTML = 1 << 2;
  constant IS_TEXT (line 96) | const IS_TEXT = 1 << 3;
  constant IS_INVISIBLE (line 97) | const IS_INVISIBLE = 1 << 4;
  constant IS_PHASING (line 98) | const IS_PHASING = 1 << 5;
  constant IS_ANCHOR (line 99) | const IS_ANCHOR = 1 << 6;
  constant IS_BUTTON (line 100) | const IS_BUTTON = 1 << 7;
  constant IS_TABLE (line 101) | const IS_TABLE = 1 << 8;
  constant IS_PHRASING_CONTAINER (line 102) | const IS_PHRASING_CONTAINER = 1 << 9;
  constant IS_IMMUTABLE (line 103) | const IS_IMMUTABLE = 1 << 10;
  class MockElement (line 105) | class MockElement {
    method constructor (line 107) | constructor(public readonly nodeType: number) {
  method write (line 246) | write(chunk) {
  constant CLOSE_VIRTUAL (line 336) | const CLOSE_VIRTUAL = `<!--/qv-->`;
  method write (line 960) | write(chunk) {
  type ServerDocument (line 1186) | interface ServerDocument {
  constant ESCAPE_HTML (line 1193) | const ESCAPE_HTML = /[&<>'"]/g;

FILE: packages/qwik/src/core/render/ssr/render-ssr.unit.tsx
  constant PAYLOAD (line 1673) | const PAYLOAD = `--><img src=x onerror=alert('XSS')>`;
  constant CTX_INTERNAL (line 1837) | const CTX_INTERNAL = createContextId<{ value: string }>('internal');
  constant CTX_QWIK_CITY (line 1838) | const CTX_QWIK_CITY = createContextId<{ value: string }>('qwikcity');
  constant CTX_VALUE (line 1839) | const CTX_VALUE = createContextId<{ value: string }>('value');
  function testSSR (line 1971) | async function testSSR(
  function throws (line 2088) | async function throws<T>(fn: () => T, expected?: string | RegExp): Promi...

FILE: packages/qwik/src/core/render/types.ts
  type RenderOperation (line 6) | interface RenderOperation {
  type RenderContext (line 12) | interface RenderContext {
  type RenderStaticContext (line 20) | interface RenderStaticContext {
  type ViewTransition (line 35) | interface ViewTransition {
  type Document (line 42) | interface Document {

FILE: packages/qwik/src/core/state/common.ts
  type SubscriptionManager (line 21) | interface SubscriptionManager {
  type QObject (line 28) | type QObject<T extends {}> = T & { __brand__: 'QObject' };
  type TargetType (line 30) | type TargetType = Record<string | symbol, any>;
  type NoSerialize (line 130) | type NoSerialize<T> = (T & { __no_serialize__: true }) | undefined;
  type SubscriberA (line 196) | type SubscriberA = readonly [type: 0, host: SubscriberEffect | Subscribe...
  type SubscriberB (line 198) | type SubscriberB = readonly [
  type SubscriberC (line 206) | type SubscriberC = readonly [
  type Subscriber (line 213) | type Subscriber = SubscriberA | SubscriberB | SubscriberC;
  type A (line 215) | type A = [type: 0, host: SubscriberEffect | SubscriberHost, key: string ...
  type B (line 216) | type B = [
  type C (line 224) | type C = [
  type SubscriberSignal (line 232) | type SubscriberSignal = B | C;
  type Subscriptions (line 234) | type Subscriptions = A | SubscriberSignal;
  type Group (line 236) | type Group = SubscriberEffect | SubscriberHost | Node;
  type GroupToManagersMap (line 238) | type GroupToManagersMap = Map<Group, LocalSubscriptionManager[]>;
  class LocalSubscriptionManager (line 334) | class LocalSubscriptionManager {
    method constructor (line 337) | constructor(
    method $addSubs$ (line 350) | $addSubs$(subs: Subscriptions[]) {
    method $addToGroup$ (line 357) | $addToGroup$(group: Group, manager: LocalSubscriptionManager) {
    method $unsubGroup$ (line 367) | $unsubGroup$(group: Group) {
    method $unsubEntry$ (line 378) | $unsubEntry$(entry: SubscriberSignal) {
    method $addSub$ (line 408) | $addSub$(sub: Subscriber, key?: string) {
    method $notifySubs$ (line 421) | $notifySubs$(key?: string | undefined) {
  function getLastSubscription (line 435) | function getLastSubscription(): Subscriptions | undefined {

FILE: packages/qwik/src/core/state/constants.ts
  constant VIRTUAL_SYMBOL (line 17) | const VIRTUAL_SYMBOL = '__virtual';
  constant Q_CTX (line 22) | const Q_CTX = '_qc_';

FILE: packages/qwik/src/core/state/context.ts
  type QContextEvents (line 19) | interface QContextEvents {
  constant HOST_FLAG_DIRTY (line 23) | const HOST_FLAG_DIRTY = 1 << 0;
  constant HOST_FLAG_NEED_ATTACH_LISTENER (line 24) | const HOST_FLAG_NEED_ATTACH_LISTENER = 1 << 1;
  constant HOST_FLAG_MOUNTED (line 25) | const HOST_FLAG_MOUNTED = 1 << 2;
  constant HOST_FLAG_DYNAMIC (line 26) | const HOST_FLAG_DYNAMIC = 1 << 3;
  constant HOST_REMOVED (line 27) | const HOST_REMOVED = 1 << 4;
  type QContext (line 30) | interface QContext {

FILE: packages/qwik/src/core/state/listeners.ts
  constant ON_PROP_REGEX (line 12) | const ON_PROP_REGEX = /^(on|window:|document:)/;
  type Listener (line 15) | type Listener = [
  constant PREVENT_DEFAULT (line 20) | const PREVENT_DEFAULT = 'preventdefault:';
  constant PREFIXES (line 69) | const PREFIXES = ['on', 'window:on', 'document:on'];
  constant SCOPED (line 70) | const SCOPED = ['on', 'on-window', 'on-document'];

FILE: packages/qwik/src/core/state/signal.ts
  type Signal (line 30) | interface Signal<T = any> {
  type ReadonlySignal (line 35) | type ReadonlySignal<T = unknown> = Readonly<Signal<T>>;
  type ValueOrSignal (line 38) | type ValueOrSignal<T> = T | Signal<T>;
  constant SIGNAL_IMMUTABLE (line 54) | const SIGNAL_IMMUTABLE = 1 << 0;
  constant SIGNAL_UNASSIGNED (line 55) | const SIGNAL_UNASSIGNED = 1 << 1;
  type SignalInternal (line 59) | interface SignalInternal<T> extends Signal<T> {
  class SignalBase (line 65) | class SignalBase {}
  class SignalImpl (line 67) | class SignalImpl<T> extends SignalBase implements Signal<T> {
    method constructor (line 72) | constructor(v: T, manager: LocalSubscriptionManager, flags: number) {
    method valueOf (line 80) | valueOf() {
    method toString (line 85) | toString() {
    method toJSON (line 88) | toJSON() {
    method value (line 92) | get value() {
    method value (line 103) | set value(v: T) {
  class SignalDerived (line 140) | class SignalDerived<RETURN = unknown, ARGS extends any[] = unknown[]> ex...
    method constructor (line 141) | constructor(
    method value (line 149) | get value(): RETURN {
  class SignalWrapper (line 154) | class SignalWrapper<T extends Record<string, any>, P extends keyof T> ex...
    method constructor (line 155) | constructor(
    method [QObjectManagerSymbol] (line 162) | get [QObjectManagerSymbol]() {
    method value (line 166) | get value(): T[P] {
    method value (line 170) | set value(value: T[P]) {

FILE: packages/qwik/src/core/state/store.ts
  type QObject (line 28) | type QObject<T extends {}> = T & { __brand__: 'QObject' };
  type TargetType (line 75) | type TargetType = Record<string | symbol, any>;
  class ReadWriteProxyHandler (line 88) | class ReadWriteProxyHandler implements ProxyHandler<TargetType> {
    method constructor (line 89) | constructor(
    method deleteProperty (line 94) | deleteProperty(target: TargetType, prop: string | symbol): boolean {
    method get (line 105) | get(target: TargetType, prop: string | symbol): any {
    method set (line 143) | set(target: TargetType, prop: string | symbol, newValue: any): boolean {
    method has (line 195) | has(target: TargetType, prop: string | symbol): boolean {
    method ownKeys (line 217) | ownKeys(target: TargetType): ArrayLike<string | symbol> {
    method getOwnPropertyDescriptor (line 240) | getOwnPropertyDescriptor(

FILE: packages/qwik/src/core/style/scoped-stylesheet.ts
  constant DEBUG (line 6) | const DEBUG: boolean = false;
  constant STYLE_CACHE (line 8) | const STYLE_CACHE = /*#__PURE__*/ new Map();
  function flush (line 128) | function flush(idx: number) {
  function insertScopingSelector (line 133) | function insertScopingSelector(idx: number) {
  function lookAhead (line 142) | function lookAhead(arc: StateArc): boolean {
  function shouldNotInsertScoping (line 167) | function shouldNotInsertScoping(): boolean {
  constant EXIT (line 243) | const EXIT = 17;
  constant EXIT_INSERT_SCOPE (line 244) | const EXIT_INSERT_SCOPE = 18;
  constant ANY (line 246) | const ANY = 0;
  constant IDENT (line 247) | const IDENT = 1;
  constant NOT_IDENT (line 248) | const NOT_IDENT = 2;
  constant WHITESPACE (line 249) | const WHITESPACE = 3;
  constant TAB (line 250) | const TAB = 9;
  constant NEWLINE (line 251) | const NEWLINE = 10;
  constant CARRIAGE_RETURN (line 252) | const CARRIAGE_RETURN = 13;
  constant SPACE (line 253) | const SPACE = 32;
  constant DOUBLE_QUOTE (line 254) | const DOUBLE_QUOTE = 34;
  constant HASH (line 255) | const HASH = 35;
  constant SINGLE_QUOTE (line 256) | const SINGLE_QUOTE = 39;
  constant OPEN_PARENTHESIS (line 257) | const OPEN_PARENTHESIS = 40;
  constant CLOSE_PARENTHESIS (line 258) | const CLOSE_PARENTHESIS = 41;
  constant STAR (line 259) | const STAR = 42;
  constant DASH (line 261) | const DASH = 45;
  constant DOT (line 262) | const DOT = 46;
  constant FORWARD_SLASH (line 263) | const FORWARD_SLASH = 47;
  constant COLON (line 266) | const COLON = 58;
  constant SEMICOLON (line 267) | const SEMICOLON = 59;
  constant OPEN_BRACKET (line 272) | const OPEN_BRACKET = 91;
  constant CLOSE_BRACKET (line 273) | const CLOSE_BRACKET = 93;
  constant BACKSLASH (line 274) | const BACKSLASH = 92;
  constant UNDERSCORE (line 275) | const UNDERSCORE = 95;
  constant LOWERCASE (line 276) | const LOWERCASE = 0x20;
  constant OPEN_BRACE (line 285) | const OPEN_BRACE = 123;
  constant CLOSE_BRACE (line 286) | const CLOSE_BRACE = 125;
  type StateArc (line 288) | type StateArc = [
  constant STRINGS_COMMENTS (line 299) | const STRINGS_COMMENTS: StateArc[] = /*__PURE__*/ (() => [
  constant STATE_MACHINE (line 305) | const STATE_MACHINE: StateArc[][] = /*__PURE__*/ (() => [

FILE: packages/qwik/src/core/use/use-context.ts
  type ContextId (line 72) | interface ContextId<STATE> {
  type UseContext (line 211) | interface UseContext {

FILE: packages/qwik/src/core/use/use-core.ts
  type SimplifiedServerRequestEvent (line 29) | interface SimplifiedServerRequestEvent<T = unknown> {
  type StyleAppend (line 35) | interface StyleAppend {
  type ServerRequestEvent (line 41) | interface ServerRequestEvent<T = unknown> {
  type PossibleEvents (line 47) | type PossibleEvents =
  type RenderInvokeContext (line 55) | interface RenderInvokeContext extends InvokeContext {
  type InvokeTuple (line 66) | type InvokeTuple = [Element, Event, URL?];
  type InvokeContext (line 69) | interface InvokeContext {
  function useBindInvokeContext (line 132) | function useBindInvokeContext<FN extends (...args: any) => any>(
  function invoke (line 146) | function invoke<FN extends (...args: any[]) => any>(
  function invokeApply (line 156) | function invokeApply<FN extends (...args: any) => any>(

FILE: packages/qwik/src/core/use/use-env-data.ts
  function useServerData (line 10) | function useServerData(key: string, defaultValue?: any) {

FILE: packages/qwik/src/core/use/use-locale.ts
  function getLocale (line 13) | function getLocale(defaultLocale?: string): string {
  function withLocale (line 32) | function withLocale<T>(locale: string, fn: () => T): T {
  function setLocale (line 50) | function setLocale(locale: string): void {

FILE: packages/qwik/src/core/use/use-on.ts
  type EventQRL (line 13) | type EventQRL<T extends string = AllEventKeys> =

FILE: packages/qwik/src/core/use/use-resource.ts
  type ResourceOptions (line 32) | interface ResourceOptions {
  type ResourceProps (line 192) | interface ResourceProps<T> {
  function getResourceValueAsPromise (line 260) | function getResourceValueAsPromise<T>(props: ResourceProps<T>): Promise<...

FILE: packages/qwik/src/core/use/use-sequential-scope.ts
  type SequentialScope (line 6) | interface SequentialScope<T> {

FILE: packages/qwik/src/core/use/use-signal.ts
  type UseSignal (line 8) | interface UseSignal {

FILE: packages/qwik/src/core/use/use-store.public.ts
  type UseStoreOptions (line 8) | interface UseStoreOptions {

FILE: packages/qwik/src/core/use/use-styles.ts
  type UseStylesScoped (line 12) | interface UseStylesScoped {

FILE: packages/qwik/src/core/use/use-task.ts
  type Tracker (line 94) | interface Tracker {
  type TaskCtx (line 126) | interface TaskCtx {
  type ResourceCtx (line 132) | interface ResourceCtx<T> {
  type TaskFn (line 140) | type TaskFn = (ctx: TaskCtx) => ValueOrPromise<void | (() => void)>;
  type ComputedFn (line 143) | type ComputedFn<T> = () => T;
  type ResourceFn (line 146) | type ResourceFn<T> = (ctx: ResourceCtx<unknown>) => ValueOrPromise<T>;
  type ResourceReturn (line 149) | type ResourceReturn<T> = ResourcePending<T> | ResourceResolved<T> | Reso...
  type ResourcePending (line 152) | interface ResourcePending<T> {
  type ResourceResolved (line 158) | interface ResourceResolved<T> {
  type ResourceRejected (line 164) | interface ResourceRejected<T> {
  type ResourceReturnInternal (line 169) | interface ResourceReturnInternal<T> {
  type DescriptorBase (line 180) | interface DescriptorBase<T = unknown, B = unknown> {
  type EagernessOptions (line 190) | type EagernessOptions = 'visible' | 'load' | 'idle';
  type VisibleTaskStrategy (line 193) | type VisibleTaskStrategy = 'intersection-observer' | 'document-ready' | ...
  type OnVisibleTaskOptions (line 196) | interface OnVisibleTaskOptions {
  type UseTaskOptions (line 211) | interface UseTaskOptions {
  type TaskDescriptor (line 506) | type TaskDescriptor = DescriptorBase<TaskFn>;
  type ResourceDescriptor (line 508) | interface ResourceDescriptor<T>
  type ComputedDescriptor (line 511) | interface ComputedDescriptor<T> extends DescriptorBase<ComputedFn<T>, Si...
  type SubscriberHost (line 513) | type SubscriberHost = QwikElement;
  type SubscriberEffect (line 515) | type SubscriberEffect =
  method cleanup (line 591) | cleanup(callback) {
  method cache (line 594) | cache(policy) {
  method cleanup (line 714) | cleanup(callback) {
  class Task (line 862) | class Task<T = unknown, B = T> implements DescriptorBase<unknown, Signal...
    method constructor (line 863) | constructor(

FILE: packages/qwik/src/core/util/flyweight.ts
  constant EMPTY_ARRAY (line 5) | const EMPTY_ARRAY = [] as any[];
  constant EMPTY_OBJ (line 6) | const EMPTY_OBJ = {} as Record<string, any>;

FILE: packages/qwik/src/core/util/log.ts
  constant STYLE (line 6) | const STYLE = qDev

FILE: packages/qwik/src/core/util/markers.ts
  constant ELEMENT_ID (line 43) | const ELEMENT_ID = 'q:id';
  constant ELEMENT_ID_SELECTOR (line 44) | const ELEMENT_ID_SELECTOR = '[q\\:id]';
  constant ELEMENT_ID_PREFIX (line 45) | const ELEMENT_ID_PREFIX = '#';
  constant INLINE_FN_PREFIX (line 46) | const INLINE_FN_PREFIX = '@';

FILE: packages/qwik/src/core/util/promises.ts
  type PromiseTree (line 3) | type PromiseTree<T> = T | Promise<T> | Promise<T[]> | Array<PromiseTree<...

FILE: packages/qwik/src/core/util/types.ts
  type ValueOrPromise (line 32) | type ValueOrPromise<T> = T | Promise<T>;

FILE: packages/qwik/src/napi/build.rs
  function main (line 3) | fn main() {

FILE: packages/qwik/src/napi/src/lib.rs
  function transform_fs (line 17) | fn transform_fs(ctx: CallContext) -> Result<JsUnknown> {
  function transform_modules (line 27) | fn transform_modules(ctx: CallContext) -> Result<JsUnknown> {
  function init (line 36) | fn init(mut exports: JsObject) -> Result<()> {

FILE: packages/qwik/src/napi/test.cjs
  function run (line 3) | async function run() {

FILE: packages/qwik/src/optimizer/cli/src/main.rs
  type OptimizerInput (line 11) | struct OptimizerInput {
  function main (line 28) | fn main() -> Result<(), Box<dyn std::error::Error>> {
  function optimize (line 134) | fn optimize(

FILE: packages/qwik/src/optimizer/core/benches/transform.rs
  function transform_todo_app (line 9) | fn transform_todo_app(b: &mut Bencher) {

FILE: packages/qwik/src/optimizer/core/src/add_side_effect.rs
  type SideEffectVisitor (line 12) | pub struct SideEffectVisitor<'a> {
  function new (line 20) | pub fn new(
  method visit_mut_import_decl (line 35) | fn visit_mut_import_decl(&mut self, node: &mut ast::ImportDecl) {
  method visit_mut_module (line 40) | fn visit_mut_module(&mut self, node: &mut ast::Module) {

FILE: packages/qwik/src/optimizer/core/src/clean_side_effects.rs
  type Treeshaker (line 22) | pub struct Treeshaker {
    method new (line 37) | pub fn new() -> Self {
  type CleanMarker (line 27) | pub struct CleanMarker {
  type CleanSideEffects (line 31) | pub struct CleanSideEffects {
  method visit_mut_module_item (line 52) | fn visit_mut_module_item(&mut self, node: &mut ModuleItem) {
  method visit_mut_module (line 68) | fn visit_mut_module(&mut self, node: &mut Module) {

FILE: packages/qwik/src/optimizer/core/src/code_move.rs
  type NewModuleCtx (line 19) | pub struct NewModuleCtx<'a> {
  function new_module (line 34) | pub fn new_module(ctx: NewModuleCtx) -> Result<(ast::Module, SingleThrea...
  function create_named_export (line 154) | fn create_named_export(expr: Box<ast::Expr>, name: &str) -> ast::ModuleI...
  function transform_function_expr (line 176) | pub fn transform_function_expr(
  function transform_arrow_fn (line 190) | fn transform_arrow_fn(
  function transform_fn (line 227) | fn transform_fn(node: ast::FnExpr, use_lexical_scope: &Id, scoped_idents...
  function create_return_stmt (line 254) | pub const fn create_return_stmt(expr: Box<ast::Expr>) -> ast::Stmt {
  function create_use_lexical_scope (line 261) | fn create_use_lexical_scope(use_lexical_scope: &Id, scoped_idents: &[Id]...

FILE: packages/qwik/src/optimizer/core/src/collector.rs
  type Id (line 15) | pub type Id = (JsWord, SyntaxContext);
  function new_ident_from_id (line 17) | pub fn new_ident_from_id(id: &Id) -> ast::Ident {
  type ImportKind (line 22) | pub enum ImportKind {
  type Import (line 29) | pub struct Import {
  type GlobalCollect (line 37) | pub struct GlobalCollect {
    method get_imported_local (line 63) | pub fn get_imported_local(&self, specifier: &JsWord, source: &JsWord) ...
    method is_global (line 70) | pub fn is_global(&self, local: &Id) -> bool {
    method import (line 83) | pub fn import(&mut self, specifier: &JsWord, source: &JsWord) -> Id {
    method add_import (line 106) | pub fn add_import(&mut self, local: Id, import: Import) {
    method add_export (line 117) | pub fn add_export(&mut self, local: Id, exported: Option<JsWord>) -> b...
  function global_collect (line 47) | pub fn global_collect(program: &ast::Program) -> GlobalCollect {
  method visit_module_item (line 130) | fn visit_module_item(&mut self, node: &ast::ModuleItem) {
  method visit_import_decl (line 156) | fn visit_import_decl(&mut self, node: &ast::ImportDecl) {
  method visit_named_export (line 203) | fn visit_named_export(&mut self, node: &ast::NamedExport) {
  method visit_export_decl (line 239) | fn visit_export_decl(&mut self, node: &ast::ExportDecl) {
  method visit_export_default_decl (line 263) | fn visit_export_default_decl(&mut self, node: &ast::ExportDefaultDecl) {
  method visit_binding_ident (line 281) | fn visit_binding_ident(&mut self, node: &ast::BindingIdent) {
  method visit_assign_pat_prop (line 287) | fn visit_assign_pat_prop(&mut self, node: &ast::AssignPatProp) {
  type ExprOrSkip (line 295) | enum ExprOrSkip {
  type IdentCollector (line 301) | pub struct IdentCollector {
    method new (line 310) | pub fn new() -> Self {
    method get_words (line 319) | pub fn get_words(self) -> Vec<Id> {
  method visit_expr (line 329) | fn visit_expr(&mut self, node: &ast::Expr) {
  method visit_stmt (line 335) | fn visit_stmt(&mut self, node: &ast::Stmt) {
  method visit_jsx_element (line 341) | fn visit_jsx_element(&mut self, node: &ast::JSXElement) {
  method visit_jsx_fragment (line 346) | fn visit_jsx_fragment(&mut self, node: &ast::JSXFragment) {
  method visit_jsx_element_name (line 352) | fn visit_jsx_element_name(&mut self, node: &ast::JSXElementName) {
  method visit_jsx_attr (line 363) | fn visit_jsx_attr(&mut self, node: &ast::JSXAttr) {
  method visit_ident (line 369) | fn visit_ident(&mut self, node: &ast::Ident) {
  method visit_key_value_prop (line 377) | fn visit_key_value_prop(&mut self, node: &ast::KeyValueProp) {
  function collect_from_pat (line 384) | pub fn collect_from_pat(pat: &ast::Pat, identifiers: &mut Vec<(Id, Span)...

FILE: packages/qwik/src/optimizer/core/src/const_replace.rs
  type ConstReplacerVisitor (line 6) | pub struct ConstReplacerVisitor {
    method new (line 18) | pub fn new(is_server: bool, is_dev: bool, global_collector: &GlobalCol...
  type ConstVariable (line 44) | enum ConstVariable {
  method visit_mut_expr (line 51) | fn visit_mut_expr(&mut self, node: &mut ast::Expr) {

FILE: packages/qwik/src/optimizer/core/src/entry_strategy.rs
  type EntryStrategy (line 14) | pub enum EntryStrategy {
  type EntryPolicy (line 24) | pub trait EntryPolicy: Send + Sync {
    method get_entry_for_sym (line 25) | fn get_entry_for_sym(&self, context: &[String], segment: &SegmentData)...
    method get_entry_for_sym (line 32) | fn get_entry_for_sym(&self, _context: &[String], _segment: &SegmentDat...
    method get_entry_for_sym (line 47) | fn get_entry_for_sym(&self, _context: &[String], _segment: &SegmentDat...
    method get_entry_for_sym (line 62) | fn get_entry_for_sym(&self, _context: &[String], _segment: &SegmentDat...
    method get_entry_for_sym (line 77) | fn get_entry_for_sym(&self, context: &[String], segment: &SegmentData)...
    method get_entry_for_sym (line 95) | fn get_entry_for_sym(&self, context: &[String], segment: &SegmentData)...
  type InlineStrategy (line 29) | pub struct InlineStrategy;
  type SingleStrategy (line 38) | pub struct SingleStrategy {}
    method new (line 41) | pub const fn new() -> Self {
  type PerSegmentStrategy (line 53) | pub struct PerSegmentStrategy {}
    method new (line 56) | pub const fn new() -> Self {
  type PerComponentStrategy (line 68) | pub struct PerComponentStrategy {}
    method new (line 71) | pub const fn new() -> Self {
  type SmartStrategy (line 86) | pub struct SmartStrategy {}
    method new (line 89) | pub const fn new() -> Self {
  function parse_entry_strategy (line 115) | pub fn parse_entry_strategy(strategy: &EntryStrategy) -> Box<dyn EntryPo...

FILE: packages/qwik/src/optimizer/core/src/errors.rs
  type Error (line 3) | pub enum Error {
  function get_diagnostic_id (line 9) | pub fn get_diagnostic_id(err: Error) -> DiagnosticId {

FILE: packages/qwik/src/optimizer/core/src/filter_exports.rs
  type StripExportsVisitor (line 6) | pub struct StripExportsVisitor<'a> {
  function new (line 11) | pub const fn new(filter_symbols: &'a [JsWord]) -> Self {
  method visit_mut_module (line 17) | fn visit_mut_module(&mut self, node: &mut ast::Module) {
  function empty_module_item (line 46) | fn empty_module_item(ident: ast::Ident) -> ast::ModuleItem {

FILE: packages/qwik/src/optimizer/core/src/fixtures/index.qwik.mjs
  constant MODULE_CACHE (line 84) | const MODULE_CACHE = /* @__PURE__ */ new WeakMap();
  constant CLIENT_DATA_CACHE (line 85) | const CLIENT_DATA_CACHE = /* @__PURE__ */ new Map();
  constant QACTION_KEY (line 86) | const QACTION_KEY = 'qaction';
  constant QDATA_JSON (line 370) | const QDATA_JSON = '/q-data.json';
  function run (line 471) | async function run() {
  function action (line 680) | function action() {
  function loader (line 782) | function loader() {
  method validate (line 815) | async validate(ev, inputData) {
  function stuff (line 844) | function stuff() {
  method transform (line 920) | transform(chunk, controller) {

FILE: packages/qwik/src/optimizer/core/src/has_branches.rs
  function is_conditional_jsx (line 13) | pub fn is_conditional_jsx(
  function is_conditional_jsx_block (line 23) | pub fn is_conditional_jsx_block(
  type HasBranches (line 33) | pub struct HasBranches<'a> {
  function new (line 42) | const fn new(jsx_functions: &'a HashSet<Id>, immutable_function_cmp: &'a...
  method visit_arrow_expr (line 56) | fn visit_arrow_expr(&mut self, _: &ast::ArrowExpr) {}
  method visit_fn_expr (line 57) | fn visit_fn_expr(&mut self, _: &ast::FnExpr) {}
  method visit_fn_decl (line 58) | fn visit_fn_decl(&mut self, _: &ast::FnDecl) {}
  method visit_return_stmt (line 60) | fn visit_return_stmt(&mut self, node: &ast::ReturnStmt) {
  method visit_for_in_stmt (line 65) | fn visit_for_in_stmt(&mut self, node: &ast::ForInStmt) {
  method visit_for_of_stmt (line 71) | fn visit_for_of_stmt(&mut self, node: &ast::ForOfStmt) {
  method visit_for_stmt (line 77) | fn visit_for_stmt(&mut self, node: &ast::ForStmt) {
  method visit_if_stmt (line 83) | fn visit_if_stmt(&mut self, node: &ast::IfStmt) {
  method visit_while_stmt (line 89) | fn visit_while_stmt(&mut self, node: &ast::WhileStmt) {
  method visit_do_while_stmt (line 95) | fn visit_do_while_stmt(&mut self, node: &ast::DoWhileStmt) {
  method visit_switch_stmt (line 101) | fn visit_switch_stmt(&mut self, node: &ast::SwitchStmt) {
Condensed preview — 2456 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (9,182K chars).
[
  {
    "path": ".all-contributorsrc",
    "chars": 264,
    "preview": "{\n  \"projectName\": \"qwik\",\n  \"projectOwner\": \"QwikDev\",\n  \"repoType\": \"github\",\n  \"repoHost\": \"https://github.com\",\n  \"f"
  },
  {
    "path": ".changeset/breezy-items-relax.md",
    "chars": 307,
    "preview": "---\n'@builder.io/qwik-city': patch\n---\n\nFIX: When a form POST is done, keys like \"name.1\" mean it's an array. However, l"
  },
  {
    "path": ".changeset/changelog-github-custom.cjs",
    "chars": 12638,
    "preview": "'use strict';\nvar __assign =\n  (this && this.__assign) ||\n  function () {\n    __assign =\n      Object.assign ||\n      fu"
  },
  {
    "path": ".changeset/changelog-github-custom.ts",
    "chars": 4086,
    "preview": "import { ChangelogFunctions } from '@changesets/types';\n// @ts-ignore\nimport { getInfo, getInfoFromPullRequest } from '@"
  },
  {
    "path": ".changeset/config.json",
    "chars": 669,
    "preview": "{\n  \"$schema\": \"https://unpkg.com/@changesets/config@3.0.1/schema.json\",\n  \"changelog\": [\"./changelog-github-custom.cjs\""
  },
  {
    "path": ".changeset/deno-production-builds.md",
    "chars": 283,
    "preview": "---\n'@builder.io/qwik': patch\n'@builder.io/qwik-city': patch\n---\n\nFIX: support Deno as package manager for production bu"
  },
  {
    "path": ".changeset/eager-sides-sit.md",
    "chars": 86,
    "preview": "---\n'@builder.io/qwik': patch\n---\n\nFIX: the optimizer was not using the binary builds\n"
  },
  {
    "path": ".changeset/fix-virtual-css-dev-ssr.md",
    "chars": 97,
    "preview": "---\n'@builder.io/qwik': patch\n---\n\nfix: resolve 404 error for virtual CSS modules during dev SSR\n"
  },
  {
    "path": ".changeset/late-parrots-open.md",
    "chars": 56,
    "preview": "---\n'eslint-plugin-qwik': patch\n---\n\nSupport ESLint v10\n"
  },
  {
    "path": ".changeset/shaky-ends-help.md",
    "chars": 101,
    "preview": "---\n'@builder.io/qwik-city': patch\n---\n\nfix: Link hash change now properly updates location.url.hash\n"
  },
  {
    "path": ".changeset/small-candies-train.md",
    "chars": 88,
    "preview": "---\n'@builder.io/qwik-city': patch\n---\n\nfix: handle special characters in dynamic route\n"
  },
  {
    "path": ".changeset/smooth-ends-count.md",
    "chars": 131,
    "preview": "---\n'@builder.io/qwik': patch\n---\n\nfix: type casts to bridge Rollup vs Rolldown type differences without changing runtim"
  },
  {
    "path": ".devcontainer/Dockerfile",
    "chars": 416,
    "preview": "FROM cimg/rust:1.88.0-node\n\nRUN rustup --version; \\\n    cargo --version; \\\n    rustc --version; \n\nRUN rustup update; \\\n "
  },
  {
    "path": ".devcontainer/devcontainer.json",
    "chars": 1021,
    "preview": "// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:\n// https://github.co"
  },
  {
    "path": ".dockerignore",
    "chars": 279,
    "preview": ".history\n.vscode\ndist\ndist-dev\nnode_modules\ntsc-out\nexternal\n*.\n**/*.log\netc\ntemp\ntsdoc-metadata.json\n**/.DS_Store\ninteg"
  },
  {
    "path": ".envrc",
    "chars": 60,
    "preview": "# shellcheck shell=bash\nuse flake\nwatch_file rust-toolchain\n"
  },
  {
    "path": ".gitattributes",
    "chars": 94,
    "preview": "*.json  linguist-language=JSON-with-Comments\n.yarn/releases/** binary\n.yarn/plugins/** binary\n"
  },
  {
    "path": ".github/CODEOWNERS",
    "chars": 485,
    "preview": "# For all PRs\n* @QwikDev/core-veterans\n\n# For docs PRs\npackages/docs @QwikDev/docs-team @QwikDev/qwik-team\ncontributing "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug.yaml",
    "chars": 2505,
    "preview": "name: 🐞 Bug Report\ndescription: Something does not work or is flaky! let us know!\nlabels: ['TYPE: bug', 'STATUS-1: needs"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 349,
    "preview": "contact_links:\n  - name: ✨ Feature requests Ideas\n    url: https://github.com/QwikDev/qwik-evolution/discussions\n    abo"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/docs_suggestion.yml",
    "chars": 794,
    "preview": "name: 📖 Documentation Suggestion\ndescription: Suggestions on how we can improve the documentation.\ntitle: '[📖]'\nlabels: "
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 1487,
    "preview": "<!--\nThe Qwik Team and Community appreciate all PRs. Thank you for your effort! Not all PRs can be merged, but those tha"
  },
  {
    "path": ".github/workflows/ai-issue-triage.yml",
    "chars": 5415,
    "preview": "name: AI Issue Triage\n\non:\n  issues:\n    types: [opened]\n\npermissions:\n  issues: write\n\njobs:\n  triage:\n    if: github.r"
  },
  {
    "path": ".github/workflows/auto-assign-core-team.yml",
    "chars": 2852,
    "preview": "name: Auto-assign PRs to core team authors\n\non:\n  pull_request_target:\n    types: [opened, reopened, ready_for_review, c"
  },
  {
    "path": ".github/workflows/bench.yml.disabled",
    "chars": 3605,
    "preview": "# disabled for now, not working as expected and not checking qwik runtime performance\nname: Benchmark\n\non:\n  - push\n  - "
  },
  {
    "path": ".github/workflows/ci.yml",
    "chars": 31031,
    "preview": "# Build and test everything\n#\n# First it builds the packages and stores them in artifacts/cache.\n# Meanwhile it lints th"
  },
  {
    "path": ".github/workflows/closing-issues.yml",
    "chars": 663,
    "preview": "name: Closing Issues For Inactivity\n\non:\n  schedule:\n    - cron: '0 0 * * *'\n\njobs:\n  close-issues:\n    if: github.repos"
  },
  {
    "path": ".github/workflows/deploy-docs.yml",
    "chars": 2714,
    "preview": "# a workflow that runs after the \"Qwik CI\" workflow is successful\n# and deploys the documentation to CloudFlare Pages.\n\n"
  },
  {
    "path": ".github/workflows/labeling-issues.yml",
    "chars": 2487,
    "preview": "name: Labling Issues\n\non:\n  issues:\n    types: [labeled]\n\njobs:\n  handle-labeled:\n    if: github.repository == 'QwikDev/"
  },
  {
    "path": ".gitignore",
    "chars": 838,
    "preview": "# Keep \"OS\" and \"IDE and local environment\" ignores on your local machine in user home\n# git config --global core.exclud"
  },
  {
    "path": ".node-version",
    "chars": 3,
    "preview": "24\n"
  },
  {
    "path": ".nvmrc",
    "chars": 3,
    "preview": "24\n"
  },
  {
    "path": ".prettierignore",
    "chars": 741,
    "preview": "**/**.api.md\n**/*.log\n**/.DS_Store\n*.\npnpm-lock.yaml\n.*\n!.eslintrc.cjs\n!.prettierignore\n!.prettierrc.json\n\n# Build outpu"
  },
  {
    "path": ".prettierrc.json",
    "chars": 245,
    "preview": "{\n  \"plugins\": [\"./node_modules/prettier-plugin-jsdoc/dist/index.js\"],\n  \"jsdocPreferCodeFences\": true,\n  \"tsdoc\": true,"
  },
  {
    "path": ".vscode/extensions.json",
    "chars": 372,
    "preview": "{\n  \"recommendations\": [\n    \"dbaeumer.vscode-eslint\",\n    \"unifiedjs.vscode-mdx\",\n    \"esbenp.prettier-vscode\",\n    \"ms"
  },
  {
    "path": ".vscode/launch.json",
    "chars": 2474,
    "preview": "{\n  // Use IntelliSense to learn about possible attributes.\n  // Hover to view descriptions of existing attributes.\n  //"
  },
  {
    "path": ".vscode/qwik.code-snippets",
    "chars": 2965,
    "preview": "{\n  \"Qwik component\": {\n    \"scope\": \"typescriptreact\",\n    \"prefix\": \"q:component w/props\",\n    \"description\": \"Qwik co"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 464,
    "preview": "{\n  \"vitest.include\": [\"**/*.unit.{js,mjs,cjs,ts,mts,cts,jsx,tsx}\"],\n  \"vitest.exclude\": [\n    \"**/node_modules/**\",\n   "
  },
  {
    "path": "@types/bun.d.ts",
    "chars": 199,
    "preview": "declare const Bun: {\n  fileURLToPath: (url: string) => string;\n  env: any;\n  file: (path: string) => {\n    text: () => P"
  },
  {
    "path": "@types/deno.d.ts",
    "chars": 502,
    "preview": "declare module 'https://deno.land/std/path/mod.ts' {\n  export function extname(paths: string): string;\n  export function"
  },
  {
    "path": "AGENTS.md",
    "chars": 10167,
    "preview": "# Qwik — AI Agent Instructions\n\n> Canonical instruction file for AI coding agents working on the Qwik monorepo.\n> For de"
  },
  {
    "path": "CLAUDE.md",
    "chars": 11,
    "preview": "@AGENTS.md\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 5216,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
  },
  {
    "path": "CONTINUOUS_BUILD.md",
    "chars": 2268,
    "preview": "# Continuous Build Artifacts\n\nThis repo contains build artifacts that are generated as part of the continues build pipel"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 17923,
    "preview": "# Contributing to Qwik\n\nThank you for taking an interest in contributing to Qwik! We appreciate you! 🫶🏽\n\nBelow are the g"
  },
  {
    "path": "Cargo.toml",
    "chars": 309,
    "preview": "[workspace]\n\nmembers = [\n    \"packages/qwik/src/napi\",\n    \"packages/qwik/src/wasm\",\n    \"packages/qwik/src/optimizer/cl"
  },
  {
    "path": "Dockerfile",
    "chars": 205,
    "preview": "FROM node:16.12.0-buster\n\nRUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y\nADD . /\nENV PATH=\""
  },
  {
    "path": "GOVERNANCE.md",
    "chars": 8226,
    "preview": "# Qwik Project Governance\n\nThis governance document reflects our dedication to maintaining Qwik as an open, fair, and co"
  },
  {
    "path": "LICENSE",
    "chars": 1093,
    "preview": "MIT License\n\nCopyright (c) 2024 QwikDev\nCopyright (c) 2021 BuilderIO\n\nPermission is hereby granted, free of charge, to a"
  },
  {
    "path": "Makefile",
    "chars": 1208,
    "preview": "install-rust:\n\tcurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y\n\ninstall-rust-deps:\n\trustup updat"
  },
  {
    "path": "README.md",
    "chars": 3975,
    "preview": "<br>\n<p align=\"center\">\n  <img alt=\"Qwik Logo\" width=\"400\" src=\"https://raw.githubusercontent.com/QwikDev/qwik/main/pack"
  },
  {
    "path": "SECURITY.md",
    "chars": 920,
    "preview": "# Reporting Security Issues\n\nThe Qwik team and community are dedicated to keeping our project secure, and we appreciate "
  },
  {
    "path": "contributing/TRIAGE.md",
    "chars": 4607,
    "preview": "# Triage Titans Guide\n\nHey there! Welcome to the wild world of the **Triage Titans**, where we tame bugs and nurture enh"
  },
  {
    "path": "cspell.json",
    "chars": 4550,
    "preview": "{\n  \"words\": [\n    \"Aboutus\",\n    \"accumsan\",\n    \"activedescendant\",\n    \"adipiscing\",\n    \"alertdialog\",\n    \"allowpop"
  },
  {
    "path": "e2e/adapters-e2e/.gitignore",
    "chars": 38,
    "preview": "playwright-report\ndist\nlogs\nserver\ntmp"
  },
  {
    "path": "e2e/adapters-e2e/adapters/express/vite.config.ts",
    "chars": 442,
    "preview": "import { nodeServerAdapter } from '@builder.io/qwik-city/adapters/node-server/vite';\nimport { extendConfig } from '@buil"
  },
  {
    "path": "e2e/adapters-e2e/package.json",
    "chars": 1031,
    "preview": "{\n  \"name\": \"qwik-buffering-test-app\",\n  \"description\": \"Qwik buffering test app\",\n  \"engines\": {\n    \"node\": \"^18.17.0 "
  },
  {
    "path": "e2e/adapters-e2e/playwright.config.ts",
    "chars": 1129,
    "preview": "import { defineConfig, devices } from '@playwright/test';\n\n/** See https://playwright.dev/docs/test-configuration. */\nex"
  },
  {
    "path": "e2e/adapters-e2e/src/components/click-me/click-me.tsx",
    "chars": 433,
    "preview": "import { component$, useSignal } from '@builder.io/qwik';\n\n// We need to extract the component to see the bug on 1.5.7\ne"
  },
  {
    "path": "e2e/adapters-e2e/src/components/router-head/router-head.tsx",
    "chars": 582,
    "preview": "import { component$ } from '@builder.io/qwik';\nimport { useDocumentHead, useLocation } from '@builder.io/qwik-city';\n\nex"
  },
  {
    "path": "e2e/adapters-e2e/src/entry.dev.tsx",
    "chars": 588,
    "preview": "/*\n * WHAT IS THIS FILE?\n *\n * Development entry point using only client-side modules:\n * - Do not use this mode in prod"
  },
  {
    "path": "e2e/adapters-e2e/src/entry.express.tsx",
    "chars": 2079,
    "preview": "/*\n * WHAT IS THIS FILE?\n *\n * It's the entry point for the Express HTTP server when building for production.\n *\n * Lear"
  },
  {
    "path": "e2e/adapters-e2e/src/entry.preview.tsx",
    "chars": 648,
    "preview": "/*\n * WHAT IS THIS FILE?\n *\n * It's the bundle entry point for `npm run preview`.\n * That is, serving your app built in "
  },
  {
    "path": "e2e/adapters-e2e/src/entry.ssr.tsx",
    "chars": 908,
    "preview": "/**\n * WHAT IS THIS FILE?\n *\n * SSR entry point, in all cases the application is rendered outside the browser, this entr"
  },
  {
    "path": "e2e/adapters-e2e/src/root.tsx",
    "chars": 778,
    "preview": "import { component$ } from '@builder.io/qwik';\nimport { QwikCityProvider, RouterOutlet, ServiceWorkerRegister } from '@b"
  },
  {
    "path": "e2e/adapters-e2e/src/routes/index.tsx",
    "chars": 576,
    "preview": "import { component$ } from '@builder.io/qwik';\nimport { type DocumentHead } from '@builder.io/qwik-city';\nimport ClickMe"
  },
  {
    "path": "e2e/adapters-e2e/src/routes/layout.tsx",
    "chars": 111,
    "preview": "import { component$, Slot } from '@builder.io/qwik';\n\nexport default component$(() => {\n  return <Slot />;\n});\n"
  },
  {
    "path": "e2e/adapters-e2e/src/routes/profile/index.tsx",
    "chars": 193,
    "preview": "import { component$ } from '@builder.io/qwik';\n\nexport default component$(() => {\n  return (\n    <>\n      <a href=\"/\">go"
  },
  {
    "path": "e2e/adapters-e2e/src/routes/service-worker.ts",
    "chars": 631,
    "preview": "/*\n * WHAT IS THIS FILE?\n *\n * The service-worker.ts file is used to have state of the art prefetching.\n * https://qwik."
  },
  {
    "path": "e2e/adapters-e2e/tests/express.spec.ts",
    "chars": 866,
    "preview": "import { expect, test } from '@playwright/test';\n\ntest.describe('Verifying Express Adapter', () => {\n  test('should igno"
  },
  {
    "path": "e2e/adapters-e2e/tsconfig.json",
    "chars": 626,
    "preview": "{\n  \"compilerOptions\": {\n    \"baseUrl\": \".\",\n    \"allowJs\": true,\n    \"target\": \"ES2020\",\n    \"module\": \"ES2022\",\n    \"l"
  },
  {
    "path": "e2e/adapters-e2e/vite.config.ts",
    "chars": 3953,
    "preview": "/**\n * This is the base config for vite. When building, the adapter config is used which loads this file\n * and extends "
  },
  {
    "path": "e2e/docs-e2e/.gitignore",
    "chars": 97,
    "preview": "\n# Playwright\nnode_modules/\n/test-results/\n/playwright-report/\n/blob-report/\n/playwright/.cache/\n"
  },
  {
    "path": "e2e/docs-e2e/package.json",
    "chars": 461,
    "preview": "{\n  \"name\": \"docs-e2e\",\n  \"description\": \"\",\n  \"private\": true,\n  \"author\": \"\",\n  \"devDependencies\": {\n    \"@playwright/"
  },
  {
    "path": "e2e/docs-e2e/playwright.config.ts",
    "chars": 2407,
    "preview": "import { defineConfig, devices } from '@playwright/test';\n\n/** Read environment variables from file. https://github.com/"
  },
  {
    "path": "e2e/docs-e2e/tests/Docs/advanced-pages-load.spec.ts",
    "chars": 3744,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest('Advanced Dollar Function page loads', async ({ page }) => {\n  aw"
  },
  {
    "path": "e2e/docs-e2e/tests/Docs/community-pages.load.spec.ts",
    "chars": 613,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest('Community Projects page loads', async ({ page }) => {\n  await pa"
  },
  {
    "path": "e2e/docs-e2e/tests/Docs/concepts-pages-laod.spec.ts",
    "chars": 829,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest('Concepts Think Qwik page loads', async ({ page }) => {\n  await p"
  },
  {
    "path": "e2e/docs-e2e/tests/Docs/cookbook-pages-load.spec.ts",
    "chars": 3022,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest('Cookbook Overview page loads', async ({ page }) => {\n  await pag"
  },
  {
    "path": "e2e/docs-e2e/tests/Docs/deployments-pages-load.spec.ts",
    "chars": 3161,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest('Deployments Overview page loads', async ({ page }) => {\n  await "
  },
  {
    "path": "e2e/docs-e2e/tests/Docs/docs-components-pages-load.spec.ts",
    "chars": 1600,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest('Components Overview page loads', async ({ page }) => {\n  await p"
  },
  {
    "path": "e2e/docs-e2e/tests/Docs/guides-pages-load.spec.ts",
    "chars": 1711,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest('Guides Qwik in a nutshell page loads', async ({ page }) => {\n  a"
  },
  {
    "path": "e2e/docs-e2e/tests/Docs/integrations-pages-load.spec.ts",
    "chars": 5793,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest('Integrations Overview page loads', async ({ page }) => {\n  await"
  },
  {
    "path": "e2e/docs-e2e/tests/Docs/navBarOnMobile.spec.ts",
    "chars": 1147,
    "preview": "import { test, expect, devices } from '@playwright/test';\n\ntest.use({\n  ...devices['iPhone 13'],\n});\n\ntest('navbar on mo"
  },
  {
    "path": "e2e/docs-e2e/tests/Docs/pages-load-test.spec.ts",
    "chars": 6694,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest('home page loads', async ({ page }) => {\n  await page.goto('/');\n"
  },
  {
    "path": "e2e/docs-e2e/tests/Docs/qwik-city-pages-load.spec.ts",
    "chars": 2627,
    "preview": "// todo V2: rename file to qwik-router-pages-load.spec.ts\n// todo V2: replace all instances of Qwik City with Qwik Route"
  },
  {
    "path": "e2e/docs-e2e/tests/Docs/qwik-labs-pages-load.spec.ts",
    "chars": 637,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest('Qwik Labs Overview page loads', async ({ page }) => {\n  await pa"
  },
  {
    "path": "e2e/docs-e2e/tests/Docs/reference-pages-load.spec.ts",
    "chars": 431,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest('API Reference page loads', async ({ page }) => {\n  await page.go"
  },
  {
    "path": "e2e/docs-e2e/tests/Docs/searchBar.spec.ts",
    "chars": 1347,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest('search bar with click results', async ({ page }) => {\n  await pa"
  },
  {
    "path": "e2e/docs-e2e/tests/Ecosystem/ecosystem-pages-load.spec.ts",
    "chars": 424,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest('Ecosystem page loads', async ({ page }) => {\n  await page.goto('"
  },
  {
    "path": "e2e/docs-e2e/tests/Sandbox/autoComplete.spec.ts",
    "chars": 5716,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest.describe('Sandbox Auto-complete Example', () => {\n  test.beforeEa"
  },
  {
    "path": "e2e/docs-e2e/tests/Sandbox/clockVisible.spec.ts",
    "chars": 6735,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest.describe('Sandbox Clock Example', () => {\n  test.beforeEach(async"
  },
  {
    "path": "e2e/docs-e2e/tests/Sandbox/counter.spec.ts",
    "chars": 6433,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest.describe('Sandbox Counter Example', () => {\n  test.beforeEach(asy"
  },
  {
    "path": "e2e/docs-e2e/tests/Sandbox/partial.spec.ts",
    "chars": 6578,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest.describe('Sandbox Partials HackerNews Example', () => {\n  test.be"
  },
  {
    "path": "e2e/docs-e2e/tests/Sandbox/routing.spec.ts",
    "chars": 2501,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest.describe('Sandbox Routing ', () => {\n  test.beforeEach(async ({ p"
  },
  {
    "path": "e2e/docs-e2e/tests/Sandbox/sandbox.spec.ts",
    "chars": 12792,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest.describe('Sandbox Hello World Example', () => {\n  test.beforeEach"
  },
  {
    "path": "e2e/docs-e2e/tests/Sandbox/usetask.spec.ts",
    "chars": 7686,
    "preview": "import { test, expect } from '@playwright/test';\n\ntest.describe('Sandbox useTask', () => {\n  test.beforeEach(async ({ pa"
  },
  {
    "path": "e2e/qwik-cli-e2e/README.md",
    "chars": 3507,
    "preview": "# CLI E2E tests for the Qwik Framework\n\nThis package provides isolated E2E tests by generating a new application with lo"
  },
  {
    "path": "e2e/qwik-cli-e2e/package.json",
    "chars": 241,
    "preview": "{\n  \"name\": \"qwik-cli-e2e\",\n  \"version\": \"0.0.0\",\n  \"dependencies\": {\n    \"kleur\": \"4.1.5\"\n  },\n  \"private\": true,\n  \"sc"
  },
  {
    "path": "e2e/qwik-cli-e2e/tests/serve.spec.ts",
    "chars": 4270,
    "preview": "/* eslint-disable no-console */\nimport { existsSync, readFileSync, writeFileSync } from 'fs';\nimport { join } from 'path"
  },
  {
    "path": "e2e/qwik-cli-e2e/tsconfig.json",
    "chars": 125,
    "preview": "{\n  \"compilerOptions\": {\n    \"types\": [\"vitest/globals\"],\n    \"esModuleInterop\": true\n  },\n  \"include\": [\"utils\", \"tests"
  },
  {
    "path": "e2e/qwik-cli-e2e/utils/index.ts",
    "chars": 6508,
    "preview": "import { ChildProcess, exec, execSync } from 'child_process';\nimport { existsSync, mkdirSync, readFileSync, rmSync, writ"
  },
  {
    "path": "e2e/qwik-cli-e2e/utils/setup.ts",
    "chars": 1365,
    "preview": "import { execSync } from 'child_process';\nimport { join } from 'path';\nimport { workspaceRoot } from '.';\nimport { exist"
  },
  {
    "path": "e2e/qwik-cli-e2e/vite.config.ts",
    "chars": 1239,
    "preview": "import { existsSync, mkdirSync } from 'fs';\nimport { resolve } from 'path';\nimport tsconfigPaths from 'vite-tsconfig-pat"
  },
  {
    "path": "e2e/qwik-react-e2e/.gitignore",
    "chars": 38,
    "preview": "playwright-report\ndist\nlogs\nserver\ntmp"
  },
  {
    "path": "e2e/qwik-react-e2e/adapters/express/vite.config.ts",
    "chars": 442,
    "preview": "import { nodeServerAdapter } from '@builder.io/qwik-city/adapters/node-server/vite';\nimport { extendConfig } from '@buil"
  },
  {
    "path": "e2e/qwik-react-e2e/package.json",
    "chars": 1209,
    "preview": "{\n  \"name\": \"qwik-react-test-app\",\n  \"description\": \"Qwik react test app\",\n  \"engines\": {\n    \"node\": \"^18.17.0 || ^20.3"
  },
  {
    "path": "e2e/qwik-react-e2e/playwright.config.ts",
    "chars": 1129,
    "preview": "import { defineConfig, devices } from '@playwright/test';\n\n/** See https://playwright.dev/docs/test-configuration. */\nex"
  },
  {
    "path": "e2e/qwik-react-e2e/src/components/counter/index.tsx",
    "chars": 651,
    "preview": "/** @jsxImportSource react */\nimport { useEffect, useState } from 'react';\nimport { qwikify$ } from '@builder.io/qwik-re"
  },
  {
    "path": "e2e/qwik-react-e2e/src/components/router-head/router-head.tsx",
    "chars": 582,
    "preview": "import { component$ } from '@builder.io/qwik';\nimport { useDocumentHead, useLocation } from '@builder.io/qwik-city';\n\nex"
  },
  {
    "path": "e2e/qwik-react-e2e/src/entry.dev.tsx",
    "chars": 588,
    "preview": "/*\n * WHAT IS THIS FILE?\n *\n * Development entry point using only client-side modules:\n * - Do not use this mode in prod"
  },
  {
    "path": "e2e/qwik-react-e2e/src/entry.express.tsx",
    "chars": 2079,
    "preview": "/*\n * WHAT IS THIS FILE?\n *\n * It's the entry point for the Express HTTP server when building for production.\n *\n * Lear"
  },
  {
    "path": "e2e/qwik-react-e2e/src/entry.preview.tsx",
    "chars": 648,
    "preview": "/*\n * WHAT IS THIS FILE?\n *\n * It's the bundle entry point for `npm run preview`.\n * That is, serving your app built in "
  },
  {
    "path": "e2e/qwik-react-e2e/src/entry.ssr.tsx",
    "chars": 908,
    "preview": "/**\n * WHAT IS THIS FILE?\n *\n * SSR entry point, in all cases the application is rendered outside the browser, this entr"
  },
  {
    "path": "e2e/qwik-react-e2e/src/root.tsx",
    "chars": 778,
    "preview": "import { component$ } from '@builder.io/qwik';\nimport { QwikCityProvider, RouterOutlet, ServiceWorkerRegister } from '@b"
  },
  {
    "path": "e2e/qwik-react-e2e/src/routes/index.tsx",
    "chars": 335,
    "preview": "import { component$ } from '@builder.io/qwik';\nimport { type DocumentHead } from '@builder.io/qwik-city';\n\nexport defaul"
  },
  {
    "path": "e2e/qwik-react-e2e/src/routes/layout.tsx",
    "chars": 379,
    "preview": "import { component$, Slot } from '@builder.io/qwik';\nimport { Link } from '@builder.io/qwik-city';\n\nexport default compo"
  },
  {
    "path": "e2e/qwik-react-e2e/src/routes/react/index.tsx",
    "chars": 540,
    "preview": "/* eslint-disable no-console */\nimport { component$ } from '@builder.io/qwik';\nimport { type DocumentHead } from '@build"
  },
  {
    "path": "e2e/qwik-react-e2e/tests/express.spec.ts",
    "chars": 2432,
    "preview": "import { expect, test } from '@playwright/test';\n\ntest.describe('[SSR]', () => {\n  test('should NOT call unmount callbac"
  },
  {
    "path": "e2e/qwik-react-e2e/tsconfig.json",
    "chars": 626,
    "preview": "{\n  \"compilerOptions\": {\n    \"baseUrl\": \".\",\n    \"allowJs\": true,\n    \"target\": \"ES2020\",\n    \"module\": \"ES2022\",\n    \"l"
  },
  {
    "path": "e2e/qwik-react-e2e/vite.config.ts",
    "chars": 4023,
    "preview": "/**\n * This is the base config for vite. When building, the adapter config is used which loads this file\n * and extends "
  },
  {
    "path": "eslint.config.js",
    "chars": 3269,
    "preview": "import globals from 'globals';\nimport js from '@eslint/js';\nimport tseslint from 'typescript-eslint';\nimport noOnlyTests"
  },
  {
    "path": "flake.nix",
    "chars": 2469,
    "preview": "# This is a Nix configuration file. It is used to define the environment\n# for the project. It is a declarative way to d"
  },
  {
    "path": "package.json",
    "chars": 12275,
    "preview": "{\n  \"name\": \"qwik-monorepo\",\n  \"version\": \"0.0.0-read-qwik-package-json\",\n  \"comments\": {\n    \"01\": \"devDependencies inc"
  },
  {
    "path": "packages/create-qwik/.npmignore",
    "chars": 4,
    "preview": "src\n"
  },
  {
    "path": "packages/create-qwik/CHANGELOG.md",
    "chars": 4009,
    "preview": "# create-qwik\n\n## 1.19.0\n\n### Patch Changes\n\n- ✨ cloudflare workers deployment adapter (by [@LazyClicks](https://github."
  },
  {
    "path": "packages/create-qwik/README.md",
    "chars": 679,
    "preview": "# Create Qwik ⚡️\n\n## Interactive mode\n\n```\nnpm create qwik@latest\n```\n\n## Command mode\n\n```\nnpm create qwik@latest <star"
  },
  {
    "path": "packages/create-qwik/create-qwik.cjs",
    "chars": 89,
    "preview": "#!/usr/bin/env node\nconst createQwik = require('./dist/index.cjs');\ncreateQwik.runCli();\n"
  },
  {
    "path": "packages/create-qwik/index.ts",
    "chars": 1627,
    "preview": "import { runCreateCli } from './src/run-create-cli';\nimport { runCreateInteractiveCli } from './src/run-create-interacti"
  },
  {
    "path": "packages/create-qwik/package.json",
    "chars": 997,
    "preview": "{\n  \"name\": \"create-qwik\",\n  \"description\": \"Interactive CLI for create Qwik projects and adding features.\",\n  \"version\""
  },
  {
    "path": "packages/create-qwik/src/create-app-facade.ts",
    "chars": 578,
    "preview": "import type { CreateAppOptions, CreateAppResult } from '../../qwik/src/cli/types';\n\nimport { createApp } from './create-"
  },
  {
    "path": "packages/create-qwik/src/create-app.ts",
    "chars": 2468,
    "preview": "import type { CreateAppResult, IntegrationData } from '../../qwik/src/cli/types';\nimport fs from 'node:fs';\nimport { isA"
  },
  {
    "path": "packages/create-qwik/src/helpers/clearDir.ts",
    "chars": 285,
    "preview": "import fs from 'node:fs';\nimport { join } from 'node:path';\n\nexport const clearDir = async (dir: string) => {\n  const fi"
  },
  {
    "path": "packages/create-qwik/src/helpers/installDepsCli.ts",
    "chars": 461,
    "preview": "import type { spinner } from '@clack/prompts';\n\ntype Sinner = ReturnType<typeof spinner>;\n\ntype Params = {\n  spinner: Si"
  },
  {
    "path": "packages/create-qwik/src/helpers/jokes.json",
    "chars": 4306,
    "preview": "[\n  [\"What's the best thing about a Boolean?\", \"Even if you're wrong, you're only off by a bit.\"],\n  [\"Why did the devel"
  },
  {
    "path": "packages/create-qwik/src/helpers/jokes.ts",
    "chars": 153,
    "preview": "import jokes from './jokes.json';\n\nexport function getRandomJoke() {\n  const index = Math.floor(Math.random() * jokes.le"
  },
  {
    "path": "packages/create-qwik/src/helpers/logAppCreated.ts",
    "chars": 1703,
    "preview": "import { bgMagenta, bold, cyan, magenta } from 'kleur/colors';\n\nimport type { CreateAppResult } from '../../../qwik/src/"
  },
  {
    "path": "packages/create-qwik/src/helpers/resolveRelativeDir.ts",
    "chars": 278,
    "preview": "import { resolve } from 'path';\nimport os from 'node:os';\n\nexport function resolveRelativeDir(dir: string) {\n  // check "
  },
  {
    "path": "packages/create-qwik/src/helpers/templateManager.ts",
    "chars": 2020,
    "preview": "import type { IntegrationData, IntegrationType } from 'packages/qwik/src/cli/types';\n\nimport { loadIntegrations } from '"
  },
  {
    "path": "packages/create-qwik/src/run-create-cli.ts",
    "chars": 3534,
    "preview": "import { cancel, intro, log, spinner as spinnerPrompt } from '@clack/prompts';\n\nimport type { CreateAppResult } from 'pa"
  },
  {
    "path": "packages/create-qwik/src/run-create-interactive-cli.ts",
    "chars": 5680,
    "preview": "import { backgroundInstallDeps, installDeps } from '../../qwik/src/cli/utils/install-deps';\nimport { bgBlue, gray, magen"
  },
  {
    "path": "packages/create-qwik/src/types.ts",
    "chars": 104,
    "preview": "export type Args = {\n  outDir: string;\n  template: string;\n  installDeps: boolean;\n  force: boolean;\n};\n"
  },
  {
    "path": "packages/docs/.gitignore",
    "chars": 489,
    "preview": "# Build\nbuild\ndist\nserver\nfunctions/**/*.js\n# This is used in dev mode because service\n# workers don't support imports\np"
  },
  {
    "path": "packages/docs/.node-version",
    "chars": 3,
    "preview": "18\n"
  },
  {
    "path": "packages/docs/.npmrc",
    "chars": 18,
    "preview": "package-lock=false"
  },
  {
    "path": "packages/docs/.prettierignore",
    "chars": 245,
    "preview": "**/*.log\n**/.DS_Store\n*.\n.vscode/settings.json\n.history\n.yarn\ndist\ndist-dev\netc\nexternal\nnode_modules\ntemp\ntsc-out\ntsdoc"
  },
  {
    "path": "packages/docs/README.md",
    "chars": 4540,
    "preview": "# Qwik Docs Site ⚡️\n\n## Development Builds\n\n### Client only\n\nDuring development, the index.html is not a result of serve"
  },
  {
    "path": "packages/docs/adapters/cloudflare-pages/vite.config.mts",
    "chars": 756,
    "preview": "import { cloudflarePagesAdapter } from '@builder.io/qwik-city/adapters/cloudflare-pages/vite';\nimport { extendConfig } f"
  },
  {
    "path": "packages/docs/algolia.json",
    "chars": 355,
    "preview": "{\n  \"index_name\": \"qwik\",\n  \"sitemap_urls\": [\"http://qwik.dev/sitemap.xml\"],\n  \"selectors\": {\n    \"lvl0\": {\n      \"selec"
  },
  {
    "path": "packages/docs/check-qwik-build.ts",
    "chars": 1581,
    "preview": "// verify that ../qwik/dist/core.d.ts exists or run `pnpm run build.core` in the root directory\n// Also make sure that t"
  },
  {
    "path": "packages/docs/codesandbox.sync.ts",
    "chars": 3091,
    "preview": "import { readdirSync, readFileSync, writeFileSync } from 'node:fs';\nimport { join } from 'node:path';\n\nfunction scanFile"
  },
  {
    "path": "packages/docs/contributors.ts",
    "chars": 3649,
    "preview": "import { fetch } from 'undici';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport url from 'node:url';\nimpo"
  },
  {
    "path": "packages/docs/global.d.ts",
    "chars": 213,
    "preview": "// handled by raw-source plugin in vite.repl-apps.ts\ndeclare module '*?raw-source' {\n  const url: string;\n  export defau"
  },
  {
    "path": "packages/docs/package.json",
    "chars": 3132,
    "preview": "{\n  \"name\": \"qwik-docs\",\n  \"description\": \"Qwik Docs Site\",\n  \"version\": \"0.0.1\",\n  \"author\": \"Builder.io Team\",\n  \"bugs"
  },
  {
    "path": "packages/docs/public/_headers",
    "chars": 519,
    "preview": "/*\n  Cache-Control: public, max-age=3600, s-maxage=3600;\n  Cross-Origin-Opener-Policy: same-origin\n  Cross-Origin-Embedd"
  },
  {
    "path": "packages/docs/public/_redirects",
    "chars": 3862,
    "preview": "# https://developers.cloudflare.com/pages/configuration/redirects/\n\n# Keep in sync with `src/routes/plugin@redirects.ts`"
  },
  {
    "path": "packages/docs/public/_routes.json",
    "chars": 469,
    "preview": "{\n  \"version\": 1,\n  \"include\": [\"/*\"],\n  \"exclude\": [\n    \"/chat\",\n    \"/examples\",\n    \"/guide\",\n    \"/tutorial\",\n    \""
  },
  {
    "path": "packages/docs/public/builder/high.js",
    "chars": 3953,
    "preview": "import{useLexicalScope}from\"./qwik-0.100.0.js\";export const Component856B004403F841C789CF61F2A180C93F_onClick_0=(event)="
  },
  {
    "path": "packages/docs/public/builder/med.js",
    "chars": 24311,
    "preview": "import{componentQrl,h,qrl,useStore,useStylesQrl}from\"./qwik-0.100.0.js\";export const Component856B004403F841C789CF61F2A1"
  },
  {
    "path": "packages/docs/public/builder/qwik-0.100.0.js",
    "chars": 81134,
    "preview": "/**\n * @license\n * @builder.io/qwik 0.100.0\n * Copyright Builder.io, Inc. All Rights Reserved.\n * Use of this source cod"
  },
  {
    "path": "packages/docs/public/docs/qwikcity/README.md",
    "chars": 125,
    "preview": "The images in this folder were created: https://docs.google.com/presentation/d/1HjlWpOpnPAmjdxEV7F2uttjvkWf1FOLvXaWMcxGL"
  },
  {
    "path": "packages/docs/public/robots.txt",
    "chars": 78,
    "preview": "User-agent: *\nDisallow: /demo/\nAllow: /\nSitemap: https://qwik.dev/sitemap.xml\n"
  },
  {
    "path": "packages/docs/scripts/pages.json",
    "chars": 2849,
    "preview": "[\n  { \"href\": \"https://abdhashem.com\", \"tags\": \"portfolio\" },\n  { \"href\": \"https://abn.ooo/\" },\n  { \"href\": \"https://ale"
  },
  {
    "path": "packages/docs/scripts/showcase.ts",
    "chars": 6066,
    "preview": "import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';\nimport { chromium, devices, type Page } from 'p"
  },
  {
    "path": "packages/docs/src/components/code-block/code-block.css",
    "chars": 3590,
    "preview": "/* === PrismJS Theme === */\n:root {\n  --p-background: #ffffff;\n  --p-text: #2e3440;\n  --p-comment: #6a737d;\n  --p-keywor"
  },
  {
    "path": "packages/docs/src/components/code-block/code-block.tsx",
    "chars": 3689,
    "preview": "import {\n  component$,\n  useSignal,\n  useStyles$,\n  useTask$,\n  useVisibleTask$,\n  type QRL,\n  type Signal,\n} from '@bui"
  },
  {
    "path": "packages/docs/src/components/code-block/prismjs.ts",
    "chars": 390,
    "preview": "import prismjs from 'prismjs';\nimport 'prismjs/components/prism-jsx';\nimport 'prismjs/components/prism-tsx';\n\nexport con"
  },
  {
    "path": "packages/docs/src/components/code-sandbox/index.css",
    "chars": 1202,
    "preview": ".browser iframe {\n  margin: 0;\n  padding: 8px;\n  border: none;\n}\n\n:global(:root[data-theme='dark']) .browser iframe {\n  "
  },
  {
    "path": "packages/docs/src/components/code-sandbox/index.tsx",
    "chars": 3394,
    "preview": "import { component$, useContext, useStylesScoped$, Slot, useSignal } from '@builder.io/qwik';\nimport CSS from './index.c"
  },
  {
    "path": "packages/docs/src/components/content-nav/content-nav.css",
    "chars": 1012,
    "preview": ".content-nav .prev,\n.content-nav .next {\n  position: relative;\n  background-color: var(--content-nav-button-bg-color);\n "
  },
  {
    "path": "packages/docs/src/components/content-nav/content-nav.tsx",
    "chars": 1923,
    "preview": "import { type ContentMenu, useContent, useLocation, Link } from '@builder.io/qwik-city';\nimport { component$, useSignal,"
  },
  {
    "path": "packages/docs/src/components/contributors/contributors.css",
    "chars": 344,
    "preview": ".wrapper {\n  margin: 50px 0;\n}\n\n.list {\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: le"
  },
  {
    "path": "packages/docs/src/components/contributors/index.tsx",
    "chars": 1217,
    "preview": "import { component$, useId, useStylesScoped$ } from '@builder.io/qwik';\nimport styles from './contributors.css?inline';\n"
  },
  {
    "path": "packages/docs/src/components/copy-code/copy-code-block.tsx",
    "chars": 1604,
    "preview": "import { component$, useSignal, useStyles$ } from '@builder.io/qwik';\nimport { CopyCode as CopyCodeIcon } from '../svgs/"
  },
  {
    "path": "packages/docs/src/components/copy-code/copy-code.css",
    "chars": 137,
    "preview": ".animate {\n  opacity: 1;\n  animation: check-in 1 1s;\n}\n\n@keyframes check-in {\n  0% {\n    opacity: 0;\n  }\n\n  100% {\n    o"
  },
  {
    "path": "packages/docs/src/components/docsearch/README.md",
    "chars": 190,
    "preview": "# Docsearch in qwik\n\nAll the credits goes to Algolia's [docsearch-react](https://github.com/algolia/docsearch/tree/main/"
  },
  {
    "path": "packages/docs/src/components/docsearch/algolia-logo.tsx",
    "chars": 6314,
    "preview": "import { component$ } from '@builder.io/qwik';\n\ntype AlgoliaLogoTranslations = Partial<{\n  searchByText: string;\n}>;\n\nex"
  },
  {
    "path": "packages/docs/src/components/docsearch/constants.ts",
    "chars": 35,
    "preview": "export const MAX_QUERY_SIZE = 100;\n"
  },
  {
    "path": "packages/docs/src/components/docsearch/context.ts",
    "chars": 117,
    "preview": "import { createContextId } from '@builder.io/qwik';\n\nexport const SearchContext = createContextId<any>('docsearch');\n"
  },
  {
    "path": "packages/docs/src/components/docsearch/doc-search-button.tsx",
    "chars": 1068,
    "preview": "import { component$ } from '@builder.io/qwik';\nimport { SearchIcon } from './icons/SearchIcon';\n\nexport function isApple"
  },
  {
    "path": "packages/docs/src/components/docsearch/doc-search-modal.tsx",
    "chars": 5905,
    "preview": "import {\n  component$,\n  useSignal,\n  noSerialize,\n  useContextProvider,\n  useTask$,\n  type Signal,\n} from '@builder.io/"
  },
  {
    "path": "packages/docs/src/components/docsearch/doc-search.css",
    "chars": 16120,
    "preview": "/*! @docsearch/css 3.9.0 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */\n:root {\n  -"
  },
  {
    "path": "packages/docs/src/components/docsearch/doc-search.tsx",
    "chars": 4041,
    "preview": "import type { SearchClient } from 'algoliasearch/lite';\nimport {\n  component$,\n  useStore,\n  useStyles$,\n  useSignal,\n  "
  },
  {
    "path": "packages/docs/src/components/docsearch/error-screen.tsx",
    "chars": 529,
    "preview": "import { component$ } from '@builder.io/qwik';\nimport { ErrorIcon } from './icons/ErrorIcon';\n\nexport type ErrorScreenTr"
  },
  {
    "path": "packages/docs/src/components/docsearch/handleSearch.ts",
    "chars": 4700,
    "preview": "// @ts-ignore\nimport algoliasearch from 'algoliasearch/dist/algoliasearch-lite.esm.browser';\nimport type { SearchClient "
  },
  {
    "path": "packages/docs/src/components/docsearch/hit.tsx",
    "chars": 379,
    "preview": "import { component$, Slot } from '@builder.io/qwik';\nimport { Link } from '@builder.io/qwik-city';\nimport type { Interna"
  },
  {
    "path": "packages/docs/src/components/docsearch/icons/ControlKeyIcon.tsx",
    "chars": 629,
    "preview": "import { component$ } from '@builder.io/qwik';\n\nexport const ControlKeyIcon = component$(() => {\n  return (\n    <svg wid"
  },
  {
    "path": "packages/docs/src/components/docsearch/icons/ErrorIcon.tsx",
    "chars": 521,
    "preview": "import { component$ } from '@builder.io/qwik';\n\nexport const ErrorIcon = component$(() => {\n  return (\n    <svg\n      wi"
  },
  {
    "path": "packages/docs/src/components/docsearch/icons/LoadingIcon.tsx",
    "chars": 623,
    "preview": "export const LoadingIcon = () => {\n  return (\n    <svg viewBox=\"0 0 38 38\" stroke=\"currentColor\" stroke-opacity=\".5\">\n  "
  },
  {
    "path": "packages/docs/src/components/docsearch/icons/NoResultsIcon.tsx",
    "chars": 461,
    "preview": "import { component$ } from '@builder.io/qwik';\n\nexport const NoResultsIcon = component$(() => {\n  return (\n    <svg\n    "
  },
  {
    "path": "packages/docs/src/components/docsearch/icons/RecentIcon.tsx",
    "chars": 429,
    "preview": "import { component$ } from '@builder.io/qwik';\n\nexport const RecentIcon = component$(() => {\n  return (\n    <svg width=\""
  },
  {
    "path": "packages/docs/src/components/docsearch/icons/ResetIcon.tsx",
    "chars": 368,
    "preview": "export const ResetIcon = () => {\n  return (\n    <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\">\n      <path\n        d=\""
  },
  {
    "path": "packages/docs/src/components/docsearch/icons/SearchIcon.tsx",
    "chars": 518,
    "preview": "export const SearchIcon = () => {\n  return (\n    <svg width=\"24\" height=\"24\" class=\"DocSearch-Search-Icon\" viewBox=\"0 0 "
  },
  {
    "path": "packages/docs/src/components/docsearch/icons/SelectIcon.tsx",
    "chars": 459,
    "preview": "import { component$ } from '@builder.io/qwik';\n\nexport const SelectIcon = component$(() => {\n  return (\n    <svg class=\""
  },
  {
    "path": "packages/docs/src/components/docsearch/icons/SourceIcon.tsx",
    "chars": 1283,
    "preview": "import { component$ } from '@builder.io/qwik';\n\nexport const LvlIcon = () => {\n  return (\n    <svg width=\"20\" height=\"20"
  },
  {
    "path": "packages/docs/src/components/docsearch/icons/StarIcon.tsx",
    "chars": 379,
    "preview": "import { component$ } from '@builder.io/qwik';\n\nexport const StarIcon = component$(() => {\n  return (\n    <svg width=\"20"
  },
  {
    "path": "packages/docs/src/components/docsearch/no-results-screen.tsx",
    "chars": 782,
    "preview": "import { component$ } from '@builder.io/qwik';\nimport type { DocSearchState } from './doc-search';\nimport { NoResultsIco"
  },
  {
    "path": "packages/docs/src/components/docsearch/result.tsx",
    "chars": 5359,
    "preview": "import { Slot, component$, useContext, useSignal, useStore, useTask$ } from '@builder.io/qwik';\n// import { QwikGPT } fr"
  },
  {
    "path": "packages/docs/src/components/docsearch/results-screen.tsx",
    "chars": 2444,
    "preview": "import { component$ } from '@builder.io/qwik';\nimport { Result } from './result';\nimport { removeHighlightTags } from '."
  },
  {
    "path": "packages/docs/src/components/docsearch/screen-state.tsx",
    "chars": 1570,
    "preview": "import { component$, type Signal } from '@builder.io/qwik';\nimport type { DocSearchState } from './doc-search';\nimport t"
  }
]

// ... and 2256 more files (download for full content)

About this extraction

This page contains the full source code of the QwikDev/qwik GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2456 files (8.1 MB), approximately 2.3M tokens, and a symbol index with 2990 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!