@qwik.dev/core 2.0.0-beta.3 → 2.0.0-beta.31

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 (139) hide show
  1. package/dist/backpatch/index.d.ts +2 -0
  2. package/dist/backpatch/index.mjs +5 -0
  3. package/dist/backpatch/package.json +8 -0
  4. package/dist/backpatch-executor.debug.js +39 -0
  5. package/dist/backpatch-executor.js +1 -0
  6. package/dist/build/package.json +1 -1
  7. package/dist/cli.mjs +12961 -0
  8. package/dist/core-internal.d.ts +1117 -707
  9. package/dist/core.min.mjs +2 -1
  10. package/dist/core.mjs +12216 -8953
  11. package/dist/core.mjs.map +1 -1
  12. package/dist/core.prod.mjs +8677 -5376
  13. package/dist/insights/index.qwik.mjs +80 -57
  14. package/dist/insights/vite/index.mjs +36 -33
  15. package/dist/loader/index.mjs +2 -2
  16. package/dist/loader/package.json +1 -1
  17. package/dist/optimizer.d.ts +47 -278
  18. package/dist/optimizer.mjs +2427 -3791
  19. package/dist/preloader.mjs +212 -117
  20. package/dist/qwikloader.debug.js +173 -135
  21. package/dist/qwikloader.js +1 -1
  22. package/dist/server.d.ts +51 -203
  23. package/dist/server.mjs +1661 -1157
  24. package/dist/server.prod.mjs +3452 -0
  25. package/dist/starters/adapters/aws-lambda/adapters/aws-lambda/{vite.config.mts → vite.config.ts} +2 -2
  26. package/dist/starters/adapters/aws-lambda/package.json +3 -2
  27. package/dist/starters/adapters/aws-lambda/src/entry_aws-lambda.tsx +2 -6
  28. package/dist/starters/adapters/azure-swa/adapters/azure-swa/{vite.config.mts → vite.config.ts} +2 -2
  29. package/dist/starters/adapters/azure-swa/package.json +3 -2
  30. package/dist/starters/adapters/azure-swa/src/entry.azure-swa.tsx +2 -3
  31. package/dist/starters/adapters/bun/adapters/bun/{vite.config.mts → vite.config.ts} +3 -3
  32. package/dist/starters/adapters/bun/package.json +3 -2
  33. package/dist/starters/adapters/bun/src/entry.bun.ts +0 -2
  34. package/dist/starters/adapters/cloud-run/adapters/cloud-run/{vite.config.mts → vite.config.ts} +2 -2
  35. package/dist/starters/adapters/cloud-run/package.json +3 -2
  36. package/dist/starters/adapters/cloud-run/src/entry.cloud-run.tsx +1 -3
  37. package/dist/starters/adapters/cloudflare-pages/adapters/cloudflare-pages/{vite.config.mts → vite.config.ts} +2 -2
  38. package/dist/starters/adapters/cloudflare-pages/package.json +3 -2
  39. package/dist/starters/adapters/cloudflare-pages/src/entry.cloudflare-pages.tsx +2 -3
  40. package/dist/starters/adapters/cloudflare-workers/README.md +52 -0
  41. package/dist/starters/adapters/cloudflare-workers/adapters/cloudflare-workers/vite.config.ts +15 -0
  42. package/dist/starters/adapters/cloudflare-workers/gitignore +3 -0
  43. package/dist/starters/adapters/cloudflare-workers/package.json +31 -0
  44. package/dist/starters/adapters/cloudflare-workers/public/.assetsignore +4 -0
  45. package/dist/starters/adapters/cloudflare-workers/public/_headers +11 -0
  46. package/dist/starters/adapters/cloudflare-workers/public/_redirects +1 -0
  47. package/dist/starters/adapters/cloudflare-workers/src/entry.cloudflare-pages.tsx +23 -0
  48. package/dist/starters/adapters/cloudflare-workers/worker-configuration.d.ts +5 -0
  49. package/dist/starters/adapters/cloudflare-workers/wrangler.jsonc +41 -0
  50. package/dist/starters/adapters/deno/adapters/deno/{vite.config.mts → vite.config.ts} +2 -2
  51. package/dist/starters/adapters/deno/package.json +3 -2
  52. package/dist/starters/adapters/deno/src/entry.deno.ts +0 -2
  53. package/dist/starters/adapters/express/adapters/express/{vite.config.mts → vite.config.ts} +2 -2
  54. package/dist/starters/adapters/express/package.json +4 -3
  55. package/dist/starters/adapters/express/src/entry.express.tsx +1 -3
  56. package/dist/starters/adapters/fastify/adapters/fastify/{vite.config.mts → vite.config.ts} +2 -2
  57. package/dist/starters/adapters/fastify/package.json +4 -3
  58. package/dist/starters/adapters/fastify/src/entry.fastify.tsx +1 -1
  59. package/dist/starters/adapters/fastify/src/plugins/fastify-qwik.ts +1 -2
  60. package/dist/starters/adapters/firebase/adapters/firebase/{vite.config.mts → vite.config.ts} +2 -2
  61. package/dist/starters/adapters/firebase/package.json +3 -2
  62. package/dist/starters/adapters/firebase/src/entry-firebase.tsx +2 -3
  63. package/dist/starters/adapters/netlify-edge/adapters/netlify-edge/{vite.config.mts → vite.config.ts} +2 -2
  64. package/dist/starters/adapters/netlify-edge/package.json +5 -4
  65. package/dist/starters/adapters/netlify-edge/src/entry.netlify-edge.tsx +2 -3
  66. package/dist/starters/adapters/node-server/adapters/node-server/{vite.config.mts → vite.config.ts} +2 -2
  67. package/dist/starters/adapters/node-server/package.json +3 -2
  68. package/dist/starters/adapters/node-server/src/entry.node-server.tsx +0 -2
  69. package/dist/starters/adapters/{static/adapters/static/vite.config.mts → ssg/adapters/ssg/vite.config.ts} +3 -3
  70. package/dist/starters/adapters/ssg/package.json +20 -0
  71. package/dist/starters/adapters/vercel-edge/README.md +2 -2
  72. package/dist/starters/adapters/vercel-edge/adapters/vercel-edge/{vite.config.mts → vite.config.ts} +2 -2
  73. package/dist/starters/adapters/vercel-edge/package.json +3 -2
  74. package/dist/starters/adapters/vercel-edge/src/entry.vercel-edge.tsx +2 -3
  75. package/dist/starters/adapters/vercel-edge/vercel.json +1 -1
  76. package/dist/starters/features/auth/package.json +1 -1
  77. package/dist/starters/features/compiled-i18n/package.json +37 -0
  78. package/dist/starters/features/compiled-i18n/src/components/locale-selector/locale-selector.tsx +30 -0
  79. package/dist/starters/features/compiled-i18n/src/entry.ssr.tsx +31 -0
  80. package/dist/starters/features/compiled-i18n/src/routes/plugin@compiled-i18n.ts +28 -0
  81. package/dist/starters/features/csr/index.html +27 -0
  82. package/dist/starters/features/csr/package.json +29 -0
  83. package/dist/starters/features/csr/src/root.tsx +15 -0
  84. package/dist/starters/features/csr/vite.config.ts +13 -0
  85. package/dist/starters/features/cypress/src/actions/example.action.ts +5 -0
  86. package/dist/starters/features/cypress/src/components/example/example.cy.tsx +50 -8
  87. package/dist/starters/features/cypress/src/components/example/example.tsx +13 -3
  88. package/dist/starters/features/cypress/src/loaders/example.loader.ts +5 -0
  89. package/dist/starters/features/pandacss/package.json +1 -1
  90. package/dist/starters/features/postcss/postcss.config.js +1 -1
  91. package/dist/starters/features/storybook/.storybook/tsconfig.json +0 -1
  92. package/dist/starters/features/styled-vanilla-extract/package.json +2 -1
  93. package/dist/starters/features/tailwind/package.json +2 -2
  94. package/dist/starters/features/tailwind/prettier.config.js +10 -0
  95. package/dist/starters/features/tailwind-v3/package.json +1 -1
  96. package/dist/starters/features/tailwind-v3/prettier.config.js +10 -0
  97. package/dist/testing/index.d.ts +928 -6
  98. package/dist/testing/index.mjs +16212 -11578
  99. package/dist/testing/package.json +1 -1
  100. package/handlers.mjs +1 -1
  101. package/package.json +34 -56
  102. package/public.d.ts +5 -1
  103. package/{qwik-cli.cjs → qwik-cli.mjs} +1 -1
  104. package/server.d.ts +2 -0
  105. package/bindings/qwik.darwin-arm64.node +0 -0
  106. package/bindings/qwik.darwin-x64.node +0 -0
  107. package/bindings/qwik.linux-x64-gnu.node +0 -0
  108. package/bindings/qwik.wasm.cjs +0 -471
  109. package/bindings/qwik.wasm.mjs +0 -464
  110. package/bindings/qwik.win32-x64-msvc.node +0 -0
  111. package/bindings/qwik_wasm_bg.wasm +0 -0
  112. package/dist/build/index.cjs +0 -35
  113. package/dist/build/index.cjs.map +0 -7
  114. package/dist/build/index.dev.cjs +0 -37
  115. package/dist/build/index.dev.cjs.map +0 -7
  116. package/dist/build/index.prod.cjs +0 -37
  117. package/dist/build/index.prod.cjs.map +0 -7
  118. package/dist/cli.cjs +0 -5545
  119. package/dist/core.cjs +0 -11800
  120. package/dist/core.cjs.map +0 -1
  121. package/dist/core.prod.cjs +0 -5661
  122. package/dist/insights/index.qwik.cjs +0 -1
  123. package/dist/insights/vite/index.cjs +0 -1
  124. package/dist/loader/index.cjs +0 -4
  125. package/dist/optimizer.cjs +0 -4020
  126. package/dist/preloader.cjs +0 -269
  127. package/dist/server.cjs +0 -3037
  128. package/dist/starters/adapters/static/package.json +0 -19
  129. package/dist/starters/features/localize/package.json +0 -37
  130. package/dist/starters/features/localize/src/entry.ssr.tsx +0 -30
  131. package/dist/starters/features/localize/src/locales/message.en.json +0 -8
  132. package/dist/starters/features/localize/src/locales/message.it.json +0 -8
  133. package/dist/starters/features/localize/src/routes/[locale]/i18n-utils.ts +0 -94
  134. package/dist/starters/features/localize/src/routes/[locale]/index.tsx +0 -52
  135. package/dist/starters/features/localize/src/routes/[locale]/layout.tsx +0 -12
  136. package/dist/starters/features/playwright/playwright-report/index.html +0 -22026
  137. package/dist/starters/features/tailwind/.prettierrc.js +0 -3
  138. package/dist/testing/index.cjs +0 -33331
  139. /package/dist/starters/adapters/{static → ssg}/README.md +0 -0
