@askrjs/askr 0.0.27 → 0.0.28

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 (97) hide show
  1. package/README.md +56 -20
  2. package/dist/_virtual/_fs.js +1 -0
  3. package/dist/_virtual/_path.js +1 -0
  4. package/dist/bench/benchmark-entry.d.ts.map +1 -1
  5. package/dist/benchmark.js +1 -1
  6. package/dist/bin/askr-ssg.d.ts +32 -0
  7. package/dist/bin/askr-ssg.d.ts.map +1 -0
  8. package/dist/bin/askr-ssg.js +24 -0
  9. package/dist/boot/index.d.ts.map +1 -1
  10. package/dist/boot/index.js +2 -2
  11. package/dist/dev/vite-plugin-askr.d.ts +9 -2
  12. package/dist/dev/vite-plugin-askr.d.ts.map +1 -1
  13. package/dist/index.d.ts +3 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -1
  16. package/dist/node_modules/esbuild/lib/main.js +9 -9
  17. package/dist/renderer/cleanup.d.ts +3 -0
  18. package/dist/renderer/cleanup.d.ts.map +1 -1
  19. package/dist/renderer/cleanup.js +1 -1
  20. package/dist/renderer/dom.d.ts +2 -0
  21. package/dist/renderer/dom.d.ts.map +1 -1
  22. package/dist/renderer/dom.js +1 -1
  23. package/dist/renderer/index.js +1 -1
  24. package/dist/renderer/reconcile.js +1 -1
  25. package/dist/renderer/utils.d.ts.map +1 -1
  26. package/dist/renderer/utils.js +1 -1
  27. package/dist/router/route.d.ts +1 -0
  28. package/dist/router/route.d.ts.map +1 -1
  29. package/dist/router/route.js +1 -1
  30. package/dist/runtime/component.d.ts +5 -2
  31. package/dist/runtime/component.d.ts.map +1 -1
  32. package/dist/runtime/component.js +1 -1
  33. package/dist/runtime/derive.d.ts +10 -4
  34. package/dist/runtime/derive.d.ts.map +1 -1
  35. package/dist/runtime/derive.js +1 -1
  36. package/dist/runtime/events.d.ts +1 -0
  37. package/dist/runtime/events.d.ts.map +1 -1
  38. package/dist/runtime/events.js +1 -1
  39. package/dist/runtime/fastlane.d.ts.map +1 -1
  40. package/dist/runtime/fastlane.js +1 -1
  41. package/dist/runtime/for.d.ts.map +1 -1
  42. package/dist/runtime/for.js +1 -1
  43. package/dist/runtime/operations.d.ts.map +1 -1
  44. package/dist/runtime/perf-metrics.d.ts +25 -0
  45. package/dist/runtime/perf-metrics.d.ts.map +1 -0
  46. package/dist/runtime/perf-metrics.js +1 -0
  47. package/dist/runtime/readable.d.ts +21 -0
  48. package/dist/runtime/readable.d.ts.map +1 -0
  49. package/dist/runtime/readable.js +1 -0
  50. package/dist/runtime/scheduler.d.ts +17 -2
  51. package/dist/runtime/scheduler.d.ts.map +1 -1
  52. package/dist/runtime/scheduler.js +1 -1
  53. package/dist/runtime/selector.d.ts +9 -0
  54. package/dist/runtime/selector.d.ts.map +1 -0
  55. package/dist/runtime/selector.js +1 -0
  56. package/dist/runtime/state.d.ts +2 -4
  57. package/dist/runtime/state.d.ts.map +1 -1
  58. package/dist/runtime/state.js +1 -1
  59. package/dist/ssg/batch-render.d.ts +16 -0
  60. package/dist/ssg/batch-render.d.ts.map +1 -0
  61. package/dist/ssg/batch-render.js +1 -0
  62. package/dist/ssg/create-static-gen.d.ts +51 -0
  63. package/dist/ssg/create-static-gen.d.ts.map +1 -0
  64. package/dist/ssg/create-static-gen.js +1 -0
  65. package/dist/ssg/discover-resources.d.ts +15 -0
  66. package/dist/ssg/discover-resources.d.ts.map +1 -0
  67. package/dist/ssg/generate-metadata.d.ts +27 -0
  68. package/dist/ssg/generate-metadata.d.ts.map +1 -0
  69. package/dist/ssg/generate-metadata.js +1 -0
  70. package/dist/ssg/incremental-manifest.d.ts +23 -0
  71. package/dist/ssg/incremental-manifest.d.ts.map +1 -0
  72. package/dist/ssg/incremental-manifest.js +1 -0
  73. package/dist/ssg/index.d.ts +28 -0
  74. package/dist/ssg/index.d.ts.map +1 -0
  75. package/dist/ssg/index.js +1 -0
  76. package/dist/ssg/resolve-ssg-data.d.ts +26 -0
  77. package/dist/ssg/resolve-ssg-data.d.ts.map +1 -0
  78. package/dist/ssg/resolve-ssg-data.js +1 -0
  79. package/dist/ssg/route-utils.d.ts +12 -0
  80. package/dist/ssg/route-utils.d.ts.map +1 -0
  81. package/dist/ssg/route-utils.js +1 -0
  82. package/dist/ssg/types.d.ts +164 -0
  83. package/dist/ssg/types.d.ts.map +1 -0
  84. package/dist/ssg/write-static-files.d.ts +21 -0
  85. package/dist/ssg/write-static-files.d.ts.map +1 -0
  86. package/dist/ssg/write-static-files.js +1 -0
  87. package/dist/ssr/attrs.d.ts +1 -1
  88. package/dist/ssr/attrs.d.ts.map +1 -1
  89. package/dist/ssr/attrs.js +1 -1
  90. package/dist/ssr/context.d.ts +3 -0
  91. package/dist/ssr/context.d.ts.map +1 -1
  92. package/dist/ssr/context.js +1 -1
  93. package/dist/ssr/index.d.ts +27 -0
  94. package/dist/ssr/index.d.ts.map +1 -1
  95. package/dist/ssr/index.js +1 -1
  96. package/dist/vite/index.js +4 -3
  97. package/package.json +32 -7
package/README.md CHANGED
@@ -46,7 +46,7 @@ Events serialize through a scheduler. State updates are atomic. Renders follow s
46
46
  // No race conditions
47
47
  ```
48
48
 
49
- Proven with 133 tests covering:
49
+ Proven with 524 tests covering:
50
50
 
51
51
  - Event ordering (12 tests)
52
52
  - State atomicity (12 tests)
@@ -57,16 +57,17 @@ Proven with 133 tests covering:
57
57
  Every component gets an AbortSignal for automatic cancellation.
58
58
 
59
59
  ```typescript
60
- import { resource, getSignal } from '@askrjs/askr/resources';
60
+ import { resource } from '@askrjs/askr/resources';
61
61
 
