@qwik.dev/core 0.0.0 → 2.0.0-alpha.0

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 (258) hide show
  1. package/LICENSE +22 -0
  2. package/bindings/qwik.linux-x64-gnu.node +0 -0
  3. package/bindings/qwik.wasm.cjs +484 -0
  4. package/bindings/qwik.wasm.mjs +477 -0
  5. package/bindings/qwik_wasm_bg.wasm +0 -0
  6. package/build.d.ts +2 -0
  7. package/dist/build/index.cjs +35 -0
  8. package/dist/build/index.cjs.map +7 -0
  9. package/dist/build/index.d.ts +22 -0
  10. package/dist/build/index.dev.cjs +37 -0
  11. package/dist/build/index.dev.cjs.map +7 -0
  12. package/dist/build/index.dev.mjs +12 -0
  13. package/dist/build/index.dev.mjs.map +7 -0
  14. package/dist/build/index.mjs +12 -0
  15. package/dist/build/index.mjs.map +7 -0
  16. package/dist/build/index.prod.cjs +37 -0
  17. package/dist/build/index.prod.cjs.map +7 -0
  18. package/dist/build/index.prod.mjs +12 -0
  19. package/dist/build/index.prod.mjs.map +7 -0
  20. package/dist/build/package.json +8 -0
  21. package/dist/cli.cjs +4890 -0
  22. package/dist/core-internal.d.ts +3895 -0
  23. package/dist/core.cjs +10923 -0
  24. package/dist/core.cjs.map +1 -0
  25. package/dist/core.min.mjs +1 -0
  26. package/dist/core.mjs +10819 -0
  27. package/dist/core.mjs.map +1 -0
  28. package/dist/core.prod.cjs +5181 -0
  29. package/dist/core.prod.mjs +6025 -0
  30. package/dist/index.d.ts +2 -0
  31. package/dist/insights/index.d.ts +1 -0
  32. package/dist/insights/index.qwik.cjs +751 -0
  33. package/dist/insights/index.qwik.mjs +751 -0
  34. package/dist/insights/insights.d.ts +59 -0
  35. package/dist/insights/vite/index.cjs +82 -0
  36. package/dist/insights/vite/index.d.ts +1 -0
  37. package/dist/insights/vite/index.mjs +55 -0
  38. package/dist/insights/vite/insights-plugin.d.ts +10 -0
  39. package/dist/jsx-runtime/index.d.ts +2 -0
  40. package/dist/jsx-runtime.d.ts +2 -0
  41. package/dist/loader/index.cjs +4 -0
  42. package/dist/loader/index.d.ts +2 -0
  43. package/dist/loader/index.mjs +3 -0
  44. package/dist/loader/package.json +8 -0
  45. package/dist/optimizer.cjs +9145 -0
  46. package/dist/optimizer.d.ts +707 -0
  47. package/dist/optimizer.mjs +9709 -0
  48. package/dist/prefetch/index.cjs +4 -0
  49. package/dist/prefetch/index.d.ts +2 -0
  50. package/dist/prefetch/index.mjs +3 -0
  51. package/dist/prefetch/package.json +8 -0
  52. package/dist/qwik-prefetch.debug.js +244 -0
  53. package/dist/qwik-prefetch.js +1 -0
  54. package/dist/qwikloader.debug.js +228 -0
  55. package/dist/qwikloader.js +3 -0
  56. package/dist/server-modules.d.ts +38 -0
  57. package/dist/server.cjs +8942 -0
  58. package/dist/server.d.ts +404 -0
  59. package/dist/server.mjs +8877 -0
  60. package/dist/starters/adapters/aws-lambda/.eslintignore +2 -0
  61. package/dist/starters/adapters/aws-lambda/.prettierignore +2 -0
  62. package/dist/starters/adapters/aws-lambda/adapters/aws-lambda/vite.config.mts +21 -0
  63. package/dist/starters/adapters/aws-lambda/gitignore +2 -0
  64. package/dist/starters/adapters/aws-lambda/package.json +23 -0
  65. package/dist/starters/adapters/aws-lambda/serverless.yml +31 -0
  66. package/dist/starters/adapters/aws-lambda/src/entry_aws-lambda.tsx +32 -0
  67. package/dist/starters/adapters/azure-swa/README.md +13 -0
  68. package/dist/starters/adapters/azure-swa/adapters/azure-swa/vite.config.mts +23 -0
  69. package/dist/starters/adapters/azure-swa/azure-functions/host.json +20 -0
  70. package/dist/starters/adapters/azure-swa/gitignore +3 -0
  71. package/dist/starters/adapters/azure-swa/package.json +28 -0
  72. package/dist/starters/adapters/azure-swa/public/staticwebapp.config.json +23 -0
  73. package/dist/starters/adapters/azure-swa/src/entry.azure-swa.tsx +22 -0
  74. package/dist/starters/adapters/azure-swa/swa-cli.config.json +11 -0
  75. package/dist/starters/adapters/bun/README.md +9 -0
  76. package/dist/starters/adapters/bun/adapters/bun/vite.config.mts +28 -0
  77. package/dist/starters/adapters/bun/package.json +27 -0
  78. package/dist/starters/adapters/bun/src/entry.bun.ts +46 -0
  79. package/dist/starters/adapters/cloud-run/Dockerfile +24 -0
  80. package/dist/starters/adapters/cloud-run/README.md +7 -0
  81. package/dist/starters/adapters/cloud-run/adapters/cloud-run/vite.config.mts +15 -0
  82. package/dist/starters/adapters/cloud-run/package.json +24 -0
  83. package/dist/starters/adapters/cloud-run/src/entry.cloud-run.tsx +96 -0
  84. package/dist/starters/adapters/cloudflare-pages/README.md +46 -0
  85. package/dist/starters/adapters/cloudflare-pages/adapters/cloudflare-pages/vite.config.mts +15 -0
  86. package/dist/starters/adapters/cloudflare-pages/gitignore +2 -0
  87. package/dist/starters/adapters/cloudflare-pages/package.json +28 -0
  88. package/dist/starters/adapters/cloudflare-pages/public/_headers +9 -0
  89. package/dist/starters/adapters/cloudflare-pages/public/_redirects +1 -0
  90. package/dist/starters/adapters/cloudflare-pages/src/entry.cloudflare-pages.tsx +24 -0
  91. package/dist/starters/adapters/deno/README.md +9 -0
  92. package/dist/starters/adapters/deno/adapters/deno/vite.config.mts +23 -0
  93. package/dist/starters/adapters/deno/package.json +24 -0
  94. package/dist/starters/adapters/deno/src/entry.deno.ts +45 -0
  95. package/dist/starters/adapters/express/README.md +9 -0
  96. package/dist/starters/adapters/express/adapters/express/vite.config.mts +15 -0
  97. package/dist/starters/adapters/express/package.json +33 -0
  98. package/dist/starters/adapters/express/src/entry.express.tsx +70 -0
  99. package/dist/starters/adapters/fastify/README.md +9 -0
  100. package/dist/starters/adapters/fastify/adapters/fastify/vite.config.mts +15 -0
  101. package/dist/starters/adapters/fastify/package.json +33 -0
  102. package/dist/starters/adapters/fastify/src/entry.fastify.tsx +48 -0
  103. package/dist/starters/adapters/fastify/src/plugins/fastify-qwik.ts +42 -0
  104. package/dist/starters/adapters/firebase/.eslintignore +1 -0
  105. package/dist/starters/adapters/firebase/.prettierignore +1 -0
  106. package/dist/starters/adapters/firebase/adapters/firebase/vite.config.mts +21 -0
  107. package/dist/starters/adapters/firebase/firebase.json +24 -0
  108. package/dist/starters/adapters/firebase/functions/.gitkeep +0 -0
  109. package/dist/starters/adapters/firebase/functions/index.js +5 -0
  110. package/dist/starters/adapters/firebase/functions/package.json +25 -0
  111. package/dist/starters/adapters/firebase/gitignore +3 -0
  112. package/dist/starters/adapters/firebase/package.json +24 -0
  113. package/dist/starters/adapters/firebase/src/entry-firebase.tsx +22 -0
  114. package/dist/starters/adapters/netlify-edge/README.md +64 -0
  115. package/dist/starters/adapters/netlify-edge/adapters/netlify-edge/vite.config.mts +16 -0
  116. package/dist/starters/adapters/netlify-edge/gitignore +2 -0
  117. package/dist/starters/adapters/netlify-edge/netlify.toml +3 -0
  118. package/dist/starters/adapters/netlify-edge/package.json +29 -0
  119. package/dist/starters/adapters/netlify-edge/public/_headers +2 -0
  120. package/dist/starters/adapters/netlify-edge/src/entry.netlify-edge.tsx +22 -0
  121. package/dist/starters/adapters/node-server/README.md +12 -0
  122. package/dist/starters/adapters/node-server/adapters/node-server/vite.config.mts +15 -0
  123. package/dist/starters/adapters/node-server/package.json +23 -0
  124. package/dist/starters/adapters/node-server/src/entry.node-server.tsx +39 -0
  125. package/dist/starters/adapters/static/README.md +5 -0
  126. package/dist/starters/adapters/static/adapters/static/vite.config.mts +19 -0
  127. package/dist/starters/adapters/static/package.json +19 -0
  128. package/dist/starters/adapters/vercel-edge/README.md +43 -0
  129. package/dist/starters/adapters/vercel-edge/adapters/vercel-edge/vite.config.mts +16 -0
  130. package/dist/starters/adapters/vercel-edge/gitignore +2 -0
  131. package/dist/starters/adapters/vercel-edge/package.json +28 -0
  132. package/dist/starters/adapters/vercel-edge/src/entry.vercel-edge.tsx +22 -0
  133. package/dist/starters/adapters/vercel-edge/vercel.json +22 -0
  134. package/dist/starters/features/auth/package.json +20 -0
  135. package/dist/starters/features/auth/src/routes/plugin@auth.ts +8 -0
  136. package/dist/starters/features/bootstrap/package.json +33 -0
  137. package/dist/starters/features/bootstrap/src/components/bootstrap/alert.tsx +8 -0
  138. package/dist/starters/features/bootstrap/src/components/bootstrap/button.tsx +8 -0
  139. package/dist/starters/features/bootstrap/src/components/bootstrap/index.ts +4 -0
  140. package/dist/starters/features/bootstrap/src/components/bootstrap/navbar.tsx +44 -0
  141. package/dist/starters/features/bootstrap/src/components/bootstrap/spinner.tsx +13 -0
  142. package/dist/starters/features/bootstrap/src/constants/data.ts +10 -0
  143. package/dist/starters/features/bootstrap/src/models/bootstrap.ts +8 -0
  144. package/dist/starters/features/bootstrap/src/routes/bootstrap/alerts/index.tsx +28 -0
  145. package/dist/starters/features/bootstrap/src/routes/bootstrap/buttons/index.tsx +32 -0
  146. package/dist/starters/features/bootstrap/src/routes/bootstrap/index.tsx +32 -0
  147. package/dist/starters/features/bootstrap/src/routes/bootstrap/layout.tsx +36 -0
  148. package/dist/starters/features/bootstrap/src/routes/bootstrap/spinners/index.tsx +45 -0
  149. package/dist/starters/features/builder.io/README.md +15 -0
  150. package/dist/starters/features/builder.io/package.json +27 -0
  151. package/dist/starters/features/builder.io/src/components/builder-registry.ts +25 -0
  152. package/dist/starters/features/builder.io/src/components/counter/counter.module.css +23 -0
  153. package/dist/starters/features/builder.io/src/components/counter/counter.tsx +81 -0
  154. package/dist/starters/features/builder.io/src/components/gauge/gauge.module.css +27 -0
  155. package/dist/starters/features/builder.io/src/components/gauge/index.tsx +38 -0
  156. package/dist/starters/features/builder.io/src/routes/[...index]/index.tsx +44 -0
  157. package/dist/starters/features/cypress/cypress/fixtures/example.json +5 -0
  158. package/dist/starters/features/cypress/cypress/support/commands.ts +37 -0
  159. package/dist/starters/features/cypress/cypress/support/component-index.html +12 -0
  160. package/dist/starters/features/cypress/cypress/support/component.ts +42 -0
  161. package/dist/starters/features/cypress/cypress/tsconfig.cy.json +17 -0
  162. package/dist/starters/features/cypress/cypress.config.ts +10 -0
  163. package/dist/starters/features/cypress/cypress.d.ts +14 -0
  164. package/dist/starters/features/cypress/package.json +28 -0
  165. package/dist/starters/features/cypress/src/components/example/example.cy.tsx +18 -0
  166. package/dist/starters/features/cypress/src/components/example/example.tsx +17 -0
  167. package/dist/starters/features/drizzle/drizzle/db/.gitkeep +0 -0
  168. package/dist/starters/features/drizzle/drizzle/migrations/.gitkeep +0 -0
  169. package/dist/starters/features/drizzle/drizzle/schema.ts +24 -0
  170. package/dist/starters/features/drizzle/drizzle.config.ts +9 -0
  171. package/dist/starters/features/drizzle/package.json +41 -0
  172. package/dist/starters/features/drizzle/src/routes/create/index.tsx +42 -0
  173. package/dist/starters/features/drizzle/src/routes/users/[userId]/index.tsx +36 -0
  174. package/dist/starters/features/drizzle/src/routes/users/index.tsx +30 -0
  175. package/dist/starters/features/leaflet-map/package.json +30 -0
  176. package/dist/starters/features/leaflet-map/src/components/leaflet-map/index.tsx +60 -0
  177. package/dist/starters/features/leaflet-map/src/helpers/boundary-box.tsx +6 -0
  178. package/dist/starters/features/leaflet-map/src/models/location.ts +9 -0
  179. package/dist/starters/features/leaflet-map/src/models/map.ts +7 -0
  180. package/dist/starters/features/leaflet-map/src/routes/basic-map/index.tsx +25 -0
  181. package/dist/starters/features/localize/package.json +37 -0
  182. package/dist/starters/features/localize/src/entry.ssr.tsx +32 -0
  183. package/dist/starters/features/localize/src/locales/message.en.json +8 -0
  184. package/dist/starters/features/localize/src/locales/message.it.json +8 -0
  185. package/dist/starters/features/localize/src/routes/[locale]/i18n-utils.ts +94 -0
  186. package/dist/starters/features/localize/src/routes/[locale]/index.tsx +52 -0
  187. package/dist/starters/features/localize/src/routes/[locale]/layout.tsx +12 -0
  188. package/dist/starters/features/orama/package.json +23 -0
  189. package/dist/starters/features/orama/src/orama/index.ts +41 -0
  190. package/dist/starters/features/orama/src/routes/orama/index.tsx +110 -0
  191. package/dist/starters/features/pandacss/.eslintignore +3 -0
  192. package/dist/starters/features/pandacss/.prettierignore +2 -0
  193. package/dist/starters/features/pandacss/gitignore +2 -0
  194. package/dist/starters/features/pandacss/package.json +31 -0
  195. package/dist/starters/features/pandacss/panda.config.ts +22 -0
  196. package/dist/starters/features/pandacss/postcss.config.js +5 -0
  197. package/dist/starters/features/pandacss/src/global.css +5 -0
  198. package/dist/starters/features/pandacss/src/routes/pandacss/index.tsx +18 -0
  199. package/dist/starters/features/partytown/package.json +41 -0
  200. package/dist/starters/features/partytown/src/components/partytown/partytown.tsx +19 -0
  201. package/dist/starters/features/playwright/package.json +18 -0
  202. package/dist/starters/features/playwright/playwright-report/index.html +22024 -0
  203. package/dist/starters/features/playwright/playwright.config.ts +40 -0
  204. package/dist/starters/features/playwright/tests/example.spec.ts +14 -0
  205. package/dist/starters/features/postcss/.vscode/settings.json +3 -0
  206. package/dist/starters/features/postcss/package.json +17 -0
  207. package/dist/starters/features/postcss/postcss.config.js +11 -0
  208. package/dist/starters/features/prisma/package.json +35 -0
  209. package/dist/starters/features/prisma/prisma/schema.prisma +17 -0
  210. package/dist/starters/features/prisma/src/routes/create/index.tsx +42 -0
  211. package/dist/starters/features/prisma/src/routes/users/[userId]/index.tsx +31 -0
  212. package/dist/starters/features/prisma/src/routes/users/index.tsx +27 -0
  213. package/dist/starters/features/react/package.json +41 -0
  214. package/dist/starters/features/react/src/integrations/react/mui.tsx +60 -0
  215. package/dist/starters/features/react/src/routes/react/index.tsx +45 -0
  216. package/dist/starters/features/storybook/.storybook/main.ts +22 -0
  217. package/dist/starters/features/storybook/.storybook/preview-head.html +3 -0
  218. package/dist/starters/features/storybook/.storybook/preview.tsx +19 -0
  219. package/dist/starters/features/storybook/.storybook/tsconfig.json +24 -0
  220. package/dist/starters/features/storybook/package.json +25 -0
  221. package/dist/starters/features/storybook/src/components/button/button.stories.tsx +17 -0
  222. package/dist/starters/features/storybook/src/components/button/button.tsx +27 -0
  223. package/dist/starters/features/styled-vanilla-extract/package.json +28 -0
  224. package/dist/starters/features/styled-vanilla-extract/src/routes/styled-flower/flower.css.ts +83 -0
  225. package/dist/starters/features/styled-vanilla-extract/src/routes/styled-flower/index.tsx +75 -0
  226. package/dist/starters/features/tailwind/.prettierrc.js +3 -0
  227. package/dist/starters/features/tailwind/.vscode/settings.json +3 -0
  228. package/dist/starters/features/tailwind/package.json +18 -0
  229. package/dist/starters/features/tailwind/postcss.config.cjs +6 -0
  230. package/dist/starters/features/tailwind/src/global.css +7 -0
  231. package/dist/starters/features/tailwind/tailwind.config.js +8 -0
  232. package/dist/starters/features/turso/.env.local +2 -0
  233. package/dist/starters/features/turso/package.json +30 -0
  234. package/dist/starters/features/turso/src/utils/turso.ts +21 -0
  235. package/dist/starters/features/vitest/package.json +20 -0
  236. package/dist/starters/features/vitest/src/components/example/example.spec.tsx +32 -0
  237. package/dist/starters/features/vitest/src/components/example/example.tsx +17 -0
  238. package/dist/templates/barrel/component/index.tsx.template +13 -0
  239. package/dist/templates/barrel/markdown/index.md.template +5 -0
  240. package/dist/templates/barrel/mdx/index.mdx.template +5 -0
  241. package/dist/templates/barrel/route/index.tsx.template +9 -0
  242. package/dist/templates/qwik/component/[slug].tsx.template +13 -0
  243. package/dist/templates/qwik/markdown/index.md.template +5 -0
  244. package/dist/templates/qwik/mdx/index.mdx.template +5 -0
  245. package/dist/templates/qwik/route/index.tsx.template +9 -0
  246. package/dist/testing/index.cjs +32425 -0
  247. package/dist/testing/index.d.ts +140 -0
  248. package/dist/testing/index.mjs +32389 -0
  249. package/dist/testing/package.json +9 -0
  250. package/jsx-dev-runtime.d.ts +2 -0
  251. package/jsx-runtime.d.ts +2 -0
  252. package/loader.d.ts +2 -0
  253. package/optimizer.d.ts +2 -0
  254. package/package.json +20 -12
  255. package/public.d.ts +68 -0
  256. package/qwik-cli.cjs +4 -0
  257. package/server.d.ts +15 -0
  258. package/testing.d.ts +2 -0