@@ -1,9 +1,20 @@
1
- import { isBrowser } from "@qwik.dev/core/build";
2
- const doc = isBrowser ? document : void 0;
3
- const config = { t: 0, o: 25, l: 0.65 };
4
- const rel = isBrowser && doc.createElement("link").relList.supports("modulepreload") ? "modulePreload" : "preload";
5
- const loadStart = Date.now();
1
+ import { isServer, isBrowser as isBrowser$2 } from "@qwik.dev/core/build";
2
+ const createMacroTask = (e) => {
3
+ let t;
4
+ if (typeof MessageChannel !== "undefined") {
5
+ const n = new MessageChannel();
6
+ n.port1.onmessage = () => e();
7
+ t = () => n.port2.postMessage(null);
8
+ } else t = () => setTimeout(e);
9
+ return t;
10
+ };
11
+ const isBrowser$1 = !isServer;
12
+ const doc = isBrowser$1 ? document : void 0;
13
+ const config = { t: 0, o: 25, u: 0.65 };
14
+ const rel = isBrowser$1 && doc.createElement("link").relList?.supports?.("modulepreload") ? "modulePreload" : "preload";
15
+ const loadStart = performance.now();
6
16
  const isJSRegex = /\.[mc]?js$/;
17
+ const yieldInterval = 1e3 / 60;
7
18
  const BundleImportState_None = 0;