62
62
  function Data({ id }) {
63
- const data = resource(async () => {
64
- const res = await fetch(`/api/${id}`, { signal: getSignal() });
63
+ const data = resource(async ({ signal }) => {
64
+ const res = await fetch(`/api/${id}`, { signal });
65
65
  return res.json();
66
66
  }, [id]);
67
67
 
68
- if (!data) return <div>Loading...</div>;
69
- return <div>{data.name}</div>;
68
+ if (data.pending || !data.value) return <div>Loading...</div>;
69
+ if (data.error) return <div>Failed to load</div>;
70
+ return <div>{data.value.name}</div>;
70
71
  }
71
72
  // Async work is cancelled automatically on unmount/navigation
72
73
  ```
@@ -105,12 +106,43 @@ setValue((prev) => prev + 1);
105
106
  ### Derived State
106
107
 
107
108
  ```typescript
108
- const [count, setCount] = state(0);
109
- const doubled = derive(() => count() * 2);
109
+ function Counter() {
110
+ const [count, setCount] = state(0);
111
+ const doubled = derive(() => count() * 2);
112
+
113
+ return (
114
+ <button onClick={() => setCount((prev) => prev + 1)}>
115
+ {count()} -> {doubled()}
116
+ </button>
117
+ );
118
+ }
119
+ ```
110
120
 
111
- console.log(doubled()); // Automatically updates
121
+ `derive()` now returns a getter. Migrate `const doubled = derive(...); {doubled}` to `const doubled = derive(...); {doubled()}`.
122
+
123
+ ### Keyed Selectors
124
+
125
+ ```typescript
126
+ function Table({ rows }) {
127
+ const [selectedId, setSelectedId] = state<number | null>(null);
128
+ const isSelected = selector(selectedId);
129
+
130
+ return For(
131
+ () => rows(),
132
+ (row) => row.id,
133
+ (row) => (
134
+ <tr class={() => (isSelected(row.id) ? 'danger' : '')}>
135
+ <td>
136
+ <a onClick={() => setSelectedId(row.id)}>{row.id}</a>
137
+ </td>
138
+ </tr>
139
+ )
140
+ );
141
+ }
112
142
  ```
113
143
 
144
+ Use `selector()` for row selection, active-route checks, and similar keyed fanout hotspots. Create it once in the owner component and reuse the keyed predicate across rows.
145
+
114
146
  ### Lists
115
147
 
116
148
  ```typescript
@@ -133,13 +165,12 @@ createIsland({
133
165
  });
134
166
 
135
167
  // Routed app
168
+ route('/', () => <Home />);
169
+ route('/about', () => <About />);
170
+
136
171
  createSPA({
137
172
  root: document.body,
138
- component: Layout,
139
- routes: [
140
- { path: '/', component: Home },
141
- { path: '/about', component: About },
142
- ],
173
+ routes: getRoutes(),
143
174
  });
144
175
  ```
145
176
 
@@ -147,17 +178,22 @@ createSPA({
147
178
 
148
179
  ## Documentation
149
180
 
150
- - [Getting Started](docs/getting-started.md)
151
- - [State Management](docs/state.md)
152
- - [Runtime Enforcement](docs/enforcement.md)
153
- - [Deterministic Execution](docs/determinism.md)
154
- - [API Reference](docs/api.md)
181
+ - [Documentation Index](docs/index.md)
182
+ - [Install](docs/getting-started/installation.md)
183
+ - [Quick Start](docs/getting-started/quick-start.md)
184
+ - [State Management](docs/guides/state.md)
185
+ - [Router Guide](docs/guides/router.md)
186
+ - [Resources Guide](docs/guides/resources.md)
187
+ - [SSG Guide (Advanced)](docs/guides/ssg.md)
188
+ - [Runtime Enforcement](docs/concepts/runtime-enforcement.md)
189
+ - [Deterministic Execution](docs/concepts/determinism.md)
190
+ - [API Reference](docs/reference/api.md)
155
191
 
156
192
  ---
157
193
 
158
194
  ## Guarantees
159
195
 
160
- Askr provides provable guarantees, tested with 133 tests:
196
+ Askr provides provable guarantees, tested with 524 tests:
161
197
 
162
198
  - Hook order enforcement (12 tests)
163
199
  - Event serialization (12 tests)
@@ -0,0 +1 @@
1
+ import{default as o}from"fs";export{o as default};
@@ -0,0 +1 @@
1
+ import{default as o}from"path";export{o as default};
@@ -1 +1 @@
1
- {"version":3,"file":"benchmark-entry.d.ts","sourceRoot":"","sources":["../../src/bench/benchmark-entry.tsx"],"names":[],"mappings":"AAKA,KAAK,OAAO,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7C,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE;kBAoEnD,OAAO,EAAE;oBAMP,MAAM,GAAG,IAAI;;EAQhC;;;;AAED,wBAAkC"}
1
+ {"version":3,"file":"benchmark-entry.d.ts","sourceRoot":"","sources":["../../src/bench/benchmark-entry.tsx"],"names":[],"mappings":"AAKA,KAAK,OAAO,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7C,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE;kBAsEnD,OAAO,EAAE;oBAMP,MAAM,GAAG,IAAI;;EAQhC;;;;AAED,wBAAkC"}
package/dist/benchmark.js CHANGED
@@ -1 +1 @@
1
- import"./index.js";import"./for/index.js";import{globalScheduler as n}from"./runtime/scheduler.js";import{state as s}from"./runtime/state.js";import{For as a}from"./for/for.js";import{createIsland as i}from"./boot/index.js";function h(c,o){const l=Array.isArray(o)?o:[];let t,p;return i({root:c,component:()=>{t=s([]),p=s(null);const r=e=>p.set(e);return{type:"div",props:{},children:[{type:"table",props:{},children:[{type:"tbody",props:{},children:[a(()=>t(),e=>e.id,e=>({type:"tr",props:{class:()=>p()===e.id?"danger":""},children:[{type:"td",props:{},children:[String(e.id)]},{type:"td",props:{},children:[{type:"a",props:{onClick:d=>{d.preventDefault(),r(e.id)}},children:[e.label]}]}]}))]}]}]}}}),l.length>0&&t&&t.set(l),{setRows(r){t.set(r),n.flush()},setSelected(r){p.set(r),n.flush()},cleanup(){}}}const A={mountBenchmark:h};export{A as default,h as mountBenchmark};
1
+ import"./index.js";import"./for/index.js";import{globalScheduler as n}from"./runtime/scheduler.js";import{state as s}from"./runtime/state.js";import{selector as a}from"./runtime/selector.js";import{For as h}from"./for/for.js";import{createIsland as m}from"./boot/index.js";function u(c,o){const l=Array.isArray(o)?o:[];let t,p;return m({root:c,component:()=>{t=s([]),p=s(null);const r=a(p),d=e=>p.set(e);return{type:"div",props:{},children:[{type:"table",props:{},children:[{type:"tbody",props:{},children:[h(()=>t(),e=>e.id,e=>({type:"tr",props:{class:()=>r(e.id)?"danger":""},children:[{type:"td",props:{},children:[String(e.id)]},{type:"td",props:{},children:[{type:"a",props:{onClick:i=>{i.preventDefault(),d(e.id)}},children:[e.label]}]}]}))]}]}]}}}),l.length>0&&t&&t.set(l),{setRows(r){t.set(r),n.flush()},setSelected(r){p.set(r),n.flush()},cleanup(){}}}const w={mountBenchmark:u};export{w as default,u as mountBenchmark};
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * askr-ssg CLI
4
+ *
5
+ * Usage: askr-ssg --config path/to/config.ts --output dist/static
6
+ */
7
+ import { createStaticGen } from '../ssg/index';
8
+ export interface ParsedCliArgs {
9
+ configPath: string;
10
+ outputDir: string;
11
+ workers: number | 'auto';
12
+ incremental: boolean;
13
+ changedKeys: string[];
14
+ changedRoutes: string[];
15
+ forceFull: boolean;
16
+ help: boolean;
17
+ }
18
+ interface CliIo {
19
+ log: (...args: unknown[]) => void;
20
+ error: (...args: unknown[]) => void;
21
+ }
22
+ interface CliDeps {
23
+ cwd: () => string;
24
+ now: () => number;
25
+ existsSync: (path: string) => boolean;
26
+ importConfig: (path: string) => Promise<Record<string, unknown>>;
27
+ createStaticGen: typeof createStaticGen;
28
+ }
29
+ export declare function parseCliArgs(args: string[]): ParsedCliArgs;
30
+ export declare function runCli(args: string[], deps?: Partial<CliDeps>, io?: CliIo): Promise<number>;
31
+ export {};
32
+ //# sourceMappingURL=askr-ssg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"askr-ssg.d.ts","sourceRoot":"","sources":["../../src/bin/askr-ssg.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAa/C,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,UAAU,KAAK;IACb,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACrC;AAED,UAAU,OAAO;IACf,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACjE,eAAe,EAAE,OAAO,eAAe,CAAC;CACzC;AA0CD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAsC1D;AA+BD,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,OAAO,CAAC,OAAO,CAAM,EAC3B,EAAE,GAAE,KAAe,GAClB,OAAO,CAAC,MAAM,CAAC,CA+EjB"}
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+ import*as m from"path";import*as y from"fs";import"../ssg/index.js";import{createStaticGen as k}from"../ssg/create-static-gen.js";const{resolve:u}=m,{existsSync:$}=y;function d(e){const r=u(e).replace(/\\/g,"/");return`file://${r.startsWith("/")?"":"/"}${encodeURI(r)}`}const w={cwd:()=>process.cwd(),now:()=>performance.now(),existsSync:$,importConfig:async e=>await import(d(e)),createStaticGen:k},S=`
3
+ askr-ssg - Static Site Generation for Askr
4
+
5
+ Usage:
6
+ askr-ssg --config <path> --output <dir> [--incremental]
7
+
8
+ Options:
9
+ --config <path> Path to SSG config file (TypeScript module)
10
+ --output <dir> Output directory for generated HTML
11
+ --workers <n|auto> Preferred render worker count for SSG throughput
12
+ --incremental Use incremental generation if a manifest exists
13
+ --changed-key <key> Mark an invalidation key as changed (repeatable)
14
+ --changed-route <path> Mark a concrete route path as changed (repeatable)
15
+ --force-full Force a full rebuild even with incremental flags
16
+ --help Show this help message
17
+
18
+ Example:
19
+ askr-ssg --config ./ssg.config.ts --output ./dist/static --incremental --changed-key blog/post-123
20
+
21
+ TypeScript config execution:
22
+ Use tsx to run the CLI with TS config loading:
23
+ tsx node_modules/@askrjs/askr/dist/bin/askr-ssg.js --config ./ssg.config.ts --output ./dist/static
24
+ `;function v(e){const r={configPath:"",outputDir:"",workers:1,incremental:!1,changedKeys:[],changedRoutes:[],forceFull:!1,help:!1};for(let t=0;t<e.length;t++)e[t]==="--config"&&t+1<e.length?(r.configPath=e[t+1],t++):e[t]==="--output"&&t+1<e.length?(r.outputDir=e[t+1],t++):e[t]==="--workers"&&t+1<e.length?(r.workers=e[t+1]==="auto"?"auto":Number(e[t+1]),t++):e[t]==="--changed-key"&&t+1<e.length?(r.changedKeys.push(e[t+1]),t++):e[t]==="--changed-route"&&t+1<e.length?(r.changedRoutes.push(e[t+1]),t++):e[t]==="--incremental"?r.incremental=!0:e[t]==="--force-full"?r.forceFull=!0:(e[t]==="--help"||e[t]==="-h")&&(r.help=!0);return r}function x(e){return{mode:e.incremental?"incremental":"full",changedKeys:e.changedKeys,changedRoutes:e.changedRoutes,forceFull:e.forceFull}}function C(e,r,t,o){e.log(""),e.log(`Generation complete in ${t}s`),e.log(` Mode: ${o.mode}`),e.log(` Generated: ${o.successful}/${o.totalRoutes} routes`),e.log(` Failed: ${o.failed} routes`),e.log(` Rebuilt: ${o.rebuilt} routes`),e.log(` Skipped: ${o.skipped} routes`),e.log(` Removed: ${o.removed} routes`),e.log(` CacheHit: ${o.cacheHits} routes`),e.log(` Output: ${r}`),e.log(` Metadata: ${r}/metadata.json`),e.log("")}async function G(e,r={},t=console){const o=v(e);if(o.help)return t.log(S),0;if(!o.configPath)return t.error("Error: --config argument is required"),1;if(!o.configPath.endsWith(".ts"))return t.error("Error: --config must point to a TypeScript file (.ts)"),1;if(!o.outputDir)return t.error("Error: --output argument is required"),1;const s={...w,...r},a=u(s.cwd(),o.configPath),f=u(s.cwd(),o.outputDir);if(!s.existsSync(a))return t.error(`Error: Config file not found: ${a}`),1;try{t.log(`Loading config: ${a}`);const n=await s.importConfig(a),i=n.default||n;if(!Array.isArray(i.routes))return t.error("Error: Config must export routes array"),1;t.log(`Generating ${i.routes.length} routes...`);const g=s.createStaticGen({routes:i.routes,outputDir:f,seed:i.seed,dataOverrides:i.dataOverrides,concurrency:i.concurrency,parallelism:o.workers}),p=s.now(),c=await g.generate(x(o)),h=((s.now()-p)/1e3).toFixed(2);if(C(t,f,h,c),c.failed>0){t.log("Errors encountered:");for(const l of c.routes)l.status==="error"&&t.log(` ${l.path}: ${l.error}`);return t.log(""),1}return 0}catch(n){return t.error("Generation failed:"),t.error(n instanceof Error?n.message:String(n)),n instanceof Error&&n.stack&&t.error(n.stack),1}}async function b(){const e=await G(process.argv.slice(2));process.exit(e)}process.argv[1]&&import.meta.url===d(process.argv[1])&&b();export{v as parseCliArgs,G as runCli};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/boot/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAIL,KAAK,iBAAiB,EAEvB,MAAM,sBAAsB,CAAC;AAuB9B,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,SAAS,EAAE,iBAAiB,CAAC;IAE7B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAmHD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,QAIlD;AAkFD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG9C,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,SAAS,EAAE,iBAAiB,CAAC;IAE7B,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,KAAK,EAAE,CAAC;IAEhB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,KAAK,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,KAAK,EAAE,CAAC;IAEhB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,OAAO,CAAC,EAAE;QACR,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAuCvD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAWzD;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAwEhE;AAoED;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsGxE;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAYvD;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAMtD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/boot/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAIL,KAAK,iBAAiB,EAEvB,MAAM,sBAAsB,CAAC;AAuB9B,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,SAAS,EAAE,iBAAiB,CAAC;IAE7B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAmHD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,QAIlD;AAkFD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG9C,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,SAAS,EAAE,iBAAiB,CAAC;IAE7B,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,KAAK,EAAE,CAAC;IAEhB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,KAAK,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,KAAK,EAAE,CAAC;IAEhB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,OAAO,CAAC,EAAE;QACR,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAuCvD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAWzD;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DhE;AAgLD;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuFxE;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAYvD;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAMtD"}
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["router/route.js","router/match.js","runtime/component.js","runtime/scheduler.js","dev/invariant.js","dev/logger.js","runtime/context.js","common/jsx.js","runtime/dev-namespace.js","runtime/fastlane.js","renderer/keyed.js","renderer/utils.js","renderer/index.js","renderer/types.js","common/vnode.js","renderer/cleanup.js","runtime/events.js","renderer/dom.js","jsx-runtime.js","jsx/types.js","runtime/for.js","renderer/reconcile.js","renderer/fastpath.js","renderer/evaluate.js","runtime/execution-model.js","router/navigate.js","ssr/index.js","jsx/index.js","jsx/utils.js","foundations/structures/portal.js","ssr/context.js","ssr/errors.js","common/ssr-errors.js","runtime/ssr-bridge.js","ssr/render-keys.js","ssr/escape.js","ssr/attrs.js","ssr/sink.js","ssr/stream-render.js"])))=>i.map(i=>d[i]);
2
- import{__vitePreload as w}from"../_virtual/preload-helper.js";import{cleanupComponent as S,createComponentInstance as k,mountComponent as C}from"../runtime/component.js";import{globalScheduler as H}from"../runtime/scheduler.js";import{assertExecutionModel as _}from"../runtime/execution-model.js";import"../jsx/index.js";import{DefaultPortal as M}from"../foundations/structures/portal.js";import"../renderer/index.js";import{removeAllListeners as v}from"../renderer/cleanup.js";import{ELEMENT_TYPE as T,Fragment as N}from"../common/jsx.js";const j=Symbol.for("__ASKR_HAS_ROUTES__");let q=0;const h=new WeakMap,I=Symbol.for("__tempoCleanup__");function B(e,t){e[I]=()=>{const r=[];try{v(e)}catch(a){r.push(a)}try{const a=e.querySelectorAll("*");for(const o of Array.from(a))try{const n=o.__ASKR_INSTANCE;if(n){try{S(n)}catch(i){r.push(i)}try{delete o.__ASKR_INSTANCE}catch(i){r.push(i)}}}catch(n){r.push(n)}}catch(a){r.push(a)}try{S(t)}catch(a){r.push(a)}if(r.length>0&&t.cleanupStrict)throw new AggregateError(r,"cleanup failed for app root")};try{const r=Object.getOwnPropertyDescriptor(e,"innerHTML")||Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e),"innerHTML")||Object.getOwnPropertyDescriptor(Element.prototype,"innerHTML");r&&(r.get||r.set)&&Object.defineProperty(e,"innerHTML",{get:r.get?function(){return r.get.call(this)}:void 0,set:function(a){if(a===""&&h.get(this)===t){try{v(e)}catch(o){if(t.cleanupStrict)throw o}try{S(t)}catch(o){if(t.cleanupStrict)throw o}}if(r.set)return r.set.call(this,a)},configurable:!0})}catch{}}function Q(e){throw new Error("The `teardownApp` alias has been removed. Use `cleanupApp(root)` instead.")}function y(e,t,r){const a=(i,c)=>{const s=t(i,c),l={$$typeof:T,type:M,props:{},key:"__default_portal"};return{$$typeof:T,type:N,props:{children:s==null?[l]:[s,l]}}};Object.defineProperty(a,"name",{value:t.name||"Component"});const o=e[I];o&&o();let n=h.get(e);if(n){v(e);try{S(n)}catch{}n.fn=a,n.evaluationGeneration++,n.mounted=!1,n.expectedStateIndices=[],n.firstRenderComplete=!1,n.isRoot=!0,r&&typeof r.cleanupStrict=="boolean"&&(n.cleanupStrict=r.cleanupStrict)}else{const i=String(++q);n=k(i,a,{},e),h.set(e,n),n.isRoot=!0,r&&typeof r.cleanupStrict=="boolean"&&(n.cleanupStrict=r.cleanupStrict)}B(e,n),C(n),H.flush()}function D(e){if(_("islands"),!e||typeof e!="object")throw new Error("createIsland requires a config object");if(typeof e.component!="function")throw new Error("createIsland: component must be a function");const t=typeof e.root=="string"?document.getElementById(e.root):e.root;if(!t)throw new Error(`Root element not found: ${e.root}`);if("routes"in e)throw new Error("createIsland does not accept routes; use createSPA for routed apps");try{if(globalThis[j])throw new Error("Routes are not supported with islands. Use createSPA (client) or createSSR (server) instead.")}catch{}y(t,e.component,{cleanupStrict:e.cleanupStrict})}function X(e){if(_("islands"),!e||typeof e!="object")throw new Error("createIslands requires a config object");if(!Array.isArray(e.islands)||e.islands.length===0)throw new Error("createIslands requires a non-empty islands array");for(const t of e.islands)D(t)}async function Z(e){if(_("spa"),!e||typeof e!="object")throw new Error("createSPA requires a config object");if(!Array.isArray(e.routes)||e.routes.length===0)throw new Error("createSPA requires a route table. If you are enhancing existing HTML, use createIsland instead.");const t=typeof e.root=="string"?document.getElementById(e.root):e.root;if(!t)throw new Error(`Root element not found: ${e.root}`);const{clearRoutes:r,route:a,lockRouteRegistration:o,resolveRoute:n}=await w(async()=>{const{clearRoutes:u,route:f,lockRouteRegistration:g,resolveRoute:p}=await import("../router/route.js");return{clearRoutes:u,route:f,lockRouteRegistration:g,resolveRoute:p}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]));r();for(const u of e.routes)a(u.path,u.handler,u.namespace);o();const i=typeof window<"u"?window.location.pathname:"/",c=n(i);if(!c){y(t,()=>({type:"div",children:[]}),{cleanupStrict:!1});const{registerAppInstance:u,initializeNavigation:f}=await w(async()=>{const{registerAppInstance:p,initializeNavigation:A}=await import("../router/navigate.js");return{registerAppInstance:p,initializeNavigation:A}},__vite__mapDeps([25,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24])),g=h.get(t);if(!g)throw new Error("Internal error: app instance missing");u(g,i),f();return}y(t,c.handler,{cleanupStrict:!1});const{registerAppInstance:s,initializeNavigation:l}=await w(async()=>{const{registerAppInstance:u,initializeNavigation:f}=await import("../router/navigate.js");return{registerAppInstance:u,initializeNavigation:f}},__vite__mapDeps([25,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24])),m=h.get(t);if(!m)throw new Error("Internal error: app instance missing");s(m,i),l()}function x(e,t){for(const r of t)e.querySelectorAll(r).forEach(o=>o.setAttribute("data-skip-hydrate","true"))}async function z(e,t,r){const{renderToStringSync:a}=await w(async()=>{const{renderToStringSync:o}=await import("../ssr/index.js");return{renderToStringSync:o}},__vite__mapDeps([26,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,27,28,29,30,31,32,33,34,35,36,37,38]));if(r.deferUntilIdle&&(typeof requestIdleCallback<"u"?await new Promise(o=>{requestIdleCallback(()=>o(void 0),{timeout:2e3})}):await new Promise(o=>setTimeout(o,0))),r.deferBelowFold){const o=r.foldThreshold??window.innerHeight,n=Array.from(e.querySelectorAll("*")).filter(c=>c.getBoundingClientRect().top>=o);for(const c of n)c.setAttribute("data-skip-hydrate","true");const i=()=>{const c=n.filter(s=>s.getBoundingClientRect().top<o);for(const s of c)s.removeAttribute("data-skip-hydrate");c.length===n.length&&window.removeEventListener("scroll",i)};window.addEventListener("scroll",i,{passive:!0})}y(e,t.handler,{cleanupStrict:!1})}async function ee(e){if(_("spa"),!e||typeof e!="object")throw new Error("hydrateSPA requires a config object");if(!Array.isArray(e.routes)||e.routes.length===0)throw new Error("hydrateSPA requires a route table. If you are enhancing existing HTML, use createIsland instead.");const t=typeof e.root=="string"?document.getElementById(e.root):e.root;if(!t)throw new Error(`Root element not found: ${e.root}`);const r=t.innerHTML,{clearRoutes:a,route:o,setServerLocation:n,lockRouteRegistration:i,resolveRoute:c}=await w(async()=>{const{clearRoutes:d,route:E,setServerLocation:b,lockRouteRegistration:P,resolveRoute:O}=await import("../router/route.js");return{clearRoutes:d,route:E,setServerLocation:b,lockRouteRegistration:P,resolveRoute:O}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]));a();for(const d of e.routes)o(d.path,d.handler,d.namespace);const s=typeof window<"u"?window.location.pathname:"/";n(s),i();const l=c(s);if(!l)throw new Error(`hydrateSPA: no route found for current path (${s}).`);const{renderToStringSync:m}=await w(async()=>{const{renderToStringSync:d}=await import("../ssr/index.js");return{renderToStringSync:d}},__vite__mapDeps([26,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,27,28,29,30,31,32,33,34,35,36,37,38])),u=m(()=>l.handler(l.params)??{type:"div",children:[]}),f=document.createElement("div");f.innerHTML=r;const g=document.createElement("div");if(g.innerHTML=u,!f.isEqualNode(g))throw new Error("[Askr] Hydration mismatch detected. Server HTML does not match expected server-render output.");const p=e.hydrate;if(p){if(p.deferUntilIdle||p.deferBelowFold){await z(t,{handler:l.handler,params:l.params},p);return}p.skipSelectors?.length&&x(t,p.skipSelectors)}y(t,l.handler,{cleanupStrict:!1});const{registerAppInstance:A,initializeNavigation:L}=await w(async()=>{const{registerAppInstance:d,initializeNavigation:E}=await import("../router/navigate.js");return{registerAppInstance:d,initializeNavigation:E}},__vite__mapDeps([25,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24])),R=h.get(t);if(!R)throw new Error("Internal error: app instance missing");A(R,s),L()}async function te(e){throw new Error("The legacy `hydrate` API is removed. Use `hydrateSPA({ root, routes })` for SSR hydration with an explicit route table.")}function re(e){const t=typeof e=="string"?document.getElementById(e):e;if(!t)return;const r=t[I];typeof r=="function"&&r(),h.delete(t)}function ne(e){const t=typeof e=="string"?document.getElementById(e):e;return t?h.has(t):!1}export{re as cleanupApp,D as createIsland,X as createIslands,Z as createSPA,ne as hasApp,te as hydrate,ee as hydrateSPA,Q as teardownApp};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["router/route.js","router/match.js","runtime/component.js","runtime/scheduler.js","dev/invariant.js","dev/logger.js","runtime/perf-metrics.js","runtime/context.js","common/jsx.js","runtime/readable.js","runtime/dev-namespace.js","runtime/fastlane.js","renderer/keyed.js","renderer/utils.js","renderer/index.js","renderer/types.js","common/vnode.js","renderer/cleanup.js","runtime/events.js","renderer/dom.js","jsx-runtime.js","jsx/types.js","runtime/for.js","renderer/reconcile.js","renderer/fastpath.js","renderer/evaluate.js","runtime/execution-model.js","ssr/context.js","ssr/errors.js","common/ssr-errors.js","router/navigate.js","ssr/index.js","jsx/index.js","jsx/utils.js","foundations/structures/portal.js","runtime/ssr-bridge.js","ssr/render-keys.js","ssr/escape.js","ssr/attrs.js","ssr/sink.js","ssr/stream-render.js"])))=>i.map(i=>d[i]);
2
+ import{__vitePreload as w}from"../_virtual/preload-helper.js";import{cleanupComponent as m,createComponentInstance as N,mountComponent as B}from"../runtime/component.js";import{globalScheduler as k}from"../runtime/scheduler.js";import{assertExecutionModel as S}from"../runtime/execution-model.js";import"../jsx/index.js";import{DefaultPortal as C}from"../foundations/structures/portal.js";import"../renderer/index.js";import{removeAllListeners as A}from"../renderer/cleanup.js";import{ELEMENT_TYPE as E,Fragment as H}from"../common/jsx.js";const O=Symbol.for("__ASKR_HAS_ROUTES__");let j=0;const d=new WeakMap,v=Symbol.for("__tempoCleanup__");function D(e,t){e[v]=()=>{const r=[];try{A(e)}catch(o){r.push(o)}try{const o=e.querySelectorAll("*");for(const n of Array.from(o))try{const a=n.__ASKR_INSTANCE;if(a){try{m(a)}catch(i){r.push(i)}try{delete n.__ASKR_INSTANCE}catch(i){r.push(i)}}}catch(a){r.push(a)}}catch(o){r.push(o)}try{m(t)}catch(o){r.push(o)}if(r.length>0&&t.cleanupStrict)throw new AggregateError(r,"cleanup failed for app root")};try{const r=Object.getOwnPropertyDescriptor(e,"innerHTML")||Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e),"innerHTML")||Object.getOwnPropertyDescriptor(Element.prototype,"innerHTML");r&&(r.get||r.set)&&Object.defineProperty(e,"innerHTML",{get:r.get?function(){return r.get.call(this)}:void 0,set:function(o){if(o===""&&d.get(this)===t){try{A(e)}catch(n){if(t.cleanupStrict)throw n}try{m(t)}catch(n){if(t.cleanupStrict)throw n}}if(r.set)return r.set.call(this,o)},configurable:!0})}catch{}}function J(e){throw new Error("The `teardownApp` alias has been removed. Use `cleanupApp(root)` instead.")}function y(e,t,r){const o=(i,u)=>{const p=t(i,u),l={$$typeof:E,type:C,props:{},key:"__default_portal"};return{$$typeof:E,type:H,props:{children:p==null?[l]:[p,l]}}};Object.defineProperty(o,"name",{value:t.name||"Component"});const n=e[v];n&&n();let a=d.get(e);if(a){A(e);try{m(a)}catch{}a.fn=o,a.evaluationGeneration++,a.mounted=!1,a.expectedStateIndices=[],a.firstRenderComplete=!1,a.isRoot=!0,r&&typeof r.cleanupStrict=="boolean"&&(a.cleanupStrict=r.cleanupStrict)}else{const i=String(++j);a=N(i,o,{},e),d.set(e,a),a.isRoot=!0,r&&typeof r.cleanupStrict=="boolean"&&(a.cleanupStrict=r.cleanupStrict)}D(e,a),B(a),k.flush()}function q(e){if(S("islands"),!e||typeof e!="object")throw new Error("createIsland requires a config object");if(typeof e.component!="function")throw new Error("createIsland: component must be a function");const t=typeof e.root=="string"?document.getElementById(e.root):e.root;if(!t)throw new Error(`Root element not found: ${e.root}`);if("routes"in e)throw new Error("createIsland does not accept routes; use createSPA for routed apps");try{if(globalThis[O])throw new Error("Routes are not supported with islands. Use createSPA (client) or createSSR (server) instead.")}catch{}y(t,e.component,{cleanupStrict:e.cleanupStrict})}function Q(e){if(S("islands"),!e||typeof e!="object")throw new Error("createIslands requires a config object");if(!Array.isArray(e.islands)||e.islands.length===0)throw new Error("createIslands requires a non-empty islands array");for(const t of e.islands)q(t)}async function X(e){if(S("spa"),!e||typeof e!="object")throw new Error("createSPA requires a config object");if(!Array.isArray(e.routes)||e.routes.length===0)throw new Error("createSPA requires a route table. If you are enhancing existing HTML, use createIsland instead.");const t=typeof e.root=="string"?document.getElementById(e.root):e.root;if(!t)throw new Error(`Root element not found: ${e.root}`);const{clearRoutes:r,route:o,lockRouteRegistration:n,resolveRoute:a}=await w(async()=>{const{clearRoutes:s,route:c,lockRouteRegistration:h,resolveRoute:g}=await import("../router/route.js");return{clearRoutes:s,route:c,lockRouteRegistration:h,resolveRoute:g}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]));r();for(const s of e.routes)o(s.path,s.handler,s.namespace);n();const i=typeof window<"u"?window.location.pathname:"/",u=a(i);if(!u){y(t,()=>({type:"div",children:[]}),{cleanupStrict:e.cleanupStrict});const{registerAppInstance:s,initializeNavigation:c}=await w(async()=>{const{registerAppInstance:g,initializeNavigation:_}=await import("../router/navigate.js");return{registerAppInstance:g,initializeNavigation:_}},__vite__mapDeps([30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29])),h=d.get(t);if(!h)throw new Error("Internal error: app instance missing");s(h,i),c();return}y(t,u.handler,{cleanupStrict:e.cleanupStrict});const{registerAppInstance:p,initializeNavigation:l}=await w(async()=>{const{registerAppInstance:s,initializeNavigation:c}=await import("../router/navigate.js");return{registerAppInstance:s,initializeNavigation:c}},__vite__mapDeps([30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29])),f=d.get(t);if(!f)throw new Error("Internal error: app instance missing");p(f,i),l()}function L(e,t){for(const r of t)e.querySelectorAll(r).forEach(n=>n.setAttribute("data-skip-hydrate","true"))}function U(e,t){const r=[],o=[];for(let n=e.children.length-1;n>=0;n-=1)o.push(e.children[n]);for(;o.length>0;){const n=o.pop();if(n.hasAttribute("data-skip-hydrate"))continue;if(n.getBoundingClientRect().top>=t){n.setAttribute("data-skip-hydrate","true"),r.push(n);continue}for(let i=n.children.length-1;i>=0;i-=1)o.push(n.children[i])}return r}function R(e,t){let r=!1,o=0;for(const n of e){if(!n.hasAttribute("data-skip-hydrate"))continue;n.getBoundingClientRect().top<t?(n.removeAttribute("data-skip-hydrate"),r=!0):o+=1}return{activated:r,remaining:o}}function b(e){return new Promise(t=>{if(typeof requestIdleCallback<"u"){requestIdleCallback(()=>{e(),t()},{timeout:2e3});return}setTimeout(()=>{e(),t()},0)})}function P(e){const t=d.get(e);t&&(t._enqueueRun?.(),k.flush())}async function I(e,t){const{registerAppInstance:r,initializeNavigation:o}=await w(async()=>{const{registerAppInstance:a,initializeNavigation:i}=await import("../router/navigate.js");return{registerAppInstance:a,initializeNavigation:i}},__vite__mapDeps([30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29])),n=d.get(e);if(!n)throw new Error("Internal error: app instance missing");r(n,t),o()}async function F(e,t,r,o,n){const a=(n.skipSelectors?.length??0)>0,i=!!n.deferBelowFold,u=a||i;n.skipSelectors?.length&&L(e,n.skipSelectors);let p=[];if(n.deferBelowFold){const l=n.foldThreshold??window.innerHeight;p=U(e,l);const f=()=>{const{activated:s,remaining:c}=R(p,l);s&&(P(e),c===0&&window.removeEventListener("scroll",f))};window.addEventListener("scroll",f,{passive:!0})}if(n.deferUntilIdle&&!u){await b(()=>{y(e,t.handler,{cleanupStrict:o})}),await I(e,r);return}y(e,t.handler,{cleanupStrict:o}),await I(e,r),n.deferUntilIdle&&p.length>0&&await b(()=>{const{activated:l}=R(p,Number.POSITIVE_INFINITY);l&&P(e)})}async function Z(e){if(S("spa"),!e||typeof e!="object")throw new Error("hydrateSPA requires a config object");if(!Array.isArray(e.routes)||e.routes.length===0)throw new Error("hydrateSPA requires a route table. If you are enhancing existing HTML, use createIsland instead.");const t=typeof e.root=="string"?document.getElementById(e.root):e.root;if(!t)throw new Error(`Root element not found: ${e.root}`);const{clearRoutes:r,route:o,setServerLocation:n,lockRouteRegistration:a,resolveRoute:i}=await w(async()=>{const{clearRoutes:c,route:h,setServerLocation:g,lockRouteRegistration:_,resolveRoute:T}=await import("../router/route.js");return{clearRoutes:c,route:h,setServerLocation:g,lockRouteRegistration:_,resolveRoute:T}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]));r();for(const c of e.routes)o(c.path,c.handler,c.namespace);const u=typeof window<"u"?window.location.pathname:"/",p=typeof window<"u"?`${window.location.pathname}${window.location.search}${window.location.hash}`:u;n(p),a();const l=i(u);if(!l)throw new Error(`hydrateSPA: no route found for current path (${u}).`);const{verifyHydrationSyncForUrl:f}=await w(async()=>{const{verifyHydrationSyncForUrl:c}=await import("../ssr/index.js");return{verifyHydrationSyncForUrl:c}},__vite__mapDeps([31,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,32,33,34,35,36,37,38,39,40]));if(!f({root:t,url:p,routes:e.routes}))throw new Error("[Askr] Hydration mismatch detected. Server HTML does not match expected server-render output.");const s=e.hydrate;if(s){if(s.deferUntilIdle||s.deferBelowFold){await F(t,{handler:l.handler,params:l.params},u,e.cleanupStrict,s);return}s.skipSelectors?.length&&L(t,s.skipSelectors)}y(t,l.handler,{cleanupStrict:e.cleanupStrict}),await I(t,u)}async function ee(e){throw new Error("The legacy `hydrate` API is removed. Use `hydrateSPA({ root, routes })` for SSR hydration with an explicit route table.")}function te(e){const t=typeof e=="string"?document.getElementById(e):e;if(!t)return;const r=t[v];typeof r=="function"&&r(),d.delete(t)}function re(e){const t=typeof e=="string"?document.getElementById(e):e;return t?d.has(t):!1}export{te as cleanupApp,q as createIsland,Q as createIslands,X as createSPA,re as hasApp,ee as hydrate,Z as hydrateSPA,J as teardownApp};
@@ -3,13 +3,20 @@
3
3
  *
4
4
  * Provides sensible defaults so Vite "just works" with Askr without extra config:
5
5
  * - Configures esbuild JSX injection and `optimizeDeps.include` so the runtime is available
6
- * - Optional SSR template precompilation for improved server rendering performance
7
6
  */
8
7
  import type { Plugin } from 'vite';
9
8
  export interface AskrVitePluginOptions {
10
9
  /** Enable the built-in JSX transform that rewrites JSX to Askr's automatic runtime. */
11
10
  transformJsx?: boolean;
12
- /** Enable SSR template precompilation for improved server rendering performance. */
11
+ /**
12
+ * Opt-in lightweight template lowering.
13
+ * Current v1 optimization hoists repeated static class and style string literals.
14
+ */
15
+ optimizeTemplates?: boolean;
16
+ /**
17
+ * Deprecated no-op kept for compatibility with older configs.
18
+ * SSR precompilation is no longer supported by this plugin.
19
+ */
13
20
  ssrPrecompile?: boolean;
14
21
  }
15
22
  export declare function askrVitePlugin(opts?: AskrVitePluginOptions): Plugin;
@@ -1 +1 @@
1
- {"version":3,"file":"vite-plugin-askr.d.ts","sourceRoot":"","sources":["../../src/dev/vite-plugin-askr.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,MAAM,WAAW,qBAAqB;IACpC,uFAAuF;IACvF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oFAAoF;IACpF,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AA6CD,wBAAgB,cAAc,CAAC,IAAI,GAAE,qBAA0B,GAAG,MAAM,CAsFvE;AAGD,eAAO,MAAM,IAAI,uBAAiB,CAAC;AAEnC,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"vite-plugin-askr.d.ts","sourceRoot":"","sources":["../../src/dev/vite-plugin-askr.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,MAAM,WAAW,qBAAqB;IACpC,uFAAuF;IACvF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,cAAc,CAAC,IAAI,GAAE,qBAA0B,GAAG,MAAM,CAuFvE;AAoCD,eAAO,MAAM,IAAI,uBAAiB,CAAC;AAEnC,eAAe,cAAc,CAAC"}
package/dist/index.d.ts CHANGED
@@ -14,6 +14,9 @@ export type { SPAConfig, IslandConfig } from './boot';
14
14
  export { state } from './runtime/state';
15
15
  export type { State } from './runtime/state';
16
16
  export { derive } from './runtime/derive';
17
+ export type { Derived } from './runtime/derive';
18
+ export { selector } from './runtime/selector';
19
+ export type { Selector } from './runtime/selector';
17
20
  export { For } from './for';
18
21
  export type { Props } from './common/props';
19
22
  export { isEventDelegationEnabled, disableEventDelegation, enableEventDelegation, setGlobalDelegationContainer, } from './runtime/events';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACjD,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,YAAY,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,YAAY,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACjD,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,YAAY,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,YAAY,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{createIsland as r,createSPA as a}from"./boot/index.js";import{state as l}from"./runtime/state.js";import{derive as m}from"./runtime/derive.js";import"./for/index.js";import{disableEventDelegation as f,enableEventDelegation as s,isEventDelegationEnabled as x,setGlobalDelegationContainer as b}from"./runtime/events.js";import{For as g}from"./for/for.js";export{g as For,r as createIsland,a as createSPA,m as derive,f as disableEventDelegation,s as enableEventDelegation,x as isEventDelegationEnabled,b as setGlobalDelegationContainer,l as state};
1
+ import{createIsland as r,createSPA as a}from"./boot/index.js";import{state as l}from"./runtime/state.js";import{derive as m}from"./runtime/derive.js";import{selector as f}from"./runtime/selector.js";import"./for/index.js";import{disableEventDelegation as x,enableEventDelegation as b,isEventDelegationEnabled as d,setGlobalDelegationContainer as g}from"./runtime/events.js";import{For as D}from"./for/for.js";export{D as For,r as createIsland,a as createSPA,m as derive,x as disableEventDelegation,b as enableEventDelegation,d as isEventDelegationEnabled,f as selector,g as setGlobalDelegationContainer,l as state};
@@ -1,16 +1,16 @@
1
- import"../../../_virtual/_commonjsHelpers.js";import ie from"../../../_virtual/___vite-browser-external.js";var qe,pt;function dr(){if(pt)return qe;pt=1;var Ne={},wt=Object.create,Pe=Object.defineProperty,yt=Object.getOwnPropertyDescriptor,bt=Object.getOwnPropertyNames,vt=Object.getPrototypeOf,xt=Object.prototype.hasOwnProperty,$t=(e,t)=>{for(var r in t)Pe(e,r,{get:t[r],enumerable:!0})},Je=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of bt(t))!xt.call(e,l)&&l!==r&&Pe(e,l,{get:()=>t[l],enumerable:!(n=yt(t,l))||n.enumerable});return e},ur=(e,t,r)=>(r=e!=null?wt(vt(e)):{},Je(t||!e||!e.__esModule?Pe(r,"default",{value:e,enumerable:!0}):r,e)),Et=e=>Je(Pe({},"__esModule",{value:!0}),e),xe={};$t(xe,{analyzeMetafile:()=>Xt,analyzeMetafileSync:()=>rr,build:()=>Ht,buildSync:()=>Zt,context:()=>Kt,default:()=>ar,formatMessages:()=>Gt,formatMessagesSync:()=>tr,initialize:()=>ir,stop:()=>nr,transform:()=>Qt,transformSync:()=>er,version:()=>Yt}),qe=Et(xe);function Ve(e){let t=n=>{if(n===null)r.write8(0);else if(typeof n=="boolean")r.write8(1),r.write8(+n);else if(typeof n=="number")r.write8(2),r.write32(n|0);else if(typeof n=="string")r.write8(3),r.write(re(n));else if(n instanceof Uint8Array)r.write8(4),r.write(n);else if(n instanceof Array){r.write8(5),r.write32(n.length);for(let l of n)t(l)}else{let l=Object.keys(n);r.write8(6),r.write32(l.length);for(let s of l)r.write(re(s)),t(n[s])}},r=new Ye;return r.write32(0),r.write32(e.id<<1|+!e.isRequest),t(e.value),Ue(r.buf,r.len-4,0),r.buf.subarray(0,r.len)}function kt(e){let t=()=>{switch(r.read8()){case 0:return null;case 1:return!!r.read8();case 2:return r.read32();case 3:return pe(r.read());case 4:return r.read();case 5:{let a=r.read32(),h=[];for(let o=0;o<a;o++)h.push(t());return h}case 6:{let a=r.read32(),h={};for(let o=0;o<a;o++)h[pe(r.read())]=t();return h}default:throw new Error("Invalid packet")}},r=new Ye(e),n=r.read32(),l=(n&1)===0;n>>>=1;let s=t();if(r.ptr!==e.length)throw new Error("Invalid packet");return{id:n,isRequest:l,value:s}}var Ye=class{constructor(e=new Uint8Array(1024)){this.buf=e,this.len=0,this.ptr=0}_write(e){if(this.len+e>this.buf.length){let t=new Uint8Array((this.len+e)*2);t.set(this.buf),this.buf=t}return this.len+=e,this.len-e}write8(e){let t=this._write(1);this.buf[t]=e}write32(e){let t=this._write(4);Ue(this.buf,e,t)}write(e){let t=this._write(4+e.length);Ue(this.buf,e.length,t),this.buf.set(e,t+4)}_read(e){if(this.ptr+e>this.buf.length)throw new Error("Invalid packet");return this.ptr+=e,this.ptr-e}read8(){return this.buf[this._read(1)]}read32(){return He(this.buf,this._read(4))}read(){let e=this.read32(),t=new Uint8Array(e),r=this._read(t.length);return t.set(this.buf.subarray(r,r+e)),t}},re,pe,Re;if(typeof TextEncoder<"u"&&typeof TextDecoder<"u"){let e=new TextEncoder,t=new TextDecoder;re=r=>e.encode(r),pe=r=>t.decode(r),Re='new TextEncoder().encode("")'}else if(typeof Buffer<"u")re=e=>Buffer.from(e),pe=e=>{let{buffer:t,byteOffset:r,byteLength:n}=e;return Buffer.from(t,r,n).toString()},Re='Buffer.from("")';else throw new Error("No UTF-8 codec found");if(!(re("")instanceof Uint8Array))throw new Error(`Invariant violation: "${Re} instanceof Uint8Array" is incorrectly false
1
+ import"../../../_virtual/_commonjsHelpers.js";import"../../../_virtual/_fs.js";import ve from"../../../_virtual/___vite-browser-external.js";import"../../../_virtual/_path.js";import gt from"fs";import wt from"path";var qe,yt;function yr(){if(yt)return qe;yt=1;var Ne={},bt=Object.create,Pe=Object.defineProperty,vt=Object.getOwnPropertyDescriptor,xt=Object.getOwnPropertyNames,$t=Object.getPrototypeOf,Et=Object.prototype.hasOwnProperty,kt=(e,t)=>{for(var r in t)Pe(e,r,{get:t[r],enumerable:!0})},Je=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of xt(t))!Et.call(e,l)&&l!==r&&Pe(e,l,{get:()=>t[l],enumerable:!(n=vt(t,l))||n.enumerable});return e},cr=(e,t,r)=>(r=e!=null?bt($t(e)):{},Je(t||!e||!e.__esModule?Pe(r,"default",{value:e,enumerable:!0}):r,e)),St=e=>Je(Pe({},"__esModule",{value:!0}),e),xe={};kt(xe,{analyzeMetafile:()=>er,analyzeMetafileSync:()=>ir,build:()=>Qt,buildSync:()=>tr,context:()=>Gt,default:()=>sr,formatMessages:()=>Zt,formatMessagesSync:()=>nr,initialize:()=>ar,stop:()=>lr,transform:()=>Xt,transformSync:()=>rr,version:()=>Kt}),qe=St(xe);function Ve(e){let t=n=>{if(n===null)r.write8(0);else if(typeof n=="boolean")r.write8(1),r.write8(+n);else if(typeof n=="number")r.write8(2),r.write32(n|0);else if(typeof n=="string")r.write8(3),r.write(re(n));else if(n instanceof Uint8Array)r.write8(4),r.write(n);else if(n instanceof Array){r.write8(5),r.write32(n.length);for(let l of n)t(l)}else{let l=Object.keys(n);r.write8(6),r.write32(l.length);for(let s of l)r.write(re(s)),t(n[s])}},r=new Ye;return r.write32(0),r.write32(e.id<<1|+!e.isRequest),t(e.value),Ue(r.buf,r.len-4,0),r.buf.subarray(0,r.len)}function At(e){let t=()=>{switch(r.read8()){case 0:return null;case 1:return!!r.read8();case 2:return r.read32();case 3:return pe(r.read());case 4:return r.read();case 5:{let a=r.read32(),h=[];for(let o=0;o<a;o++)h.push(t());return h}case 6:{let a=r.read32(),h={};for(let o=0;o<a;o++)h[pe(r.read())]=t();return h}default:throw new Error("Invalid packet")}},r=new Ye(e),n=r.read32(),l=(n&1)===0;n>>>=1;let s=t();if(r.ptr!==e.length)throw new Error("Invalid packet");return{id:n,isRequest:l,value:s}}var Ye=class{constructor(e=new Uint8Array(1024)){this.buf=e,this.len=0,this.ptr=0}_write(e){if(this.len+e>this.buf.length){let t=new Uint8Array((this.len+e)*2);t.set(this.buf),this.buf=t}return this.len+=e,this.len-e}write8(e){let t=this._write(1);this.buf[t]=e}write32(e){let t=this._write(4);Ue(this.buf,e,t)}write(e){let t=this._write(4+e.length);Ue(this.buf,e.length,t),this.buf.set(e,t+4)}_read(e){if(this.ptr+e>this.buf.length)throw new Error("Invalid packet");return this.ptr+=e,this.ptr-e}read8(){return this.buf[this._read(1)]}read32(){return He(this.buf,this._read(4))}read(){let e=this.read32(),t=new Uint8Array(e),r=this._read(t.length);return t.set(this.buf.subarray(r,r+e)),t}},re,pe,Re;if(typeof TextEncoder<"u"&&typeof TextDecoder<"u"){let e=new TextEncoder,t=new TextDecoder;re=r=>e.encode(r),pe=r=>t.decode(r),Re='new TextEncoder().encode("")'}else if(typeof Buffer<"u")re=e=>Buffer.from(e),pe=e=>{let{buffer:t,byteOffset:r,byteLength:n}=e;return Buffer.from(t,r,n).toString()},Re='Buffer.from("")';else throw new Error("No UTF-8 codec found");if(!(re("")instanceof Uint8Array))throw new Error(`Invariant violation: "${Re} instanceof Uint8Array" is incorrectly false
2
2
 
3
3
  This indicates that your JavaScript environment is broken. You cannot use
4
4
  esbuild in this environment because esbuild relies on this invariant. This
5
5
  is not a problem with esbuild. You need to fix your environment instead.
6
- `);function He(e,t){return e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24}function Ue(e,t,r){e[r++]=t,e[r++]=t>>8,e[r++]=t>>16,e[r++]=t>>24}var V=JSON.stringify,Ke="warning",Qe="silent";function we(e,t){const r=[];for(const n of e){if(Q(n,t),n.indexOf(",")>=0)throw new Error(`Invalid ${t}: ${n}`);r.push(n)}return r.join(",")}var je=()=>null,U=e=>typeof e=="boolean"?null:"a boolean",y=e=>typeof e=="string"?null:"a string",Oe=e=>e instanceof RegExp?null:"a RegExp object",ce=e=>typeof e=="number"&&e===(e|0)?null:"an integer",St=e=>typeof e=="number"&&e===(e|0)&&e>=0&&e<=65535?null:"a valid port number",Ge=e=>typeof e=="function"?null:"a function",le=e=>Array.isArray(e)?null:"an array",K=e=>Array.isArray(e)&&e.every(t=>typeof t=="string")?null:"an array of strings",X=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)?null:"an object",At=e=>typeof e=="object"&&e!==null?null:"an array or an object",Pt=e=>e instanceof WebAssembly.Module?null:"a WebAssembly.Module",Xe=e=>typeof e=="object"&&!Array.isArray(e)?null:"an object or null",Ze=e=>typeof e=="string"||typeof e=="boolean"?null:"a string or a boolean",jt=e=>typeof e=="string"||typeof e=="object"&&e!==null&&!Array.isArray(e)?null:"a string or an object",et=e=>typeof e=="string"||Array.isArray(e)&&e.every(t=>typeof t=="string")?null:"a string or an array of strings",tt=e=>typeof e=="string"||e instanceof Uint8Array?null:"a string or a Uint8Array",Ot=e=>typeof e=="string"||e instanceof URL?null:"a string or a URL";function i(e,t,r,n){let l=e[r];if(t[r+""]=!0,l===void 0)return;let s=n(l);if(s!==null)throw new Error(`${V(r)} must be ${s}`);return l}function q(e,t,r){for(let n in e)if(!(n in t))throw new Error(`Invalid option ${r}: ${V(n)}`)}function Dt(e){let t=Object.create(null),r=i(e,t,"wasmURL",Ot),n=i(e,t,"wasmModule",Pt),l=i(e,t,"worker",U);return q(e,t,"in initialize() call"),{wasmURL:r,wasmModule:n,worker:l}}function rt(e){let t;if(e!==void 0){t=Object.create(null);for(let r in e){let n=e[r];if(typeof n=="string"||n===!1)t[r]=n;else throw new Error(`Expected ${V(r)} in mangle cache to map to either a string or false`)}}return t}function De(e,t,r,n,l){let s=i(t,r,"color",U),a=i(t,r,"logLevel",y),h=i(t,r,"logLimit",ce);s!==void 0?e.push(`--color=${s}`):n&&e.push("--color=true"),e.push(`--log-level=${a||l}`),e.push(`--log-limit=${h||0}`)}function Q(e,t,r){if(typeof e!="string")throw new Error(`Expected value for ${t}${r!==void 0?" "+V(r):""} to be a string, got ${typeof e} instead`);return e}function nt(e,t,r){let n=i(t,r,"legalComments",y),l=i(t,r,"sourceRoot",y),s=i(t,r,"sourcesContent",U),a=i(t,r,"target",et),h=i(t,r,"format",y),o=i(t,r,"globalName",y),w=i(t,r,"mangleProps",Oe),g=i(t,r,"reserveProps",Oe),$=i(t,r,"mangleQuoted",U),I=i(t,r,"minify",U),_=i(t,r,"minifySyntax",U),B=i(t,r,"minifyWhitespace",U),N=i(t,r,"minifyIdentifiers",U),L=i(t,r,"lineLimit",ce),W=i(t,r,"drop",K),z=i(t,r,"dropLabels",K),x=i(t,r,"charset",y),p=i(t,r,"treeShaking",U),d=i(t,r,"ignoreAnnotations",U),u=i(t,r,"jsx",y),E=i(t,r,"jsxFactory",y),S=i(t,r,"jsxFragment",y),D=i(t,r,"jsxImportSource",y),A=i(t,r,"jsxDev",U),f=i(t,r,"jsxSideEffects",U),c=i(t,r,"define",X),v=i(t,r,"logOverride",X),j=i(t,r,"supported",X),C=i(t,r,"pure",K),P=i(t,r,"keepNames",U),k=i(t,r,"platform",y),O=i(t,r,"tsconfigRaw",jt),R=i(t,r,"absPaths",K);if(n&&e.push(`--legal-comments=${n}`),l!==void 0&&e.push(`--source-root=${l}`),s!==void 0&&e.push(`--sources-content=${s}`),a&&e.push(`--target=${we(Array.isArray(a)?a:[a],"target")}`),h&&e.push(`--format=${h}`),o&&e.push(`--global-name=${o}`),k&&e.push(`--platform=${k}`),O&&e.push(`--tsconfig-raw=${typeof O=="string"?O:JSON.stringify(O)}`),I&&e.push("--minify"),_&&e.push("--minify-syntax"),B&&e.push("--minify-whitespace"),N&&e.push("--minify-identifiers"),L&&e.push(`--line-limit=${L}`),x&&e.push(`--charset=${x}`),p!==void 0&&e.push(`--tree-shaking=${p}`),d&&e.push("--ignore-annotations"),W)for(let m of W)e.push(`--drop:${Q(m,"drop")}`);if(z&&e.push(`--drop-labels=${we(z,"drop label")}`),R&&e.push(`--abs-paths=${we(R,"abs paths")}`),w&&e.push(`--mangle-props=${Le(w)}`),g&&e.push(`--reserve-props=${Le(g)}`),$!==void 0&&e.push(`--mangle-quoted=${$}`),u&&e.push(`--jsx=${u}`),E&&e.push(`--jsx-factory=${E}`),S&&e.push(`--jsx-fragment=${S}`),D&&e.push(`--jsx-import-source=${D}`),A&&e.push("--jsx-dev"),f&&e.push("--jsx-side-effects"),c)for(let m in c){if(m.indexOf("=")>=0)throw new Error(`Invalid define: ${m}`);e.push(`--define:${m}=${Q(c[m],"define",m)}`)}if(v)for(let m in v){if(m.indexOf("=")>=0)throw new Error(`Invalid log override: ${m}`);e.push(`--log-override:${m}=${Q(v[m],"log override",m)}`)}if(j)for(let m in j){if(m.indexOf("=")>=0)throw new Error(`Invalid supported: ${m}`);const F=j[m];if(typeof F!="boolean")throw new Error(`Expected value for supported ${V(m)} to be a boolean, got ${typeof F} instead`);e.push(`--supported:${m}=${F}`)}if(C)for(let m of C)e.push(`--pure:${Q(m,"pure")}`);P&&e.push("--keep-names")}function Ct(e,t,r,n,l){var s;let a=[],h=[],o=Object.create(null),w=null,g=null;De(a,t,o,r,n),nt(a,t,o);let $=i(t,o,"sourcemap",Ze),I=i(t,o,"bundle",U),_=i(t,o,"splitting",U),B=i(t,o,"preserveSymlinks",U),N=i(t,o,"metafile",U),L=i(t,o,"outfile",y),W=i(t,o,"outdir",y),z=i(t,o,"outbase",y),x=i(t,o,"tsconfig",y),p=i(t,o,"resolveExtensions",K),d=i(t,o,"nodePaths",K),u=i(t,o,"mainFields",K),E=i(t,o,"conditions",K),S=i(t,o,"external",K),D=i(t,o,"packages",y),A=i(t,o,"alias",X),f=i(t,o,"loader",X),c=i(t,o,"outExtension",X),v=i(t,o,"publicPath",y),j=i(t,o,"entryNames",y),C=i(t,o,"chunkNames",y),P=i(t,o,"assetNames",y),k=i(t,o,"inject",K),O=i(t,o,"banner",X),R=i(t,o,"footer",X),m=i(t,o,"entryPoints",At),F=i(t,o,"absWorkingDir",y),T=i(t,o,"stdin",X),M=(s=i(t,o,"write",U))!=null?s:l,G=i(t,o,"allowOverwrite",U),J=i(t,o,"mangleCache",X);if(o.plugins=!0,q(t,o,`in ${e}() call`),$&&a.push(`--sourcemap${$===!0?"":`=${$}`}`),I&&a.push("--bundle"),G&&a.push("--allow-overwrite"),_&&a.push("--splitting"),B&&a.push("--preserve-symlinks"),N&&a.push("--metafile"),L&&a.push(`--outfile=${L}`),W&&a.push(`--outdir=${W}`),z&&a.push(`--outbase=${z}`),x&&a.push(`--tsconfig=${x}`),D&&a.push(`--packages=${D}`),p&&a.push(`--resolve-extensions=${we(p,"resolve extension")}`),v&&a.push(`--public-path=${v}`),j&&a.push(`--entry-names=${j}`),C&&a.push(`--chunk-names=${C}`),P&&a.push(`--asset-names=${P}`),u&&a.push(`--main-fields=${we(u,"main field")}`),E&&a.push(`--conditions=${we(E,"condition")}`),S)for(let b of S)a.push(`--external:${Q(b,"external")}`);if(A)for(let b in A){if(b.indexOf("=")>=0)throw new Error(`Invalid package name in alias: ${b}`);a.push(`--alias:${b}=${Q(A[b],"alias",b)}`)}if(O)for(let b in O){if(b.indexOf("=")>=0)throw new Error(`Invalid banner file type: ${b}`);a.push(`--banner:${b}=${Q(O[b],"banner",b)}`)}if(R)for(let b in R){if(b.indexOf("=")>=0)throw new Error(`Invalid footer file type: ${b}`);a.push(`--footer:${b}=${Q(R[b],"footer",b)}`)}if(k)for(let b of k)a.push(`--inject:${Q(b,"inject")}`);if(f)for(let b in f){if(b.indexOf("=")>=0)throw new Error(`Invalid loader extension: ${b}`);a.push(`--loader:${b}=${Q(f[b],"loader",b)}`)}if(c)for(let b in c){if(b.indexOf("=")>=0)throw new Error(`Invalid out extension: ${b}`);a.push(`--out-extension:${b}=${Q(c[b],"out extension",b)}`)}if(m)if(Array.isArray(m))for(let b=0,se=m.length;b<se;b++){let ee=m[b];if(typeof ee=="object"&&ee!==null){let ne=Object.create(null),ue=i(ee,ne,"in",y),te=i(ee,ne,"out",y);if(q(ee,ne,"in entry point at index "+b),ue===void 0)throw new Error('Missing property "in" for entry point at index '+b);if(te===void 0)throw new Error('Missing property "out" for entry point at index '+b);h.push([te,ue])}else h.push(["",Q(ee,"entry point at index "+b)])}else for(let b in m)h.push([b,Q(m[b],"entry point",b)]);if(T){let b=Object.create(null),se=i(T,b,"contents",tt),ee=i(T,b,"resolveDir",y),ne=i(T,b,"sourcefile",y),ue=i(T,b,"loader",y);q(T,b,'in "stdin" object'),ne&&a.push(`--sourcefile=${ne}`),ue&&a.push(`--loader=${ue}`),ee&&(g=ee),typeof se=="string"?w=re(se):se instanceof Uint8Array&&(w=se)}let oe=[];if(d)for(let b of d)b+="",oe.push(b);return{entries:h,flags:a,write:M,stdinContents:w,stdinResolveDir:g,absWorkingDir:F,nodePaths:oe,mangleCache:rt(J)}}function Mt(e,t,r,n){let l=[],s=Object.create(null);De(l,t,s,r,n),nt(l,t,s);let a=i(t,s,"sourcemap",Ze),h=i(t,s,"sourcefile",y),o=i(t,s,"loader",y),w=i(t,s,"banner",y),g=i(t,s,"footer",y),$=i(t,s,"mangleCache",X);return q(t,s,`in ${e}() call`),a&&l.push(`--sourcemap=${a===!0?"external":a}`),h&&l.push(`--sourcefile=${h}`),o&&l.push(`--loader=${o}`),w&&l.push(`--banner=${w}`),g&&l.push(`--footer=${g}`),{flags:l,mangleCache:rt($)}}function it(e){const t={},r={didClose:!1,reason:""};let n={},l=0,s=0,a=new Uint8Array(16*1024),h=0,o=x=>{let p=h+x.length;if(p>a.length){let u=new Uint8Array(p*2);u.set(a),a=u}a.set(x,h),h+=x.length;let d=0;for(;d+4<=h;){let u=He(a,d);if(d+4+u>h)break;d+=4,B(a.subarray(d,d+u)),d+=u}d>0&&(a.copyWithin(0,d,h),h-=d)},w=x=>{r.didClose=!0,x&&(r.reason=": "+(x.message||x));const p="The service was stopped"+r.reason;for(let d in n)n[d](p,null);n={}},g=(x,p,d)=>{if(r.didClose)return d("The service is no longer running"+r.reason,null);let u=l++;n[u]=(E,S)=>{try{d(E,S)}finally{x&&x.unref()}},x&&x.ref(),e.writeToStdin(Ve({id:u,isRequest:!0,value:p}))},$=(x,p)=>{if(r.didClose)throw new Error("The service is no longer running"+r.reason);e.writeToStdin(Ve({id:x,isRequest:!1,value:p}))},I=async(x,p)=>{try{if(p.command==="ping"){$(x,{});return}if(typeof p.key=="number"){const d=t[p.key];if(!d)return;const u=d[p.command];if(u){await u(x,p);return}}throw new Error("Invalid command: "+p.command)}catch(d){const u=[de(d,e,null,void 0,"")];try{$(x,{errors:u})}catch{}}},_=!0,B=x=>{if(_){_=!1;let d=String.fromCharCode(...x);if(d!=="0.27.3")throw new Error(`Cannot start service: Host version "0.27.3" does not match binary version ${V(d)}`);return}let p=kt(x);if(p.isRequest)I(p.id,p.value);else{let d=n[p.id];delete n[p.id],p.value.error?d(p.value.error,{}):d(null,p.value)}};return{readFromStdout:o,afterClose:w,service:{buildOrContext:({callName:x,refs:p,options:d,isTTY:u,defaultWD:E,callback:S})=>{let D=0;const A=s++,f={},c={ref(){++D===1&&p&&p.ref()},unref(){--D===0&&(delete t[A],p&&p.unref())}};t[A]=f,c.ref(),Lt(x,A,g,$,c,e,f,d,u,E,(v,j)=>{try{S(v,j)}finally{c.unref()}})},transform:({callName:x,refs:p,input:d,options:u,isTTY:E,fs:S,callback:D})=>{const A=lt();let f=c=>{try{if(typeof d!="string"&&!(d instanceof Uint8Array))throw new Error('The input to "transform" must be a string or a Uint8Array');let{flags:v,mangleCache:j}=Mt(x,u,E,Qe),C={command:"transform",flags:v,inputFS:c!==null,input:c!==null?re(c):typeof d=="string"?re(d):d};j&&(C.mangleCache=j),g(p,C,(P,k)=>{if(P)return D(new Error(P),null);let O=ye(k.errors,A),R=ye(k.warnings,A),m=1,F=()=>{if(--m===0){let T={warnings:R,code:k.code,map:k.map,mangleCache:void 0,legalComments:void 0};"legalComments"in k&&(T.legalComments=k?.legalComments),k.mangleCache&&(T.mangleCache=k?.mangleCache),D(null,T)}};if(O.length>0)return D($e("Transform failed",O,R),null);k.codeFS&&(m++,S.readFile(k.code,(T,M)=>{T!==null?D(T,null):(k.code=M,F())})),k.mapFS&&(m++,S.readFile(k.map,(T,M)=>{T!==null?D(T,null):(k.map=M,F())})),F()})}catch(v){let j=[];try{De(j,u,{},E,Qe)}catch{}const C=de(v,e,A,void 0,"");g(p,{command:"error",flags:j,error:C},()=>{C.detail=A.load(C.detail),D($e("Transform failed",[C],[]),null)})}};if((typeof d=="string"||d instanceof Uint8Array)&&d.length>1024*1024){let c=f;f=()=>S.writeFile(d,c)}f(null)},formatMessages:({callName:x,refs:p,messages:d,options:u,callback:E})=>{if(!u)throw new Error(`Missing second argument in ${x}() call`);let S={},D=i(u,S,"kind",y),A=i(u,S,"color",U),f=i(u,S,"terminalWidth",ce);if(q(u,S,`in ${x}() call`),D===void 0)throw new Error(`Missing "kind" in ${x}() call`);if(D!=="error"&&D!=="warning")throw new Error(`Expected "kind" to be "error" or "warning" in ${x}() call`);let c={command:"format-msgs",messages:ae(d,"messages",null,"",f),isWarning:D==="warning"};A!==void 0&&(c.color=A),f!==void 0&&(c.terminalWidth=f),g(p,c,(v,j)=>{if(v)return E(new Error(v),null);E(null,j.messages)})},analyzeMetafile:({callName:x,refs:p,metafile:d,options:u,callback:E})=>{u===void 0&&(u={});let S={},D=i(u,S,"color",U),A=i(u,S,"verbose",U);q(u,S,`in ${x}() call`);let f={command:"analyze-metafile",metafile:d};D!==void 0&&(f.color=D),A!==void 0&&(f.verbose=A),g(p,f,(c,v)=>{if(c)return E(new Error(c),null);E(null,v.result)})}}}}function Lt(e,t,r,n,l,s,a,h,o,w,g){const $=lt(),I=e==="context",_=(L,W)=>{const z=[];try{De(z,h,{},o,Ke)}catch{}const x=de(L,s,$,void 0,W);r(l,{command:"error",flags:z,error:x},()=>{x.detail=$.load(x.detail),g($e(I?"Context failed":"Build failed",[x],[]),null)})};let B;if(typeof h=="object"){const L=h.plugins;if(L!==void 0){if(!Array.isArray(L))return _(new Error('"plugins" must be an array'),"");B=L}}if(B&&B.length>0){if(s.isSync)return _(new Error("Cannot use plugins in synchronous API calls"),"");Tt(t,r,n,l,s,a,h,B,$).then(L=>{if(!L.ok)return _(L.error,L.pluginName);try{N(L.requestPlugins,L.runOnEndCallbacks,L.scheduleOnDisposeCallbacks)}catch(W){_(W,"")}},L=>_(L,""));return}try{N(null,(L,W)=>W([],[]),()=>{})}catch(L){_(L,"")}function N(L,W,z){const x=s.hasFS,{entries:p,flags:d,write:u,stdinContents:E,stdinResolveDir:S,absWorkingDir:D,nodePaths:A,mangleCache:f}=Ct(e,h,o,Ke,x);if(u&&!s.hasFS)throw new Error('The "write" option is unavailable in this environment');const c={command:"build",key:t,entries:p,flags:d,write:u,stdinContents:E,stdinResolveDir:S,absWorkingDir:D||w,nodePaths:A,context:I};L&&(c.plugins=L),f&&(c.mangleCache=f);const v=(P,k)=>{const O={errors:ye(P.errors,$),warnings:ye(P.warnings,$),outputFiles:void 0,metafile:void 0,mangleCache:void 0},R=O.errors.slice(),m=O.warnings.slice();P.outputFiles&&(O.outputFiles=P.outputFiles.map(_t)),P.metafile&&(O.metafile=JSON.parse(P.metafile)),P.mangleCache&&(O.mangleCache=P.mangleCache),P.writeToStdout!==void 0&&console.log(pe(P.writeToStdout).replace(/\n$/,"")),W(O,(F,T)=>{if(R.length>0||F.length>0){const M=$e("Build failed",R.concat(F),m.concat(T));return k(M,null,F,T)}k(null,O,F,T)})};let j,C;I&&(a["on-end"]=(P,k)=>new Promise(O=>{v(k,(R,m,F,T)=>{const M={errors:F,warnings:T};C&&C(R,m),j=void 0,C=void 0,n(P,M),O()})})),r(l,c,(P,k)=>{if(P)return g(new Error(P),null);if(!I)return v(k,(m,F)=>(z(),g(m,F)));if(k.errors.length>0)return g($e("Context failed",k.errors,k.warnings),null);let O=!1;const R={rebuild:()=>(j||(j=new Promise((m,F)=>{let T;C=(G,J)=>{T||(T=()=>G?F(G):m(J))};const M=()=>{r(l,{command:"rebuild",key:t},(J,oe)=>{J?F(new Error(J)):T?T():M()})};M()})),j),watch:(m={})=>new Promise((F,T)=>{if(!s.hasFS)throw new Error('Cannot use the "watch" API in this environment');const M={},G=i(m,M,"delay",ce);q(m,M,"in watch() call");const J={command:"watch",key:t};G&&(J.delay=G),r(l,J,oe=>{oe?T(new Error(oe)):F(void 0)})}),serve:(m={})=>new Promise((F,T)=>{if(!s.hasFS)throw new Error('Cannot use the "serve" API in this environment');const M={},G=i(m,M,"port",St),J=i(m,M,"host",y),oe=i(m,M,"servedir",y),b=i(m,M,"keyfile",y),se=i(m,M,"certfile",y),ee=i(m,M,"fallback",y),ne=i(m,M,"cors",X),ue=i(m,M,"onRequest",Ge);q(m,M,"in serve() call");const te={command:"serve",key:t,onRequest:!!ue};if(G!==void 0&&(te.port=G),J!==void 0&&(te.host=J),oe!==void 0&&(te.servedir=oe),b!==void 0&&(te.keyfile=b),se!==void 0&&(te.certfile=se),ee!==void 0&&(te.fallback=ee),ne){const Ae={},ve=i(ne,Ae,"origin",et);q(ne,Ae,'on "cors" object'),Array.isArray(ve)?te.corsOrigin=ve:ve!==void 0&&(te.corsOrigin=[ve])}r(l,te,(Ae,ve)=>{if(Ae)return T(new Error(Ae));ue&&(a["serve-request"]=(or,sr)=>{ue(sr.args),n(or,{})}),F(ve)})}),cancel:()=>new Promise(m=>{if(O)return m();r(l,{command:"cancel",key:t},()=>{m()})}),dispose:()=>new Promise(m=>{if(O)return m();O=!0,r(l,{command:"dispose",key:t},()=>{m(),z(),l.unref()})})};l.ref(),g(null,R)})}}var Tt=async(e,t,r,n,l,s,a,h,o)=>{let w=[],g=[],$={},I={},_=[],B=0,N=0,L=[],W=!1;h=[...h];for(let p of h){let d={};if(typeof p!="object")throw new Error(`Plugin at index ${N} must be an object`);const u=i(p,d,"name",y);if(typeof u!="string"||u==="")throw new Error(`Plugin at index ${N} is missing a name`);try{let E=i(p,d,"setup",Ge);if(typeof E!="function")throw new Error("Plugin is missing a setup function");q(p,d,`on plugin ${V(u)}`);let S={name:u,onStart:!1,onEnd:!1,onResolve:[],onLoad:[]};N++;let A=E({initialOptions:a,resolve:(f,c={})=>{if(!W)throw new Error('Cannot call "resolve" before plugin setup has completed');if(typeof f!="string")throw new Error("The path to resolve must be a string");let v=Object.create(null),j=i(c,v,"pluginName",y),C=i(c,v,"importer",y),P=i(c,v,"namespace",y),k=i(c,v,"resolveDir",y),O=i(c,v,"kind",y),R=i(c,v,"pluginData",je),m=i(c,v,"with",X);return q(c,v,"in resolve() call"),new Promise((F,T)=>{const M={command:"resolve",path:f,key:e,pluginName:u};if(j!=null&&(M.pluginName=j),C!=null&&(M.importer=C),P!=null&&(M.namespace=P),k!=null&&(M.resolveDir=k),O!=null)M.kind=O;else throw new Error('Must specify "kind" when calling "resolve"');R!=null&&(M.pluginData=o.store(R)),m!=null&&(M.with=Ft(m,"with")),t(n,M,(G,J)=>{G!==null?T(new Error(G)):F({errors:ye(J.errors,o),warnings:ye(J.warnings,o),path:J.path,external:J.external,sideEffects:J.sideEffects,namespace:J.namespace,suffix:J.suffix,pluginData:o.load(J.pluginData)})})})},onStart(f){let c='This error came from the "onStart" callback registered here:',v=Ce(new Error(c),l,"onStart");w.push({name:u,callback:f,note:v}),S.onStart=!0},onEnd(f){let c='This error came from the "onEnd" callback registered here:',v=Ce(new Error(c),l,"onEnd");g.push({name:u,callback:f,note:v}),S.onEnd=!0},onResolve(f,c){let v='This error came from the "onResolve" callback registered here:',j=Ce(new Error(v),l,"onResolve"),C={},P=i(f,C,"filter",Oe),k=i(f,C,"namespace",y);if(q(f,C,`in onResolve() call for plugin ${V(u)}`),P==null)throw new Error("onResolve() call is missing a filter");let O=B++;$[O]={name:u,callback:c,note:j},S.onResolve.push({id:O,filter:Le(P),namespace:k||""})},onLoad(f,c){let v='This error came from the "onLoad" callback registered here:',j=Ce(new Error(v),l,"onLoad"),C={},P=i(f,C,"filter",Oe),k=i(f,C,"namespace",y);if(q(f,C,`in onLoad() call for plugin ${V(u)}`),P==null)throw new Error("onLoad() call is missing a filter");let O=B++;I[O]={name:u,callback:c,note:j},S.onLoad.push({id:O,filter:Le(P),namespace:k||""})},onDispose(f){_.push(f)},esbuild:l.esbuild});A&&await A,L.push(S)}catch(E){return{ok:!1,error:E,pluginName:u}}}s["on-start"]=async(p,d)=>{o.clear();let u={errors:[],warnings:[]};await Promise.all(w.map(async({name:E,callback:S,note:D})=>{try{let A=await S();if(A!=null){if(typeof A!="object")throw new Error(`Expected onStart() callback in plugin ${V(E)} to return an object`);let f={},c=i(A,f,"errors",le),v=i(A,f,"warnings",le);q(A,f,`from onStart() callback in plugin ${V(E)}`),c!=null&&u.errors.push(...ae(c,"errors",o,E,void 0)),v!=null&&u.warnings.push(...ae(v,"warnings",o,E,void 0))}}catch(A){u.errors.push(de(A,l,o,D&&D(),E))}})),r(p,u)},s["on-resolve"]=async(p,d)=>{let u={},E="",S,D;for(let A of d.ids)try{({name:E,callback:S,note:D}=$[A]);let f=await S({path:d.path,importer:d.importer,namespace:d.namespace,resolveDir:d.resolveDir,kind:d.kind,pluginData:o.load(d.pluginData),with:d.with});if(f!=null){if(typeof f!="object")throw new Error(`Expected onResolve() callback in plugin ${V(E)} to return an object`);let c={},v=i(f,c,"pluginName",y),j=i(f,c,"path",y),C=i(f,c,"namespace",y),P=i(f,c,"suffix",y),k=i(f,c,"external",U),O=i(f,c,"sideEffects",U),R=i(f,c,"pluginData",je),m=i(f,c,"errors",le),F=i(f,c,"warnings",le),T=i(f,c,"watchFiles",K),M=i(f,c,"watchDirs",K);q(f,c,`from onResolve() callback in plugin ${V(E)}`),u.id=A,v!=null&&(u.pluginName=v),j!=null&&(u.path=j),C!=null&&(u.namespace=C),P!=null&&(u.suffix=P),k!=null&&(u.external=k),O!=null&&(u.sideEffects=O),R!=null&&(u.pluginData=o.store(R)),m!=null&&(u.errors=ae(m,"errors",o,E,void 0)),F!=null&&(u.warnings=ae(F,"warnings",o,E,void 0)),T!=null&&(u.watchFiles=Me(T,"watchFiles")),M!=null&&(u.watchDirs=Me(M,"watchDirs"));break}}catch(f){u={id:A,errors:[de(f,l,o,D&&D(),E)]};break}r(p,u)},s["on-load"]=async(p,d)=>{let u={},E="",S,D;for(let A of d.ids)try{({name:E,callback:S,note:D}=I[A]);let f=await S({path:d.path,namespace:d.namespace,suffix:d.suffix,pluginData:o.load(d.pluginData),with:d.with});if(f!=null){if(typeof f!="object")throw new Error(`Expected onLoad() callback in plugin ${V(E)} to return an object`);let c={},v=i(f,c,"pluginName",y),j=i(f,c,"contents",tt),C=i(f,c,"resolveDir",y),P=i(f,c,"pluginData",je),k=i(f,c,"loader",y),O=i(f,c,"errors",le),R=i(f,c,"warnings",le),m=i(f,c,"watchFiles",K),F=i(f,c,"watchDirs",K);q(f,c,`from onLoad() callback in plugin ${V(E)}`),u.id=A,v!=null&&(u.pluginName=v),j instanceof Uint8Array?u.contents=j:j!=null&&(u.contents=re(j)),C!=null&&(u.resolveDir=C),P!=null&&(u.pluginData=o.store(P)),k!=null&&(u.loader=k),O!=null&&(u.errors=ae(O,"errors",o,E,void 0)),R!=null&&(u.warnings=ae(R,"warnings",o,E,void 0)),m!=null&&(u.watchFiles=Me(m,"watchFiles")),F!=null&&(u.watchDirs=Me(F,"watchDirs"));break}}catch(f){u={id:A,errors:[de(f,l,o,D&&D(),E)]};break}r(p,u)};let z=(p,d)=>d([],[]);g.length>0&&(z=(p,d)=>{(async()=>{const u=[],E=[];for(const{name:S,callback:D,note:A}of g){let f,c;try{const v=await D(p);if(v!=null){if(typeof v!="object")throw new Error(`Expected onEnd() callback in plugin ${V(S)} to return an object`);let j={},C=i(v,j,"errors",le),P=i(v,j,"warnings",le);q(v,j,`from onEnd() callback in plugin ${V(S)}`),C!=null&&(f=ae(C,"errors",o,S,void 0)),P!=null&&(c=ae(P,"warnings",o,S,void 0))}}catch(v){f=[de(v,l,o,A&&A(),S)]}if(f){u.push(...f);try{p.errors.push(...f)}catch{}}if(c){E.push(...c);try{p.warnings.push(...c)}catch{}}}d(u,E)})()});let x=()=>{for(const p of _)setTimeout(()=>p(),0)};return W=!0,{ok:!0,requestPlugins:L,runOnEndCallbacks:z,scheduleOnDisposeCallbacks:x}};function lt(){const e=new Map;let t=0;return{clear(){e.clear()},load(r){return e.get(r)},store(r){if(r===void 0)return-1;const n=t++;return e.set(n,r),n}}}function Ce(e,t,r){let n,l=!1;return()=>{if(l)return n;l=!0;try{let s=(e.stack+"").split(`
7
- `);s.splice(1,1);let a=at(t,s,r);if(a)return n={text:e.message,location:a},n}catch{}}}function de(e,t,r,n,l){let s="Internal error",a=null;try{s=(e&&e.message||e)+""}catch{}try{a=at(t,(e.stack+"").split(`
8
- `),"")}catch{}return{id:"",pluginName:l,text:s,location:a,notes:n?[n]:[],detail:r?r.store(e):-1}}function at(e,t,r){let n=" at ";if(e.readFileSync&&!t[0].startsWith(n)&&t[1].startsWith(n))for(let l=1;l<t.length;l++){let s=t[l];if(s.startsWith(n))for(s=s.slice(n.length);;){let a=/^(?:new |async )?\S+ \((.*)\)$/.exec(s);if(a){s=a[1];continue}if(a=/^eval at \S+ \((.*)\)(?:, \S+:\d+:\d+)?$/.exec(s),a){s=a[1];continue}if(a=/^(\S+):(\d+):(\d+)$/.exec(s),a){let h;try{h=e.readFileSync(a[1],"utf8")}catch{break}let o=h.split(/\r\n|\r|\n|\u2028|\u2029/)[+a[2]-1]||"",w=+a[3]-1,g=o.slice(w,w+r.length)===r?r.length:0;return{file:a[1],namespace:"file",line:+a[2],column:re(o.slice(0,w)).length,length:re(o.slice(w,w+g)).length,lineText:o+`
6
+ `);function He(e,t){return e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24}function Ue(e,t,r){e[r++]=t,e[r++]=t>>8,e[r++]=t>>16,e[r++]=t>>24}var V=JSON.stringify,Ke="warning",Qe="silent";function ge(e,t){const r=[];for(const n of e){if(Q(n,t),n.indexOf(",")>=0)throw new Error(`Invalid ${t}: ${n}`);r.push(n)}return r.join(",")}var je=()=>null,U=e=>typeof e=="boolean"?null:"a boolean",y=e=>typeof e=="string"?null:"a string",Oe=e=>e instanceof RegExp?null:"a RegExp object",fe=e=>typeof e=="number"&&e===(e|0)?null:"an integer",Pt=e=>typeof e=="number"&&e===(e|0)&&e>=0&&e<=65535?null:"a valid port number",Ge=e=>typeof e=="function"?null:"a function",ie=e=>Array.isArray(e)?null:"an array",K=e=>Array.isArray(e)&&e.every(t=>typeof t=="string")?null:"an array of strings",X=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)?null:"an object",jt=e=>typeof e=="object"&&e!==null?null:"an array or an object",Ot=e=>e instanceof WebAssembly.Module?null:"a WebAssembly.Module",Xe=e=>typeof e=="object"&&!Array.isArray(e)?null:"an object or null",Ze=e=>typeof e=="string"||typeof e=="boolean"?null:"a string or a boolean",Dt=e=>typeof e=="string"||typeof e=="object"&&e!==null&&!Array.isArray(e)?null:"a string or an object",et=e=>typeof e=="string"||Array.isArray(e)&&e.every(t=>typeof t=="string")?null:"a string or an array of strings",tt=e=>typeof e=="string"||e instanceof Uint8Array?null:"a string or a Uint8Array",Ct=e=>typeof e=="string"||e instanceof URL?null:"a string or a URL";function i(e,t,r,n){let l=e[r];if(t[r+""]=!0,l===void 0)return;let s=n(l);if(s!==null)throw new Error(`${V(r)} must be ${s}`);return l}function q(e,t,r){for(let n in e)if(!(n in t))throw new Error(`Invalid option ${r}: ${V(n)}`)}function Mt(e){let t=Object.create(null),r=i(e,t,"wasmURL",Ct),n=i(e,t,"wasmModule",Ot),l=i(e,t,"worker",U);return q(e,t,"in initialize() call"),{wasmURL:r,wasmModule:n,worker:l}}function rt(e){let t;if(e!==void 0){t=Object.create(null);for(let r in e){let n=e[r];if(typeof n=="string"||n===!1)t[r]=n;else throw new Error(`Expected ${V(r)} in mangle cache to map to either a string or false`)}}return t}function De(e,t,r,n,l){let s=i(t,r,"color",U),a=i(t,r,"logLevel",y),h=i(t,r,"logLimit",fe);s!==void 0?e.push(`--color=${s}`):n&&e.push("--color=true"),e.push(`--log-level=${a||l}`),e.push(`--log-limit=${h||0}`)}function Q(e,t,r){if(typeof e!="string")throw new Error(`Expected value for ${t}${r!==void 0?" "+V(r):""} to be a string, got ${typeof e} instead`);return e}function nt(e,t,r){let n=i(t,r,"legalComments",y),l=i(t,r,"sourceRoot",y),s=i(t,r,"sourcesContent",U),a=i(t,r,"target",et),h=i(t,r,"format",y),o=i(t,r,"globalName",y),w=i(t,r,"mangleProps",Oe),p=i(t,r,"reserveProps",Oe),$=i(t,r,"mangleQuoted",U),I=i(t,r,"minify",U),F=i(t,r,"minifySyntax",U),B=i(t,r,"minifyWhitespace",U),N=i(t,r,"minifyIdentifiers",U),L=i(t,r,"lineLimit",fe),W=i(t,r,"drop",K),z=i(t,r,"dropLabels",K),x=i(t,r,"charset",y),g=i(t,r,"treeShaking",U),d=i(t,r,"ignoreAnnotations",U),u=i(t,r,"jsx",y),E=i(t,r,"jsxFactory",y),S=i(t,r,"jsxFragment",y),D=i(t,r,"jsxImportSource",y),A=i(t,r,"jsxDev",U),f=i(t,r,"jsxSideEffects",U),c=i(t,r,"define",X),v=i(t,r,"logOverride",X),j=i(t,r,"supported",X),C=i(t,r,"pure",K),P=i(t,r,"keepNames",U),k=i(t,r,"platform",y),O=i(t,r,"tsconfigRaw",Dt),R=i(t,r,"absPaths",K);if(n&&e.push(`--legal-comments=${n}`),l!==void 0&&e.push(`--source-root=${l}`),s!==void 0&&e.push(`--sources-content=${s}`),a&&e.push(`--target=${ge(Array.isArray(a)?a:[a],"target")}`),h&&e.push(`--format=${h}`),o&&e.push(`--global-name=${o}`),k&&e.push(`--platform=${k}`),O&&e.push(`--tsconfig-raw=${typeof O=="string"?O:JSON.stringify(O)}`),I&&e.push("--minify"),F&&e.push("--minify-syntax"),B&&e.push("--minify-whitespace"),N&&e.push("--minify-identifiers"),L&&e.push(`--line-limit=${L}`),x&&e.push(`--charset=${x}`),g!==void 0&&e.push(`--tree-shaking=${g}`),d&&e.push("--ignore-annotations"),W)for(let m of W)e.push(`--drop:${Q(m,"drop")}`);if(z&&e.push(`--drop-labels=${ge(z,"drop label")}`),R&&e.push(`--abs-paths=${ge(R,"abs paths")}`),w&&e.push(`--mangle-props=${Le(w)}`),p&&e.push(`--reserve-props=${Le(p)}`),$!==void 0&&e.push(`--mangle-quoted=${$}`),u&&e.push(`--jsx=${u}`),E&&e.push(`--jsx-factory=${E}`),S&&e.push(`--jsx-fragment=${S}`),D&&e.push(`--jsx-import-source=${D}`),A&&e.push("--jsx-dev"),f&&e.push("--jsx-side-effects"),c)for(let m in c){if(m.indexOf("=")>=0)throw new Error(`Invalid define: ${m}`);e.push(`--define:${m}=${Q(c[m],"define",m)}`)}if(v)for(let m in v){if(m.indexOf("=")>=0)throw new Error(`Invalid log override: ${m}`);e.push(`--log-override:${m}=${Q(v[m],"log override",m)}`)}if(j)for(let m in j){if(m.indexOf("=")>=0)throw new Error(`Invalid supported: ${m}`);const _=j[m];if(typeof _!="boolean")throw new Error(`Expected value for supported ${V(m)} to be a boolean, got ${typeof _} instead`);e.push(`--supported:${m}=${_}`)}if(C)for(let m of C)e.push(`--pure:${Q(m,"pure")}`);P&&e.push("--keep-names")}function Lt(e,t,r,n,l){var s;let a=[],h=[],o=Object.create(null),w=null,p=null;De(a,t,o,r,n),nt(a,t,o);let $=i(t,o,"sourcemap",Ze),I=i(t,o,"bundle",U),F=i(t,o,"splitting",U),B=i(t,o,"preserveSymlinks",U),N=i(t,o,"metafile",U),L=i(t,o,"outfile",y),W=i(t,o,"outdir",y),z=i(t,o,"outbase",y),x=i(t,o,"tsconfig",y),g=i(t,o,"resolveExtensions",K),d=i(t,o,"nodePaths",K),u=i(t,o,"mainFields",K),E=i(t,o,"conditions",K),S=i(t,o,"external",K),D=i(t,o,"packages",y),A=i(t,o,"alias",X),f=i(t,o,"loader",X),c=i(t,o,"outExtension",X),v=i(t,o,"publicPath",y),j=i(t,o,"entryNames",y),C=i(t,o,"chunkNames",y),P=i(t,o,"assetNames",y),k=i(t,o,"inject",K),O=i(t,o,"banner",X),R=i(t,o,"footer",X),m=i(t,o,"entryPoints",jt),_=i(t,o,"absWorkingDir",y),T=i(t,o,"stdin",X),M=(s=i(t,o,"write",U))!=null?s:l,G=i(t,o,"allowOverwrite",U),J=i(t,o,"mangleCache",X);if(o.plugins=!0,q(t,o,`in ${e}() call`),$&&a.push(`--sourcemap${$===!0?"":`=${$}`}`),I&&a.push("--bundle"),G&&a.push("--allow-overwrite"),F&&a.push("--splitting"),B&&a.push("--preserve-symlinks"),N&&a.push("--metafile"),L&&a.push(`--outfile=${L}`),W&&a.push(`--outdir=${W}`),z&&a.push(`--outbase=${z}`),x&&a.push(`--tsconfig=${x}`),D&&a.push(`--packages=${D}`),g&&a.push(`--resolve-extensions=${ge(g,"resolve extension")}`),v&&a.push(`--public-path=${v}`),j&&a.push(`--entry-names=${j}`),C&&a.push(`--chunk-names=${C}`),P&&a.push(`--asset-names=${P}`),u&&a.push(`--main-fields=${ge(u,"main field")}`),E&&a.push(`--conditions=${ge(E,"condition")}`),S)for(let b of S)a.push(`--external:${Q(b,"external")}`);if(A)for(let b in A){if(b.indexOf("=")>=0)throw new Error(`Invalid package name in alias: ${b}`);a.push(`--alias:${b}=${Q(A[b],"alias",b)}`)}if(O)for(let b in O){if(b.indexOf("=")>=0)throw new Error(`Invalid banner file type: ${b}`);a.push(`--banner:${b}=${Q(O[b],"banner",b)}`)}if(R)for(let b in R){if(b.indexOf("=")>=0)throw new Error(`Invalid footer file type: ${b}`);a.push(`--footer:${b}=${Q(R[b],"footer",b)}`)}if(k)for(let b of k)a.push(`--inject:${Q(b,"inject")}`);if(f)for(let b in f){if(b.indexOf("=")>=0)throw new Error(`Invalid loader extension: ${b}`);a.push(`--loader:${b}=${Q(f[b],"loader",b)}`)}if(c)for(let b in c){if(b.indexOf("=")>=0)throw new Error(`Invalid out extension: ${b}`);a.push(`--out-extension:${b}=${Q(c[b],"out extension",b)}`)}if(m)if(Array.isArray(m))for(let b=0,oe=m.length;b<oe;b++){let ee=m[b];if(typeof ee=="object"&&ee!==null){let ne=Object.create(null),se=i(ee,ne,"in",y),te=i(ee,ne,"out",y);if(q(ee,ne,"in entry point at index "+b),se===void 0)throw new Error('Missing property "in" for entry point at index '+b);if(te===void 0)throw new Error('Missing property "out" for entry point at index '+b);h.push([te,se])}else h.push(["",Q(ee,"entry point at index "+b)])}else for(let b in m)h.push([b,Q(m[b],"entry point",b)]);if(T){let b=Object.create(null),oe=i(T,b,"contents",tt),ee=i(T,b,"resolveDir",y),ne=i(T,b,"sourcefile",y),se=i(T,b,"loader",y);q(T,b,'in "stdin" object'),ne&&a.push(`--sourcefile=${ne}`),se&&a.push(`--loader=${se}`),ee&&(p=ee),typeof oe=="string"?w=re(oe):oe instanceof Uint8Array&&(w=oe)}let ae=[];if(d)for(let b of d)b+="",ae.push(b);return{entries:h,flags:a,write:M,stdinContents:w,stdinResolveDir:p,absWorkingDir:_,nodePaths:ae,mangleCache:rt(J)}}function Tt(e,t,r,n){let l=[],s=Object.create(null);De(l,t,s,r,n),nt(l,t,s);let a=i(t,s,"sourcemap",Ze),h=i(t,s,"sourcefile",y),o=i(t,s,"loader",y),w=i(t,s,"banner",y),p=i(t,s,"footer",y),$=i(t,s,"mangleCache",X);return q(t,s,`in ${e}() call`),a&&l.push(`--sourcemap=${a===!0?"external":a}`),h&&l.push(`--sourcefile=${h}`),o&&l.push(`--loader=${o}`),w&&l.push(`--banner=${w}`),p&&l.push(`--footer=${p}`),{flags:l,mangleCache:rt($)}}function it(e){const t={},r={didClose:!1,reason:""};let n={},l=0,s=0,a=new Uint8Array(16*1024),h=0,o=x=>{let g=h+x.length;if(g>a.length){let u=new Uint8Array(g*2);u.set(a),a=u}a.set(x,h),h+=x.length;let d=0;for(;d+4<=h;){let u=He(a,d);if(d+4+u>h)break;d+=4,B(a.subarray(d,d+u)),d+=u}d>0&&(a.copyWithin(0,d,h),h-=d)},w=x=>{r.didClose=!0,x&&(r.reason=": "+(x.message||x));const g="The service was stopped"+r.reason;for(let d in n)n[d](g,null);n={}},p=(x,g,d)=>{if(r.didClose)return d("The service is no longer running"+r.reason,null);let u=l++;n[u]=(E,S)=>{try{d(E,S)}finally{x&&x.unref()}},x&&x.ref(),e.writeToStdin(Ve({id:u,isRequest:!0,value:g}))},$=(x,g)=>{if(r.didClose)throw new Error("The service is no longer running"+r.reason);e.writeToStdin(Ve({id:x,isRequest:!1,value:g}))},I=async(x,g)=>{try{if(g.command==="ping"){$(x,{});return}if(typeof g.key=="number"){const d=t[g.key];if(!d)return;const u=d[g.command];if(u){await u(x,g);return}}throw new Error("Invalid command: "+g.command)}catch(d){const u=[ce(d,e,null,void 0,"")];try{$(x,{errors:u})}catch{}}},F=!0,B=x=>{if(F){F=!1;let d=String.fromCharCode(...x);if(d!=="0.27.3")throw new Error(`Cannot start service: Host version "0.27.3" does not match binary version ${V(d)}`);return}let g=At(x);if(g.isRequest)I(g.id,g.value);else{let d=n[g.id];delete n[g.id],g.value.error?d(g.value.error,{}):d(null,g.value)}};return{readFromStdout:o,afterClose:w,service:{buildOrContext:({callName:x,refs:g,options:d,isTTY:u,defaultWD:E,callback:S})=>{let D=0;const A=s++,f={},c={ref(){++D===1&&g&&g.ref()},unref(){--D===0&&(delete t[A],g&&g.unref())}};t[A]=f,c.ref(),_t(x,A,p,$,c,e,f,d,u,E,(v,j)=>{try{S(v,j)}finally{c.unref()}})},transform:({callName:x,refs:g,input:d,options:u,isTTY:E,fs:S,callback:D})=>{const A=lt();let f=c=>{try{if(typeof d!="string"&&!(d instanceof Uint8Array))throw new Error('The input to "transform" must be a string or a Uint8Array');let{flags:v,mangleCache:j}=Tt(x,u,E,Qe),C={command:"transform",flags:v,inputFS:c!==null,input:c!==null?re(c):typeof d=="string"?re(d):d};j&&(C.mangleCache=j),p(g,C,(P,k)=>{if(P)return D(new Error(P),null);let O=we(k.errors,A),R=we(k.warnings,A),m=1,_=()=>{if(--m===0){let T={warnings:R,code:k.code,map:k.map,mangleCache:void 0,legalComments:void 0};"legalComments"in k&&(T.legalComments=k?.legalComments),k.mangleCache&&(T.mangleCache=k?.mangleCache),D(null,T)}};if(O.length>0)return D($e("Transform failed",O,R),null);k.codeFS&&(m++,S.readFile(k.code,(T,M)=>{T!==null?D(T,null):(k.code=M,_())})),k.mapFS&&(m++,S.readFile(k.map,(T,M)=>{T!==null?D(T,null):(k.map=M,_())})),_()})}catch(v){let j=[];try{De(j,u,{},E,Qe)}catch{}const C=ce(v,e,A,void 0,"");p(g,{command:"error",flags:j,error:C},()=>{C.detail=A.load(C.detail),D($e("Transform failed",[C],[]),null)})}};if((typeof d=="string"||d instanceof Uint8Array)&&d.length>1024*1024){let c=f;f=()=>S.writeFile(d,c)}f(null)},formatMessages:({callName:x,refs:g,messages:d,options:u,callback:E})=>{if(!u)throw new Error(`Missing second argument in ${x}() call`);let S={},D=i(u,S,"kind",y),A=i(u,S,"color",U),f=i(u,S,"terminalWidth",fe);if(q(u,S,`in ${x}() call`),D===void 0)throw new Error(`Missing "kind" in ${x}() call`);if(D!=="error"&&D!=="warning")throw new Error(`Expected "kind" to be "error" or "warning" in ${x}() call`);let c={command:"format-msgs",messages:le(d,"messages",null,"",f),isWarning:D==="warning"};A!==void 0&&(c.color=A),f!==void 0&&(c.terminalWidth=f),p(g,c,(v,j)=>{if(v)return E(new Error(v),null);E(null,j.messages)})},analyzeMetafile:({callName:x,refs:g,metafile:d,options:u,callback:E})=>{u===void 0&&(u={});let S={},D=i(u,S,"color",U),A=i(u,S,"verbose",U);q(u,S,`in ${x}() call`);let f={command:"analyze-metafile",metafile:d};D!==void 0&&(f.color=D),A!==void 0&&(f.verbose=A),p(g,f,(c,v)=>{if(c)return E(new Error(c),null);E(null,v.result)})}}}}function _t(e,t,r,n,l,s,a,h,o,w,p){const $=lt(),I=e==="context",F=(L,W)=>{const z=[];try{De(z,h,{},o,Ke)}catch{}const x=ce(L,s,$,void 0,W);r(l,{command:"error",flags:z,error:x},()=>{x.detail=$.load(x.detail),p($e(I?"Context failed":"Build failed",[x],[]),null)})};let B;if(typeof h=="object"){const L=h.plugins;if(L!==void 0){if(!Array.isArray(L))return F(new Error('"plugins" must be an array'),"");B=L}}if(B&&B.length>0){if(s.isSync)return F(new Error("Cannot use plugins in synchronous API calls"),"");Ft(t,r,n,l,s,a,h,B,$).then(L=>{if(!L.ok)return F(L.error,L.pluginName);try{N(L.requestPlugins,L.runOnEndCallbacks,L.scheduleOnDisposeCallbacks)}catch(W){F(W,"")}},L=>F(L,""));return}try{N(null,(L,W)=>W([],[]),()=>{})}catch(L){F(L,"")}function N(L,W,z){const x=s.hasFS,{entries:g,flags:d,write:u,stdinContents:E,stdinResolveDir:S,absWorkingDir:D,nodePaths:A,mangleCache:f}=Lt(e,h,o,Ke,x);if(u&&!s.hasFS)throw new Error('The "write" option is unavailable in this environment');const c={command:"build",key:t,entries:g,flags:d,write:u,stdinContents:E,stdinResolveDir:S,absWorkingDir:D||w,nodePaths:A,context:I};L&&(c.plugins=L),f&&(c.mangleCache=f);const v=(P,k)=>{const O={errors:we(P.errors,$),warnings:we(P.warnings,$),outputFiles:void 0,metafile:void 0,mangleCache:void 0},R=O.errors.slice(),m=O.warnings.slice();P.outputFiles&&(O.outputFiles=P.outputFiles.map(It)),P.metafile&&(O.metafile=JSON.parse(P.metafile)),P.mangleCache&&(O.mangleCache=P.mangleCache),P.writeToStdout!==void 0&&console.log(pe(P.writeToStdout).replace(/\n$/,"")),W(O,(_,T)=>{if(R.length>0||_.length>0){const M=$e("Build failed",R.concat(_),m.concat(T));return k(M,null,_,T)}k(null,O,_,T)})};let j,C;I&&(a["on-end"]=(P,k)=>new Promise(O=>{v(k,(R,m,_,T)=>{const M={errors:_,warnings:T};C&&C(R,m),j=void 0,C=void 0,n(P,M),O()})})),r(l,c,(P,k)=>{if(P)return p(new Error(P),null);if(!I)return v(k,(m,_)=>(z(),p(m,_)));if(k.errors.length>0)return p($e("Context failed",k.errors,k.warnings),null);let O=!1;const R={rebuild:()=>(j||(j=new Promise((m,_)=>{let T;C=(G,J)=>{T||(T=()=>G?_(G):m(J))};const M=()=>{r(l,{command:"rebuild",key:t},(J,ae)=>{J?_(new Error(J)):T?T():M()})};M()})),j),watch:(m={})=>new Promise((_,T)=>{if(!s.hasFS)throw new Error('Cannot use the "watch" API in this environment');const M={},G=i(m,M,"delay",fe);q(m,M,"in watch() call");const J={command:"watch",key:t};G&&(J.delay=G),r(l,J,ae=>{ae?T(new Error(ae)):_(void 0)})}),serve:(m={})=>new Promise((_,T)=>{if(!s.hasFS)throw new Error('Cannot use the "serve" API in this environment');const M={},G=i(m,M,"port",Pt),J=i(m,M,"host",y),ae=i(m,M,"servedir",y),b=i(m,M,"keyfile",y),oe=i(m,M,"certfile",y),ee=i(m,M,"fallback",y),ne=i(m,M,"cors",X),se=i(m,M,"onRequest",Ge);q(m,M,"in serve() call");const te={command:"serve",key:t,onRequest:!!se};if(G!==void 0&&(te.port=G),J!==void 0&&(te.host=J),ae!==void 0&&(te.servedir=ae),b!==void 0&&(te.keyfile=b),oe!==void 0&&(te.certfile=oe),ee!==void 0&&(te.fallback=ee),ne){const Ae={},be=i(ne,Ae,"origin",et);q(ne,Ae,'on "cors" object'),Array.isArray(be)?te.corsOrigin=be:be!==void 0&&(te.corsOrigin=[be])}r(l,te,(Ae,be)=>{if(Ae)return T(new Error(Ae));se&&(a["serve-request"]=(ur,fr)=>{se(fr.args),n(ur,{})}),_(be)})}),cancel:()=>new Promise(m=>{if(O)return m();r(l,{command:"cancel",key:t},()=>{m()})}),dispose:()=>new Promise(m=>{if(O)return m();O=!0,r(l,{command:"dispose",key:t},()=>{m(),z(),l.unref()})})};l.ref(),p(null,R)})}}var Ft=async(e,t,r,n,l,s,a,h,o)=>{let w=[],p=[],$={},I={},F=[],B=0,N=0,L=[],W=!1;h=[...h];for(let g of h){let d={};if(typeof g!="object")throw new Error(`Plugin at index ${N} must be an object`);const u=i(g,d,"name",y);if(typeof u!="string"||u==="")throw new Error(`Plugin at index ${N} is missing a name`);try{let E=i(g,d,"setup",Ge);if(typeof E!="function")throw new Error("Plugin is missing a setup function");q(g,d,`on plugin ${V(u)}`);let S={name:u,onStart:!1,onEnd:!1,onResolve:[],onLoad:[]};N++;let A=E({initialOptions:a,resolve:(f,c={})=>{if(!W)throw new Error('Cannot call "resolve" before plugin setup has completed');if(typeof f!="string")throw new Error("The path to resolve must be a string");let v=Object.create(null),j=i(c,v,"pluginName",y),C=i(c,v,"importer",y),P=i(c,v,"namespace",y),k=i(c,v,"resolveDir",y),O=i(c,v,"kind",y),R=i(c,v,"pluginData",je),m=i(c,v,"with",X);return q(c,v,"in resolve() call"),new Promise((_,T)=>{const M={command:"resolve",path:f,key:e,pluginName:u};if(j!=null&&(M.pluginName=j),C!=null&&(M.importer=C),P!=null&&(M.namespace=P),k!=null&&(M.resolveDir=k),O!=null)M.kind=O;else throw new Error('Must specify "kind" when calling "resolve"');R!=null&&(M.pluginData=o.store(R)),m!=null&&(M.with=Bt(m,"with")),t(n,M,(G,J)=>{G!==null?T(new Error(G)):_({errors:we(J.errors,o),warnings:we(J.warnings,o),path:J.path,external:J.external,sideEffects:J.sideEffects,namespace:J.namespace,suffix:J.suffix,pluginData:o.load(J.pluginData)})})})},onStart(f){let c='This error came from the "onStart" callback registered here:',v=Ce(new Error(c),l,"onStart");w.push({name:u,callback:f,note:v}),S.onStart=!0},onEnd(f){let c='This error came from the "onEnd" callback registered here:',v=Ce(new Error(c),l,"onEnd");p.push({name:u,callback:f,note:v}),S.onEnd=!0},onResolve(f,c){let v='This error came from the "onResolve" callback registered here:',j=Ce(new Error(v),l,"onResolve"),C={},P=i(f,C,"filter",Oe),k=i(f,C,"namespace",y);if(q(f,C,`in onResolve() call for plugin ${V(u)}`),P==null)throw new Error("onResolve() call is missing a filter");let O=B++;$[O]={name:u,callback:c,note:j},S.onResolve.push({id:O,filter:Le(P),namespace:k||""})},onLoad(f,c){let v='This error came from the "onLoad" callback registered here:',j=Ce(new Error(v),l,"onLoad"),C={},P=i(f,C,"filter",Oe),k=i(f,C,"namespace",y);if(q(f,C,`in onLoad() call for plugin ${V(u)}`),P==null)throw new Error("onLoad() call is missing a filter");let O=B++;I[O]={name:u,callback:c,note:j},S.onLoad.push({id:O,filter:Le(P),namespace:k||""})},onDispose(f){F.push(f)},esbuild:l.esbuild});A&&await A,L.push(S)}catch(E){return{ok:!1,error:E,pluginName:u}}}s["on-start"]=async(g,d)=>{o.clear();let u={errors:[],warnings:[]};await Promise.all(w.map(async({name:E,callback:S,note:D})=>{try{let A=await S();if(A!=null){if(typeof A!="object")throw new Error(`Expected onStart() callback in plugin ${V(E)} to return an object`);let f={},c=i(A,f,"errors",ie),v=i(A,f,"warnings",ie);q(A,f,`from onStart() callback in plugin ${V(E)}`),c!=null&&u.errors.push(...le(c,"errors",o,E,void 0)),v!=null&&u.warnings.push(...le(v,"warnings",o,E,void 0))}}catch(A){u.errors.push(ce(A,l,o,D&&D(),E))}})),r(g,u)},s["on-resolve"]=async(g,d)=>{let u={},E="",S,D;for(let A of d.ids)try{({name:E,callback:S,note:D}=$[A]);let f=await S({path:d.path,importer:d.importer,namespace:d.namespace,resolveDir:d.resolveDir,kind:d.kind,pluginData:o.load(d.pluginData),with:d.with});if(f!=null){if(typeof f!="object")throw new Error(`Expected onResolve() callback in plugin ${V(E)} to return an object`);let c={},v=i(f,c,"pluginName",y),j=i(f,c,"path",y),C=i(f,c,"namespace",y),P=i(f,c,"suffix",y),k=i(f,c,"external",U),O=i(f,c,"sideEffects",U),R=i(f,c,"pluginData",je),m=i(f,c,"errors",ie),_=i(f,c,"warnings",ie),T=i(f,c,"watchFiles",K),M=i(f,c,"watchDirs",K);q(f,c,`from onResolve() callback in plugin ${V(E)}`),u.id=A,v!=null&&(u.pluginName=v),j!=null&&(u.path=j),C!=null&&(u.namespace=C),P!=null&&(u.suffix=P),k!=null&&(u.external=k),O!=null&&(u.sideEffects=O),R!=null&&(u.pluginData=o.store(R)),m!=null&&(u.errors=le(m,"errors",o,E,void 0)),_!=null&&(u.warnings=le(_,"warnings",o,E,void 0)),T!=null&&(u.watchFiles=Me(T,"watchFiles")),M!=null&&(u.watchDirs=Me(M,"watchDirs"));break}}catch(f){u={id:A,errors:[ce(f,l,o,D&&D(),E)]};break}r(g,u)},s["on-load"]=async(g,d)=>{let u={},E="",S,D;for(let A of d.ids)try{({name:E,callback:S,note:D}=I[A]);let f=await S({path:d.path,namespace:d.namespace,suffix:d.suffix,pluginData:o.load(d.pluginData),with:d.with});if(f!=null){if(typeof f!="object")throw new Error(`Expected onLoad() callback in plugin ${V(E)} to return an object`);let c={},v=i(f,c,"pluginName",y),j=i(f,c,"contents",tt),C=i(f,c,"resolveDir",y),P=i(f,c,"pluginData",je),k=i(f,c,"loader",y),O=i(f,c,"errors",ie),R=i(f,c,"warnings",ie),m=i(f,c,"watchFiles",K),_=i(f,c,"watchDirs",K);q(f,c,`from onLoad() callback in plugin ${V(E)}`),u.id=A,v!=null&&(u.pluginName=v),j instanceof Uint8Array?u.contents=j:j!=null&&(u.contents=re(j)),C!=null&&(u.resolveDir=C),P!=null&&(u.pluginData=o.store(P)),k!=null&&(u.loader=k),O!=null&&(u.errors=le(O,"errors",o,E,void 0)),R!=null&&(u.warnings=le(R,"warnings",o,E,void 0)),m!=null&&(u.watchFiles=Me(m,"watchFiles")),_!=null&&(u.watchDirs=Me(_,"watchDirs"));break}}catch(f){u={id:A,errors:[ce(f,l,o,D&&D(),E)]};break}r(g,u)};let z=(g,d)=>d([],[]);p.length>0&&(z=(g,d)=>{(async()=>{const u=[],E=[];for(const{name:S,callback:D,note:A}of p){let f,c;try{const v=await D(g);if(v!=null){if(typeof v!="object")throw new Error(`Expected onEnd() callback in plugin ${V(S)} to return an object`);let j={},C=i(v,j,"errors",ie),P=i(v,j,"warnings",ie);q(v,j,`from onEnd() callback in plugin ${V(S)}`),C!=null&&(f=le(C,"errors",o,S,void 0)),P!=null&&(c=le(P,"warnings",o,S,void 0))}}catch(v){f=[ce(v,l,o,A&&A(),S)]}if(f){u.push(...f);try{g.errors.push(...f)}catch{}}if(c){E.push(...c);try{g.warnings.push(...c)}catch{}}}d(u,E)})()});let x=()=>{for(const g of F)setTimeout(()=>g(),0)};return W=!0,{ok:!0,requestPlugins:L,runOnEndCallbacks:z,scheduleOnDisposeCallbacks:x}};function lt(){const e=new Map;let t=0;return{clear(){e.clear()},load(r){return e.get(r)},store(r){if(r===void 0)return-1;const n=t++;return e.set(n,r),n}}}function Ce(e,t,r){let n,l=!1;return()=>{if(l)return n;l=!0;try{let s=(e.stack+"").split(`
7
+ `);s.splice(1,1);let a=at(t,s,r);if(a)return n={text:e.message,location:a},n}catch{}}}function ce(e,t,r,n,l){let s="Internal error",a=null;try{s=(e&&e.message||e)+""}catch{}try{a=at(t,(e.stack+"").split(`
8
+ `),"")}catch{}return{id:"",pluginName:l,text:s,location:a,notes:n?[n]:[],detail:r?r.store(e):-1}}function at(e,t,r){let n=" at ";if(e.readFileSync&&!t[0].startsWith(n)&&t[1].startsWith(n))for(let l=1;l<t.length;l++){let s=t[l];if(s.startsWith(n))for(s=s.slice(n.length);;){let a=/^(?:new |async )?\S+ \((.*)\)$/.exec(s);if(a){s=a[1];continue}if(a=/^eval at \S+ \((.*)\)(?:, \S+:\d+:\d+)?$/.exec(s),a){s=a[1];continue}if(a=/^(\S+):(\d+):(\d+)$/.exec(s),a){let h;try{h=e.readFileSync(a[1],"utf8")}catch{break}let o=h.split(/\r\n|\r|\n|\u2028|\u2029/)[+a[2]-1]||"",w=+a[3]-1,p=o.slice(w,w+r.length)===r?r.length:0;return{file:a[1],namespace:"file",line:+a[2],column:re(o.slice(0,w)).length,length:re(o.slice(w,w+p)).length,lineText:o+`
9
9
  `+t.slice(1).join(`
10
10
  `),suggestion:""}}break}}return null}function $e(e,t,r){let n=5;e+=t.length<1?"":` with ${t.length} error${t.length<2?"":"s"}:`+t.slice(0,n+1).map((s,a)=>{if(a===n)return`
11
11
  ...`;if(!s.location)return`
12
- error: ${s.text}`;let{file:h,line:o,column:w}=s.location,g=s.pluginName?`[plugin: ${s.pluginName}] `:"";return`
13
- ${h}:${o}:${w}: ERROR: ${g}${s.text}`}).join("");let l=new Error(e);for(const[s,a]of[["errors",t],["warnings",r]])Object.defineProperty(l,s,{configurable:!0,enumerable:!0,get:()=>a,set:h=>Object.defineProperty(l,s,{configurable:!0,enumerable:!0,value:h})});return l}function ye(e,t){for(const r of e)r.detail=t.load(r.detail);return e}function ot(e,t,r){if(e==null)return null;let n={},l=i(e,n,"file",y),s=i(e,n,"namespace",y),a=i(e,n,"line",ce),h=i(e,n,"column",ce),o=i(e,n,"length",ce),w=i(e,n,"lineText",y),g=i(e,n,"suggestion",y);if(q(e,n,t),w){const $=w.slice(0,(h&&h>0?h:0)+(o&&o>0?o:0)+(r&&r>0?r:80));!/[\x7F-\uFFFF]/.test($)&&!/\n/.test(w)&&(w=$)}return{file:l||"",namespace:s||"",line:a||0,column:h||0,length:o||0,lineText:w||"",suggestion:g||""}}function ae(e,t,r,n,l){let s=[],a=0;for(const h of e){let o={},w=i(h,o,"id",y),g=i(h,o,"pluginName",y),$=i(h,o,"text",y),I=i(h,o,"location",Xe),_=i(h,o,"notes",le),B=i(h,o,"detail",je),N=`in element ${a} of "${t}"`;q(h,o,N);let L=[];if(_)for(const W of _){let z={},x=i(W,z,"text",y),p=i(W,z,"location",Xe);q(W,z,N),L.push({text:x||"",location:ot(p,N,l)})}s.push({id:w||"",pluginName:g||n,text:$||"",location:ot(I,N,l),notes:L,detail:r?r.store(B):-1}),a++}return s}function Me(e,t){const r=[];for(const n of e){if(typeof n!="string")throw new Error(`${V(t)} must be an array of strings`);r.push(n)}return r}function Ft(e,t){const r=Object.create(null);for(const n in e){const l=e[n];if(typeof l!="string")throw new Error(`key ${V(n)} in object ${V(t)} must be a string`);r[n]=l}return r}function _t({path:e,contents:t,hash:r}){let n=null;return{path:e,contents:t,hash:r,get text(){const l=this.contents;return(n===null||l!==t)&&(t=l,n=pe(l)),n}}}function Le(e){let t=e.source;return e.flags&&(t=`(?${e.flags})${t}`),t}var fe=ie,st=ie,Z=ie,be=Ne.ESBUILD_BINARY_PATH||be,Bt=e=>!!e&&e!=="/usr/bin/esbuild",ut="@esbuild/darwin-arm64",ft="@esbuild/darwin-x64",Te={"win32 arm64 LE":"@esbuild/win32-arm64","win32 ia32 LE":"@esbuild/win32-ia32","win32 x64 LE":"@esbuild/win32-x64"},Fe={"aix ppc64 BE":"@esbuild/aix-ppc64","android arm64 LE":"@esbuild/android-arm64","darwin arm64 LE":"@esbuild/darwin-arm64","darwin x64 LE":"@esbuild/darwin-x64","freebsd arm64 LE":"@esbuild/freebsd-arm64","freebsd x64 LE":"@esbuild/freebsd-x64","linux arm LE":"@esbuild/linux-arm","linux arm64 LE":"@esbuild/linux-arm64","linux ia32 LE":"@esbuild/linux-ia32","linux mips64el LE":"@esbuild/linux-mips64el","linux ppc64 LE":"@esbuild/linux-ppc64","linux riscv64 LE":"@esbuild/linux-riscv64","linux s390x BE":"@esbuild/linux-s390x","linux x64 LE":"@esbuild/linux-x64","linux loong64 LE":"@esbuild/linux-loong64","netbsd arm64 LE":"@esbuild/netbsd-arm64","netbsd x64 LE":"@esbuild/netbsd-x64","openbsd arm64 LE":"@esbuild/openbsd-arm64","openbsd x64 LE":"@esbuild/openbsd-x64","sunos x64 LE":"@esbuild/sunos-x64"},ct={"android arm LE":"@esbuild/android-arm","android x64 LE":"@esbuild/android-x64","openharmony arm64 LE":"@esbuild/openharmony-arm64"};function It(){let e,t,r=!1,n=`${process.platform} ${st.arch()} ${st.endianness()}`;if(n in Te)e=Te[n],t="esbuild.exe";else if(n in Fe)e=Fe[n],t="bin/esbuild";else if(n in ct)e=ct[n],t="bin/esbuild",r=!0;else throw new Error(`Unsupported platform: ${n}`);return{pkg:e,subpath:t,isWASM:r}}function Nt(){const e=require.resolve("esbuild"),t=Z.dirname(Z.dirname(Z.dirname(e)));if(Z.basename(t)==="node_modules"){for(const r in Fe)try{const n=Fe[r];if(fe.existsSync(Z.join(t,n)))return n}catch{}for(const r in Te)try{const n=Te[r];if(fe.existsSync(Z.join(t,n)))return n}catch{}}return null}function Rt(e,t){const r=Z.dirname(require.resolve("esbuild"));return Z.join(r,`downloaded-${e.replace("/","-")}-${Z.basename(t)}`)}function Ut(){if(Bt(be))if(!fe.existsSync(be))console.warn(`[esbuild] Ignoring bad configuration: ESBUILD_BINARY_PATH=${be}`);else return{binPath:be,isWASM:!1};const{pkg:e,subpath:t,isWASM:r}=It();let n;try{n=require.resolve(`${e}/${t}`)}catch(l){if(n=Rt(e,t),!fe.existsSync(n)){try{require.resolve(e)}catch{const s=Nt();if(s){let a=`
12
+ error: ${s.text}`;let{file:h,line:o,column:w}=s.location,p=s.pluginName?`[plugin: ${s.pluginName}] `:"";return`
13
+ ${h}:${o}:${w}: ERROR: ${p}${s.text}`}).join("");let l=new Error(e);for(const[s,a]of[["errors",t],["warnings",r]])Object.defineProperty(l,s,{configurable:!0,enumerable:!0,get:()=>a,set:h=>Object.defineProperty(l,s,{configurable:!0,enumerable:!0,value:h})});return l}function we(e,t){for(const r of e)r.detail=t.load(r.detail);return e}function ot(e,t,r){if(e==null)return null;let n={},l=i(e,n,"file",y),s=i(e,n,"namespace",y),a=i(e,n,"line",fe),h=i(e,n,"column",fe),o=i(e,n,"length",fe),w=i(e,n,"lineText",y),p=i(e,n,"suggestion",y);if(q(e,n,t),w){const $=w.slice(0,(h&&h>0?h:0)+(o&&o>0?o:0)+(r&&r>0?r:80));!/[\x7F-\uFFFF]/.test($)&&!/\n/.test(w)&&(w=$)}return{file:l||"",namespace:s||"",line:a||0,column:h||0,length:o||0,lineText:w||"",suggestion:p||""}}function le(e,t,r,n,l){let s=[],a=0;for(const h of e){let o={},w=i(h,o,"id",y),p=i(h,o,"pluginName",y),$=i(h,o,"text",y),I=i(h,o,"location",Xe),F=i(h,o,"notes",ie),B=i(h,o,"detail",je),N=`in element ${a} of "${t}"`;q(h,o,N);let L=[];if(F)for(const W of F){let z={},x=i(W,z,"text",y),g=i(W,z,"location",Xe);q(W,z,N),L.push({text:x||"",location:ot(g,N,l)})}s.push({id:w||"",pluginName:p||n,text:$||"",location:ot(I,N,l),notes:L,detail:r?r.store(B):-1}),a++}return s}function Me(e,t){const r=[];for(const n of e){if(typeof n!="string")throw new Error(`${V(t)} must be an array of strings`);r.push(n)}return r}function Bt(e,t){const r=Object.create(null);for(const n in e){const l=e[n];if(typeof l!="string")throw new Error(`key ${V(n)} in object ${V(t)} must be a string`);r[n]=l}return r}function It({path:e,contents:t,hash:r}){let n=null;return{path:e,contents:t,hash:r,get text(){const l=this.contents;return(n===null||l!==t)&&(t=l,n=pe(l)),n}}}function Le(e){let t=e.source;return e.flags&&(t=`(?${e.flags})${t}`),t}var ue=gt,st=ve,Z=wt,ye=Ne.ESBUILD_BINARY_PATH||ye,Nt=e=>!!e&&e!=="/usr/bin/esbuild",ut="@esbuild/darwin-arm64",ft="@esbuild/darwin-x64",Te={"win32 arm64 LE":"@esbuild/win32-arm64","win32 ia32 LE":"@esbuild/win32-ia32","win32 x64 LE":"@esbuild/win32-x64"},_e={"aix ppc64 BE":"@esbuild/aix-ppc64","android arm64 LE":"@esbuild/android-arm64","darwin arm64 LE":"@esbuild/darwin-arm64","darwin x64 LE":"@esbuild/darwin-x64","freebsd arm64 LE":"@esbuild/freebsd-arm64","freebsd x64 LE":"@esbuild/freebsd-x64","linux arm LE":"@esbuild/linux-arm","linux arm64 LE":"@esbuild/linux-arm64","linux ia32 LE":"@esbuild/linux-ia32","linux mips64el LE":"@esbuild/linux-mips64el","linux ppc64 LE":"@esbuild/linux-ppc64","linux riscv64 LE":"@esbuild/linux-riscv64","linux s390x BE":"@esbuild/linux-s390x","linux x64 LE":"@esbuild/linux-x64","linux loong64 LE":"@esbuild/linux-loong64","netbsd arm64 LE":"@esbuild/netbsd-arm64","netbsd x64 LE":"@esbuild/netbsd-x64","openbsd arm64 LE":"@esbuild/openbsd-arm64","openbsd x64 LE":"@esbuild/openbsd-x64","sunos x64 LE":"@esbuild/sunos-x64"},ct={"android arm LE":"@esbuild/android-arm","android x64 LE":"@esbuild/android-x64","openharmony arm64 LE":"@esbuild/openharmony-arm64"};function Rt(){let e,t,r=!1,n=`${process.platform} ${st.arch()} ${st.endianness()}`;if(n in Te)e=Te[n],t="esbuild.exe";else if(n in _e)e=_e[n],t="bin/esbuild";else if(n in ct)e=ct[n],t="bin/esbuild",r=!0;else throw new Error(`Unsupported platform: ${n}`);return{pkg:e,subpath:t,isWASM:r}}function Ut(){const e=require.resolve("esbuild"),t=Z.dirname(Z.dirname(Z.dirname(e)));if(Z.basename(t)==="node_modules"){for(const r in _e)try{const n=_e[r];if(ue.existsSync(Z.join(t,n)))return n}catch{}for(const r in Te)try{const n=Te[r];if(ue.existsSync(Z.join(t,n)))return n}catch{}}return null}function Wt(e,t){const r=Z.dirname(require.resolve("esbuild"));return Z.join(r,`downloaded-${e.replace("/","-")}-${Z.basename(t)}`)}function zt(){if(Nt(ye))if(!ue.existsSync(ye))console.warn(`[esbuild] Ignoring bad configuration: ESBUILD_BINARY_PATH=${ye}`);else return{binPath:ye,isWASM:!1};const{pkg:e,subpath:t,isWASM:r}=Rt();let n;try{n=require.resolve(`${e}/${t}`)}catch(l){if(n=Wt(e,t),!ue.existsSync(n)){try{require.resolve(e)}catch{const s=Ut();if(s){let a=`
14
14
  Specifically the "${s}" package is present but this platform
15
15
  needs the "${e}" package instead. People often get into this
16
16
  situation by installing esbuild on Windows or macOS and copying "node_modules"
@@ -59,7 +59,7 @@ want to do that.
59
59
  If you are installing esbuild with npm, make sure that you don't specify the
60
60
  "--no-optional" or "--omit=optional" flags. The "optionalDependencies" feature
61
61
  of "package.json" is used by esbuild to install the correct binary executable
62
- for your current platform.`)}throw l}}if(/\.zip\//.test(n)){let l;try{l=require("pnpapi")}catch{}if(l){const s=l.getPackageInformation(l.topLevel).packageLocation,a=Z.join(s,"node_modules",".cache","esbuild",`pnpapi-${e.replace("/","-")}-0.27.3-${Z.basename(t)}`);return fe.existsSync(a)||(fe.mkdirSync(Z.dirname(a),{recursive:!0}),fe.copyFileSync(n,a),fe.chmodSync(a,493)),{binPath:a,isWASM:r}}}return{binPath:n,isWASM:r}}var dt=ie,Wt=ie,We=ie,he=ie,zt=ie,qt=ie,Y;if(Ne.ESBUILD_WORKER_THREADS!=="0"){try{Y=ie}catch{}let[e,t]=process.versions.node.split(".");(+e<12||+e==12&&+t<17||+e==13&&+t<13)&&(Y=void 0)}var ht,Ee=((ht=Y?.workerData)==null?void 0:ht.esbuildVersion)==="0.27.3",mt=()=>{if(!be&&(We.basename(__filename)!=="main.js"||We.basename(__dirname)!=="lib"))throw new Error(`The esbuild JavaScript API cannot be bundled. Please mark the "esbuild" package as external so it's not included in the bundle.
62
+ for your current platform.`)}throw l}}if(/\.zip\//.test(n)){let l;try{l=require("pnpapi")}catch{}if(l){const s=l.getPackageInformation(l.topLevel).packageLocation,a=Z.join(s,"node_modules",".cache","esbuild",`pnpapi-${e.replace("/","-")}-0.27.3-${Z.basename(t)}`);return ue.existsSync(a)||(ue.mkdirSync(Z.dirname(a),{recursive:!0}),ue.copyFileSync(n,a),ue.chmodSync(a,493)),{binPath:a,isWASM:r}}}return{binPath:n,isWASM:r}}var dt=ve,qt=ve,We=wt,de=gt,Jt=ve,Vt=ve,Y;if(Ne.ESBUILD_WORKER_THREADS!=="0"){try{Y=ve}catch{}let[e,t]=process.versions.node.split(".");(+e<12||+e==12&&+t<17||+e==13&&+t<13)&&(Y=void 0)}var ht,Ee=((ht=Y?.workerData)==null?void 0:ht.esbuildVersion)==="0.27.3",mt=()=>{if(!ye&&(We.basename(__filename)!=="main.js"||We.basename(__dirname)!=="lib"))throw new Error(`The esbuild JavaScript API cannot be bundled. Please mark the "esbuild" package as external so it's not included in the bundle.
63
63
 
64
- More information: The file containing the code for esbuild's JavaScript API (${__filename}) does not appear to be inside the esbuild package on the file system, which usually means that the esbuild package was bundled into another file. This is problematic because the API needs to run a binary executable inside the esbuild package which is located using a relative path from the API code to the executable. If the esbuild package is bundled, the relative path will be incorrect and the executable won't be found.`);{const{binPath:e,isWASM:t}=Ut();return t?["node",[e]]:[e,[]]}},ke=()=>qt.isatty(2),Jt={readFile(e,t){try{let r=he.readFileSync(e,"utf8");try{he.unlinkSync(e)}catch{}t(null,r)}catch(r){t(r,null)}},writeFile(e,t){try{let r=gt();he.writeFileSync(r,e),t(r)}catch{t(null)}}},Vt={readFile(e,t){try{he.readFile(e,"utf8",(r,n)=>{try{he.unlink(e,()=>t(r,n))}catch{t(r,n)}})}catch(r){t(r,null)}},writeFile(e,t){try{let r=gt();he.writeFile(r,e,n=>t(n!==null?null:r))}catch{t(null)}}},Yt="0.27.3",Ht=e=>ge().build(e),Kt=e=>ge().context(e),Qt=(e,t)=>ge().transform(e,t),Gt=(e,t)=>ge().formatMessages(e,t),Xt=(e,t)=>ge().analyzeMetafile(e,t),Zt=e=>{if(Y&&!Ee)return H||(H=Ie(Y)),H.buildSync(e);let t;return Be(r=>r.buildOrContext({callName:"buildSync",refs:null,options:e,isTTY:ke(),defaultWD:me,callback:(n,l)=>{if(n)throw n;t=l}})),t},er=(e,t)=>{if(Y&&!Ee)return H||(H=Ie(Y)),H.transformSync(e,t);let r;return Be(n=>n.transform({callName:"transformSync",refs:null,input:e,options:t||{},isTTY:ke(),fs:Jt,callback:(l,s)=>{if(l)throw l;r=s}})),r},tr=(e,t)=>{if(Y&&!Ee)return H||(H=Ie(Y)),H.formatMessagesSync(e,t);let r;return Be(n=>n.formatMessages({callName:"formatMessagesSync",refs:null,messages:e,options:t,callback:(l,s)=>{if(l)throw l;r=s}})),r},rr=(e,t)=>{if(Y&&!Ee)return H||(H=Ie(Y)),H.analyzeMetafileSync(e,t);let r;return Be(n=>n.analyzeMetafile({callName:"analyzeMetafileSync",refs:null,metafile:typeof e=="string"?e:JSON.stringify(e),options:t,callback:(l,s)=>{if(l)throw l;r=s}})),r},nr=()=>(_e&&_e(),H&&H.stop(),Promise.resolve()),ze=!1,ir=e=>{if(e=Dt(e||{}),e.wasmURL)throw new Error('The "wasmURL" option only works in the browser');if(e.wasmModule)throw new Error('The "wasmModule" option only works in the browser');if(e.worker)throw new Error('The "worker" option only works in the browser');if(ze)throw new Error('Cannot call "initialize" more than once');return ge(),ze=!0,Promise.resolve()},me=process.cwd(),Se,_e,ge=()=>{if(Se)return Se;let[e,t]=mt(),r=dt.spawn(e,t.concat("--service=0.27.3","--ping"),{windowsHide:!0,stdio:["pipe","pipe","inherit"],cwd:me}),{readFromStdout:n,afterClose:l,service:s}=it({writeToStdin(g){r.stdin.write(g,$=>{$&&l($)})},readFileSync:he.readFileSync,isSync:!1,hasFS:!0,esbuild:xe});r.stdin.on("error",l),r.on("error",l);const a=r.stdin,h=r.stdout;h.on("data",n),h.on("end",l),_e=()=>{a.destroy(),h.destroy(),r.kill(),ze=!1,Se=void 0,_e=void 0};let o=0;r.unref(),a.unref&&a.unref(),h.unref&&h.unref();const w={ref(){++o===1&&r.ref()},unref(){--o===0&&r.unref()}};return Se={build:g=>new Promise(($,I)=>{s.buildOrContext({callName:"build",refs:w,options:g,isTTY:ke(),defaultWD:me,callback:(_,B)=>_?I(_):$(B)})}),context:g=>new Promise(($,I)=>s.buildOrContext({callName:"context",refs:w,options:g,isTTY:ke(),defaultWD:me,callback:(_,B)=>_?I(_):$(B)})),transform:(g,$)=>new Promise((I,_)=>s.transform({callName:"transform",refs:w,input:g,options:$||{},isTTY:ke(),fs:Vt,callback:(B,N)=>B?_(B):I(N)})),formatMessages:(g,$)=>new Promise((I,_)=>s.formatMessages({callName:"formatMessages",refs:w,messages:g,options:$,callback:(B,N)=>B?_(B):I(N)})),analyzeMetafile:(g,$)=>new Promise((I,_)=>s.analyzeMetafile({callName:"analyzeMetafile",refs:w,metafile:typeof g=="string"?g:JSON.stringify(g),options:$,callback:(B,N)=>B?_(B):I(N)}))},Se},Be=e=>{let[t,r]=mt(),n=new Uint8Array,{readFromStdout:l,afterClose:s,service:a}=it({writeToStdin(o){if(n.length!==0)throw new Error("Must run at most one command");n=o},isSync:!0,hasFS:!0,esbuild:xe});e(a);let h=dt.execFileSync(t,r.concat("--service=0.27.3"),{cwd:me,windowsHide:!0,input:n,maxBuffer:+Ne.ESBUILD_MAX_BUFFER||16*1024*1024});l(h),s(null)},gt=()=>We.join(zt.tmpdir(),`esbuild-${Wt.randomBytes(32).toString("hex")}`),H=null,Ie=e=>{let{port1:t,port2:r}=new e.MessageChannel,n=new e.Worker(__filename,{workerData:{workerPort:r,defaultWD:me,esbuildVersion:"0.27.3"},transferList:[r],execArgv:[]}),l=0,s=w=>{let g=new Error(`Build failed with 1 error:
65
- error: ${w}`),$=[{id:"",pluginName:"",text:w,location:null,notes:[],detail:void 0}];return g.errors=$,g.warnings=[],g},a=w=>{if(!w)return;let g=w.plugins;if(g&&g.length>0)throw s("Cannot use plugins in synchronous API calls")},h=(w,g)=>{for(let $ in g)w[$]=g[$]},o=(w,g)=>{let $=l++,I=new SharedArrayBuffer(8),_=new Int32Array(I),B={sharedBuffer:I,id:$,command:w,args:g};n.postMessage(B);let N=Atomics.wait(_,0,0);if(N!=="ok"&&N!=="not-equal")throw new Error("Internal error: Atomics.wait() failed: "+N);let{message:{id:L,resolve:W,reject:z,properties:x}}=e.receiveMessageOnPort(t);if($!==L)throw new Error(`Internal error: Expected id ${$} but got id ${L}`);if(z)throw h(z,x),z;return W};return n.unref(),{buildSync(w){return a(w),o("build",[w])},transformSync(w,g){return o("transform",[w,g])},formatMessagesSync(w,g){return o("formatMessages",[w,g])},analyzeMetafileSync(w,g){return o("analyzeMetafile",[w,g])},stop(){n.terminate(),H=null}}},lr=()=>{let e=Y.workerData.workerPort,t=Y.parentPort,r=n=>{let l={};if(n&&typeof n=="object")for(let s in n)l[s]=n[s];return l};try{let n=ge();me=Y.workerData.defaultWD,t.on("message",l=>{(async()=>{let{sharedBuffer:s,id:a,command:h,args:o}=l,w=new Int32Array(s);try{switch(h){case"build":e.postMessage({id:a,resolve:await n.build(o[0])});break;case"transform":e.postMessage({id:a,resolve:await n.transform(o[0],o[1])});break;case"formatMessages":e.postMessage({id:a,resolve:await n.formatMessages(o[0],o[1])});break;case"analyzeMetafile":e.postMessage({id:a,resolve:await n.analyzeMetafile(o[0],o[1])});break;default:throw new Error(`Invalid command: ${h}`)}}catch(g){e.postMessage({id:a,reject:g,properties:r(g)})}Atomics.add(w,0,1),Atomics.notify(w,0,1/0)})()})}catch(n){t.on("message",l=>{let{sharedBuffer:s,id:a}=l,h=new Int32Array(s);e.postMessage({id:a,reject:n,properties:r(n)}),Atomics.add(h,0,1),Atomics.notify(h,0,1/0)})}};Ee&&lr();var ar=xe;return qe}export{dr as __require};
64
+ More information: The file containing the code for esbuild's JavaScript API (${__filename}) does not appear to be inside the esbuild package on the file system, which usually means that the esbuild package was bundled into another file. This is problematic because the API needs to run a binary executable inside the esbuild package which is located using a relative path from the API code to the executable. If the esbuild package is bundled, the relative path will be incorrect and the executable won't be found.`);{const{binPath:e,isWASM:t}=zt();return t?["node",[e]]:[e,[]]}},ke=()=>Vt.isatty(2),Yt={readFile(e,t){try{let r=de.readFileSync(e,"utf8");try{de.unlinkSync(e)}catch{}t(null,r)}catch(r){t(r,null)}},writeFile(e,t){try{let r=pt();de.writeFileSync(r,e),t(r)}catch{t(null)}}},Ht={readFile(e,t){try{de.readFile(e,"utf8",(r,n)=>{try{de.unlink(e,()=>t(r,n))}catch{t(r,n)}})}catch(r){t(r,null)}},writeFile(e,t){try{let r=pt();de.writeFile(r,e,n=>t(n!==null?null:r))}catch{t(null)}}},Kt="0.27.3",Qt=e=>me().build(e),Gt=e=>me().context(e),Xt=(e,t)=>me().transform(e,t),Zt=(e,t)=>me().formatMessages(e,t),er=(e,t)=>me().analyzeMetafile(e,t),tr=e=>{if(Y&&!Ee)return H||(H=Ie(Y)),H.buildSync(e);let t;return Be(r=>r.buildOrContext({callName:"buildSync",refs:null,options:e,isTTY:ke(),defaultWD:he,callback:(n,l)=>{if(n)throw n;t=l}})),t},rr=(e,t)=>{if(Y&&!Ee)return H||(H=Ie(Y)),H.transformSync(e,t);let r;return Be(n=>n.transform({callName:"transformSync",refs:null,input:e,options:t||{},isTTY:ke(),fs:Yt,callback:(l,s)=>{if(l)throw l;r=s}})),r},nr=(e,t)=>{if(Y&&!Ee)return H||(H=Ie(Y)),H.formatMessagesSync(e,t);let r;return Be(n=>n.formatMessages({callName:"formatMessagesSync",refs:null,messages:e,options:t,callback:(l,s)=>{if(l)throw l;r=s}})),r},ir=(e,t)=>{if(Y&&!Ee)return H||(H=Ie(Y)),H.analyzeMetafileSync(e,t);let r;return Be(n=>n.analyzeMetafile({callName:"analyzeMetafileSync",refs:null,metafile:typeof e=="string"?e:JSON.stringify(e),options:t,callback:(l,s)=>{if(l)throw l;r=s}})),r},lr=()=>(Fe&&Fe(),H&&H.stop(),Promise.resolve()),ze=!1,ar=e=>{if(e=Mt(e||{}),e.wasmURL)throw new Error('The "wasmURL" option only works in the browser');if(e.wasmModule)throw new Error('The "wasmModule" option only works in the browser');if(e.worker)throw new Error('The "worker" option only works in the browser');if(ze)throw new Error('Cannot call "initialize" more than once');return me(),ze=!0,Promise.resolve()},he=process.cwd(),Se,Fe,me=()=>{if(Se)return Se;let[e,t]=mt(),r=dt.spawn(e,t.concat("--service=0.27.3","--ping"),{windowsHide:!0,stdio:["pipe","pipe","inherit"],cwd:he}),{readFromStdout:n,afterClose:l,service:s}=it({writeToStdin(p){r.stdin.write(p,$=>{$&&l($)})},readFileSync:de.readFileSync,isSync:!1,hasFS:!0,esbuild:xe});r.stdin.on("error",l),r.on("error",l);const a=r.stdin,h=r.stdout;h.on("data",n),h.on("end",l),Fe=()=>{a.destroy(),h.destroy(),r.kill(),ze=!1,Se=void 0,Fe=void 0};let o=0;r.unref(),a.unref&&a.unref(),h.unref&&h.unref();const w={ref(){++o===1&&r.ref()},unref(){--o===0&&r.unref()}};return Se={build:p=>new Promise(($,I)=>{s.buildOrContext({callName:"build",refs:w,options:p,isTTY:ke(),defaultWD:he,callback:(F,B)=>F?I(F):$(B)})}),context:p=>new Promise(($,I)=>s.buildOrContext({callName:"context",refs:w,options:p,isTTY:ke(),defaultWD:he,callback:(F,B)=>F?I(F):$(B)})),transform:(p,$)=>new Promise((I,F)=>s.transform({callName:"transform",refs:w,input:p,options:$||{},isTTY:ke(),fs:Ht,callback:(B,N)=>B?F(B):I(N)})),formatMessages:(p,$)=>new Promise((I,F)=>s.formatMessages({callName:"formatMessages",refs:w,messages:p,options:$,callback:(B,N)=>B?F(B):I(N)})),analyzeMetafile:(p,$)=>new Promise((I,F)=>s.analyzeMetafile({callName:"analyzeMetafile",refs:w,metafile:typeof p=="string"?p:JSON.stringify(p),options:$,callback:(B,N)=>B?F(B):I(N)}))},Se},Be=e=>{let[t,r]=mt(),n=new Uint8Array,{readFromStdout:l,afterClose:s,service:a}=it({writeToStdin(o){if(n.length!==0)throw new Error("Must run at most one command");n=o},isSync:!0,hasFS:!0,esbuild:xe});e(a);let h=dt.execFileSync(t,r.concat("--service=0.27.3"),{cwd:he,windowsHide:!0,input:n,maxBuffer:+Ne.ESBUILD_MAX_BUFFER||16*1024*1024});l(h),s(null)},pt=()=>We.join(Jt.tmpdir(),`esbuild-${qt.randomBytes(32).toString("hex")}`),H=null,Ie=e=>{let{port1:t,port2:r}=new e.MessageChannel,n=new e.Worker(__filename,{workerData:{workerPort:r,defaultWD:he,esbuildVersion:"0.27.3"},transferList:[r],execArgv:[]}),l=0,s=w=>{let p=new Error(`Build failed with 1 error:
65
+ error: ${w}`),$=[{id:"",pluginName:"",text:w,location:null,notes:[],detail:void 0}];return p.errors=$,p.warnings=[],p},a=w=>{if(!w)return;let p=w.plugins;if(p&&p.length>0)throw s("Cannot use plugins in synchronous API calls")},h=(w,p)=>{for(let $ in p)w[$]=p[$]},o=(w,p)=>{let $=l++,I=new SharedArrayBuffer(8),F=new Int32Array(I),B={sharedBuffer:I,id:$,command:w,args:p};n.postMessage(B);let N=Atomics.wait(F,0,0);if(N!=="ok"&&N!=="not-equal")throw new Error("Internal error: Atomics.wait() failed: "+N);let{message:{id:L,resolve:W,reject:z,properties:x}}=e.receiveMessageOnPort(t);if($!==L)throw new Error(`Internal error: Expected id ${$} but got id ${L}`);if(z)throw h(z,x),z;return W};return n.unref(),{buildSync(w){return a(w),o("build",[w])},transformSync(w,p){return o("transform",[w,p])},formatMessagesSync(w,p){return o("formatMessages",[w,p])},analyzeMetafileSync(w,p){return o("analyzeMetafile",[w,p])},stop(){n.terminate(),H=null}}},or=()=>{let e=Y.workerData.workerPort,t=Y.parentPort,r=n=>{let l={};if(n&&typeof n=="object")for(let s in n)l[s]=n[s];return l};try{let n=me();he=Y.workerData.defaultWD,t.on("message",l=>{(async()=>{let{sharedBuffer:s,id:a,command:h,args:o}=l,w=new Int32Array(s);try{switch(h){case"build":e.postMessage({id:a,resolve:await n.build(o[0])});break;case"transform":e.postMessage({id:a,resolve:await n.transform(o[0],o[1])});break;case"formatMessages":e.postMessage({id:a,resolve:await n.formatMessages(o[0],o[1])});break;case"analyzeMetafile":e.postMessage({id:a,resolve:await n.analyzeMetafile(o[0],o[1])});break;default:throw new Error(`Invalid command: ${h}`)}}catch(p){e.postMessage({id:a,reject:p,properties:r(p)})}Atomics.add(w,0,1),Atomics.notify(w,0,1/0)})()})}catch(n){t.on("message",l=>{let{sharedBuffer:s,id:a}=l,h=new Int32Array(s);e.postMessage({id:a,reject:n,properties:r(n)}),Atomics.add(h,0,1),Atomics.notify(h,0,1/0)})}};Ee&&or();var sr=xe;return qe}export{yr as __require};