@qwik.dev/core 2.0.0-beta.2 → 2.0.0-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/bindings/qwik.darwin-arm64.node +0 -0
  2. package/bindings/qwik.linux-x64-gnu.node +0 -0
  3. package/bindings/qwik.win32-x64-msvc.node +0 -0
  4. package/bindings/qwik_wasm_bg.wasm +0 -0
  5. package/dist/backpatch/index.d.ts +2 -0
  6. package/dist/backpatch/index.mjs +5 -0
  7. package/dist/backpatch/package.json +8 -0
  8. package/dist/backpatch-executor.debug.js +39 -0
  9. package/dist/backpatch-executor.js +1 -0
  10. package/dist/build/package.json +1 -1
  11. package/dist/cli.mjs +5633 -0
  12. package/dist/core-internal.d.ts +673 -396
  13. package/dist/core.min.mjs +2 -1
  14. package/dist/core.mjs +10168 -8294
  15. package/dist/core.mjs.map +1 -1
  16. package/dist/core.prod.mjs +5745 -4592
  17. package/dist/insights/vite/index.mjs +10 -10
  18. package/dist/loader/index.mjs +2 -2
  19. package/dist/loader/package.json +1 -1
  20. package/dist/optimizer.d.ts +16 -38
  21. package/dist/optimizer.mjs +2608 -3719
  22. package/dist/preloader.mjs +8 -11
  23. package/dist/qwikloader.debug.js +152 -132
  24. package/dist/qwikloader.js +1 -1
  25. package/dist/server.d.ts +38 -15
  26. package/dist/server.mjs +1209 -927
  27. package/dist/starters/adapters/aws-lambda/adapters/aws-lambda/{vite.config.mts → vite.config.ts} +2 -2
  28. package/dist/starters/adapters/aws-lambda/package.json +3 -2
  29. package/dist/starters/adapters/aws-lambda/src/entry_aws-lambda.tsx +2 -6
  30. package/dist/starters/adapters/azure-swa/adapters/azure-swa/{vite.config.mts → vite.config.ts} +2 -2
  31. package/dist/starters/adapters/azure-swa/package.json +3 -2
  32. package/dist/starters/adapters/azure-swa/src/entry.azure-swa.tsx +2 -3
  33. package/dist/starters/adapters/bun/adapters/bun/{vite.config.mts → vite.config.ts} +3 -3
  34. package/dist/starters/adapters/bun/package.json +3 -2
  35. package/dist/starters/adapters/bun/src/entry.bun.ts +0 -2
  36. package/dist/starters/adapters/cloud-run/adapters/cloud-run/{vite.config.mts → vite.config.ts} +2 -2
  37. package/dist/starters/adapters/cloud-run/package.json +3 -2
  38. package/dist/starters/adapters/cloud-run/src/entry.cloud-run.tsx +1 -3
  39. package/dist/starters/adapters/cloudflare-pages/adapters/cloudflare-pages/{vite.config.mts → vite.config.ts} +2 -2
  40. package/dist/starters/adapters/cloudflare-pages/package.json +3 -2
  41. package/dist/starters/adapters/cloudflare-pages/src/entry.cloudflare-pages.tsx +2 -3
  42. package/dist/starters/adapters/cloudflare-workers/README.md +52 -0
  43. package/dist/starters/adapters/cloudflare-workers/adapters/cloudflare-workers/vite.config.ts +15 -0
  44. package/dist/starters/adapters/cloudflare-workers/gitignore +3 -0
  45. package/dist/starters/adapters/cloudflare-workers/package.json +31 -0
  46. package/dist/starters/adapters/cloudflare-workers/public/.assetsignore +4 -0
  47. package/dist/starters/adapters/cloudflare-workers/public/_headers +11 -0
  48. package/dist/starters/adapters/cloudflare-workers/public/_redirects +1 -0
  49. package/dist/starters/adapters/cloudflare-workers/src/entry.cloudflare-pages.tsx +23 -0
  50. package/dist/starters/adapters/cloudflare-workers/worker-configuration.d.ts +5 -0
  51. package/dist/starters/adapters/cloudflare-workers/wrangler.jsonc +41 -0
  52. package/dist/starters/adapters/deno/adapters/deno/{vite.config.mts → vite.config.ts} +2 -2
  53. package/dist/starters/adapters/deno/package.json +3 -2
  54. package/dist/starters/adapters/deno/src/entry.deno.ts +0 -2
  55. package/dist/starters/adapters/express/adapters/express/{vite.config.mts → vite.config.ts} +2 -2
  56. package/dist/starters/adapters/express/package.json +4 -3
  57. package/dist/starters/adapters/express/src/entry.express.tsx +1 -3
  58. package/dist/starters/adapters/fastify/adapters/fastify/{vite.config.mts → vite.config.ts} +2 -2
  59. package/dist/starters/adapters/fastify/package.json +3 -2
  60. package/dist/starters/adapters/fastify/src/entry.fastify.tsx +1 -1
  61. package/dist/starters/adapters/fastify/src/plugins/fastify-qwik.ts +1 -2
  62. package/dist/starters/adapters/firebase/adapters/firebase/{vite.config.mts → vite.config.ts} +2 -2
  63. package/dist/starters/adapters/firebase/package.json +3 -2
  64. package/dist/starters/adapters/firebase/src/entry-firebase.tsx +2 -3
  65. package/dist/starters/adapters/netlify-edge/adapters/netlify-edge/{vite.config.mts → vite.config.ts} +2 -2
  66. package/dist/starters/adapters/netlify-edge/package.json +3 -2
  67. package/dist/starters/adapters/netlify-edge/src/entry.netlify-edge.tsx +2 -3
  68. package/dist/starters/adapters/node-server/adapters/node-server/{vite.config.mts → vite.config.ts} +2 -2
  69. package/dist/starters/adapters/node-server/package.json +3 -2
  70. package/dist/starters/adapters/node-server/src/entry.node-server.tsx +0 -2
  71. package/dist/starters/adapters/{static/adapters/static/vite.config.mts → ssg/adapters/ssg/vite.config.ts} +3 -3
  72. package/dist/starters/adapters/ssg/package.json +20 -0
  73. package/dist/starters/adapters/vercel-edge/README.md +2 -2
  74. package/dist/starters/adapters/vercel-edge/adapters/vercel-edge/{vite.config.mts → vite.config.ts} +2 -2
  75. package/dist/starters/adapters/vercel-edge/package.json +3 -2
  76. package/dist/starters/adapters/vercel-edge/src/entry.vercel-edge.tsx +2 -3
  77. package/dist/starters/adapters/vercel-edge/vercel.json +1 -1
  78. package/dist/starters/features/auth/package.json +1 -1
  79. package/dist/starters/features/compiled-i18n/package.json +37 -0
  80. package/dist/starters/features/compiled-i18n/src/components/locale-selector/locale-selector.tsx +30 -0
  81. package/dist/starters/features/compiled-i18n/src/entry.ssr.tsx +31 -0
  82. package/dist/starters/features/compiled-i18n/src/routes/plugin@compiled-i18n.ts +28 -0
  83. package/dist/starters/features/csr/index.html +23 -0
  84. package/dist/starters/features/csr/package.json +29 -0
  85. package/dist/starters/features/csr/src/root.tsx +15 -0
  86. package/dist/starters/features/csr/vite.config.ts +13 -0
  87. package/dist/starters/features/cypress/src/actions/example.action.ts +5 -0
  88. package/dist/starters/features/cypress/src/components/example/example.cy.tsx +50 -8
  89. package/dist/starters/features/cypress/src/components/example/example.tsx +13 -3
  90. package/dist/starters/features/cypress/src/loaders/example.loader.ts +5 -0
  91. package/dist/starters/features/pandacss/package.json +1 -1
  92. package/dist/starters/features/playwright/playwright-report/index.html +953 -930
  93. package/dist/starters/features/postcss/postcss.config.js +1 -1
  94. package/dist/starters/features/storybook/.storybook/tsconfig.json +0 -1
  95. package/dist/starters/features/styled-vanilla-extract/package.json +2 -1
  96. package/dist/starters/features/tailwind/package.json +2 -2
  97. package/dist/starters/features/tailwind/prettier.config.js +10 -0
  98. package/dist/starters/features/tailwind-v3/package.json +1 -1
  99. package/dist/starters/features/tailwind-v3/prettier.config.js +10 -0
  100. package/dist/testing/index.d.ts +775 -6
  101. package/dist/testing/index.mjs +14298 -10837
  102. package/dist/testing/package.json +1 -1
  103. package/handlers.mjs +1 -1
  104. package/package.json +30 -55
  105. package/public.d.ts +3 -1
  106. package/{qwik-cli.cjs → qwik-cli.mjs} +1 -1
  107. package/server.d.ts +2 -0
  108. package/bindings/qwik.darwin-x64.node +0 -0
  109. package/bindings/qwik.wasm.cjs +0 -471
  110. package/dist/build/index.cjs +0 -35
  111. package/dist/build/index.cjs.map +0 -7
  112. package/dist/build/index.dev.cjs +0 -37
  113. package/dist/build/index.dev.cjs.map +0 -7
  114. package/dist/build/index.prod.cjs +0 -37
  115. package/dist/build/index.prod.cjs.map +0 -7
  116. package/dist/cli.cjs +0 -5545
  117. package/dist/core.cjs +0 -11754
  118. package/dist/core.cjs.map +0 -1
  119. package/dist/core.prod.cjs +0 -5647
  120. package/dist/insights/index.qwik.cjs +0 -1
  121. package/dist/insights/vite/index.cjs +0 -1
  122. package/dist/loader/index.cjs +0 -4
  123. package/dist/optimizer.cjs +0 -4020
  124. package/dist/preloader.cjs +0 -269
  125. package/dist/server.cjs +0 -3027
  126. package/dist/starters/adapters/static/package.json +0 -19
  127. package/dist/starters/features/localize/package.json +0 -37
  128. package/dist/starters/features/localize/src/entry.ssr.tsx +0 -30
  129. package/dist/starters/features/localize/src/locales/message.en.json +0 -8
  130. package/dist/starters/features/localize/src/locales/message.it.json +0 -8
  131. package/dist/starters/features/localize/src/routes/[locale]/i18n-utils.ts +0 -94
  132. package/dist/starters/features/localize/src/routes/[locale]/index.tsx +0 -52
  133. package/dist/starters/features/localize/src/routes/[locale]/layout.tsx +0 -12
  134. package/dist/starters/features/tailwind/.prettierrc.js +0 -3
  135. package/dist/testing/index.cjs +0 -33287
  136. /package/dist/starters/adapters/{static → ssg}/README.md +0 -0