8
19
  const BundleImportState_Queued = 1;
9
20
  const BundleImportState_Preload = 2;
@@ -13,181 +24,265 @@ const bundles = /* @__PURE__ */ new Map();
13
24
  let queueDirty;
14
25
  let preloadCount = 0;
15
26
  const queue = [];
27
+ const nextTriggerMacroTask = createMacroTask(trigger);
28
+ const nextAdjustmentMacroTask = createMacroTask(processPendingAdjustments);
29
+ let isTriggerScheduled = 0;
30
+ let isAdjustmentScheduled = 0;
31
+ let isProcessingAdjustments = 0;
32
+ const shouldYieldInBrowser = isBrowser$2;
33
+ const adjustmentStack = [];
16
34
  const log = (...e) => {
17
- console.log(`Preloader ${Date.now() - loadStart}ms ${preloadCount}/${queue.length} queued>`, ...e);
35
+ console.log(`Preloader ${performance.now() - loadStart}ms ${preloadCount}/${queue.length} queued>`, ...e);
18
36
  };
19
37
  const sortQueue = () => {
20
38
  if (queueDirty) {
21
- queue.sort((e, t) => e.u - t.u);
39
+ queue.sort((e, t) => e.l - t.l);
22
40
  queueDirty = 0;
23
41
  }
24
42
  };