@@ -0,0 +1,751 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
+ import { sync$, component$ } from "@qwik.dev/core";
5
+ /**
6
+ * @license
7
+ * @qwik.dev/core 2.0.0-alpha.0-dev+dd93926
8
+ * Copyright QwikDev. All Rights Reserved.
9
+ * Use of this source code is governed by an MIT-style license that can be
10
+ * found in the LICENSE file at https://github.com/QwikDev/qwik/blob/main/LICENSE
11
+ */
12
+ const logError = (message, ...optionalParams) => createAndLogError(false, message, ...optionalParams);
13
+ const throwErrorAndStop = (message, ...optionalParams) => {
14
+ throw createAndLogError(false, message, ...optionalParams);
15
+ };
16
+ const createAndLogError = (asyncThrow, message, ...optionalParams) => {
17
+ const err = message instanceof Error ? message : new Error(message);
18
+ return console.error("%cQWIK ERROR", "", err.message, ...optionalParams, err.stack), asyncThrow && setTimeout(() => {
19
+ throw err;
20
+ }, 0), err;
21
+ };
22
+ function assertTrue() {
23
+ }
24
+ function assertFalse() {
25
+ }
26
+ const isPromise = (value) => !!value && "object" == typeof value && "function" == typeof value.then;
27
+ function retryOnPromise(fn, retryCount = 0) {
28
+ try {
29
+ return fn();
30
+ } catch (e) {
31
+ if (isPromise(e) && retryCount < 100) {
32
+ return e.then(retryOnPromise.bind(null, fn, retryCount++));
33
+ }
34
+ throw e;
35
+ }
36
+ }
37
+ const isArray = (v) => Array.isArray(v);
38
+ var VirtualType;
39
+ !function(VirtualType2) {
40
+ VirtualType2.Virtual = "V", VirtualType2.Fragment = "F", VirtualType2.WrappedSignal = "S", VirtualType2.Awaited = "A", VirtualType2.Component = "C", VirtualType2.InlineComponent = "I", VirtualType2.Projection = "P";
41
+ }(VirtualType || (VirtualType = {}));
42
+ ({
43
+ [VirtualType.Virtual]: "\x1B[34mVirtual\x1B[0m",
44
+ [VirtualType.Fragment]: "\x1B[34mFragment\x1B[0m",
45
+ [VirtualType.WrappedSignal]: "\x1B[34mSignal\x1B[0m",
46
+ [VirtualType.Awaited]: "\x1B[34mAwaited\x1B[0m",
47
+ [VirtualType.Component]: "\x1B[34mComponent\x1B[0m",
48
+ [VirtualType.InlineComponent]: "\x1B[34mInlineComponent\x1B[0m",
49
+ [VirtualType.Projection]: "\x1B[34mProjection\x1B[0m"
50
+ });
51
+ var QContainerValue;
52
+ !function(QContainerValue2) {
53
+ QContainerValue2.PAUSED = "paused", QContainerValue2.RESUMED = "resumed", QContainerValue2.HTML = "html", QContainerValue2.TEXT = "text";
54
+ }(QContainerValue || (QContainerValue = {}));
55
+ const QContainerSelector = "[q\\:container]:not([q\\:container=" + QContainerValue.HTML + "]):not([q\\:container=" + QContainerValue.TEXT + "])";
56
+ const dangerouslySetInnerHTML = "dangerouslySetInnerHTML";
57
+ const isQrl$1 = (value) => "function" == typeof value && "function" == typeof value.getSymbol;
58
+ const EMPTY_OBJ = {};
59
+ Object.freeze(EMPTY_OBJ);
60
+ class Subscriber {
61
+ constructor() {
62
+ __publicField(this, "$effectDependencies$", null);
63
+ }
64
+ }
65
+ function isSubscriber(value) {
66
+ return value instanceof Subscriber || value instanceof WrappedSignal;
67
+ }
68
+ const NEEDS_COMPUTATION = Symbol("invalid");
69
+ const throwIfQRLNotResolved = (qrl2) => {
70
+ if (!qrl2.resolved) {
71
+ throw qrl2.resolve();
72
+ }
73
+ };
74
+ const isSignal = (value) => value instanceof Signal;
75
+ class EffectData {
76
+ constructor(data) {
77
+ __publicField(this, "data");
78
+ this.data = data;
79
+ }
80
+ }
81
+ var EffectSubscriptionsProp;
82
+ var EffectProperty;
83
+ !function(EffectSubscriptionsProp2) {
84
+ EffectSubscriptionsProp2[EffectSubscriptionsProp2.EFFECT = 0] = "EFFECT", EffectSubscriptionsProp2[EffectSubscriptionsProp2.PROPERTY = 1] = "PROPERTY", EffectSubscriptionsProp2[EffectSubscriptionsProp2.FIRST_BACK_REF_OR_DATA = 2] = "FIRST_BACK_REF_OR_DATA";
85
+ }(EffectSubscriptionsProp || (EffectSubscriptionsProp = {})), function(EffectProperty2) {
86
+ EffectProperty2.COMPONENT = ":", EffectProperty2.VNODE = ".";
87
+ }(EffectProperty || (EffectProperty = {}));
88
+ class Signal {
89
+ constructor(container, value) {
90
+ __publicField(this, "$untrackedValue$");
91
+ __publicField(this, "$effects$", null);
92
+ __publicField(this, "$container$", null);
93
+ this.$container$ = container, this.$untrackedValue$ = value;
94
+ }
95
+ get untrackedValue() {
96
+ return this.$untrackedValue$;
97
+ }
98
+ set untrackedValue(value) {
99
+ this.$untrackedValue$ = value;
100
+ }
101
+ get value() {
102
+ const ctx = tryGetInvokeContext();
103
+ if (ctx) {
104
+ if (null === this.$container$) {
105
+ if (!ctx.$container$) {
106
+ return this.untrackedValue;
107
+ }
108
+ this.$container$ = ctx.$container$;
109
+ } else {
110
+ assertTrue(!ctx.$container$ || ctx.$container$ === this.$container$);
111
+ }
112
+ const effectSubscriber = ctx.$effectSubscriber$;
113
+ if (effectSubscriber) {
114
+ const effects = this.$effects$ || (this.$effects$ = []);
115
+ ensureContainsEffect(effects, effectSubscriber), ensureContains(effectSubscriber, this), isSubscriber(this) && ensureEffectContainsSubscriber(effectSubscriber[EffectSubscriptionsProp.EFFECT], this, this.$container$);
116
+ }
117
+ }
118
+ return this.untrackedValue;
119
+ }
120
+ set value(value) {
121
+ value !== this.$untrackedValue$ && (this.$untrackedValue$ = value, triggerEffects(this.$container$, this, this.$effects$));
122
+ }
123
+ valueOf() {
124
+ }
125
+ toString() {
126
+ return `[${this.constructor.name}${this.$invalid$ ? " INVALID" : ""} ${String(this.$untrackedValue$)}]` + (this.$effects$?.map((e) => "\n -> " + pad(qwikDebugToString(e[0]), " ")).join("\n") || "");
127
+ }
128
+ toJSON() {
129
+ return {
130
+ value: this.$untrackedValue$
131
+ };
132
+ }
133
+ }
134
+ const ensureContains = (array, value) => {
135
+ -1 === array.indexOf(value) && array.push(value);
136
+ };
137
+ const ensureContainsEffect = (array, effectSubscriptions) => {
138
+ for (let i = 0; i < array.length; i++) {
139
+ const existingEffect = array[i];
140
+ if (existingEffect[0] === effectSubscriptions[0] && existingEffect[1] === effectSubscriptions[1]) {
141
+ return;
142
+ }
143
+ }
144
+ array.push(effectSubscriptions);
145
+ };
146
+ const ensureEffectContainsSubscriber = (effect, subscriber, container) => {
147
+ if (isSubscriber(effect)) {
148
+ if (effect.$effectDependencies$ || (effect.$effectDependencies$ = []), subscriberExistInSubscribers(effect.$effectDependencies$, subscriber)) {
149
+ return;
150
+ }
151
+ effect.$effectDependencies$.push(subscriber);
152
+ } else if (vnode_isVNode(effect) && vnode_isVirtualVNode(effect)) {
153
+ let subscribers = vnode_getProp(effect, "q:subs", container ? container.$getObjectById$ : null);
154
+ if (subscribers || (subscribers = []), subscriberExistInSubscribers(subscribers, subscriber)) {
155
+ return;
156
+ }
157
+ subscribers.push(subscriber), vnode_setProp(effect, "q:subs", subscribers);
158
+ } else if (isSSRNode(effect)) {
159
+ let subscribers = effect.getProp("q:subs");
160
+ if (subscribers || (subscribers = []), subscriberExistInSubscribers(subscribers, subscriber)) {
161
+ return;
162
+ }
163
+ subscribers.push(subscriber), effect.setProp("q:subs", subscribers);
164
+ }
165
+ };
166
+ const isSSRNode = (effect) => "setProp" in effect && "getProp" in effect && "removeProp" in effect && "id" in effect;
167
+ const subscriberExistInSubscribers = (subscribers, subscriber) => {
168
+ for (let i = 0; i < subscribers.length; i++) {
169
+ if (subscribers[i] === subscriber) {
170
+ return true;
171
+ }
172
+ }
173
+ return false;
174
+ };
175
+ const triggerEffects = (container, signal, effects) => {
176
+ if (effects) {
177
+ const scheduleEffect = (effectSubscriptions) => {
178
+ const effect = effectSubscriptions[EffectSubscriptionsProp.EFFECT];
179
+ const property = effectSubscriptions[EffectSubscriptionsProp.PROPERTY];
180
+ if (isTask(effect)) {
181
+ effect.$flags$ |= TaskFlags.DIRTY;
182
+ let choreType = ChoreType.TASK;
183
+ effect.$flags$ & TaskFlags.VISIBLE_TASK ? choreType = ChoreType.VISIBLE : effect.$flags$ & TaskFlags.RESOURCE && (choreType = ChoreType.RESOURCE), container.$scheduler$(choreType, effect);
184
+ } else if (effect instanceof Signal) {
185
+ effect instanceof ComputedSignal && (effect.$computeQrl$.resolved || container.$scheduler$(ChoreType.QRL_RESOLVE, null, effect.$computeQrl$));
186
+ try {
187
+ retryOnPromise(() => effect.$invalidate$());
188
+ } catch (e) {
189
+ logError(e);
190
+ }
191
+ } else if (property === EffectProperty.COMPONENT) {
192
+ const host = effect;
193
+ const qrl2 = container.getHostProp(host, "q:renderFn");
194
+ const props = container.getHostProp(host, "q:props");
195
+ container.$scheduler$(ChoreType.COMPONENT, host, qrl2, props);
196
+ } else if (property === EffectProperty.VNODE) {
197
+ container.$scheduler$(ChoreType.NODE_DIFF, effect, effect, signal);
198
+ } else {
199
+ let effectData = effectSubscriptions[EffectSubscriptionsProp.FIRST_BACK_REF_OR_DATA];
200
+ if (effectData instanceof EffectData) {
201
+ const payload = {
202
+ ...effectData.data,
203
+ $value$: signal
204
+ };
205
+ container.$scheduler$(ChoreType.NODE_PROP, effect, property, payload);
206
+ }
207
+ }
208
+ };
209
+ effects.forEach(scheduleEffect);
210
+ }
211
+ };
212
+ class ComputedSignal extends Signal {
213
+ constructor(container, fn) {
214
+ super(container, NEEDS_COMPUTATION);
215
+ __publicField(this, "$computeQrl$");
216
+ __publicField(this, "$invalid$", true);
217
+ this.$computeQrl$ = fn;
218
+ }
219
+ $invalidate$() {
220
+ this.$invalid$ = true, this.$effects$?.length && this.$computeIfNeeded$() && triggerEffects(this.$container$, this, this.$effects$);
221
+ }
222
+ force() {
223
+ this.$invalid$ = true, triggerEffects(this.$container$, this, this.$effects$);
224
+ }
225
+ get untrackedValue() {
226
+ return this.$computeIfNeeded$(), assertFalse(this.$untrackedValue$ === NEEDS_COMPUTATION), this.$untrackedValue$;
227
+ }
228
+ $computeIfNeeded$() {
229
+ if (!this.$invalid$) {
230
+ return false;
231
+ }
232
+ const computeQrl = this.$computeQrl$;
233
+ throwIfQRLNotResolved(computeQrl);
234
+ const ctx = tryGetInvokeContext();
235
+ const previousEffectSubscription = ctx?.$effectSubscriber$;
236
+ ctx && (ctx.$effectSubscriber$ = [this, EffectProperty.VNODE]);
237
+ try {
238
+ const untrackedValue = computeQrl.getFn(ctx)();
239
+ isPromise(untrackedValue) && throwErrorAndStop(`useComputedSignal$ QRL ${computeQrl.dev ? `${computeQrl.dev.file} ` : ""}${computeQrl.$hash$} returned a Promise`), this.$invalid$ = false;
240
+ const didChange = untrackedValue !== this.$untrackedValue$;
241
+ return didChange && (this.$untrackedValue$ = untrackedValue), didChange;
242
+ } finally {
243
+ ctx && (ctx.$effectSubscriber$ = previousEffectSubscription);
244
+ }
245
+ }
246
+ get value() {
247
+ return super.value;
248
+ }
249
+ set value(_) {
250
+ throwErrorAndStop("ComputedSignal is read-only");
251
+ }
252
+ }
253
+ class WrappedSignal extends Signal {
254
+ constructor(container, fn, args, fnStr) {
255
+ super(container, NEEDS_COMPUTATION);
256
+ __publicField(this, "$args$");
257
+ __publicField(this, "$func$");
258
+ __publicField(this, "$funcStr$");
259
+ __publicField(this, "$invalid$", true);
260
+ __publicField(this, "$effectDependencies$", null);
261
+ this.$args$ = args, this.$func$ = fn, this.$funcStr$ = fnStr;
262
+ }
263
+ $invalidate$() {
264
+ this.$invalid$ = true, this.$effects$?.length && this.$computeIfNeeded$() && triggerEffects(this.$container$, this, this.$effects$);
265
+ }
266
+ force() {
267
+ this.$invalid$ = true, triggerEffects(this.$container$, this, this.$effects$);
268
+ }
269
+ get untrackedValue() {
270
+ return this.$computeIfNeeded$(), assertFalse(this.$untrackedValue$ === NEEDS_COMPUTATION), this.$untrackedValue$;
271
+ }
272
+ $computeIfNeeded$() {
273
+ if (!this.$invalid$) {
274
+ return false;
275
+ }
276
+ const untrackedValue = trackSignal(() => this.$func$(...this.$args$), this, EffectProperty.VNODE, this.$container$);
277
+ const didChange = untrackedValue !== this.$untrackedValue$;
278
+ return didChange && (this.$untrackedValue$ = untrackedValue), didChange;
279
+ }
280
+ get value() {
281
+ return super.value;
282
+ }
283
+ set value(_) {
284
+ throwErrorAndStop("WrappedSignal is read-only");
285
+ }
286
+ }
287
+ var TaskFlags;
288
+ !function(TaskFlags2) {
289
+ TaskFlags2[TaskFlags2.VISIBLE_TASK = 1] = "VISIBLE_TASK", TaskFlags2[TaskFlags2.TASK = 2] = "TASK", TaskFlags2[TaskFlags2.RESOURCE = 4] = "RESOURCE", TaskFlags2[TaskFlags2.DIRTY = 8] = "DIRTY";
290
+ }(TaskFlags || (TaskFlags = {}));
291
+ class Task extends Subscriber {
292
+ constructor($flags$, $index$, $el$, $qrl$, $state$, $destroy$) {
293
+ super();
294
+ __publicField(this, "$flags$");
295
+ __publicField(this, "$index$");
296
+ __publicField(this, "$el$");
297
+ __publicField(this, "$qrl$");
298
+ __publicField(this, "$state$");
299
+ __publicField(this, "$destroy$");
300
+ this.$flags$ = $flags$, this.$index$ = $index$, this.$el$ = $el$, this.$qrl$ = $qrl$, this.$state$ = $state$, this.$destroy$ = $destroy$;
301
+ }
302
+ }
303
+ const isTask = (value) => value instanceof Task;
304
+ const STORE_TARGET = Symbol("store.target");
305
+ var StoreFlags;
306
+ !function(StoreFlags2) {
307
+ StoreFlags2[StoreFlags2.NONE = 0] = "NONE", StoreFlags2[StoreFlags2.RECURSIVE = 1] = "RECURSIVE", StoreFlags2[StoreFlags2.IMMUTABLE = 2] = "IMMUTABLE";
308
+ }(StoreFlags || (StoreFlags = {}));
309
+ const isStore = (value) => STORE_TARGET in value;
310
+ var VNodeFlags;
311
+ var VNodeFlagsIndex;
312
+ var VNodeProps;
313
+ var ElementVNodeProps;
314
+ var TextVNodeProps;
315
+ var VirtualVNodeProps;
316
+ !function(VNodeFlags2) {
317
+ VNodeFlags2[VNodeFlags2.Element = 1] = "Element", VNodeFlags2[VNodeFlags2.Virtual = 2] = "Virtual", VNodeFlags2[VNodeFlags2.ELEMENT_OR_VIRTUAL_MASK = 3] = "ELEMENT_OR_VIRTUAL_MASK", VNodeFlags2[VNodeFlags2.ELEMENT_OR_TEXT_MASK = 5] = "ELEMENT_OR_TEXT_MASK", VNodeFlags2[VNodeFlags2.TYPE_MASK = 7] = "TYPE_MASK", VNodeFlags2[VNodeFlags2.INFLATED_TYPE_MASK = 15] = "INFLATED_TYPE_MASK", VNodeFlags2[VNodeFlags2.Text = 4] = "Text", VNodeFlags2[VNodeFlags2.Inflated = 8] = "Inflated", VNodeFlags2[VNodeFlags2.Resolved = 16] = "Resolved", VNodeFlags2[VNodeFlags2.Deleted = 32] = "Deleted", VNodeFlags2[VNodeFlags2.NAMESPACE_MASK = 192] = "NAMESPACE_MASK", VNodeFlags2[VNodeFlags2.NEGATED_NAMESPACE_MASK = -193] = "NEGATED_NAMESPACE_MASK", VNodeFlags2[VNodeFlags2.NS_html = 0] = "NS_html", VNodeFlags2[VNodeFlags2.NS_svg = 64] = "NS_svg", VNodeFlags2[VNodeFlags2.NS_math = 128] = "NS_math";
318
+ }(VNodeFlags || (VNodeFlags = {})), function(VNodeFlagsIndex2) {
319
+ VNodeFlagsIndex2[VNodeFlagsIndex2.mask = -256] = "mask", VNodeFlagsIndex2[VNodeFlagsIndex2.negated_mask = 255] = "negated_mask", VNodeFlagsIndex2[VNodeFlagsIndex2.shift = 8] = "shift";
320
+ }(VNodeFlagsIndex || (VNodeFlagsIndex = {})), function(VNodeProps2) {
321
+ VNodeProps2[VNodeProps2.flags = 0] = "flags", VNodeProps2[VNodeProps2.parent = 1] = "parent", VNodeProps2[VNodeProps2.previousSibling = 2] = "previousSibling", VNodeProps2[VNodeProps2.nextSibling = 3] = "nextSibling";
322
+ }(VNodeProps || (VNodeProps = {})), function(ElementVNodeProps2) {
323
+ ElementVNodeProps2[ElementVNodeProps2.firstChild = 4] = "firstChild", ElementVNodeProps2[ElementVNodeProps2.lastChild = 5] = "lastChild", ElementVNodeProps2[ElementVNodeProps2.element = 6] = "element", ElementVNodeProps2[ElementVNodeProps2.elementName = 7] = "elementName", ElementVNodeProps2[ElementVNodeProps2.PROPS_OFFSET = 8] = "PROPS_OFFSET";
324
+ }(ElementVNodeProps || (ElementVNodeProps = {})), function(TextVNodeProps2) {
325
+ TextVNodeProps2[TextVNodeProps2.node = 4] = "node", TextVNodeProps2[TextVNodeProps2.text = 5] = "text";
326
+ }(TextVNodeProps || (TextVNodeProps = {})), function(VirtualVNodeProps2) {
327
+ VirtualVNodeProps2[VirtualVNodeProps2.firstChild = 4] = "firstChild", VirtualVNodeProps2[VirtualVNodeProps2.lastChild = 5] = "lastChild", VirtualVNodeProps2[VirtualVNodeProps2.PROPS_OFFSET = 6] = "PROPS_OFFSET";
328
+ }(VirtualVNodeProps || (VirtualVNodeProps = {}));
329
+ var SiblingsArray;
330
+ var ChoreType;
331
+ !function(SiblingsArray2) {
332
+ SiblingsArray2[SiblingsArray2.Name = 0] = "Name", SiblingsArray2[SiblingsArray2.Key = 1] = "Key", SiblingsArray2[SiblingsArray2.VNode = 2] = "VNode", SiblingsArray2[SiblingsArray2.Size = 3] = "Size", SiblingsArray2[SiblingsArray2.NextVNode = 5] = "NextVNode";
333
+ }(SiblingsArray || (SiblingsArray = {})), function(ChoreType2) {
334
+ ChoreType2[ChoreType2.MACRO = 112] = "MACRO", ChoreType2[ChoreType2.MICRO = 15] = "MICRO", ChoreType2[ChoreType2.QRL_RESOLVE = 1] = "QRL_RESOLVE", ChoreType2[ChoreType2.RESOURCE = 2] = "RESOURCE", ChoreType2[ChoreType2.TASK = 3] = "TASK", ChoreType2[ChoreType2.NODE_DIFF = 4] = "NODE_DIFF", ChoreType2[ChoreType2.NODE_PROP = 5] = "NODE_PROP", ChoreType2[ChoreType2.COMPONENT_SSR = 6] = "COMPONENT_SSR", ChoreType2[ChoreType2.COMPONENT = 7] = "COMPONENT", ChoreType2[ChoreType2.WAIT_FOR_COMPONENTS = 16] = "WAIT_FOR_COMPONENTS", ChoreType2[ChoreType2.JOURNAL_FLUSH = 48] = "JOURNAL_FLUSH", ChoreType2[ChoreType2.VISIBLE = 64] = "VISIBLE", ChoreType2[ChoreType2.CLEANUP_VISIBLE = 80] = "CLEANUP_VISIBLE", ChoreType2[ChoreType2.WAIT_FOR_ALL = 127] = "WAIT_FOR_ALL";
335
+ }(ChoreType || (ChoreType = {}));
336
+ let _context;
337
+ const tryGetInvokeContext = () => {
338
+ if (!_context) {
339
+ const context = "undefined" != typeof document && document && document.__q_context__;
340
+ if (!context) {
341
+ return;
342
+ }
343
+ return isArray(context) ? document.__q_context__ = newInvokeContextFromTuple(context) : context;
344
+ }
345
+ return _context;
346
+ };
347
+ function invoke(context, fn, ...args) {
348
+ return invokeApply.call(this, context, fn, args);
349
+ }
350
+ function invokeApply(context, fn, args) {
351
+ const previousContext = _context;
352
+ let returnValue;
353
+ try {
354
+ _context = context, returnValue = fn.apply(this, args);
355
+ } finally {
356
+ _context = previousContext;
357
+ }
358
+ return returnValue;
359
+ }
360
+ const newInvokeContextFromTuple = ([element, event, url]) => {
361
+ const container = element.closest(QContainerSelector);
362
+ const locale = container?.getAttribute("q:locale") || void 0;
363
+ return newInvokeContext(locale, void 0, element, event, url);
364
+ };
365
+ const newInvokeContext = (locale, hostElement, element, event, url) => {
366
+ const ctx = {
367
+ $url$: url,
368
+ $i$: 0,
369
+ $hostElement$: hostElement,
370
+ $element$: element,
371
+ $event$: event,
372
+ $qrl$: void 0,
373
+ $effectSubscriber$: void 0,
374
+ $locale$: locale || ("object" == typeof event && event && "locale" in event ? event.locale : void 0),
375
+ $container$: void 0
376
+ };
377
+ return ctx;
378
+ };
379
+ const untrack = (fn) => invoke(void 0, fn);
380
+ const trackInvocation = /* @__PURE__ */ newInvokeContext(void 0, void 0, void 0, "qRender");
381
+ const trackSignal = (fn, subscriber, property, container, data) => {
382
+ const previousSubscriber = trackInvocation.$effectSubscriber$;
383
+ const previousContainer = trackInvocation.$container$;
384
+ try {
385
+ return trackInvocation.$effectSubscriber$ = [subscriber, property], data && trackInvocation.$effectSubscriber$.push(data), trackInvocation.$container$ = container, invoke(trackInvocation, fn);
386
+ } finally {
387
+ trackInvocation.$effectSubscriber$ = previousSubscriber, trackInvocation.$container$ = previousContainer;
388
+ }
389
+ };
390
+ const _CONST_PROPS = Symbol("CONST");
391
+ const _VAR_PROPS = Symbol("VAR");
392
+ const _jsxSorted = (type, varProps, constProps, children, flags, key) => {
393
+ const processed = null == key ? null : String(key);
394
+ const node = new JSXNodeImpl(type, varProps || {}, null, children, flags, processed);
395
+ return node;
396
+ };
397
+ const _jsxSplit = (type, varProps, constProps, children, flags, key, dev) => {
398
+ let sortedProps;
399
+ return sortedProps = varProps ? Object.fromEntries(untrack(() => Object.entries(varProps)).filter((entry) => {
400
+ const attr = entry[0];
401
+ return "children" === attr ? (children ?? (children = entry[1]), false) : "key" === attr ? (key = entry[1], false) : !constProps;
402
+ }).sort(([a2], [b]) => a2 < b ? -1 : 1)) : EMPTY_OBJ, _jsxSorted(type, sortedProps, constProps, children, flags, key);
403
+ };
404
+ const jsx = (type, props, key) => _jsxSplit(type, props, null, null, 0, null);
405
+ class JSXNodeImpl {
406
+ constructor(type, varProps, constProps, children, flags, key = null) {
407
+ __publicField(this, "type");
408
+ __publicField(this, "varProps");
409
+ __publicField(this, "constProps");
410
+ __publicField(this, "children");
411
+ __publicField(this, "flags");
412
+ __publicField(this, "key");
413
+ __publicField(this, "dev");
414
+ __publicField(this, "_proxy", null);
415
+ this.type = type, this.varProps = varProps, this.constProps = constProps, this.children = children, this.flags = flags, this.key = key;
416
+ }
417
+ get props() {
418
+ return this._proxy || (this._proxy = createPropsProxy(this.varProps, this.constProps, this.children)), this._proxy;
419
+ }
420
+ }
421
+ const isJSXNode = (n) => n instanceof JSXNodeImpl;
422
+ function createPropsProxy(varProps, constProps, children) {
423
+ return new Proxy({}, new PropsProxyHandler(varProps, constProps, children));
424
+ }
425
+ class PropsProxyHandler {
426
+ constructor($varProps$, $constProps$, $children$) {
427
+ __publicField(this, "$varProps$");
428
+ __publicField(this, "$constProps$");
429
+ __publicField(this, "$children$");
430
+ this.$varProps$ = $varProps$, this.$constProps$ = $constProps$, this.$children$ = $children$;
431
+ }
432
+ get(_, prop) {
433
+ if (prop === _CONST_PROPS) {
434
+ return this.$constProps$;
435
+ }
436
+ if (prop === _VAR_PROPS) {
437
+ return this.$varProps$;
438
+ }
439
+ if (null != this.$children$ && "children" === prop) {
440
+ return this.$children$;
441
+ }
442
+ const value = this.$constProps$ && prop in this.$constProps$ ? this.$constProps$[prop] : this.$varProps$[prop];
443
+ return value instanceof WrappedSignal ? value.value : value;
444
+ }
445
+ set(_, prop, value) {
446
+ return prop === _CONST_PROPS ? (this.$constProps$ = value, true) : prop === _VAR_PROPS ? (this.$varProps$ = value, true) : (this.$constProps$ && prop in this.$constProps$ ? this.$constProps$[prop] = value : this.$varProps$[prop] = value, true);
447
+ }
448
+ deleteProperty(_, prop) {
449
+ if ("string" != typeof prop) {
450
+ return false;
451
+ }
452
+ let didDelete = delete this.$varProps$[prop];
453
+ return this.$constProps$ && (didDelete = delete this.$constProps$[prop] || didDelete), null != this.$children$ && "children" === prop && (this.$children$ = null), didDelete;
454
+ }
455
+ has(_, prop) {
456
+ return "children" === prop && null != this.$children$ || prop === _CONST_PROPS || prop === _VAR_PROPS || prop in this.$varProps$ || !!this.$constProps$ && prop in this.$constProps$;
457
+ }
458
+ getOwnPropertyDescriptor(target, p) {
459
+ return {
460
+ configurable: true,
461
+ enumerable: true,
462
+ value: "children" === p && null != this.$children$ ? this.$children$ : this.$constProps$ && p in this.$constProps$ ? this.$constProps$[p] : this.$varProps$[p]
463
+ };
464
+ }
465
+ ownKeys() {
466
+ const out = Object.keys(this.$varProps$);
467
+ if (null != this.$children$ && -1 === out.indexOf("children") && out.push("children"), this.$constProps$) {
468
+ for (const key in this.$constProps$) {
469
+ -1 === out.indexOf(key) && out.push(key);
470
+ }
471
+ }
472
+ return out;
473
+ }
474
+ }
475
+ const stringifyPath = [];
476
+ function qwikDebugToString(value) {
477
+ if (null === value) {
478
+ return "null";
479
+ }
480
+ if (void 0 === value) {
481
+ return "undefined";
482
+ }
483
+ if ("string" == typeof value) {
484
+ return '"' + value + '"';
485
+ }
486
+ if ("number" == typeof value || "boolean" == typeof value) {
487
+ return String(value);
488
+ }
489
+ if (isTask(value)) {
490
+ return `Task(${qwikDebugToString(value.$qrl$)})`;
491
+ }
492
+ if (isQrl$1(value)) {
493
+ return `Qrl(${value.$symbol$})`;
494
+ }
495
+ if ("object" == typeof value || "function" == typeof value) {
496
+ if (stringifyPath.includes(value)) {
497
+ return "*";
498
+ }
499
+ try {
500
+ if (stringifyPath.push(value), Array.isArray(value)) {
501
+ return vnode_isVNode(value) ? "(" + vnode_getProp(value, "q:type", null) + ")" : value.map(qwikDebugToString);
502
+ }
503
+ if (isSignal(value)) {
504
+ return value instanceof WrappedSignal ? "WrappedSignal" : value instanceof ComputedSignal ? "ComputedSignal" : "Signal";
505
+ }
506
+ if (isStore(value)) {
507
+ return "Store";
508
+ }
509
+ if (isJSXNode(value)) {
510
+ return jsxToString(value);
511
+ }
512
+ } finally {
513
+ stringifyPath.pop();
514
+ }
515
+ }
516
+ return value;
517
+ }
518
+ const pad = (text, prefix) => String(text).split("\n").map((line, idx) => (idx ? prefix : "") + line).join("\n");
519
+ const jsxToString = (value) => {
520
+ if (isJSXNode(value)) {
521
+ let type = value.type;
522
+ "function" == typeof type && (type = type.name || "Component");
523
+ let str = "<" + value.type;
524
+ if (value.props) {
525
+ for (const [key, val] of Object.entries(value.props)) {
526
+ str += " " + key + "=" + qwikDebugToString(val);
527
+ }
528
+ const children = value.children;
529
+ null != children ? (str += ">", Array.isArray(children) ? children.forEach((child) => {
530
+ str += jsxToString(child);
531
+ }) : str += jsxToString(children), str += "</" + value.type + ">") : str += "/>";
532
+ }
533
+ return str;
534
+ }
535
+ return String(value);
536
+ };
537
+ var VNodeJournalOpCode;
538
+ !function(VNodeJournalOpCode2) {
539
+ VNodeJournalOpCode2[VNodeJournalOpCode2.SetText = 1] = "SetText", VNodeJournalOpCode2[VNodeJournalOpCode2.SetAttribute = 2] = "SetAttribute", VNodeJournalOpCode2[VNodeJournalOpCode2.HoistStyles = 3] = "HoistStyles", VNodeJournalOpCode2[VNodeJournalOpCode2.Remove = 4] = "Remove", VNodeJournalOpCode2[VNodeJournalOpCode2.Insert = 5] = "Insert";
540
+ }(VNodeJournalOpCode || (VNodeJournalOpCode = {}));
541
+ const vnode_isVNode = (vNode) => vNode instanceof VNodeArray;
542
+ const vnode_isVirtualVNode = (vNode) => {
543
+ return (vNode[VNodeProps.flags] & VNodeFlags.Virtual) === VNodeFlags.Virtual;
544
+ };
545
+ const ensureElementOrVirtualVNode = (vNode) => {
546
+ assertTrue(!!(vNode[VNodeProps.flags] & VNodeFlags.ELEMENT_OR_VIRTUAL_MASK), "Expecting ElementVNode or VirtualVNode was: " + vnode_getNodeTypeName(vNode));
547
+ };
548
+ const vnode_getNodeTypeName = (vNode) => {
549
+ if (vNode) {
550
+ switch (vNode[VNodeProps.flags] & VNodeFlags.TYPE_MASK) {
551
+ case VNodeFlags.Element:
552
+ return "Element";
553
+ case VNodeFlags.Virtual:
554
+ return "Virtual";
555
+ case VNodeFlags.Text:
556
+ return "Text";
557
+ }
558
+ }
559
+ return "<unknown>";
560
+ };
561
+ const vnode_ensureElementInflated = (vnode) => {
562
+ if ((vnode[VNodeProps.flags] & VNodeFlags.INFLATED_TYPE_MASK) === VNodeFlags.Element) {
563
+ const elementVNode = vnode;
564
+ elementVNode[VNodeProps.flags] ^= VNodeFlags.Inflated;
565
+ const element = elementVNode[ElementVNodeProps.element];
566
+ const attributes = element.attributes;
567
+ for (let idx = 0; idx < attributes.length; idx++) {
568
+ const attr = attributes[idx];
569
+ const key = attr.name;
570
+ if (":" === key || !key) {
571
+ break;
572
+ }
573
+ if (key.startsWith("q:container")) {
574
+ attr.value === QContainerValue.HTML ? mapArray_set(elementVNode, dangerouslySetInnerHTML, element.innerHTML, ElementVNodeProps.PROPS_OFFSET) : attr.value === QContainerValue.TEXT && "value" in element && mapArray_set(elementVNode, "value", element.value, ElementVNodeProps.PROPS_OFFSET);
575
+ } else if (!key.startsWith("on:")) {
576
+ mapArray_set(elementVNode, key, attr.value, ElementVNodeProps.PROPS_OFFSET);
577
+ }
578
+ }
579
+ }
580
+ };
581
+ const mapApp_findIndx = (elementVNode, key, start) => {
582
+ let bottom = start >> 1;
583
+ let top = elementVNode.length - 2 >> 1;
584
+ for (; bottom <= top; ) {
585
+ const mid = bottom + (top - bottom >> 1);
586
+ const midKey = elementVNode[mid << 1];
587
+ if (midKey === key) {
588
+ return mid << 1;
589
+ }
590
+ midKey < key ? bottom = mid + 1 : top = mid - 1;
591
+ }
592
+ return ~(bottom << 1);
593
+ };
594
+ const mapArray_set = (elementVNode, key, value, start) => {
595
+ const indx = mapApp_findIndx(elementVNode, key, start);
596
+ indx >= 0 ? null == value ? elementVNode.splice(indx, 2) : elementVNode[indx + 1] = value : null != value && elementVNode.splice(~indx, 0, key, value);
597
+ };
598
+ const vnode_getProp = (vnode, key, getObject) => {
599
+ const type = vnode[VNodeProps.flags];
600
+ if (type & VNodeFlags.ELEMENT_OR_VIRTUAL_MASK) {
601
+ type & VNodeFlags.Element && vnode_ensureElementInflated(vnode);
602
+ const idx = mapApp_findIndx(vnode, key, vnode_getPropStartIndex(vnode));
603
+ if (idx >= 0) {
604
+ let value = vnode[idx + 1];
605
+ return "string" == typeof value && getObject && (vnode[idx + 1] = value = getObject(value)), value;
606
+ }
607
+ }
608
+ return null;
609
+ };
610
+ const vnode_setProp = (vnode, key, value) => {
611
+ ensureElementOrVirtualVNode(vnode);
612
+ const idx = mapApp_findIndx(vnode, key, vnode_getPropStartIndex(vnode));
613
+ idx >= 0 ? vnode[idx + 1] = value : null != value && vnode.splice(~idx, 0, key, value);
614
+ };
615
+ const vnode_getPropStartIndex = (vnode) => {
616
+ const type = vnode[VNodeProps.flags] & VNodeFlags.TYPE_MASK;
617
+ if (type === VNodeFlags.Element) {
618
+ return ElementVNodeProps.PROPS_OFFSET;
619
+ }
620
+ if (type === VNodeFlags.Virtual) {
621
+ return VirtualVNodeProps.PROPS_OFFSET;
622
+ }
623
+ throw throwErrorAndStop("Invalid vnode type.");
624
+ };
625
+ const VNodeArray = class VNode extends Array {
626
+ static createElement(flags, parent, previousSibling, nextSibling, firstChild, lastChild, element, elementName) {
627
+ const vnode = new VNode(flags, parent, previousSibling, nextSibling);
628
+ return vnode.push(firstChild, lastChild, element, elementName), vnode;
629
+ }
630
+ static createText(flags, parent, previousSibling, nextSibling, textNode, text) {
631
+ const vnode = new VNode(flags, parent, previousSibling, nextSibling);
632
+ return vnode.push(textNode, text), vnode;
633
+ }
634
+ static createVirtual(flags, parent, previousSibling, nextSibling, firstChild, lastChild) {
635
+ const vnode = new VNode(flags, parent, previousSibling, nextSibling);
636
+ return vnode.push(firstChild, lastChild), vnode;
637
+ }
638
+ constructor(flags, parent, previousSibling, nextSibling) {
639
+ super(), this.push(flags, parent, previousSibling, nextSibling);
640
+ }
641
+ };
642
+ var ExperimentalFeatures;
643
+ var VNodeDataFlag;
644
+ !function(ExperimentalFeatures2) {
645
+ ExperimentalFeatures2.preventNavigate = "preventNavigate", ExperimentalFeatures2.valibot = "valibot", ExperimentalFeatures2.noSPA = "noSPA", ExperimentalFeatures2.webWorker = "webWorker", ExperimentalFeatures2.insights = "insights";
646
+ }(ExperimentalFeatures || (ExperimentalFeatures = {})), function(VNodeDataFlag2) {
647
+ VNodeDataFlag2[VNodeDataFlag2.NONE = 0] = "NONE", VNodeDataFlag2[VNodeDataFlag2.TEXT_DATA = 1] = "TEXT_DATA", VNodeDataFlag2[VNodeDataFlag2.VIRTUAL_NODE = 2] = "VIRTUAL_NODE", VNodeDataFlag2[VNodeDataFlag2.REFERENCE = 4] = "REFERENCE", VNodeDataFlag2[VNodeDataFlag2.SERIALIZE = 8] = "SERIALIZE";
648
+ }(VNodeDataFlag || (VNodeDataFlag = {}));
649
+ var TypeIds;
650
+ var Constants;
651
+ !function(TypeIds2) {
652
+ TypeIds2[TypeIds2.RootRef = 0] = "RootRef", TypeIds2[TypeIds2.Constant = 1] = "Constant", TypeIds2[TypeIds2.Number = 2] = "Number", TypeIds2[TypeIds2.String = 3] = "String", TypeIds2[TypeIds2.Array = 4] = "Array", TypeIds2[TypeIds2.URL = 5] = "URL", TypeIds2[TypeIds2.Date = 6] = "Date", TypeIds2[TypeIds2.Regex = 7] = "Regex", TypeIds2[TypeIds2.VNode = 8] = "VNode", TypeIds2[TypeIds2.RefVNode = 9] = "RefVNode", TypeIds2[TypeIds2.BigInt = 10] = "BigInt", TypeIds2[TypeIds2.URLSearchParams = 11] = "URLSearchParams", TypeIds2[TypeIds2.Error = 12] = "Error", TypeIds2[TypeIds2.Object = 13] = "Object", TypeIds2[TypeIds2.Promise = 14] = "Promise", TypeIds2[TypeIds2.Set = 15] = "Set", TypeIds2[TypeIds2.Map = 16] = "Map", TypeIds2[TypeIds2.Uint8Array = 17] = "Uint8Array", TypeIds2[TypeIds2.QRL = 18] = "QRL", TypeIds2[TypeIds2.Task = 19] = "Task", TypeIds2[TypeIds2.Resource = 20] = "Resource", TypeIds2[TypeIds2.Component = 21] = "Component", TypeIds2[TypeIds2.Signal = 22] = "Signal", TypeIds2[TypeIds2.WrappedSignal = 23] = "WrappedSignal", TypeIds2[TypeIds2.ComputedSignal = 24] = "ComputedSignal", TypeIds2[TypeIds2.Store = 25] = "Store", TypeIds2[TypeIds2.StoreArray = 26] = "StoreArray", TypeIds2[TypeIds2.FormData = 27] = "FormData", TypeIds2[TypeIds2.JSXNode = 28] = "JSXNode", TypeIds2[TypeIds2.PropsProxy = 29] = "PropsProxy", TypeIds2[TypeIds2.EffectData = 30] = "EffectData";
653
+ }(TypeIds || (TypeIds = {})), function(Constants2) {
654
+ Constants2[Constants2.Undefined = 0] = "Undefined", Constants2[Constants2.Null = 1] = "Null", Constants2[Constants2.True = 2] = "True", Constants2[Constants2.False = 3] = "False", Constants2[Constants2.EmptyString = 4] = "EmptyString", Constants2[Constants2.EMPTY_ARRAY = 5] = "EMPTY_ARRAY", Constants2[Constants2.EMPTY_OBJ = 6] = "EMPTY_OBJ", Constants2[Constants2.NEEDS_COMPUTATION = 7] = "NEEDS_COMPUTATION", Constants2[Constants2.Slot = 8] = "Slot", Constants2[Constants2.Fragment = 9] = "Fragment", Constants2[Constants2.NaN = 10] = "NaN", Constants2[Constants2.PositiveInfinity = 11] = "PositiveInfinity", Constants2[Constants2.NegativeInfinity = 12] = "NegativeInfinity", Constants2[Constants2.MaxSafeInt = 13] = "MaxSafeInt", Constants2[Constants2.AlmostMaxSafeInt = 14] = "AlmostMaxSafeInt", Constants2[Constants2.MinSafeInt = 15] = "MinSafeInt";
655
+ }(Constants || (Constants = {}));
656
+ const insightsPing = sync$(
657
+ () => ((window2, document2, location2, navigator2, performance2, round, JSON_stringify) => {
658
+ var publicApiKey = __QI_KEY__, postUrl = __QI_URL__, getAttribute_s = "getAttribute", querySelector_s = "querySelector", manifest_s = "manifest", manifest_hash_s = `${manifest_s}-hash`, manifestHash_s = `${manifest_s}Hash`, version_s = "version", publicApiKey_s = "publicApiKey", sendBeacon_s = "sendBeacon", symbol_s = "symbol", length_s = "length", addEventListener_s = "addEventListener", route_s = "route", error_s = "error", stack_s = "stack", message_s = "message", symbols_s = `${symbol_s}s`, qVersion = document2[querySelector_s](`[q\\:${version_s}]`)?.[getAttribute_s](`q:${version_s}`) || "unknown", manifestHash = document2[querySelector_s](`[q\\:${manifest_hash_s}]`)?.[getAttribute_s](
659
+ `q:${manifest_hash_s}`
660
+ ) || "dev", qSymbols = [], existingSymbols = /* @__PURE__ */ new Set(), flushSymbolIndex = 0, lastReqTime = 0, timeoutID, qRouteChangeTime = performance2.now(), qRouteEl = document2[querySelector_s](`[q\\:${route_s}]`), flush = () => {
661
+ timeoutID = void 0;
662
+ if (qSymbols[length_s] > flushSymbolIndex) {
663
+ var payload = {
664
+ qVersion,
665
+ [publicApiKey_s]: publicApiKey,
666
+ [manifestHash_s]: manifestHash,
667
+ previousSymbol: flushSymbolIndex == 0 ? void 0 : qSymbols[flushSymbolIndex - 1][symbol_s],
668
+ [symbols_s]: qSymbols.slice(flushSymbolIndex)
669
+ };
670
+ navigator2[sendBeacon_s](postUrl, JSON_stringify(payload));
671
+ flushSymbolIndex = qSymbols[length_s];
672
+ }
673
+ }, debounceFlush = () => {
674
+ timeoutID != void 0 && clearTimeout(timeoutID);
675
+ timeoutID = setTimeout(flush, 1e3);
676
+ };
677
+ window2.qSymbolTracker = {
678
+ [symbols_s]: qSymbols,
679
+ [publicApiKey_s]: publicApiKey
680
+ };
681
+ if (qRouteEl) {
682
+ new MutationObserver((mutations) => {
683
+ var mutation = mutations.find((m) => m.attributeName === `q:${route_s}`);
684
+ if (mutation) {
685
+ qRouteChangeTime = performance2.now();
686
+ }
687
+ }).observe(qRouteEl, { attributes: true });
688
+ }
689
+ document2[addEventListener_s](
690
+ "visibilitychange",
691
+ () => document2.visibilityState === "hidden" && flush()
692
+ );
693
+ document2[addEventListener_s](`q${symbol_s}`, (_event) => {
694
+ var event = _event, detail = event.detail, symbolRequestTime = detail.reqTime, symbolDeliveredTime = event.timeStamp, symbol = detail[symbol_s];
695
+ if (!existingSymbols.has(symbol)) {
696
+ existingSymbols.add(symbol);
697
+ var route = qRouteEl?.[getAttribute_s](`q:${route_s}`) || "/";
698
+ qSymbols.push({
699
+ [symbol_s]: symbol,
700
+ [route_s]: route,
701
+ delay: round(0 - lastReqTime + symbolRequestTime),
702
+ latency: round(symbolDeliveredTime - symbolRequestTime),
703
+ timeline: round(0 - qRouteChangeTime + symbolRequestTime),
704
+ interaction: !!detail.element
705
+ });
706
+ lastReqTime = symbolDeliveredTime;
707
+ debounceFlush();
708
+ }
709
+ });
710
+ window2[addEventListener_s](error_s, (event) => {
711
+ var error = event[error_s];
712
+ if (!(error && typeof error === "object")) {
713
+ return;
714
+ }
715
+ var payload = {
716
+ url: `${location2}`,
717
+ [manifestHash_s]: manifestHash,
718
+ timestamp: (/* @__PURE__ */ new Date()).getTime(),
719
+ source: event.filename,
720
+ line: event.lineno,
721
+ column: event.colno,
722
+ [message_s]: event[message_s],
723
+ [error_s]: message_s in error ? error[message_s] : `${error}`,
724
+ [stack_s]: stack_s in error ? error[stack_s] || "" : ""
725
+ };
726
+ navigator2[sendBeacon_s](`${postUrl}${error_s}/`, JSON_stringify(payload));
727
+ });
728
+ })(window, document, location, navigator, performance, Math.round, JSON.stringify)
729
+ );
730
+ const Insights = component$(
731
+ ({ publicApiKey, postUrl }) => {
732
+ if (!__EXPERIMENTAL__.insights) {
733
+ throw new Error(
734
+ 'Insights is experimental and must be enabled with `experimental: ["insights"]` in the `qwikVite` plugin.'
735
+ );
736
+ }
737
+ if (!publicApiKey) {
738
+ return null;
739
+ }
740
+ return (
741
+ // the script will set the variables before the qinit event
742
+ /* @__PURE__ */ jsx("script", {
743
+ "document:onQInit$": insightsPing,
744
+ dangerouslySetInnerHTML: `__QI_KEY__=${JSON.stringify(publicApiKey)};__QI_URL__=${JSON.stringify(postUrl || `https://insights.qwik.dev/api/v1/${publicApiKey}/post/`)}`
745
+ })
746
+ );
747
+ }
748
+ );
749
+ export {
750
+ Insights
751
+ };