@@ -1,7 +1,7 @@
1
1
  import { nodeServerAdapter } from "@qwik.dev/router/adapters/node-server/vite";
2
2
  import { extendConfig } from "@qwik.dev/router/vite";
3
3
  import { builtinModules } from "module";
4
- import baseConfig from "../../vite.config.mts";
4
+ import baseConfig from "../../vite.config.ts";
5
5
  export default extendConfig(baseConfig, () => {
6
6
  return {
7
7
  ssr: {
@@ -13,7 +13,7 @@ export default extendConfig(baseConfig, () => {
13
13
  minify: false,
14
14
  ssr: true,
15
15
  rollupOptions: {
16
- input: ["./src/entry_aws-lambda.tsx", "@qwik-router-config"],
16
+ input: ["./src/entry_aws-lambda.tsx"],
17
17
  },
18
18
  },
19
19
  plugins: [nodeServerAdapter({ name: "aws-lambda" })],
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "description": "AWS Lambda",
3
3
  "scripts": {
4
- "build.server": "vite build -c adapters/aws-lambda/vite.config.mts",
4
+ "build.server": "qwik check-client src dist && vite build -c adapters/aws-lambda/vite.config.ts",
5
5
  "serve": "qwik build && serverless offline",
6
6
  "deploy": "serverless deploy"
7
7
  },
@@ -19,5 +19,6 @@
19
19
  "https://aws.amazon.com/es/lambda/",
20
20
  "https://www.serverless.com/cloud/docs/get-started"
21
21
  ]
22
- }
22
+ },
23
+ "type": "module"
23
24
  }
@@ -7,7 +7,6 @@
7
7
  * - https://qwik.dev/docs/deployments/aws/
8
8
  *
9
9
  */
10
- import qwikRouterConfig from "@qwik-router-config";
11
10
  import {
12
11
  createQwikRouter,
13
12
  type PlatformAwsLambda,
@@ -17,13 +16,10 @@ import "source-map-support/register";
17
16
  import render from "./entry.ssr";
18
17
 
19
18
  declare global {
20
- interface QwikRouterPlatform extends PlatformAwsLambda {}
19
+ type QwikRouterPlatform = PlatformAwsLambda;
21
20
  }
22
21
 
23
- export const { handle } = createQwikRouter({
24
- render,
25
- qwikRouterConfig,
26
- });
22
+ export const { handle } = createQwikRouter({ render });
27
23
 
28
24
  export const qwikApp = serverless({ handle }, { binary: true });
29
25
  // handler is the default export for the lambda functions
@@ -1,6 +1,6 @@
1
1
  import { azureSwaAdapter } from "@qwik.dev/router/adapters/azure-swa/vite";
2
2
  import { extendConfig } from "@qwik.dev/router/vite";
3
- import baseConfig from "../../vite.config.mts";
3
+ import baseConfig from "../../vite.config.ts";
4
4
 
5
5
  export default extendConfig(baseConfig, () => {
6
6
  return {
@@ -8,7 +8,7 @@ export default extendConfig(baseConfig, () => {
8
8
  ssr: true,
9
9
  outDir: "azure-functions/render",
10
10
  rollupOptions: {
11
- input: ["src/entry.azure-swa.tsx", "@qwik-router-config"],
11
+ input: ["src/entry.azure-swa.tsx"],
12
12
  output: {
13
13
  entryFileNames: `[name].[hash].mjs`,
14
14
  chunkFileNames: `[name].[hash].mjs`,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "description": "Azure Static Web Apps",
3
3
  "scripts": {
4
- "build.server": "vite build -c adapters/azure-swa/vite.config.mts",
4
+ "build.server": "qwik check-client src dist && vite build -c adapters/azure-swa/vite.config.ts",
5
5
  "serve": "swa start"
6
6
  },
7
7
  "devDependencies": {
@@ -24,5 +24,6 @@
24
24
  "- pnpm run deploy: it will use the SWA CLI to deploy your site"
25
25
  ]
26
26
  }
27
- }
27
+ },
28
+ "type": "module"
28
29
  }
@@ -7,7 +7,6 @@
7
7
  * - https://qwik.dev/docs/deployments/azure-swa/
8
8
  *
9
9
  */
10
- import qwikRouterConfig from "@qwik-router-config";
11
10
  import {
12
11
  createQwikRouter,
13
12
  type PlatformAzure,
@@ -15,7 +14,7 @@ import {
15
14
  import render from "./entry.ssr";
16
15
 
17
16
  declare global {
18
- interface QwikRouterPlatform extends PlatformAzure {}
17
+ type QwikRouterPlatform = PlatformAzure;
19
18
  }
20
19
 
21
- export default createQwikRouter({ render, qwikRouterConfig });
20
+ export default createQwikRouter({ render });
@@ -1,7 +1,7 @@
1
1
  import { bunServerAdapter } from "@qwik.dev/router/adapters/bun-server/vite";
2
2
  import { _TextEncoderStream_polyfill } from "@qwik.dev/router/middleware/request-handler";
3
3
  import { extendConfig } from "@qwik.dev/router/vite";
4
- import baseConfig from "../../vite.config.mts";
4
+ import baseConfig from "../../vite.config.ts";
5
5
 
6
6
  // This polyfill is required when you use SSG and build your app with Bun, because Bun does not have TextEncoderStream. See: https://github.com/oven-sh/bun/issues/5648
7
7
  globalThis.TextEncoderStream ||= _TextEncoderStream_polyfill;
@@ -11,7 +11,7 @@ export default extendConfig(baseConfig, () => {
11
11
  build: {
12
12
  ssr: true,
13
13
  rollupOptions: {
14
- input: ["src/entry.bun.ts", "@qwik-router-config"],
14
+ input: ["src/entry.bun.ts"],
15
15
  },
16
16
  minify: false,
17
17
  },
@@ -20,7 +20,7 @@ export default extendConfig(baseConfig, () => {
20
20
  ssg: {
21
21
  include: ["/*"],
22
22
  origin: "https://yoursite.dev",
23
- maxWorkers: 1, // Limit Workers to 1, otherwise SSG will hang when compiling Qwik City app with `bun run --bun build`.
23
+ maxWorkers: 1, // Limit Workers to 1, otherwise SSG will hang when compiling Qwik Router app with `bun run --bun build`.
24
24
  },
25
25
  }),
26
26
  ],
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "description": "Bun server",
3
3
  "scripts": {
4
- "build.server": "vite build -c adapters/bun/vite.config.mts",
4
+ "build.server": "qwik check-client src dist && vite build -c adapters/bun/vite.config.ts",
5
5
  "serve": "bun server/entry.bun.js"
6
6
  },
7
7
  "__qwik__": {
@@ -23,5 +23,6 @@
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/bun": "*"
26
- }
26
+ },
27
+ "type": "module"
27
28
  }
@@ -8,14 +8,12 @@
8
8
  * - https://bun.sh/docs/api/http
9
9
  *
10
10
  */
11
- import qwikRouterConfig from "@qwik-router-config";
12
11
  import { createQwikRouter } from "@qwik.dev/router/middleware/bun";
13
12
  import render from "./entry.ssr";
14
13
 
15
14
  // Create the Qwik Router Bun middleware
16
15
  const { router, notFound, staticFile } = createQwikRouter({
17
16
  render,
18
- qwikRouterConfig,
19
17
  static: {
20
18
  cacheControl: "public, max-age=31536000, immutable",
21
19
  },
@@ -1,13 +1,13 @@
1
1
  import { cloudRunAdapter } from "@qwik.dev/router/adapters/cloud-run/vite";
2
2
  import { extendConfig } from "@qwik.dev/router/vite";
3
- import baseConfig from "../../vite.config.mts";
3
+ import baseConfig from "../../vite.config.ts";
4
4
 
5
5
  export default extendConfig(baseConfig, () => {
6
6
  return {
7
7
  build: {
8
8
  ssr: true,
9
9
  rollupOptions: {
10
- input: ["src/entry.cloud-run.tsx", "@qwik-router-config"],
10
+ input: ["src/entry.cloud-run.tsx"],
11
11
  },
12
12
  },
13
13
  plugins: [cloudRunAdapter()],
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "description": "Google Cloud Run server",
3
3
  "scripts": {
4
- "build.server": "vite build -c adapters/cloud-run/vite.config.mts",
4
+ "build.server": "qwik check-client src dist && vite build -c adapters/cloud-run/vite.config.ts",
5
5
  "deploy": "gcloud run deploy my-cloud-run-app --source ."
6
6
  },
7
7
  "__qwik__": {
@@ -20,5 +20,6 @@
20
20
  "- pnpm run deploy: it will use the gcloud CLI to deploy your site"
21
21
  ]
22
22
  }
23
- }
23
+ },
24
+ "type": "module"
24
25
  }
@@ -7,7 +7,6 @@
7
7
  * - https://qwik.dev/docs/deployments/gcp-cloud-run/
8
8
  *
9
9
  */
10
- import qwikRouterConfig from "@qwik-router-config";
11
10
  import {
12
11
  createQwikRouter,
13
12
  type PlatformNode,
@@ -16,7 +15,7 @@ import { createServer } from "node:http";
16
15
  import render from "./entry.ssr";
17
16
 
18
17
  declare global {
19
- interface QwikRouterPlatform extends PlatformNode {}
18
+ type QwikRouterPlatform = PlatformNode;
20
19
  }
21
20
 
22
21
  /** The default headers used by helmet */
@@ -50,7 +49,6 @@ const DEFAULT_HEADERS = {
50
49
 
51
50
  const { router, notFound, staticFile } = createQwikRouter({
52
51
  render,
53
- qwikRouterConfig,
54
52
  static: {
55
53
  cacheControl: "public, max-age=31536000, immutable",
56
54
  },
@@ -1,13 +1,13 @@
1
1
  import { cloudflarePagesAdapter } from "@qwik.dev/router/adapters/cloudflare-pages/vite";
2
2
  import { extendConfig } from "@qwik.dev/router/vite";
3
- import baseConfig from "../../vite.config.mts";
3
+ import baseConfig from "../../vite.config.ts";
4
4
 
5
5
  export default extendConfig(baseConfig, () => {
6
6
  return {
7
7
  build: {
8
8
  ssr: true,
9
9
  rollupOptions: {
10
- input: ["src/entry.cloudflare-pages.tsx", "@qwik-router-config"],
10
+ input: ["src/entry.cloudflare-pages.tsx"],
11
11
  },
12
12
  },
13
13
  plugins: [cloudflarePagesAdapter()],
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "description": "Cloudflare Pages",
3
3
  "scripts": {
4
- "build.server": "vite build -c adapters/cloudflare-pages/vite.config.mts",
4
+ "build.server": "qwik check-client src dist && vite build -c adapters/cloudflare-pages/vite.config.ts",
5
5
  "deploy": "wrangler pages deploy ./dist",
6
6
  "serve": "wrangler pages dev ./dist --compatibility-flags=nodejs_als"
7
7
  },
@@ -24,5 +24,6 @@
24
24
  "- pnpm run deploy: it will use the Cloudflare CLI to deploy your site"
25
25
  ]
26
26
  }
27
- }
27
+ },
28
+ "type": "module"
28
29
  }
@@ -7,7 +7,6 @@
7
7
  * - https://qwik.dev/docs/deployments/cloudflare-pages/
8
8
  *
9
9
  */
10
- import qwikRouterConfig from "@qwik-router-config";
11
10
  import {
12
11
  createQwikRouter,
13
12
  type PlatformCloudflarePages,
@@ -15,9 +14,9 @@ import {
15
14
  import render from "./entry.ssr";
16
15
 
17
16
  declare global {
18
- interface QwikRouterPlatform extends PlatformCloudflarePages {}
17
+ type QwikRouterPlatform = PlatformCloudflarePages;
19
18
  }
20
19
 
21
- const fetch = createQwikRouter({ render, qwikRouterConfig });
20
+ const fetch = createQwikRouter({ render });
22
21
 
23
22
  export { fetch };
@@ -0,0 +1,52 @@
1
+ ## Cloudflare Workers
2
+
3
+ Cloudflare's [wrangler](https://github.com/cloudflare/wrangler) CLI can be used to preview a production build locally. To start a local server, run:
4
+
5
+ ```
6
+ npm run serve
7
+ ```
8
+
9
+ Then visit [http://localhost:8787/](http://localhost:8787/)
10
+
11
+ ### Deployments
12
+
13
+ [Cloudflare Workers](https://workers.cloudflare.com/) can be deployed using the [Wrangler CLI](https://developers.cloudflare.com/workers/wrangler/).
14
+
15
+ If you don't already have an account, then [create a Cloudflare account here](https://dash.cloudflare.com/sign-up/workers-and-pages).
16
+
17
+ Once authenticated, you can deploy your Worker:
18
+
19
+ ```
20
+ npm run deploy
21
+ ```
22
+
23
+ ### Configuration
24
+
25
+ The `wrangler.jsonc` file contains your Worker configuration. Key settings include:
26
+
27
+ - **name**: Your Worker's name
28
+ - **main**: Path to your Worker script (default: `./dist/_worker.js`)
29
+ - **compatibility_date**: The date used for compatibility with the Workers runtime
30
+ - **assets**: Configuration for serving static assets
31
+ - **bindings**: Resources your Worker can interact with (KV, R2, D1, etc.)
32
+
33
+ After adding any binding, use this command to regenerate the worker-configuration.d.ts file
34
+
35
+ ```
36
+ npm run cf-typegen
37
+ ```
38
+
39
+ For more details, see the [Wrangler configuration documentation](https://developers.cloudflare.com/workers/wrangler/configuration/).
40
+
41
+ ### Bindings
42
+
43
+ Cloudflare Workers can interact with various Cloudflare resources through bindings:
44
+
45
+ - **KV**: Key-value storage
46
+ - **R2**: Object storage
47
+ - **D1**: SQL database
48
+ - **Durable Objects**: Strongly consistent storage
49
+ - **Queues**: Message queues
50
+ - **AI**: AI inference
51
+
52
+ Configure bindings in your `wrangler.jsonc` file. See the [bindings documentation](https://developers.cloudflare.com/workers/runtime-apis/bindings/) for more information.
@@ -0,0 +1,15 @@
1
+ import { cloudflarePagesAdapter as cloudflareWorkersAdapter } from "@builder.io/qwik-city/adapters/cloudflare-pages/vite";
2
+ import { extendConfig } from "@builder.io/qwik-city/vite";
3
+ import baseConfig from "../../vite.config";
4
+
5
+ export default extendConfig(baseConfig, () => {
6
+ return {
7
+ build: {
8
+ ssr: true,
9
+ rollupOptions: {
10
+ input: ["src/entry.cloudflare-pages.tsx", "@qwik-city-plan"],
11
+ },
12
+ },
13
+ plugins: [cloudflareWorkersAdapter()],
14
+ };
15
+ });
@@ -0,0 +1,3 @@
1
+ # Cloudflare
2
+ functions/**/*.js
3
+ .wrangler/
@@ -0,0 +1,31 @@
1
+ {
2
+ "description": "Cloudflare Workers",
3
+ "scripts": {
4
+ "build.server": "qwik check-client src dist && vite build -c adapters/cloudflare-workers/vite.config.ts",
5
+ "deploy": "wrangler deploy",
6
+ "serve": "wrangler dev",
7
+ "cf-typegen": "wrangler types"
8
+ },
9
+ "devDependencies": {
10
+ "@cloudflare/workers-types": "^4.20251228.0",
11
+ "wrangler": "^3.0.0"
12
+ },
13
+ "__qwik__": {
14
+ "priority": 40,
15
+ "displayName": "Adapter: Cloudflare Workers",
16
+ "docs": [
17
+ "https://qwik.dev/deployments/cloudflare-workers/",
18
+ "https://developers.cloudflare.com/workers"
19
+ ],
20
+ "nextSteps": {
21
+ "title": "Next Steps",
22
+ "lines": [
23
+ "Make sure to follow the instructions in the [Cloudflare Workers documentation](https://qwik.dev/deployments/cloudflare-workers/) to setup your Qwik app.",
24
+ "Now you can build and deploy to Cloudflare Workers with:",
25
+ "",
26
+ "- pnpm run build: production build for Cloudflare",
27
+ "- pnpm run deploy: it will use the Cloudflare CLI to deploy your site"
28
+ ]
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,4 @@
1
+ _worker.js
2
+ _routes.json
3
+ _headers
4
+ _redirects
@@ -0,0 +1,11 @@
1
+ # https://developers.cloudflare.com/pages/platform/headers/
2
+
3
+ /*service-worker.js
4
+ Cache-Control: no-store
5
+ Content-Type: application/javascript
6
+ X-Content-Type-Options: nosniff
7
+
8
+ /build/*
9
+ Cache-Control: public, max-age=31536000, s-maxage=31536000, immutable
10
+ /assets/*
11
+ Cache-Control: public, max-age=31536000, s-maxage=31536000, immutable
@@ -0,0 +1 @@
1
+ # https://developers.cloudflare.com/pages/platform/redirects/
@@ -0,0 +1,23 @@
1
+ /*
2
+ * WHAT IS THIS FILE?
3
+ *
4
+ * It's the entry point for Cloudflare Workers when building for production.
5
+ *
6
+ * Learn more about the Cloudflare Workers integration here:
7
+ * - https://qwik.dev/docs/deployments/cloudflare-workers/
8
+ *
9
+ */
10
+ import {
11
+ createQwikCity,
12
+ type PlatformCloudflarePages as PlatformCloudflareWorkers,
13
+ } from "@builder.io/qwik-city/middleware/cloudflare-pages";
14
+ import qwikCityPlan from "@qwik-city-plan";
15
+ import render from "./entry.ssr";
16
+
17
+ declare global {
18
+ type QwikCityPlatform = PlatformCloudflareWorkers;
19
+ }
20
+
21
+ const fetch = createQwikCity({ render, qwikCityPlan });
22
+
23
+ export { fetch };
@@ -0,0 +1,5 @@
1
+ // Generated by Wrangler
2
+ // After adding bindings to `wrangler.jsonc`, regenerate this interface via `npm run cf-typegen`
3
+ interface Env {
4
+ ASSET: Fetcher;
5
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * For more details on how to configure Wrangler, refer to:
3
+ * https://developers.cloudflare.com/workers/wrangler/configuration/
4
+ */
5
+ {
6
+ "$schema": "node_modules/wrangler/config-schema.json",
7
+ "name": "my-qwik-app",
8
+ "main": "./dist/_worker.js",
9
+ "compatibility_date": "2025-12-28",
10
+ "compatibility_flags": ["nodejs_compat", "global_fetch_strictly_public"],
11
+ "assets": {
12
+ "binding": "ASSET",
13
+ "directory": "./dist",
14
+ },
15
+ "observability": {
16
+ "enabled": true,
17
+ },
18
+ /**
19
+ * Smart Placement
20
+ * https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement
21
+ */
22
+ // "placement": { "mode": "smart" }
23
+ /**
24
+ * Bindings
25
+ * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including
26
+ * databases, object storage, AI inference, real-time communication and more.
27
+ * https://developers.cloudflare.com/workers/runtime-apis/bindings/
28
+ */
29
+ /**
30
+ * Environment Variables
31
+ * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables
32
+ * Note: Use secrets to store sensitive data.
33
+ * https://developers.cloudflare.com/workers/configuration/secrets/
34
+ */
35
+ // "vars": { "MY_VARIABLE": "production_value" }
36
+ /**
37
+ * Service Bindings (communicate between multiple Workers)
38
+ * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings
39
+ */
40
+ // "services": [ { "binding": "MY_SERVICE", "service": "my-service" } ]
41
+ }
@@ -1,13 +1,13 @@
1
1
  import { denoServerAdapter } from "@qwik.dev/router/adapters/deno-server/vite";
2
2
  import { extendConfig } from "@qwik.dev/router/vite";
3
- import baseConfig from "../../vite.config.mts";
3
+ import baseConfig from "../../vite.config.ts";
4
4
 
5
5
  export default extendConfig(baseConfig, () => {
6
6
  return {
7
7
  build: {
8
8
  ssr: true,
9
9
  rollupOptions: {
10
- input: ["src/entry.deno.ts", "@qwik-router-config"],
10
+ input: ["src/entry.deno.ts"],
11
11
  },
12
12
  minify: false,
13
13
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "description": "Deno server",
3
3
  "scripts": {
4
- "build.server": "vite build -c adapters/deno/vite.config.mts",
4
+ "build.server": "qwik check-client src dist && vite build -c adapters/deno/vite.config.ts",
5
5
  "serve": "deno run --allow-net --allow-read --allow-env server/entry.deno.js"
6
6
  },
7
7
  "__qwik__": {
@@ -20,5 +20,6 @@
20
20
  "- pnpm run serve: runs the production server locally"
21
21
  ]
22
22
  }
23
- }
23
+ },
24
+ "type": "module"
24
25
  }
@@ -8,14 +8,12 @@
8
8
  * - https://docs.deno.com/runtime/tutorials/http_server
9
9
  *
10
10
  */
11
- import qwikRouterConfig from "@qwik-router-config";
12
11
  import { createQwikRouter } from "@qwik.dev/router/middleware/deno";
13
12
  import render from "./entry.ssr";
14
13
 
15
14
  // Create the Qwik Router Deno middleware
16
15
  const { router, notFound, staticFile } = createQwikRouter({
17
16
  render,
18
- qwikRouterConfig,
19
17
  static: {
20
18
  cacheControl: "public, max-age=31536000, immutable",
21
19
  },
@@ -1,13 +1,13 @@
1
1
  import { nodeServerAdapter } from "@qwik.dev/router/adapters/node-server/vite";
2
2
  import { extendConfig } from "@qwik.dev/router/vite";
3
- import baseConfig from "../../vite.config.mts";
3
+ import baseConfig from "../../vite.config.ts";
4
4
 
5
5
  export default extendConfig(baseConfig, () => {
6
6
  return {
7
7
  build: {
8
8
  ssr: true,
9
9
  rollupOptions: {
10
- input: ["src/entry.express.tsx", "@qwik-router-config"],
10
+ input: ["src/entry.express.tsx"],
11
11
  },
12
12
  },
13
13
  plugins: [nodeServerAdapter({ name: "express" })],
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "description": "Express.js server",
3
3
  "scripts": {
4
- "build.server": "vite build -c adapters/express/vite.config.mts",
4
+ "build.server": "qwik check-client src dist && vite build -c adapters/express/vite.config.ts",
5
5
  "serve": "node server/entry.express"
6
6
  },
7
7
  "dependencies": {
8
- "express": "4.20.0"
8
+ "express": "4.22.0"
9
9
  },
10
10
  "devDependencies": {
11
11
  "@types/compression": "^1.7.2",
@@ -29,5 +29,6 @@
29
29
  "- pnpm run serve: runs the production server locally"
30
30
  ]
31
31
  }
32
- }
32
+ },
33
+ "type": "module"
33
34
  }
@@ -7,7 +7,6 @@
7
7
  * - https://qwik.dev/docs/deployments/node/
8
8
  *
9
9
  */
10
- import qwikRouterConfig from "@qwik-router-config";
11
10
  import {
12
11
  createQwikRouter,
13
12
  type PlatformNode,
@@ -19,7 +18,7 @@ import { fileURLToPath } from "node:url";
19
18
  import render from "./entry.ssr";
20
19
 
21
20
  declare global {
22
- interface QwikRouterPlatform extends PlatformNode {}
21
+ type QwikRouterPlatform = PlatformNode;
23
22
  }
24
23
 
25
24
  // Directories where the static assets are located
@@ -33,7 +32,6 @@ const PORT = process.env.PORT ?? 3000;
33
32
  // Create the Qwik Router Node middleware
34
33
  const { router, notFound } = createQwikRouter({
35
34
  render,
36
- qwikRouterConfig,
37
35
  // getOrigin(req) {
38
36
  // // If deploying under a proxy, you may need to build the origin from the request headers
39
37
  // // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto
@@ -1,13 +1,13 @@
1
1
  import { nodeServerAdapter } from "@qwik.dev/router/adapters/node-server/vite";
2
2
  import { extendConfig } from "@qwik.dev/router/vite";
3
- import baseConfig from "../../vite.config.mts";
3
+ import baseConfig from "../../vite.config.ts";
4
4
 
5
5
  export default extendConfig(baseConfig, () => {
6
6
  return {
7
7
  build: {
8
8
  ssr: true,
9
9
  rollupOptions: {
10
- input: ["src/entry.fastify.tsx", "@qwik-router-config"],
10
+ input: ["src/entry.fastify.tsx"],
11
11
  },
12
12
  },
13
13
  plugins: [nodeServerAdapter({ name: "fastify" })],
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "description": "Fastify server",
3
3
  "scripts": {
4
- "build.server": "vite build -c adapters/fastify/vite.config.mts",
4
+ "build.server": "qwik check-client src dist && vite build -c adapters/fastify/vite.config.ts",
5
5
  "serve": "node server/entry.fastify"
6
6
  },
7
7
  "dependencies": {
@@ -29,5 +29,6 @@
29
29
  "- pnpm run serve: runs the production server locally"
30
30
  ]
31
31
  }
32
- }
32
+ },
33
+ "type": "module"
33
34
  }
@@ -15,7 +15,7 @@ import { fileURLToPath } from "node:url";
15
15
  import FastifyQwik from "./plugins/fastify-qwik";
16
16
 
17
17
  declare global {
18
- interface QwikRouterPlatform extends PlatformNode {}
18
+ type QwikRouterPlatform = PlatformNode;
19
19
  }
20
20
 
21
21
  // Directories where the static assets are located