25
- const trigger = () => {
43
+ function trigger() {
44
+ isTriggerScheduled = 0;
26
45
  if (!queue.length) return;
27
46
  sortQueue();
47
+ const e = performance.now() + yieldInterval;
48
+ let t = 0;
28
49
  while (queue.length) {
29
- const e = queue[0];
30
- const t = e.u;
31
- const o = 1 - t;
32
- const n = graph ? (
33
- // The more likely the bundle, the more simultaneous preloads we want to allow
34
- Math.max(1, config.o * o)
35
- ) : (
36
- // While the graph is not available, we limit to 2 preloads
37
- 2
50
+ const n = queue[0];
51
+ const s = n.l;
52
+ const o = 1 - s;
53
+ const r = graph ? config.o : (
54
+ // While the graph is not available, we limit to 5 preloads
55
+ 5
38
56
  );
39
- if (o >= 0.99 || preloadCount < n) {
57
+ if (o >= 0.99 || preloadCount < r) {
40
58
  queue.shift();
41
- preloadOne(e);
59
+ preloadOne(n);
60
+ if (performance.now() >= e) {
61
+ t = 1;
62
+ break;
63
+ }
42
64
  } else break;
43
65
  }
66
+ if (t && queue.length && !isTriggerScheduled) {
67
+ isTriggerScheduled = 1;
68
+ nextTriggerMacroTask();
69
+ }
44
70
  if (config.t && !queue.length) {
45
- const e = [...bundles.values()].filter((e2) => e2.i > BundleImportState_None);
46
- const t = e.reduce((e2, t2) => e2 + t2.p, 0);
47
- const o = e.reduce((e2, t2) => e2 + t2.$, 0);
48
- log(`>>>> done ${e.length}/${bundles.size} total: ${t}ms waited, ${o}ms loaded`);
71
+ const e2 = [...bundles.values()].filter((e3) => e3.i > BundleImportState_None);
72
+ const t2 = e2.reduce((e3, t3) => e3 + t3.m, 0);
73
+ const n = e2.reduce((e3, t3) => e3 + t3.p, 0);
74
+ log(`>>>> done ${e2.length}/${bundles.size} total: ${t2}ms waited, ${n}ms loaded`);
49
75
  }
76
+ }
77
+ const enqueueAdjustment = (e, t, n, s) => {
78
+ adjustmentStack.unshift({ $: e, l: t, B: s, h: n });
50
79
  };
51
- const preloadOne = (e) => {
52
- if (e.i >= BundleImportState_Preload) return;
53
- preloadCount++;
54
- const t = Date.now();
55
- e.p = t - e.B;
56
- e.i = BundleImportState_Preload;
57
- config.t && log(`<< load ${Math.round((1 - e.u) * 100)}% after ${`${e.p}ms`}`, e.m);
58
- const o = doc.createElement("link");
59
- o.href = new URL(`${base}${e.m}`, doc.baseURI).toString();
60
- o.rel = rel;
61
- o.as = "script";
62
- o.onload = o.onerror = () => {
63
- preloadCount--;
64
- const n = Date.now();
65
- e.$ = n - t;
66
- e.i = BundleImportState_Loaded;
67
- config.t && log(`>> done after ${e.$}ms`, e.m);
68
- o.remove();
69
- trigger();
70
- };
71
- doc.head.appendChild(o);
72
- };
73
- const adjustProbabilities = (e, t, o) => {
74
- if (o?.has(e)) return;
75
- const n = e.u;
76
- e.u = t;
77
- if (n - e.u < 0.01) return;
80
+ const processAdjustmentFrame = () => {
81
+ const e = adjustmentStack[adjustmentStack.length - 1];
82
+ const t = e.$;
83
+ if (e.S) {
84
+ const n2 = e.j;
85
+ if (n2 >= e.S.length) {
86
+ adjustmentStack.pop();
87
+ return 0;
88
+ }
89
+ const s = e.S[n2];
90
+ e.j = n2 + 1;
91
+ const o = getBundle(s.k);
92
+ if (o.l === 0) return 1;
93
+ const r = 1 - t.l;
94
+ let a;
95
+ if (r === 1 || r >= 0.99 && e.h.T < 100) {
96
+ e.h.T++;
97
+ a = Math.min(0.01, 1 - s.I);
98
+ } else {
99
+ const e2 = 1 - s.I * r;
100
+ const t2 = s.A;
101
+ const n3 = e2 / t2;
102
+ a = Math.max(0.02, o.l * n3);
103
+ s.A = n3;
104
+ }
105
+ adjustmentStack.push({ $: o, l: a, B: e.B, h: e.h });
106
+ return 1;
107
+ }
108
+ if (e.B?.has(t)) {
109
+ adjustmentStack.pop();
110
+ return 0;
111
+ }
112
+ const n = t.l;
113
+ t.l = e.l;
114
+ if (n - t.l < 0.01) {
115
+ adjustmentStack.pop();
116
+ return 0;
117
+ }
78
118
  if (
79
119
  // don't queue until we have initialized the preloader
80
- base != null && e.i < BundleImportState_Preload && e.u < config.l
120
+ base != null && t.i < BundleImportState_Preload
81
121
  ) {
82
- if (e.i === BundleImportState_None) {
83
- e.i = BundleImportState_Queued;
84
- queue.push(e);
85
- config.t && log(`queued ${Math.round((1 - e.u) * 100)}%`, e.m);
122
+ if (t.i === BundleImportState_None) {
123
+ t.i = BundleImportState_Queued;
124
+ queue.push(t);
125
+ config.t && log(`queued ${Math.round((1 - t.l) * 100)}%`, t.k);
86
126
  }
87
127
  queueDirty = 1;
88
128
  }
89
- if (e.h) {
90
- o ||= /* @__PURE__ */ new Set();
91
- o.add(e);
92
- const t2 = 1 - e.u;
93
- for (const n2 of e.h) {
94
- const e2 = getBundle(n2.m);
95
- if (e2.u === 0) continue;
96
- let r;
97
- if (n2.S > 0.5 && (t2 === 1 || t2 >= 0.99 && depsCount < 100)) {
98
- depsCount++;
99
- r = Math.min(0.01, 1 - n2.S);
100
- } else {
101
- const o2 = 1 - n2.S * t2;
102
- const s = n2.q;
103
- const l = o2 / s;
104
- r = Math.max(0.02, e2.u * l);
105
- n2.q = l;
129
+ if (t.S?.length) {
130
+ const n2 = e.B || /* @__PURE__ */ new Set();
131
+ n2.add(t);
132
+ e.B = n2;
133
+ e.S = t.S;
134
+ e.j = 0;
135
+ return 0;
136
+ }
137
+ adjustmentStack.pop();
138
+ return 0;
139
+ };
140
+ function processPendingAdjustments() {
141
+ if (isProcessingAdjustments || !adjustmentStack.length) return;
142
+ isAdjustmentScheduled = 0;
143
+ isProcessingAdjustments = 1;
144
+ const e = shouldYieldInBrowser ? performance.now() + yieldInterval : 0;
145
+ let t = 0;
146
+ while (adjustmentStack.length) {
147
+ t = 1;
148
+ const n = processAdjustmentFrame();
149
+ if (shouldYieldInBrowser && n && performance.now() >= e) {
150
+ if (!isAdjustmentScheduled) {
151
+ isAdjustmentScheduled = 1;
152
+ nextAdjustmentMacroTask();
106
153
  }
107
- adjustProbabilities(e2, r, o);
154
+ break;
108
155
  }
109
156
  }
157
+ isProcessingAdjustments = 0;
158
+ if (t && shouldYieldInBrowser) nextTriggerMacroTask();
159
+ }
160
+ const preloadOne = (e) => {
161
+ if (e.i >= BundleImportState_Preload) return;
162
+ preloadCount++;
163
+ const t = performance.now();
164
+ e.m = t - e.M;
165
+ e.i = BundleImportState_Preload;
166
+ config.t && log(`<< load ${Math.round((1 - e.l) * 100)}% after ${`${e.m}ms`}`, e.k);
167
+ const n = doc.createElement("link");
168
+ n.href = new URL(`${base}${e.k}`, doc.baseURI).toString();
169
+ n.rel = rel;
170
+ n.as = "script";
171
+ n.onload = n.onerror = () => {
172
+ preloadCount--;
173
+ const s = performance.now();
174
+ e.p = s - t;
175
+ e.i = BundleImportState_Loaded;
176
+ config.t && log(`>> done after ${e.p}ms`, e.k);
177
+ n.remove();
178
+ nextTriggerMacroTask();
179
+ };
180
+ doc.head.appendChild(n);
110
181
  };
111
- const handleBundle = (e, t) => {
112
- const o = getBundle(e);
113
- if (o && o.u > t) adjustProbabilities(o, t);
182
+ const adjustProbabilities = (e, t, n) => {
183
+ enqueueAdjustment(e, t, { T: 0 }, n);
184
+ if (shouldYieldInBrowser) nextAdjustmentMacroTask();
185
+ else processPendingAdjustments();
186
+ };
187
+ const handleBundle = (e, t, n) => {
188
+ const s = getBundle(e);
189
+ if (s && s.l > t) if (n) enqueueAdjustment(s, t, n);
190
+ else adjustProbabilities(s, t);
114
191
  };
115
- let depsCount;
116
192
  const preload = (e, t) => {
117
193
  if (!e?.length) return;
118
- depsCount = 0;
119
- let o = t ? 1 - t : 0.4;
194
+ let n = t ? 1 - t : 0.4;
195
+ const s = { T: 0 };
120
196
  if (Array.isArray(e)) for (let t2 = e.length - 1; t2 >= 0; t2--) {
121
- const n = e[t2];
122
- if (typeof n === "number") o = 1 - n / 10;
123
- else handleBundle(n, o);
197
+ const o = e[t2];
198
+ if (typeof o === "number") n = 1 - o / 10;
199
+ else handleBundle(o, n, s);
124
200
  }
125
- else handleBundle(e, o);
126
- if (isBrowser) trigger();
201
+ else handleBundle(e, n, s);
202
+ if (shouldYieldInBrowser) nextAdjustmentMacroTask();
203
+ else processPendingAdjustments();
127
204
  };
128
- if (isBrowser) document.addEventListener("qsymbol", (e) => {
129
- const { symbol: t, href: o } = e.detail;
130
- if (o) {
205
+ if (isBrowser$2) document.addEventListener("qsymbol", (e) => {
206
+ const { symbol: t, href: n } = e.detail;
207
+ if (n) {
131
208
  const e2 = t.slice(t.lastIndexOf("_") + 1);
132
209
  preload(e2, 1);
133
210
  }
134
211
  });
135
212
  let base;
136
213
  let graph;
137
- const makeBundle = (e, t) => ({ m: e, i: isJSRegex.test(e) ? BundleImportState_None : BundleImportState_Alias, h: t, u: 1, B: Date.now(), p: 0, $: 0 });
214
+ const isBrowser = !isServer;
215
+ const makeBundle = (e, t) => ({ k: e, i: isJSRegex.test(e) ? BundleImportState_None : BundleImportState_Alias, S: t, l: 1, M: performance.now(), m: 0, p: 0 });
138
216
  const parseBundleGraph = (e) => {
139
217
  const t = /* @__PURE__ */ new Map();
140
- let o = 0;
141
- while (o < e.length) {
142
- const n = e[o++];
143
- const r = [];
144
- let s;
145
- let l = 1;
146
- while (s = e[o], typeof s === "number") {
147
- if (s < 0) l = -s / 10;
148
- else r.push({ m: e[s], S: l, q: 1 });
149
- o++;
218
+ let n = 0;
219
+ while (n < e.length) {
220
+ const s = e[n++];
221
+ const o = [];
222
+ let r;
223
+ let a = 1;
224
+ while (r = e[n], typeof r === "number") {
225
+ if (r < 0) a = -r / 10;
226
+ else o.push({ k: e[r], I: a, A: 1 });
227
+ n++;
150
228
  }
151
- t.set(n, r);
229
+ t.set(s, o);
152
230
  }
153
231
  return t;
154
232
  };
155
233
  const getBundle = (e) => {
156
234
  let t = bundles.get(e);
157
235
  if (!t) {
158
- let o;
236
+ let n;
159
237
  if (graph) {
160
- o = graph.get(e);
161
- if (!o) return;
162
- if (!o.length) o = void 0;
238
+ n = graph.get(e);
239
+ if (!n) return;
240
+ if (!n.length) n = void 0;
163
241
  }
164
- t = makeBundle(e, o);
242
+ t = makeBundle(e, n);
165
243
  bundles.set(e, t);
166
244
  }
167
245
  return t;
168
246
  };
169
- const loadBundleGraph = (e, t, o) => {
170
- if (o) {
171
- if ("d" in o) config.t = !!o.d;
172
- if ("P" in o) config.o = o["P"];
173
- if ("Q" in o) config.l = 1 - o["Q"];
247
+ const loadBundleGraph = (e, t, n) => {
248
+ if (n) {
249
+ if ("d" in n) config.t = !!n.d;
250
+ if ("P" in n) config.o = n["P"];
251
+ if ("Q" in n) config.u = 1 - n["Q"];
174
252
  }
175
253
  if (!isBrowser || e == null) return;
176
254
  base = e;
177
255
  if (t) t.then((e2) => e2.text()).then((e2) => {
178
256
  graph = parseBundleGraph(JSON.parse(e2));
179
257
  const t2 = [];
180
- for (const [e3, o2] of graph.entries()) {
181
- const n = getBundle(e3);
182
- n.h = o2;
183
- if (n.u < 1) {
184
- t2.push([n, n.u]);
185
- n.u = 1;
258
+ for (const [e3, n3] of graph.entries()) {
259
+ const s2 = getBundle(e3);
260
+ s2.S = n3;
261
+ if (s2.l < 1) {
262
+ t2.push([s2, s2.l]);
263
+ s2.l = 1;
186
264
  }
187
265
  }
188
266
  config.t && log(`parseBundleGraph got ${graph.size} bundles, adjusting ${t2.length}`);
189
- for (const [e3, o2] of t2) adjustProbabilities(e3, o2);
190
- trigger();
267
+ if (!t2.length) {
268
+ nextTriggerMacroTask();
269
+ return;
270
+ }
271
+ let n2 = 0;
272
+ const s = createMacroTask(() => {
273
+ const e3 = performance.now() + yieldInterval;
274
+ while (n2 < t2.length) {
275
+ const [o, r] = t2[n2];
276
+ n2++;
277
+ adjustProbabilities(o, r);
278
+ if (n2 < t2.length && performance.now() >= e3) {
279
+ s();
280
+ return;
281
+ }
282
+ }
283
+ nextTriggerMacroTask();
284
+ });
285
+ s();
191
286
  }).catch(console.warn);
192
287
  };
193
288
  export {