knitting 0.1.60 → 0.1.62
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.
- package/BROWSER.md +134 -0
- package/README.md +94 -6
- package/knitting.browser.d.ts +6 -0
- package/knitting.browser.js +1 -0
- package/package.json +11 -2
- package/prebuilds/darwin-arm64-node-127/knitting_buffer_pointer.node +0 -0
- package/prebuilds/darwin-arm64-node-127/knitting_shared_memory.node +0 -0
- package/prebuilds/darwin-arm64-node-127/knitting_shm.node +0 -0
- package/prebuilds/darwin-arm64-node-137/knitting_buffer_pointer.node +0 -0
- package/prebuilds/darwin-arm64-node-137/knitting_shared_memory.node +0 -0
- package/prebuilds/darwin-arm64-node-137/knitting_shm.node +0 -0
- package/prebuilds/win32-x64/knitting_windows_shared_memory.dll +0 -0
- package/prebuilds/win32-x64-node-127/knitting_buffer_pointer.node +0 -0
- package/prebuilds/win32-x64-node-127/knitting_shared_memory.node +0 -0
- package/prebuilds/win32-x64-node-127/knitting_shm.node +0 -0
- package/prebuilds/win32-x64-node-137/knitting_buffer_pointer.node +0 -0
- package/prebuilds/win32-x64-node-137/knitting_shared_memory.node +0 -0
- package/prebuilds/win32-x64-node-137/knitting_shm.node +0 -0
- package/src/api.js +136 -25
- package/src/common/runtime.d.ts +2 -1
- package/src/common/runtime.js +8 -1
- package/src/common/task-source.d.ts +9 -0
- package/src/common/task-source.js +15 -0
- package/src/memory/lock.d.ts +37 -1
- package/src/memory/lock.js +262 -5
- package/src/memory/payloadCodec.js +2 -6
- package/src/memory/regionRegistry.d.ts +1 -3
- package/src/memory/regionRegistry.js +16 -14
- package/src/permission/protocol.js +5 -1
- package/src/runtime/dispatcher.d.ts +11 -8
- package/src/runtime/dispatcher.js +163 -21
- package/src/runtime/inline-executor.js +6 -1
- package/src/runtime/pool.d.ts +127 -4
- package/src/runtime/pool.js +262 -73
- package/src/runtime/process-worker.d.ts +24 -12
- package/src/runtime/process-worker.js +185 -115
- package/src/runtime/tx-queue.d.ts +17 -1
- package/src/runtime/tx-queue.js +120 -15
- package/src/runtime/worker-common.d.ts +13 -0
- package/src/runtime/worker-common.js +103 -0
- package/src/types.d.ts +75 -4
- package/src/worker/loop.js +34 -5
- package/src/worker/rx-queue.d.ts +11 -1
- package/src/worker/rx-queue.js +4 -1
- package/src/worker/timers.d.ts +8 -1
- package/src/worker/timers.js +20 -17
package/BROWSER.md
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Browser limitations
|
|
2
|
+
|
|
3
|
+
`knitting/browser` runs the same pool API over web workers and
|
|
4
|
+
`SharedArrayBuffer`. Tasks, typed-array payloads, parallel calls, abort signals,
|
|
5
|
+
and shutdown all behave as they do on Node, Deno, and Bun.
|
|
6
|
+
|
|
7
|
+
This page is the other half: what a page cannot do, what happens when you try,
|
|
8
|
+
and why. Everything below was checked against headless Chromium, and every
|
|
9
|
+
quoted message is the one the runtime actually produces.
|
|
10
|
+
|
|
11
|
+
## Two hard requirements
|
|
12
|
+
|
|
13
|
+
### The page must be cross-origin isolated
|
|
14
|
+
|
|
15
|
+
Browsers only expose `SharedArrayBuffer` to pages served with both:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
Cross-Origin-Opener-Policy: same-origin
|
|
19
|
+
Cross-Origin-Embedder-Policy: require-corp
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Without them `createPool` throws:
|
|
23
|
+
|
|
24
|
+
> SharedArrayBuffer is unavailable: serve the page cross-origin isolated
|
|
25
|
+
> (Cross-Origin-Opener-Policy: same-origin, Cross-Origin-Embedder-Policy:
|
|
26
|
+
> require-corp).
|
|
27
|
+
|
|
28
|
+
This is not a knitting policy and cannot be worked around: no shared memory
|
|
29
|
+
means no pool. It also constrains the rest of the page — every cross-origin
|
|
30
|
+
subresource needs `Cross-Origin-Resource-Policy` or CORS, or the browser refuses
|
|
31
|
+
to load it once isolation is on.
|
|
32
|
+
|
|
33
|
+
### Task modules must call `setModuleUrl(import.meta.url)`
|
|
34
|
+
|
|
35
|
+
On Node, Deno, and Bun a task discovers its own module by walking the stack.
|
|
36
|
+
Bundlers erase the paths that depends on, so in a browser the module has to say
|
|
37
|
+
where it lives:
|
|
38
|
+
|
|
39
|
+
```js
|
|
40
|
+
import { setModuleUrl, task } from "knitting/browser";
|
|
41
|
+
|
|
42
|
+
setModuleUrl(import.meta.url);
|
|
43
|
+
|
|
44
|
+
export const square = task({ f: (value) => value * value });
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Without it the worker cannot import the module that defines the tasks.
|
|
48
|
+
|
|
49
|
+
## Not available in a browser
|
|
50
|
+
|
|
51
|
+
| Feature | What happens |
|
|
52
|
+
| -------------------------------------------------------------------- | ---------------------------------------------------------------- |
|
|
53
|
+
| Process workers (`worker.runtime: "process"`, `processRuntime`) | throws `process workers are unavailable in the browser build` |
|
|
54
|
+
| Compiled / Porffor workers (`runtime: "compiled"`, `.knt` artifacts) | throws `compiled workers are unavailable in the browser build` |
|
|
55
|
+
| `BufferReference` | throws `BufferReference cannot run in runtime "browser"` |
|
|
56
|
+
| `ProcessSharedBuffer`, named shared memory | throws `ProcessSharedBuffer is unavailable in the browser build` |
|
|
57
|
+
| Native addons, FFI, file descriptors | unreachable; nothing in a page can load them |
|
|
58
|
+
| `checkCompiledWorker` | not exported from `knitting/browser` |
|
|
59
|
+
| Permissions (`permission: {...}`) | **silently ignored** — see below |
|
|
60
|
+
|
|
61
|
+
All of these need a filesystem, a process to spawn, or FFI. The browser build
|
|
62
|
+
replaces them with stubs that raise the errors above rather than failing deeper
|
|
63
|
+
in with a confusing one.
|
|
64
|
+
|
|
65
|
+
### Permissions are inert, and that is a security boundary
|
|
66
|
+
|
|
67
|
+
The `permission` option is accepted and then skipped entirely. There is no
|
|
68
|
+
filesystem to restrict, no process to sandbox, and no runtime flags to pass, so
|
|
69
|
+
a strict policy that would constrain a Node worker constrains nothing here.
|
|
70
|
+
|
|
71
|
+
A web worker runs with the privileges of the page that spawned it: same origin,
|
|
72
|
+
same `fetch` reach, same storage. **Task code you would not trust with your
|
|
73
|
+
origin must not run in a browser pool.** Isolation there is the browser's job —
|
|
74
|
+
a sandboxed iframe on a separate origin — not knitting's.
|
|
75
|
+
|
|
76
|
+
### `SharedArrayBuffer` as a task argument
|
|
77
|
+
|
|
78
|
+
This one differs from every other runtime, so it is worth calling out
|
|
79
|
+
separately. Passing a `SharedArrayBuffer` _as an argument to a task_ works on
|
|
80
|
+
Node, Deno, and Bun, and throws in a browser:
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
KNT_ERROR_3: Unsupported payload type; BufferReference cannot run in runtime "browser"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
The SAB payload path shares buffers by pinning a process-local pointer through
|
|
87
|
+
FFI, which a page cannot do. The pool's own transport is unaffected — that is
|
|
88
|
+
how the workers talk at all — this is only about SABs you pass yourself.
|
|
89
|
+
|
|
90
|
+
Nothing prevents a browser-native path here: SABs are structured-cloneable in a
|
|
91
|
+
cross-origin isolated context, so `postMessage` could carry them without any
|
|
92
|
+
pointer. It simply is not implemented.
|
|
93
|
+
|
|
94
|
+
## Behaves differently, but works
|
|
95
|
+
|
|
96
|
+
- **Workers boot by message, not by `workerData`.** The pool posts the boot
|
|
97
|
+
payload after constructing the worker. Invisible in the API; relevant if you
|
|
98
|
+
are reading worker startup code.
|
|
99
|
+
- **`KNITTING_DEBUG` is ignored.** The env gate reads `Deno.env` or
|
|
100
|
+
`process.env`, neither of which exists in a page. Pass the `debug` option to
|
|
101
|
+
`createPool` explicitly instead.
|
|
102
|
+
- **`threads` still defaults to 1.** There is no auto-sizing on any runtime; in
|
|
103
|
+
a browser `navigator.hardwareConcurrency` is the number to reach for.
|
|
104
|
+
- **Every worker loads the whole bundle.** The worker URL is the bundle's own
|
|
105
|
+
URL, so each thread parses the library again. Memory cost scales with thread
|
|
106
|
+
count.
|
|
107
|
+
|
|
108
|
+
## Not browser limitations
|
|
109
|
+
|
|
110
|
+
These fail the same way on Node, so do not go looking for a browser cause:
|
|
111
|
+
|
|
112
|
+
- `BigInt` payloads — `Do not know how to serialize a BigInt`
|
|
113
|
+
- `Map` / `Set` payloads — `Unsupported object type`
|
|
114
|
+
- Functions as payloads — `KNT_ERROR_0: Function is not a valid type`
|
|
115
|
+
- `Error` values round-trip as `{ name }`, dropping the message
|
|
116
|
+
|
|
117
|
+
## Where this is tested
|
|
118
|
+
|
|
119
|
+
The browser lane (`npm run test:browser`) drives headless Chromium through two
|
|
120
|
+
layouts — one bundle containing tasks and library, and the standalone
|
|
121
|
+
single-file bundle loaded from a script tag next to a separate task module.
|
|
122
|
+
|
|
123
|
+
**Chromium is the only engine covered.** Firefox and Safari support the same
|
|
124
|
+
primitives (workers, `SharedArrayBuffer` under cross-origin isolation) and are
|
|
125
|
+
expected to work, but nothing here has been verified against them.
|
|
126
|
+
|
|
127
|
+
## How the browser build is produced
|
|
128
|
+
|
|
129
|
+
`knitting/browser` ships as one self-contained minified file (~94 KB, ~32 KB
|
|
130
|
+
gzipped). The Node-only subsystems are swapped for stubs at bundle time by
|
|
131
|
+
[`scripts/browser-stubs/plugin.ts`](scripts/browser-stubs/plugin.ts); each stub
|
|
132
|
+
keeps the behaviour the real module already had in a page — return nothing,
|
|
133
|
+
answer false, or throw the message quoted above — which is why the errors in
|
|
134
|
+
this document are precise rather than generic.
|
package/README.md
CHANGED
|
@@ -345,15 +345,25 @@ Common options you might tweak:
|
|
|
345
345
|
| `worker.processSharedMemory` | Process-worker memory discovery: `"inherit"` by default on POSIX, or `"named"` for wrappers/containers that cannot preserve fd 0. |
|
|
346
346
|
| `permission` | Runtime permission policy for workers. |
|
|
347
347
|
| `host.dispatcher` | Experimental host dispatcher topology: `"per-thread"` or `"serial-channel"`. |
|
|
348
|
+
| `host.steal` | Shared-submit work stealing for compatible multi-worker thread/process pools; enabled by default. Set `false` to use private submit lanes. |
|
|
348
349
|
| `debug` | Enable diagnostics (`host`, `globals`, `signals`, `imports`, `lifecycle`) or use `KNITTING_DEBUG`. |
|
|
349
350
|
| `source` | Worker source override for advanced runtimes. |
|
|
350
351
|
|
|
351
|
-
Most users can leave `host.dispatcher` alone.
|
|
352
|
-
|
|
353
|
-
Node/Deno pools use `"serial-channel"
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
352
|
+
Most users can leave `host.dispatcher` alone. It selects the dispatcher for
|
|
353
|
+
private-lane pools: Bun and single-worker pools default to `"per-thread"`, while
|
|
354
|
+
multi-worker Node/Deno pools use `"serial-channel"`. Selecting a dispatcher or
|
|
355
|
+
balancer explicitly preserves that private-lane topology unless
|
|
356
|
+
`host.steal: true` is also explicit.
|
|
357
|
+
|
|
358
|
+
Ordinary multi-worker thread and process pools use shared-submit work stealing
|
|
359
|
+
by default. It is not used by one-worker pools, the inliner, compiled/Porffor
|
|
360
|
+
workers, or pools with an explicit balancer/dispatcher, so those modes retain
|
|
361
|
+
their existing transport. Process workers use one process-shared submit region
|
|
362
|
+
and one private return region per process. Pools above the current 31-claimant
|
|
363
|
+
protocol limit also fall back. Set `host: { steal: false }` or
|
|
364
|
+
`KNITTING_STEAL=0` to opt out for uniformly cheap, low-concurrency workloads
|
|
365
|
+
where arbitration has nothing to rebalance. `host: { steal: true }` or
|
|
366
|
+
`KNITTING_STEAL=1` forces it for an otherwise compatible pool.
|
|
357
367
|
|
|
358
368
|
### Worker bootstrap
|
|
359
369
|
|
|
@@ -632,6 +642,84 @@ const pool = createPool({
|
|
|
632
642
|
})({ add });
|
|
633
643
|
```
|
|
634
644
|
|
|
645
|
+
## Browsers
|
|
646
|
+
|
|
647
|
+
Knitting also runs in the browser, where the pool spawns web workers over
|
|
648
|
+
`SharedArrayBuffer` instead of threads. Two rules apply there and nowhere else.
|
|
649
|
+
|
|
650
|
+
**The page must be cross-origin isolated.** Browsers hand out
|
|
651
|
+
`SharedArrayBuffer` only under these two response headers, and `createPool`
|
|
652
|
+
fails with a clear error when they are missing:
|
|
653
|
+
|
|
654
|
+
```
|
|
655
|
+
Cross-Origin-Opener-Policy: same-origin
|
|
656
|
+
Cross-Origin-Embedder-Policy: require-corp
|
|
657
|
+
```
|
|
658
|
+
|
|
659
|
+
**Task modules must declare their own URL.** On Node, Deno, and Bun a task
|
|
660
|
+
finds its module by walking the stack; a bundler erases the paths that depends
|
|
661
|
+
on, so call `setModuleUrl(import.meta.url)` in the module that exports tasks:
|
|
662
|
+
|
|
663
|
+
```ts
|
|
664
|
+
import { createPool, isMain, setModuleUrl, task } from "knitting/browser";
|
|
665
|
+
|
|
666
|
+
setModuleUrl(import.meta.url);
|
|
667
|
+
|
|
668
|
+
export const square = task({ f: (value: number) => value * value });
|
|
669
|
+
|
|
670
|
+
if (isMain) {
|
|
671
|
+
const pool = createPool({ threads: 4 })({ square });
|
|
672
|
+
console.log(await pool.call.square(7)); // 49
|
|
673
|
+
await pool.shutdown();
|
|
674
|
+
}
|
|
675
|
+
```
|
|
676
|
+
|
|
677
|
+
Bundle that module with any browser-targeting bundler. The result is
|
|
678
|
+
self-hosting: the page loads it, and every worker the pool spawns loads the
|
|
679
|
+
same file, which is why both sides agree on the module URL.
|
|
680
|
+
|
|
681
|
+
`knitting/browser` ships as one self-contained file, so it also works without a
|
|
682
|
+
bundler at all — serve it next to a plain task module:
|
|
683
|
+
|
|
684
|
+
```html
|
|
685
|
+
<script type="module" src="./tasks.js"></script>
|
|
686
|
+
```
|
|
687
|
+
|
|
688
|
+
```js
|
|
689
|
+
// tasks.js
|
|
690
|
+
import { createPool, isMain, setModuleUrl, task } from "./knitting.browser.js";
|
|
691
|
+
|
|
692
|
+
setModuleUrl(import.meta.url);
|
|
693
|
+
|
|
694
|
+
export const square = task({ f: (value) => value * value });
|
|
695
|
+
|
|
696
|
+
if (isMain) {
|
|
697
|
+
const pool = createPool({ threads: 2 })({ square });
|
|
698
|
+
console.log(await pool.call.square(7)); // 49
|
|
699
|
+
await pool.shutdown();
|
|
700
|
+
}
|
|
701
|
+
```
|
|
702
|
+
|
|
703
|
+
It is the same API as the main entry without the compiled worker (Porffor)
|
|
704
|
+
helpers, which need a filesystem. Process workers, native addons, FFI, and the
|
|
705
|
+
permission system are inert in a browser — permissions are skipped entirely,
|
|
706
|
+
since there is no filesystem or process to police.
|
|
707
|
+
|
|
708
|
+
Process workers, compiled workers, native addons, FFI, `BufferReference`, and
|
|
709
|
+
`ProcessSharedBuffer` are all unavailable in a page, and permissions are
|
|
710
|
+
skipped rather than enforced. [BROWSER.md](BROWSER.md) documents every one of
|
|
711
|
+
those, with the error each raises.
|
|
712
|
+
|
|
713
|
+
The published file is bundled and minified, with the Node-only subsystems
|
|
714
|
+
(process workers, compiled workers, native addons, FFI, permissions) replaced
|
|
715
|
+
by stubs that keep their browser behaviour — roughly 94 KB, 32 KB over gzip.
|
|
716
|
+
Both layouts above are covered by the browser test lane:
|
|
717
|
+
|
|
718
|
+
```bash
|
|
719
|
+
npm run build:browser # build/knitting.browser.js and .min.js
|
|
720
|
+
npm run test:browser # end-to-end checks in headless Chromium
|
|
721
|
+
```
|
|
722
|
+
|
|
635
723
|
## Permissions
|
|
636
724
|
|
|
637
725
|
Knitting defaults to a strict worker permission policy:
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { workerMainLoop } from "./src/worker/loop.ts";
|
|
2
|
+
import { createPool, importTask, isMain, setModuleUrl, task } from "./src/api.ts";
|
|
3
|
+
import { Envelope } from "./src/common/envelope.ts";
|
|
4
|
+
import { isNumericArray, NumericArray } from "./src/connections/numeric-array.ts";
|
|
5
|
+
export { createPool as createPool, Envelope as Envelope, importTask as importTask, isMain as isMain, isNumericArray as isNumericArray, NumericArray as NumericArray, setModuleUrl as setModuleUrl, task as task, workerMainLoop as workerMainLoop, };
|
|
6
|
+
export type { EnvelopeBody as EnvelopeBody, EnvelopeHeader as EnvelopeHeader, } from "./src/common/envelope.ts";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var $s=Object.defineProperty;var zs=(e)=>e;function Ys(e,r){this[e]=zs.bind(null,r)}var Vs=(e,r)=>{for(var t in r)$s(e,t,{get:r[t],enumerable:!0,configurable:!0,set:Ys.bind(r,t)})};var qs=(e,r)=>()=>(e&&(r=e(e=0)),r);var uo=()=>({keys:new Set(Reflect.ownKeys(globalThis))}),za=(e,r)=>{let t=[],n=[];for(let a of r.keys)if(!e.keys.has(a))t.push(a);for(let a of e.keys)if(!r.keys.has(a))n.push(a);return{added:t,removed:n}},Ya=(e)=>{let r=typeof e==="symbol"?e.toString():e,t;try{t=Object.getOwnPropertyDescriptor(globalThis,e)}catch{return r}if(t===void 0)return r;let n=t.get!==void 0||t.set!==void 0?"accessor":typeof t.value,a=`${t.writable===!1?"":"w"}${t.configurable?"c":""}${t.enumerable?"e":""}`;return a.length>0?`${r} (${n} ${a})`:`${r} (${n})`};var Va={};Vs(Va,{initDebug:()=>Gu});var Gu=({name:e,runtime:r,namespaces:t})=>{let n=t.has("*"),a=(P)=>n||t.has(P),u=performance.now(),c=`${e}·${r}`,f=(P,H)=>{if(!a(P))return;let k=(performance.now()-u).toFixed(1);console.error(`[${c}·+${k}ms] ${P}: ${H}`)},S=a("globals")?uo():void 0;return{enabled:a,log:f,envPhase:(P)=>{if(S===void 0)return;let H=uo(),{added:k,removed:m}=za(S,H);if(S=H,k.length===0&&m.length===0){f("globals",`${P}: no new globals`);return}if(k.length>0)f("globals",`${P} +${k.length}: ${k.map(Ya).join(" ")}`);if(m.length>0)f("globals",`${P} -${m.length}: ${m.map(String).join(" ")}`)}}};var qa=()=>{};var St=(()=>{let e=globalThis.process;return typeof e?.versions?.node==="string"?e:void 0})(),$e=()=>St,At=(e)=>{let r=St?.getBuiltinModule;if(typeof r!=="function")return;try{return r.call(St,e)}catch{}if(!e.startsWith("node:"))return;try{return r.call(St,e.slice(5))}catch{return}};var kr=globalThis,Qs=$e(),So=typeof kr.Deno?.version?.deno==="string",Zr=typeof kr.Bun?.version==="string",Ao=typeof Qs?.versions?.node==="string",Er=typeof kr.__andromeda__<"u",fn=!So&&!Zr&&!Ao&&!Er&&(typeof kr.document<"u"||typeof kr.WorkerGlobalScope==="function"),Oe=So?"deno":Zr?"bun":Ao?"node":Er?"andromeda":fn?"browser":"unknown",cn=kr.WebAssembly,et=typeof kr.setImmediate==="function"?kr.setImmediate:void 0,Js=65536,Bt=new WeakMap,wt=new WeakMap,ln=(()=>{if(typeof cn?.Memory!=="function")return!1;try{return new cn.Memory({initial:0,maximum:1,shared:!0}),!0}catch{return!1}})();var Xr=(e)=>Math.ceil(Math.max(0,e)/Js),Bo=(e,r)=>{let t=new cn.Memory({initial:Xr(e),maximum:Math.max(Xr(e),Xr(r)),shared:!0}),n=t.buffer;return Bt.set(n,t),wt.set(n,r),n},Fr=(e,r=e)=>{if(ln)return Bo(e,r);return new SharedArrayBuffer(e)},dn=typeof SharedArrayBuffer==="function"&&typeof SharedArrayBuffer.prototype.grow==="function",Tt=dn||ln,ze=(e,r)=>{if(dn&&typeof r==="number")return new SharedArrayBuffer(e,{maxByteLength:r});if(ln&&typeof r==="number")return Bo(e,r);return new SharedArrayBuffer(e)};var wo=(e)=>{let r=e;return dn&&typeof r.grow==="function"&&r.growable===!0||Bt.has(e)},To=(e)=>{let r=e;if(typeof r.maxByteLength==="number")return r.maxByteLength;return wt.get(e)??e.byteLength},ko=(e,r)=>{let t=e;if(typeof t.grow==="function")return t.grow(r),e;let n=Bt.get(e);if(n==null)throw TypeError("SharedArrayBuffer is not growable");let a=n.buffer;if(a.byteLength>=r)return a;let u=Xr(r),c=Xr(a.byteLength);n.grow(u-c);let f=n.buffer,S=wt.get(e)??a.byteLength;return Bt.set(f,n),wt.set(f,S),f};var Xs="KNITTING_PROCESS_WORKER";var Zs="KNITTING_POOL_DEPTH",kt=$e(),Rr=kt?.env?.[Xs]==="1",ei=()=>{let e=kt?.env?.[Zs];if(typeof e!=="string")return 0;let r=Number.parseInt(e,10);return Number.isFinite(r)&&r>0?r:0},yn=ei(),Or=At("node:worker_threads"),ri=()=>{let e=globalThis.WorkerGlobalScope;if(typeof e==="function")try{if(globalThis instanceof e)return!0}catch{}if(Er&&typeof globalThis.self<"u")return!0;return!1},Ro=Or?.Worker??globalThis.Worker,Eo=Or?.MessageChannel??globalThis.MessageChannel,pn=Or!=null,xr=Rr?!1:Or?.isMainThread??!ri(),rt=Or?.workerData,tt=Or?.parentPort??(Rr&&typeof kt?.send==="function"?{postMessage:(e)=>kt.send(e)}:void 0),Nr=()=>{if(typeof Eo!=="function")throw Error("MessageChannel is not available in this runtime");return new Eo},xo=(e,r)=>{if(typeof e.on==="function"){e.on("message",r);return}if(typeof e.addEventListener==="function"){e.addEventListener("message",(t)=>r(t?.data));return}e.onmessage=(t)=>r(t?.data)};var nt=(e)=>e instanceof SharedArrayBuffer||e instanceof ArrayBuffer,ti=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return nt(r.sab)&&typeof r.byteOffset==="number"&&Number.isInteger(r.byteOffset)&&r.byteOffset>=0&&typeof r.byteLength==="number"&&Number.isInteger(r.byteLength)&&r.byteLength>=0},rr=(e)=>nt(e)||ti(e),Ye=(e)=>nt(e)?{sab:e,byteOffset:0,byteLength:e.byteLength}:e;var Lo=new TextEncoder,ni=new TextDecoder,Po=(e)=>e instanceof TypeError,oi=(e)=>{let r=Ye(e),t=Math.min(1,r.byteLength);return new Uint8Array(r.sab,r.byteOffset,t)},vo=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return typeof r.encodeInto==="boolean"&&typeof r.decode==="boolean"},Et=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return vo(r.headers)&&vo(r.payload)},_o=(e)=>{let r=oi(e),t=(()=>{if(typeof Lo.encodeInto!=="function")return!1;let a=r.byteLength>0?r:r.subarray(0,0),u=a.byteLength>0?a[0]:void 0;try{return Lo.encodeInto(a.byteLength>0?"a":"",a),!0}catch(c){if(!Po(c))throw c;return!1}finally{if(u!==void 0)a[0]=u}})(),n=(()=>{try{return ni.decode(r),!0}catch(a){if(!Po(a))throw a;return!1}})();return{encodeInto:t,decode:n}},Dr=({headers:e,payload:r})=>({headers:_o(e),payload:_o(r)});class cr{#e;#r;#n=0;#o=0;#t=0;constructor(e=512){let r=2;while(r<e)r<<=1;this.#e=Array(r).fill(null),this.#r=r-1}get size(){return this.#t}get isEmpty(){return this.#t===0}get capacity(){return this.#r+1}clear(){this.#n=0,this.#o=0,this.#t=0}peek(){return this.#t===0?void 0:this.#e[this.#n]}reserve(e){if(e<=this.capacity)return;let r=this.capacity;while(r<e)r<<=1;this.#s(r)}#a(){if(this.#t!==this.#r+1)return;this.#s(this.#r+1<<1)}#s(e){let r=this.#e,t=this.#r+1,n=this.#t,a=Array(e).fill(null),u=this.#n,c=Math.min(n,t-u);for(let f=0;f<c;f++)a[f]=r[u+f];for(let f=c;f<n;f++)a[f]=r[f-c];this.#e=a,this.#r=e-1,this.#n=0,this.#o=n}push(e){this.#a();let r=this.#e,t=this.#r,n=this.#o;return r[n]=e,this.#o=n+1&t,this.#t++,!0}unshift(e){this.#a();let r=this.#e,t=this.#r,n=this.#n-1&t;return this.#n=n,r[n]=e,this.#t++,!0}shift(){let e=this.#t;if(e===0)return;let r=this.#n,t=this.#e,n=t[r];return t[r]=null,this.#n=r+1&this.#r,this.#t=e-1,n}shiftNoClear(){let e=this.#t;if(e===0)return;let r=this.#n,t=this.#e[r];return this.#n=r+1&this.#r,this.#t=e-1,t}*[Symbol.iterator](){let e=this.#e,r=this.#r,t=this.#n,n=0,a=this.#t;while(n<a){let u=e[t];if(u!==null)yield u;t=t+1&r,n++}}toArray(){let e=Array(this.#t),r=this.#e,t=this.#r,n=this.#n;for(let a=0;a<e.length;a++)e[a]=r[n],n=n+1&t;return e}get[Symbol.toStringTag](){return`RingQueue(size=${this.#t}, cap=${this.capacity})`}}var ai=67108864,si=4194304,Wr=(e)=>{if(!Number.isFinite(e))return;let r=Math.floor(e);return r>0?r:void 0},ii=(e)=>{if(e==null)return!1;return e instanceof SharedArrayBuffer&&Tt&&wo(e)},ui=(e)=>{if(e==null)return;if(e instanceof SharedArrayBuffer)return Wr(To(e));return Wr(e.byteLength)},dr=({options:e,sab:r})=>{let t=r===void 0?void 0:Ye(r),n=t?.sab,c=e?.mode??(Tt?"growable":"fixed");if(c==="growable"&&n!=null&&!ii(n))c="fixed";if(c==="growable"&&!Tt)c="fixed";let f=Wr(e?.payloadMaxByteLength)??Wr(t?.byteLength)??ui(n)??ai,S=Wr(e?.payloadInitialBytes),N=c==="fixed"?f:Math.min(S??si,f),P=f>>3;if(P<=0)throw RangeError("payloadMaxByteLength is too small; must be at least 8 bytes.");let H=e?.maxPayloadBytes;if(H!==void 0){let m=Math.floor(H);if(!Number.isFinite(m)||m<=0)throw RangeError(`maxPayloadBytes must be > 0 and <= ${P}.`)}let k=Wr(H)??P;if(k<=0||k>P)throw RangeError(`maxPayloadBytes must be > 0 and <= ${P}.`);return{mode:c,payloadInitialBytes:N,payloadMaxByteLength:f,maxPayloadBytes:k}};var gn,hn,Co=(e,r)=>{gn=e,hn=r},Ve={UNREACHABLE:0,BigInt:2,True:3,False:4,Undefined:5,NaN:6,Float64:9,Null:10},v={BORDER_SIGNAL_BUFFER:11,String:11,Json:12,StaticString:15,StaticJson:16,Binary:17,StaticBinary:18,Int32Array:19,Float64Array:20,BigInt64Array:21,BigUint64Array:22,DataView:23,Error:24,Date:25,Symbol:26,StaticSymbol:27,BigInt:28,StaticBigInt:29,StaticInt32Array:31,StaticFloat64Array:32,StaticBigInt64Array:33,StaticBigUint64Array:34,StaticDataView:35,ArrayBuffer:36,StaticArrayBuffer:37,Buffer:38,StaticBuffer:39,EnvelopeStaticHeader:40,EnvelopeDynamicHeader:41,EnvelopeStaticHeaderString:42,EnvelopeDynamicHeaderString:43,ExternalPayload:44,StaticExternalPayload:45,ProcessSharedBuffer:46,BufferReference:47,SharedArrayBuffer:48,EnvelopeStaticHeaderExternal:49,EnvelopeDynamicHeaderExternal:50,EnvelopeStaticHeaderStringExternal:51,EnvelopeDynamicHeaderStringExternal:52,NumericArray:53,StaticNumericArray:54},Io={};for(let e of Object.keys(v))Io[v[e]]=e;var Mo=(e)=>Io[e]??String(e),Te={paddingLock:0,padding:0,slots:32,header:0},Pt=64,ci=256,fi=Symbol.for("knitting.payloadCodec.transportFinalizer");var Ze=7,Lt=1,Rt=2,vt=(e)=>{let r=e[Ze];if((r&Lt)!==0)return!1;return e[Ze]=(r|Lt)>>>0,!0},at=(e)=>{e[Ze]=(e[Ze]&~Lt)>>>0},mn=(e)=>(e[Ze]&Lt)!==0,Sn=(e)=>{e[Ze]=0},li=(e,r)=>{let t=e.finalize;e.finalize=t===void 0?r:()=>{try{t()}finally{r()}}},Lr=(e,r)=>{if(e.finalize!==void 0||r===null||typeof r!=="object")return;let t=r[fi]?.();if(typeof t==="function")li(e,t)},Ur=(e)=>{let r=e.finalize;if(e.finalize=void 0,r!==void 0)try{r()}catch{}},i={FlagsToHost:0,FunctionID:0,ID:1,Type:2,Start:3,End:4,PayloadLen:5,slotBuffer:6,Size:8,TotalBuff:144},_t=5,Hr=(1<<_t)-1,nf=32-_t,Ct=4294967295>>>_t,of=~Hr>>>0,It=16,di=(1<<It)-1,af=32-It,yi=4294967295>>>It,sf=~di>>>0;var Fo=(e)=>e[i.FunctionID]>>>It&yi;var Oo=(e)=>e[i.slotBuffer]&Hr;var No=(e)=>e[i.slotBuffer]>>>_t&Ct;var Mt={Reject:1},uf=Int32Array.BYTES_PER_ELEMENT,pi=Te.paddingLock,mi=Pt,jr=ci,Do=Pt*2,Wo=Pt*3;var yr=Te.header+i.TotalBuff,cf=yr*Uint32Array.BYTES_PER_ELEMENT,gi=Pt/Uint32Array.BYTES_PER_ELEMENT,st=i.TotalBuff-gi,Uo=st,An=Uo+i.Size,hi=An+1,bi=An+2,Ho=bi+1,Si=Ho+1,Ai=Te.header+yr*Te.slots,Bn=Ai*Uint32Array.BYTES_PER_ELEMENT,Bi=0,ff=Ve.UNREACHABLE,ot=(e)=>{},jo=()=>{let e=new Uint32Array(i.Size);return e.value=null,e.finalize=void 0,e.resolve=ot,e.reject=ot,e[Ze]=0,e},Ko=()=>{let e=jo();return e[i.ID]=Bi++,e},bn=(e,r,t)=>{e[0]=r[t],e[1]=r[t+1],e[2]=r[t+2],e[3]=r[t+3],e[4]=r[t+4],e[5]=r[t+5],e[6]=r[t+6],e[Ze]=0},wi=(e,r)=>{let t=jo();return bn(t,e,r),t},xt=(e)=>{if(e[i.FlagsToHost]===0)e.resolve(e.value);else e.reject(e.value),e[i.FlagsToHost]=0},Pr=({headers:e,headerSlotStrideU32:r,LockBoundSector:t,payload:n,payloadConfig:a,payloadSector:u,textCompat:c,resultList:f,toSentList:S,recycleList:N,processBoundary:P,consumers:H,consumerId:k,regionLanes:m,notifyOnHostPublish:O})=>{let x=Ye(t??Fr(jr)),w=x.sab,M=new Int32Array(w,x.byteOffset+pi,1),J=new Int32Array(w,x.byteOffset+mi,1),_=Ye(e??Fr(Bn)),q=new Uint32Array(_.sab,_.byteOffset,_.byteLength>>>2),j=r??yr,te=new Int32Array(_.sab,_.byteOffset+Si*Uint32Array.BYTES_PER_ELEMENT,1),oe=dr({sab:n,options:a}),K=n??(oe.mode==="growable"?ze(oe.payloadInitialBytes,oe.payloadMaxByteLength):ze(oe.payloadInitialBytes)),ee=Ye(u??x),G=c??Dr({headers:_,payload:K}),C=Math.max(1,(H??1)|0),Q=C>1,ue=k===void 0,X=(k??0)|0,ce=(m??8)|0,s=Te.slots/ce|0;if(Q){if(ce<1||(ce&ce-1)!==0)throw RangeError("regionLanes must be a power of two");if(s<C)throw RangeError(`regionLanes=${ce} yields ${s} regions, too few for ${C} consumers`);if(X<0||X>=C)throw RangeError(`consumerId ${X} out of range`)}let L=new Int32Array(_.sab,_.byteOffset,_.byteLength>>>2),g=new Int32Array(C),B=new Int32Array(C);for(let A=0;A<C;A++){let F=A*j+Te.header;g[A]=F+An,B[A]=F+hi}let l=Te.header+Ho,p=C===32?-1:(1<<C)-1|0;if(Q&&ue)Atomics.store(L,l,p);let h=(A,F)=>(A&1<<F)!==0,z=()=>{let A=0;for(let F=0;F<C;F++)A=A^be(L,g[F])|0;return A},b;if(gn===void 0||hn===void 0)throw Error('Payload codec not registered before lock2(). Ensure the module that builds locks imports "./payloadCodec.ts" (it self-registers on load).');let y=gn({payload:{sab:K,config:oe},headersBuffer:q,headerSlotStrideU32:j,lockSector:ee,textCompat:G,processBoundary:P,onPromise:(A,F,ae)=>{if((A[Ze]&Rt)!==0&&he>0)A[Ze]=(A[Ze]&~Rt)>>>0,he=he-1|0;b(A,F,ae)}}),D=hn({payload:{sab:K,config:oe},headersBuffer:q,headerSlotStrideU32:j,lockSector:ee,textCompat:G,processBoundary:P}),ne=0,re=0,me=32,ge=S??new cr,ve=N??new cr,Ne=f??new cr,fe=0,he=0,be=Atomics.load,de=Atomics.store,De=Atomics.notify,xe=O===!0,He=typeof Atomics.waitAsync==="function"?Atomics.waitAsync.bind(Atomics):void 0,We=0,Le=Q?()=>We=z():()=>We=be(J,0)|0;Le();let je=(A)=>~A!==0?A:ne^Le()|0,qe=(A)=>ge.push(A),er=()=>ge.shiftNoClear(),sr=(A)=>ge.unshift(A),mr=()=>ve.shiftNoClear(),o=(A)=>Ne.push(A),E=Math.clz32,T=Te.header+Uo,d=({queue:A})=>(F)=>{let ae=F*j+T,ie=A[q[ae+i.ID]];return bn(ie,q,ae),ie},W=(A)=>qe(A),V=(A)=>{let F=A[Ze];if((F&Rt)!==0)return;A[Ze]=(F|Rt)>>>0,he=he+1|0},Y=(A,F)=>y(A,F),I=0,se=0,Z=(A,F)=>{let ae=~F;if(ae===0)return 0;if(!Y(A,I=31-E(ae)))return 0;return Ae(A,I,se=1<<I),se},we=(A)=>{let F=je(ne^We|0),ae=0;if(A===ge)while(!0){let ie=er();if(!ie)break;F=je(F);let Ue=Z(ie,F)|0;if(Ue===0){sr(ie);break}F=F^Ue|0,ae=ae+1|0}else while(!0){let ie=A.shiftNoClear();if(!ie)break;F=je(F);let Ue=Z(ie,F)|0;if(Ue===0){A.unshift(ie);break}F=F^Ue|0,ae=ae+1|0}return ae},ke=(A)=>{let F=je(ne^We|0),ae=0;if(fe=0,A===ge)while(!0){let ie=er();if(!ie)break;F=je(F);let Ue=Z(ie,F)|0;if(Ue===0){if(mn(ie)){fe=fe+1|0,V(ie);continue}sr(ie);break}F=F^Ue|0,ae=ae+1|0}else while(!0){let ie=A.shiftNoClear();if(!ie)break;F=je(F);let Ue=Z(ie,F)|0;if(Ue===0){if(mn(ie)){fe=fe+1|0,V(ie);continue}A.unshift(ie);break}F=F^Ue|0,ae=ae+1|0}return ae},R=()=>{if(ge.isEmpty)return!0;return ke(ge),fe=0,ge.isEmpty},U=(A)=>{if(de(M,0,ne=ne^A|0),xe&&be(te,0)!==0)De(M,0,1)},le=(A)=>de(J,0,re=re^A|0),Se=(A,F=ne^We|0)=>{F=je(F);let ae=~F;if(ae===0)return!1;if(!Y(A,I=31-E(ae)))return!1;return Ae(A,I,se=1<<I)},Pe=(A,F=ne^We|0)=>{fe=0,F=je(F);let ae=~F;if(ae===0)return!1;if(!Y(A,I=31-E(ae))){if(mn(A))fe=1,V(A);return!1}return Ae(A,I,se=1<<I)},Ae=(A,F,ae)=>{let ie=F*j+T;return q[ie]=A[0],q[ie+1]=A[1],q[ie+2]=A[2],q[ie+3]=A[3],q[ie+4]=A[4],q[ie+5]=A[5],q[ie+6]=A[6],q[ie+Ze]=0,U(ae),!0},_e=()=>(M[0]^re)!==0,Qe=()=>{let A=be(M,0)^re|0;if(A===0)return!1;let F=me,ae=0;try{if(F===32)gt(I=31-E(A)),se=1<<(F=I),A^=se,ae=ae^se|0;while(A!==0){let ie=A&(1<<F)-1;if(ie===0)ie=A;gt(I=31-E(ie)),se=1<<(F=I),A^=se,ae=ae^se|0}}finally{if(ae!==0)le(ae)}return me=F,!0},tr=(A)=>ce===32?-1:(1<<ce)-1<<A*ce|0,wr=()=>{let A=0;for(let F=0;F<C;F++)if(F!==X)A=A^be(L,g[F])|0;return A},Tr=(A)=>{let F=be(L,l)|0;for(let ae=X+1;ae<C;ae++){if(!h(F,ae))continue;if((be(L,B[ae])&A)!==0)return!0}return!1},Ce=s*X/C|0,ir=()=>{let A=be(M,0)^re^wr()|0;if(A===0)return!1;let F=0;if(s===1)F=1;else for(let pe=0;pe<s;pe++)if((A&tr(pe))!==0)F|=1<<pe;let ae=be(L,l)|0,ie=0,Ue=0;for(let pe=0;pe<C;pe++){if(pe===X||!h(ae,pe))continue;let Fe=be(L,B[pe])|0;if(ie|=Fe,pe<X)Ue|=Fe}let Mr=F&~Ue;if(Mr===0)return!1;let Jr=F&~ie,ht=Jr!==0?Jr:Mr,lr=-1;for(let pe=0;pe<s;pe++){let Fe=(Ce+pe)%s;if((ht&1<<Fe)!==0){lr=Fe;break}}if(lr<0)return!1;let Je=1<<lr|0;de(L,B[X],Je);let ur=!1,Ie=!1;for(let pe=0;pe<C;pe++){if(pe===X||!h(ae,pe))continue;if((be(L,B[pe])&Je)===0)continue;if(pe<X)ur=!0;else Ie=!0}if(ur)return de(L,B[X],0),!1;if(Ie)while(Tr(Je));let Ge=(be(M,0)^re^wr())&tr(lr)|0;if(Ge===0)return de(L,B[X],0),!1;let Re=Ge;while(Re!==0)gt(31-E((Re&-Re)>>>0)),Re=Re&Re-1|0;return re=re^Ge|0,de(L,g[X],re),de(L,B[X],0),Ce=(lr+1)%s,!0},nr=({queue:A,onResolved:F,shouldSettle:ae,activeRejectPlaceholder:ie})=>{let Ue=d({queue:A}),Mr=32;if(ie!==void 0&&F){let Je=F,ur=ie;return()=>{let Ie=be(M,0)^re|0;if(Ie===0)return 0;let Ge=0,Re=0,pe=Mr;if(pe===32){let Fe=31-E(Ie),gr=1<<Fe,Xe=Ue(Fe);if(D(Xe,Fe),Re=Re^gr|0,Xe.reject!==ur)xt(Xe),Je(Xe);if(Ie^=gr,Ge++,(Ge&7)===0&&Re!==0)re=re^Re|0,de(J,0,re),Re=0;pe=Fe}while(Ie!==0){let Fe=pe===31?2147483647:(1<<pe)-1,gr=Ie&Fe;if(gr===0)gr=Ie;let Xe=31-E(gr),bo=1<<Xe,bt=Ue(Xe);if(D(bt,Xe),Re=Re^bo|0,bt.reject!==ur)xt(bt),Je(bt);if(Ie^=bo,Ge++,(Ge&7)===0&&Re!==0)re=re^Re|0,de(J,0,re),Re=0;pe=Xe}if(Re!==0)re=re^Re|0,de(J,0,re);return Mr=pe,Ge}}let Jr=F!==void 0,ht=F??ot,lr=ae;return()=>{let Je=be(M,0)^re|0;if(Je===0)return 0;let ur=0,Ie=0,Ge=Mr;if(Ge===32){let Re=31-E(Je),pe=1<<Re,Fe=Ue(Re);if(D(Fe,Re),Ie=Ie^pe|0,lr===void 0||lr(Fe)){if(xt(Fe),Jr)ht(Fe)}if(Je^=pe,ur++,(ur&7)===0&&Ie!==0)re=re^Ie|0,de(J,0,re),Ie=0;Ge=Re}while(Je!==0){let Re=Ge===31?2147483647:(1<<Ge)-1,pe=Jeℜif(pe===0)pe=Je;let Fe=31-E(pe),gr=1<<Fe,Xe=Ue(Fe);if(D(Xe,Fe),Ie=Ie^gr|0,lr===void 0||lr(Xe)){if(xt(Xe),Jr)ht(Xe)}if(Je^=gr,ur++,(ur&7)===0&&Ie!==0)re=re^Ie|0,de(J,0,re),Ie=0;Ge=Fe}if(Ie!==0)re=re^Ie|0,de(J,0,re);return Mr=Ge,ur}},mt=(A)=>{if(He===void 0){de(te,0,0);return}de(te,0,1);try{let F=He(M,0,re|0,A);if(!F.async)de(te,0,0);return F}catch{de(te,0,0);return}},gt=(A)=>{let F=A*j+T,ae=mr(),ie;if(ae)bn(ae,q,F),ae.value=null,ae.finalize=void 0,ae.resolve=ot,ae.reject=ot,ie=ae;else ie=wi(q,F);return D(ie,A),o(ie),!0};return{enlist:W,encode:Se,encodeManyFrom:we,encodeAll:R,publish:(A)=>{if(Pe(A))return!0;if((fe|0)!==0)return fe=0,!1;return qe(A),!1},flushPending:()=>{if(ge.isEmpty)return!1;let A=ke(ge)|0;return fe=0,A!==0},decode:Q?ir:Qe,hasSpace:_e,resolved:Ne,hostBits:M,workerBits:J,recyclecList:ve,resolveHost:nr,waitForHostChange:mt,setHostWaiterArmed:(A)=>{de(te,0,A?1:0)},hasPendingFrames:()=>ge.size!==0,getPendingFrameCount:()=>ge.size|0,getPendingPromiseCount:()=>he|0,resetPendingState:()=>{ge.clear(),fe=0,he=0},deactivateStealConsumer:(A)=>{if(!Q||!ue)return!1;if(!Number.isInteger(A)||A<0||A>=C)throw RangeError(`consumerId ${A} out of range`);let F=1<<A;return(Atomics.and(L,l,~F)&F)!==0},takeDeferredCount:()=>{let A=fe|0;return fe=0,A},setPromiseHandler:(A)=>{b=A}}};var Ti=1,Go=1,ki=performance.now.bind(performance),Ei=(e,r,t,n)=>new Promise((a,u)=>{let c=!1,f=setTimeout(()=>{if(c)return;if(c=!0,t)a(n);else u(n)},r);e.then((S)=>{if(c)return;c=!0,clearTimeout(f),a(S)},(S)=>{if(c)return;c=!0,clearTimeout(f),u(S)})}),Ri=(e)=>(Math.floor(e())&Ct)>>>0,$o=(e,r,t,n)=>{let a=Ri(n)-No(r)&Ct,u=t.ms-a;if(!(u>0))return e.then(()=>{},()=>{}),t.kind===Go?Promise.resolve(t.value):Promise.reject(t.value);let c=Math.max(1,Math.floor(u));return Ei(e,c,t.kind===Go,t.value)},Ft=-1,zo=(e)=>{let r=Fo(e);if(r===0)return Ft;let t=r-Ti|0;return t>=0?t:Ft},xi=(e,r)=>{let t=[];return(n)=>{let a=t[n];if(a)return a;return a={hasAborted:()=>e(n),now:r},t[n]=a,a}},Yo=({job:e,timeout:r,hasAborted:t,now:n})=>{let a=n??ki;if(!t){if(!r)return(c)=>e(c.value);return(c)=>{let f=e(c.value);if(!(f instanceof Promise))return f;return $o(f,c,r,a)}}let u=xi(t,a);if(!r)return(c)=>{let f=zo(c);if(f===Ft)return e(c.value);return e(c.value,u(f))};return(c)=>{let f=zo(c),S=f===Ft?e(c.value):e(c.value,u(f));if(!(S instanceof Promise))return S;return $o(S,c,r,a)}};var wn=Symbol.for("knitting.bufferReference.numericTransfer"),Vo=Symbol.for("knitting.bufferReference.returnReleaseToken"),Ot=()=>{throw Error('BufferReference cannot run in runtime "browser"')};class Nt{constructor(){Ot()}static fromMetadata=Ot}var it=(e)=>!1,Tn=(e,r)=>r(),qo=(e)=>{return},Qo=Ot,Jo=Ot;var Xo=({listOfFunctions:e,workerOptions:r,lock:t,returnLock:n,borrowReturnedBufferReferences:a,hasAborted:u,now:c,stealing:f})=>{let S=(b)=>{throw"UNREACHABLE FROM PLACE HOLDER (thread)"},N=0,P=0,H=e.reduce((b,y)=>(b.push(y.run),b),[]),k=new cr,m=new cr,O=(b)=>k.push(b),x=()=>k.shiftNoClear(),w=()=>m.shiftNoClear(),M=(b)=>m.unshift(b),J=(b)=>m.push(b),_=(b)=>t.recyclecList.push(b),q=65535,j=i.FlagsToHost,te=Mt.Reject,oe=Atomics.load,K=n.hostBits,ee=n.workerBits,G=[],C=new Map,Q=()=>{if(G.length===0)return;if((oe(K,0)^oe(ee,0))!==0)return;for(let b=0;b<G.length;b++)try{G[b]()}catch{}G.length=0},ue=(b)=>{let y=b.toString(),D=C.get(y);if(D===void 0)return;C.delete(y);try{D()}catch{}},X=e.reduce((b,y,D)=>{let ne=H[D];return b.push(Yo({job:ne,timeout:y.timeout,hasAborted:u,now:c})),b},[]),ce=r?.resolveAfterFinishingAll===!0?()=>N!==0&&k.size===0:()=>N!==0,{decode:s,resolved:L}=t,g=()=>L.shiftNoClear(),B=()=>{if(f&&k.size!==0)return!1;if(!s())return!1;let b=g();while(b)b.resolve=S,b.reject=S,Lr(b,b.value),O(b),b=g();return!0},l=(b)=>{if(!n.encode(b))return!1;return!0},p=(b,y)=>{if(b[j]=y?te:0,!l(b))return!1;if(b.finalize!==void 0){let D=b.finalize[Vo];if(D===void 0||a!==!0)G.push(b.finalize);else C.set(D.toString(),b.finalize);b.finalize=void 0}return N--,_(b),!0},h=(b,y,D,ne)=>{if(Ur(b),b.value=D,N++,ne&&P>0)P--;let re=y||b[j]===te;if(!p(b,re))J(b)},z=()=>{let b=w();if(!b)return!1;if(!p(b,b[j]===te))return M(b),!1;return!0};return{hasCompleted:ce,hasPending:()=>k.size!==0,writeBatch:(b)=>{let y=0;while(y<b){if(!z())break;y++}return y},serviceBatchImmediate:()=>{let b=0;while(b<5&&k.size!==0){let y=x();try{let D=y[i.FunctionID]&q,ne=X[D](y);if(y[j]=0,y.value=null,ne instanceof Promise)P++,ne.then((re)=>h(y,!1,re,!0),(re)=>h(y,!0,re,!0));else h(y,!1,ne,!1)}catch(D){h(y,!0,D,!1)}++b}return b},enqueueLock:B,drainReturnReleases:Q,releaseReturnedBufferReference:ue,hasAwaiting:()=>P>0,getAwaiting:()=>P}};var Kr=4096,En=64,kn={op:0,rxStatus:En,txStatus:En*2},ut=En*3,Zo=Atomics.store,Dt=({sabObject:e,isMain:r,startTime:t})=>{let n=e?.size??Kr,a=n+(Kr-n%Kr)%Kr,u=Ye(e?.sharedSab?e.sharedSab:ze(a,Kr*Kr)),c=u.sab,f=u.byteOffset,S=t??performance.now(),N=new Int32Array(c,f+kn.op,1);if(r)Zo(N,0,0);let P=new Int32Array(c,f+kn.rxStatus,1);return Zo(P,0,1),{sab:u,op:N,startAt:S,opView:N,rxStatus:P,txStatus:new Int32Array(c,f+kn.txStatus,1)}};var vr=4294967264,Rn=({lockSector:e})=>{let r=Ye(e??Fr(jr)),t=r.sab,n=new Int32Array(t,r.byteOffset+Do,1),a=new Int32Array(t,r.byteOffset+Wo,1),u=new Uint32Array(Te.slots),c=new Uint32Array(Te.slots),f=Math.clz32,S=Atomics.load,N=Atomics.store,P=Atomics.xor,H=4294967295,k=Hr,m=~k>>>0;u.fill(4294967295);let O=0,x=0,w=0,M=(K)=>u.slice(0,K),J=(K,ee)=>{let G=u,C=0;K=K|0,ee=ee>>>0;for(let ue=0;ue<K;ue++){let X=G[ue];if(X===4294967295)continue;if((ee&1<<(X&k))!==0)continue;if(C!==ue)G[C]=X;C++}let Q=C;for(;C<K;C++)G[C]=4294967295;return Q},_=()=>{let K=S(a,0)|0,G=~((w^K)>>>0)>>>0;if(O===0||G===0)return;if(G===4294967295){O=0,x=0;return}if(G&=x,G===0)return;x&=~G,O=J(O,G)},q=(K,ee)=>{let G=u,C=c,Q=O,ue=-1,X=0,ce=0,s=!1;if(Q===0&&x===0)return G[0]=0,C[0]=ee,K[i.Start]=0,K[i.slotBuffer]=(K[i.slotBuffer]&vr|0)>>>0,O=1,x=1,w^=1,0;if(Q!==0){let l=S(a,0)|0,p=~(w^l)>>>0;if(p!==0)p&=x;if(p===x>>>0)O=0,x=0,Q=0,p=0;else if(p!==0)for(let h=0;h<Q;h++){let z=G[h],b=z&k,y=1<<b;if((p&y)===0)continue;if(C[b]>>>0!==ee>>>0)continue;let D=~x>>>0,ne=(D&-D)>>>0;if(ne===0)return-1;let re=31-f(ne),me=z&m;return G[h]=(me|re)>>>0,C[re]=ee,K[i.Start]=me,K[i.slotBuffer]=(K[i.slotBuffer]&vr|re)>>>0,x=x&~y|ne,w^=ne,re}if(Q!==0&&p!==0&&p!==4294967295){s=!0;let h=0;for(let z=0;z<Q;z++){let b=G[z],y=b&k;if((p&1<<y)!==0)continue;let D=b&m;if(ue===-1&&D-ce>>>0>=ee>>>0)ue=h,X=ce;if(h!==z)G[h]=b;h++,ce=D+(C[y]>>>0)>>>0}for(let z=h;z<Q;z++)G[z]=4294967295;if(p!==0)x&=~p;O=Q=h}}if(Q>=Te.slots)return-1;let L=~x>>>0,g=(L&-L)>>>0;if(g===0)return-1;let B=31-f(g);if(!s&&Q!==0){if((G[0]&m)>=ee>>>0){for(let b=Q;b>0;b--)G[b]=G[b-1];return G[0]=B,C[B]=ee,K[i.Start]=0,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=Q+1,x|=g,w^=g,B}for(let b=0;b+1<Q;b++){let y=G[b],ne=(y&m)+(C[y&k]>>>0)>>>0;if((G[b+1]&m)-ne>>>0<ee>>>0)continue;for(let me=Q;me>b+1;me--)G[me]=G[me-1];return G[b+1]=(ne|B)>>>0,C[B]=ee,K[i.Start]=ne,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=Q+1,x|=g,w^=g,B}let p=G[Q-1],z=(p&m)+(C[p&k]>>>0)>>>0;return G[Q]=(z|B)>>>0,C[B]=ee,K[i.Start]=z,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=Q+1,x|=g,w^=g,B}if(Q===0)return G[0]=B,C[B]=ee,K[i.Start]=0,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=1,x|=g,w^=g,B;if(ue!==-1){for(let l=Q;l>ue;l--)G[l]=G[l-1];return G[ue]=(X|B)>>>0,C[B]=ee,K[i.Start]=X,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=Q+1,x|=g,w^=g,B}return G[Q]=(ce|B)>>>0,C[B]=ee,K[i.Start]=ce,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=Q+1,x|=g,w^=g,B};return{allocTask:(K)=>{let G=(K[i.PayloadLen]|0)+63&-64,C=q(K,G);if(C===-1)return-1;return N(n,0,w),C},setSlotLength:(K,ee)=>{K=K&Hr;let G=(ee|0)+63&-64;return c[K]=G>>>0,!0},lockSAB:t,free:(K)=>{P(a,0,1<<(K&Hr))},hostBits:n,workerBits:a,updateTable:_,startAndIndexToArray:M}};var Wt=Uint32Array.BYTES_PER_ELEMENT,pr=(e,r)=>{if(!Number.isInteger(e)||e<0)throw RangeError(`${r} must be a non-negative integer`);return e},Ln=(e,r=64)=>{let t=pr(e,"value"),n=pr(r,"alignment");if(n===0)throw RangeError("alignment must be greater than zero");return Math.ceil(t/n)*n},Pn=(e,r,t)=>({sab:e,byteOffset:pr(r,"byteOffset"),byteLength:pr(t,"byteLength")}),Li=({alignTo:e=64,startByteOffset:r=0}={})=>{let t=pr(e,"alignTo");if(t===0)throw RangeError("alignTo must be greater than zero");let n=pr(r,"startByteOffset"),a=[];return{slices:a,take:(c,f,{alignTo:S=t,reserveByteLength:N}={})=>{let P=pr(f,`${c} byteLength`),H=pr(S,`${c} alignTo`);if(H===0)throw RangeError(`${c} alignTo must be greater than zero`);let k=N==null?Ln(P,H):pr(N,`${c} reserveByteLength`);if(k<P)throw RangeError(`${c} reserveByteLength must cover byteLength`);let m=Ln(n,H),O={name:c,byteOffset:m,byteLength:P,reservedByteLength:k};return a.push(O),n=m+k,O},byteLength:()=>n,bind:(c,f)=>Pn(c,f.byteOffset,f.byteLength)}},ea=({slotIndex:e,slotStrideU32:r,baseU32:t=0,extraU32:n=0})=>e*r+t+n,ra=({slotIndex:e,slotStrideU32:r,baseByteOffset:t=0,baseU32:n=0,extraU32:a=0})=>t+ea({slotIndex:e,slotStrideU32:r,baseU32:n,extraU32:a})*Wt,vn=({slotCount:e,slotStrideU32:r,slotLengthU32:t,baseU32:n=0})=>{let a=pr(e,"slotCount");if(a===0)return 0;return(ea({slotIndex:a-1,slotStrideU32:r,baseU32:n})+t)*Wt},Pi=(e)=>e*2,xn=({slotCount:e,slotStrideU32:r,queues:t=1,alignTo:n=64})=>Ln(e*r*Wt*t,n),vi=({sab:e,byteOffset:r,slotCount:t,slotStrideU32:n})=>{let a=Pi(n),u=n*Wt,c=vn({slotCount:t,slotStrideU32:a,slotLengthU32:n});return{headerSlotStrideU32:a,requestHeaders:Pn(e,r,c),returnHeaders:Pn(e,r+u,c)}},_n=({signalBytes:e,abortBytes:r,lockSectorBytes:t,headerSlotStrideU32:n,slotCount:a,headerLayout:u="interleaved",alignTo:c=64,createBuffer:f=(S)=>new SharedArrayBuffer(S)})=>{let S=Li({alignTo:c}),N=S.take("signals",e),P=S.take("requestLockSector",t),H=S.take("returnLockSector",t),k,m,O;if(u==="interleaved")O=S.take("interleavedHeaders",xn({slotCount:a,slotStrideU32:n,queues:2,alignTo:c}));else k=S.take("requestHeaders",xn({slotCount:a,slotStrideU32:n,alignTo:c})),m=S.take("returnHeaders",xn({slotCount:a,slotStrideU32:n,alignTo:c}));let x=S.take("abortSignals",r),w=f(S.byteLength()),M=S.bind(w,N),J=S.bind(w,x),_=S.bind(w,P),q=S.bind(w,H),j=u==="interleaved"?vi({sab:w,byteOffset:O.byteOffset,slotCount:a,slotStrideU32:n}):{headerSlotStrideU32:n,requestHeaders:S.bind(w,k),returnHeaders:S.bind(w,m)};return{controlSAB:w,signals:M,abortSignals:J,lock:{headers:j.requestHeaders,headerSlotStrideU32:j.headerSlotStrideU32,lockSector:_,payloadSector:_},returnLock:{headers:j.returnHeaders,headerSlotStrideU32:j.headerSlotStrideU32,lockSector:q,payloadSector:q},slices:S.slices}};var _i=4096,_r=new TextEncoder,In=new TextDecoder,fr=64,Ci=_i,Ii=(e)=>e+63&-64,na=(e)=>e.constructor===Uint8Array,Mi=(e)=>na(e)?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength),Fi=(e)=>e instanceof TypeError,Oi=(e)=>e instanceof TypeError,oa=()=>{let e=globalThis.Buffer;if(typeof e?.from!=="function"||typeof e?.allocUnsafe!=="function"||typeof e?.allocUnsafeSlow!=="function")return;return e},Ni=(e,r)=>{let t=0,n=0;for(let a of e){let u=_r.encode(a);if(n+u.byteLength>r.byteLength)break;r.set(u,n),n+=u.byteLength,t+=a.length}return{read:t,written:n}},Cn=(e,r)=>{let t=new Uint8Array(r.byteLength),n=typeof _r.encodeInto==="function"?_r.encodeInto(e,t):Ni(e,t);if(n.written>0)r.set(t.subarray(0,n.written),0);return n},ta=(e)=>In.decode(e.slice()),aa=(e,r,t)=>{if(typeof _r.encodeInto!=="function")return Cn(e,r);if(t?.encodeInto===!0)return _r.encodeInto(e,r);if(t?.encodeInto===!1)return Cn(e,r);try{return _r.encodeInto(e,r)}catch(n){if(!Fi(n))throw n;return Cn(e,r)}},sa=(e,r)=>{if(r?.decode===!0)return In.decode(e);if(r?.decode===!1)return ta(e);try{return In.decode(e)}catch(t){if(!Oi(t))throw t;return ta(e)}},Mn=({sab:e,payloadConfig:r,textCompat:t})=>{let n=e===void 0?void 0:Ye(e),a=e!==void 0&&!nt(e),u=n?.sab instanceof ArrayBuffer&&!(n.sab instanceof SharedArrayBuffer),c=a||u,f=n?.byteLength,S=Zr&&n?.sab instanceof ArrayBuffer&&!(n.sab instanceof SharedArrayBuffer)?void 0:oa(),N=dr({sab:n?.sab,options:!c||f===void 0?r:{...r,mode:"fixed",payloadInitialBytes:r?.payloadInitialBytes??f,payloadMaxByteLength:r?.payloadMaxByteLength??f}}),P=N.mode==="growable",H=n?.sab??(P?ze(N.payloadInitialBytes,N.payloadMaxByteLength):ze(N.payloadInitialBytes)),k=n?.byteOffset??0,m=n?.byteLength??H.byteLength,O=new Uint8Array(H,k+fr,Math.max(0,m-fr)),x=S?(s,L)=>{let g=S.from(s,L+fr);if(g.buffer!==s)throw Error("Buffer view does not alias shared buffer");return g}:void 0,w=x?.(H,k),M=new Float64Array(H,k+fr,Math.max(0,m-fr)>>>3),J=()=>m-fr,_=(s)=>{if(J()>=s)return!0;if(!P)return!1;try{if(!(H instanceof SharedArrayBuffer))return!1;H=ko(H,Ii(fr+s+Ci))}catch{return!1}return k=0,m=H.byteLength,O=new Uint8Array(H,k+fr,m-fr),w=x?.(H,k),M=new Float64Array(H,k+fr,m-fr>>>3),!0},q=(s,L)=>{if(!w)return sa(O.subarray(s,L),t);return w.toString("utf8",s,L)},j=(s,L=0)=>{let g=Mi(s);if(!_(L+g.byteLength))return-1;return O.set(g,L),g.byteLength},te=(s,L=0)=>{let g=s.byteLength;if(!_(L+g))return-1;return O.set(s,L),g},oe=(s,L=0)=>{let g=s.byteLength;if(!_(L+g))return-1;return O.set(new Uint8Array(s),L),g},K=(s,L=0)=>{let g=s.byteLength;if(!_(L+g))return-1;return M.set(s,L>>>3),g},ee=(s,L)=>O.slice(s,L),G=(s,L)=>O.subarray(s,L),C=(s,L)=>{if(!S||!w)return ee(s,L);let g=Math.max(0,L-s|0),B=S.allocUnsafe(g);if(g===0)return B;return w.copy(B,0,s,L),B},Q=(s,L)=>{if(!S||!w)return ee(s,L).buffer;let g=Math.max(0,L-s|0);if(g===0)return new ArrayBuffer(0);let B=S.allocUnsafeSlow(g);return w.copy(B,0,s,L),B.buffer};return{readUtf8:q,writeBinary:j,writeBuffer:te,writeArrayBuffer:oe,write8Binary:K,readBytesCopy:ee,readBytesView:G,readBytesBufferCopy:C,readBufferCopy:C,readBytesArrayBufferCopy:Q,readArrayBufferCopy:Q,read8BytesFloatCopy:(s,L)=>M.slice(s>>>3,L>>>3),read8BytesFloatView:(s,L)=>M.subarray(s>>>3,L>>>3),writeUtf8:(s,L,g=s.length*3)=>{if(!_(L+g))return-1;let B=O.subarray(L,L+g);if(!w){let{read:h,written:z}=aa(s,B,t);if(h!==s.length)return-1;return z}let{read:l,written:p}=_r.encodeInto(s,B);if(l!==s.length)return-1;return p}}},ia=({headersBuffer:e,slotStrideU32:r,textCompat:t})=>{let n=oa(),a=e instanceof Uint32Array?e.buffer:e,u=e instanceof Uint32Array?e.byteOffset:0,c=Uint32Array.BYTES_PER_ELEMENT,f=r??yr,S=st*c,N=new Uint8Array(a,u),P=n?.from(a,u),H=new Float64Array(a,u,a.byteLength-u>>>3),k=(l)=>ra({slotIndex:l,slotStrideU32:f,baseByteOffset:u,baseU32:Te.header}),m=new Uint32Array(Te.slots);for(let l=0;l<Te.slots;l++)m[l]=k(l)-u;let O=new Uint32Array(a,u,a.byteLength-u>>>2),x=new Uint32Array(Te.slots);for(let l=0;l<Te.slots;l++)x[l]=m[l]>>>2;let w=(l,p,h)=>{let z=x[h];for(let b=0;b<p;b++)O[z+b]=l[b];return p*c},M=(l,p,h)=>{let z=x[h];for(let b=0;b<p;b++)l[b]=O[z+b];return l},J=(l,p)=>(l|0)>=0&&l+p<=S,_=(l,p)=>{let h=m[p],z=N.subarray(h,h+S);if(!P){let{read:D,written:ne}=aa(l,z,t);if(D!==l.length)return-1;return ne}let{read:b,written:y}=_r.encodeInto(l,z);if(b!==l.length)return-1;return y},q=(l,p,h)=>{let z=m[h];if(!P)return sa(N.subarray(z+l,z+p),t);return P.toString("utf8",z+l,z+p)},j=(l,p,h=0)=>(N.set(l,m[p]+h),l.byteLength),te=(l,p,h=0)=>(N.set(l,m[p]+h),l.byteLength),oe=(l,p,h=0)=>{let z=l.byteLength;return N.set(new Uint8Array(l),m[p]+h),z},K=(l,p,h=0)=>(N.set(l,m[p]+h),l.byteLength),ee=(l,p,h=0)=>{if(!na(l))return-1;return K(l,p,h)},G=(l,p,h=0)=>{let z=l.byteLength;if(!J(h,z))return-1;return H.set(l,m[p]+h>>>3),z},C=(l,p,h)=>N.slice(m[h]+l,m[h]+p),Q=(l,p,h)=>N.subarray(m[h]+l,m[h]+p),ue=(l,p,h)=>{if(!n||!P)return C(l,p,h);let z=p-l,b=n.allocUnsafe(z),y=m[h];return P.copy(b,0,y+l,y+p),b},X=(l,p,h)=>{if(!n)return C(l,p,h);let z=ue(l,p,h);return new Uint8Array(z.buffer,z.byteOffset,z.byteLength)},s=Zr?(l,p,h)=>C(l,p,h):X,L=(l,p,h)=>{if(!n||!P)return C(l,p,h).buffer;let z=Math.max(0,p-l|0);if(z===0)return new ArrayBuffer(0);let b=n.allocUnsafeSlow(z),y=m[h];return P.copy(b,0,y+l,y+p),b.buffer};return{writeUtf8:_,readUtf8:q,writeBinary:j,writeBuffer:te,writeArrayBuffer:oe,writeExactUint8Array:K,writeUint8Array:ee,writeU32Words:w,readU32Words:M,write8Binary:G,readBytesCopy:C,readBytesView:Q,readBytesBufferCopy:ue,readBufferCopy:ue,readUint8ArrayCopy:s,readUint8ArrayBufferCopy:X,readBytesArrayBufferCopy:L,readArrayBufferCopy:L,read8BytesFloatCopy:(l,p,h)=>H.slice(m[h]+l>>>3,m[h]+p>>>3),read8BytesFloatView:(l,p,h)=>H.subarray(m[h]+l>>>3,m[h]+p>>>3),maxBytes:S}};var Ee={Function:0,Symbol:1,Json:2,Serializable:3},Di=(e,r,t)=>{switch(r){case Ee.Function:return`KNT_ERROR_0: Function is not a valid type; name: ${typeof e.value==="function"?e.value.name||"<anonymous>":"<unknown>"}`;case Ee.Symbol:return"KNT_ERROR_1: Symbol must use Symbol.for(...) keys";case Ee.Json:return t==null||t.length===0?"KNT_ERROR_2: JSON stringify failed; payload must be JSON-safe":`KNT_ERROR_2: JSON stringify failed; ${t}`;case Ee.Serializable:return t==null||t.length===0?"KNT_ERROR_3: Unsupported payload type; serialize it yourself":`KNT_ERROR_3: Unsupported payload type; ${t}`}},Me=({task:e,type:r,onPromise:t,detail:n})=>{let a=Di(e,r,n);if(!xr)return e.value=a,e[i.FlagsToHost]=Mt.Reject,!1;if(t==null)throw TypeError(a);if(!vt(e))return!1;return queueMicrotask(()=>{at(e),e.value=a,t(e,!0,a)}),!1};var ua=Symbol.for("knitting.payloadCodec.transportFinalizer");class hr{header;payload;constructor(e,r){this.header=e,this.payload=r}[Symbol.dispose](){let e=this.payload;if(e!==null&&typeof e==="object")e[Symbol.dispose]?.()}[ua](){let e=this.payload;if(e===null||typeof e!=="object")return;let r=e[ua];return typeof r==="function"?r.call(e):void 0}}var Ut=()=>{throw Error('BufferReference cannot run in runtime "browser"')};var br="knitting.sharedArrayBuffer",Wn=Symbol.for("knitting.sharedArrayBuffer.numericTransfer"),jt=8,Wi=2,Ui=Symbol.for("knitting.payloadCodec"),la=()=>{let e=$e();if(e!==void 0&&typeof e.pid==="number")return e.pid;let r=globalThis.Deno;if(typeof r?.pid==="number")return r.pid;return 0},On=`${Oe}:${la()}`,Hi=typeof SharedArrayBuffer==="function",ji=(e)=>Hi&&e instanceof SharedArrayBuffer,ca=new WeakMap,Ht=new WeakMap,fa=new WeakMap,Nn=new Map,Ki=typeof FinalizationRegistry==="function"?new FinalizationRegistry((e)=>{try{Ut().releaseShared(e)}catch{}}):void 0,Dn=(e)=>[Number(e&0xffffffffn)>>>0,Number(e>>32n&0xffffffffn)>>>0],Fn=(e,r)=>BigInt(r>>>0)<<32n|BigInt(e>>>0),Gi=(e)=>{switch(e){case"node":return 1;case"deno":return 2;case"bun":return 3;default:return 0}},$i=(e)=>{switch(e){case 1:return"node";case 2:return"deno";case 3:return"bun";default:return}},zi=(e)=>{if(e===void 0)return;let r=fa.get(e);if(r===void 0)r=new Set,fa.set(e,r);return r},Yi=(e)=>{let r=ca.get(e);if(r===void 0){let t=Ut().produceShared(e);r={token:t.token,pointer:t.pointer,byteLength:t.byteLength},ca.set(e,r),Ki?.register(e,r.token)}return r},Vi=(e)=>({kind:br,origin:On,runtime:Oe,pointer:e.pointer.toString(),token:e.token.toString(),byteLength:e.byteLength}),qi=(e)=>{if(e.byteLength>4294967295)return;let[r,t]=Dn(e.token),[n,a]=Dn(e.pointer);return[r,t,n,a,e.byteLength>>>0,Gi(Oe),la()>>>0,0]},Qi=(e)=>{let[r,t]=Dn(e.token);return[r,t]},Ji=(e)=>{let r=Ht.get(e);if(r!==void 0)return r;let t=Yi(e);return r=da(e,t,Vi(t)),r},da=(e,r,t)=>{let n=Ht.get(e);if(n!==void 0)return n;let a=qi(r),u=Qi(r);return n={[Ui]:br,toMetadata:()=>t,[Wn]:(c)=>{if(a===void 0)return;let f=zi(c);if(f===void 0)return a;if(f.has(r.token))return u;return f.add(r.token),a}},Ht.set(e,n),n},Un=(e)=>{if(ji(e))return Ji(e);return Ht.get(e)},Xi=(e)=>{if(e===null||typeof e!=="object")return!1;let r=e;return r.kind===br&&typeof r.origin==="string"&&typeof r.runtime==="string"&&typeof r.pointer==="string"&&typeof r.token==="string"&&typeof r.byteLength==="number"&&Number.isInteger(r.byteLength)&&r.byteLength>=0},ya=(e,r)=>{if(e.origin!==On)throw Error(`SharedArrayBuffer cannot cross a process boundary (origin ${e.origin} != ${On}); it is shared by reference to thread workers only.`);let t=BigInt(e.token),n=Nn.get(t);if(n!==void 0)return n;if(r)throw TypeError("SharedArrayBuffer cache miss for warm token payload");let a=Ut().adoptShared({token:t,pointer:BigInt(e.pointer),byteOffset:0,byteLength:e.byteLength});return Nn.set(t,a.buffer),da(a.buffer,{token:t,pointer:BigInt(e.pointer),byteLength:e.byteLength},e),a.buffer},Zi=(e)=>{if(!Xi(e))throw TypeError("Invalid SharedArrayBuffer payload metadata");return ya(e,!1)},eu=(e)=>{if(e.length===Wi){let a=Fn(e[0]??0,e[1]??0),u=Nn.get(a);if(u!==void 0)return u;throw TypeError("SharedArrayBuffer cache miss for warm token payload")}let r=$i(e[5]??0);if(r===void 0)throw TypeError("Invalid SharedArrayBuffer numeric runtime");let t=e[6];if(t===void 0||!Number.isInteger(t)||t<0)throw TypeError("Invalid SharedArrayBuffer numeric origin");if(e.length!==jt)throw TypeError("Invalid SharedArrayBuffer numeric word count");let n={kind:br,origin:`${r}:${t>>>0}`,runtime:r,pointer:Fn(e[2]??0,e[3]??0).toString(),token:Fn(e[0]??0,e[1]??0).toString(),byteLength:e[4]??0};return ya(n,!1)},ru=globalThis,tu=ru.__KNITTING_PAYLOAD_CODECS__??=Object.create(null);tu[br]={decode:Zi,decodeNumeric:eu};var Gt=(e)=>!1,Kt=()=>{throw Error("ProcessSharedBuffer is unavailable in the browser build")};class Cr{constructor(){Kt()}static create=Kt;static fromMetadata=Kt;toMetadata=Kt}var pa=Symbol.for("knitting.numericArray");class $t extends Array{}Object.defineProperty($t.prototype,pa,{value:!0,enumerable:!1,writable:!1,configurable:!1});var Hn=(e)=>e[pa]===!0,jn=(e)=>{let r=e.length,t=new $t(r);for(let n=0;n<r;n++)t[n]=e[n];return t};var zn=new ArrayBuffer(8),Yt=new Float64Array(zn),ka=new BigInt64Array(zn),ar=new Uint32Array(zn),Ea=new TextEncoder,Vt=globalThis.Buffer,ma=typeof Vt?.byteLength==="function"?(e,r)=>Vt.byteLength(e,r):void 0,nu=(e)=>typeof Vt?.isBuffer==="function"&&Vt.isBuffer(e),ou=(e)=>e!=null&&typeof e==="object"&&Object.getPrototypeOf(e)===Uint8Array.prototype,au=!ma?(e)=>Ea.encode(e).byteLength:(e)=>ma(e,"utf8"),su=-(1n<<63n),iu=(1n<<63n)-1n,{parse:Sr,stringify:$r}=JSON,{for:Kn,keyFor:uu}=Symbol,Ra=Kn("knitting.payloadCodec"),Yn="knitting.bufferReference",Vn="knitting.processSharedBuffer",xa=globalThis,La=Object.getPrototypeOf,Jt=Object.prototype.hasOwnProperty,qt=Array.isArray,Pa=Object.prototype,ga="Unsupported object type. Allowed: plain object, array, Error, Date, Envelope, Buffer, ArrayBuffer, DataView, typed arrays, and registered external payloads. Serialize it yourself.",ha="Envelope payload must be an ArrayBuffer, SharedArrayBuffer, ProcessSharedBuffer, or BufferReference.",cu="Envelope header must be a JSON-like value or string.",fu="Envelope header cannot contain Promise values.",lu="Dynamic payload exceeds maxPayloadBytes.",du="Dynamic payload buffer capacity exceeded.",zr="SharedArrayBuffer and BufferReference are process-local pointer payloads and cannot cross a process-worker boundary; use ProcessSharedBuffer instead.",ba="Reserved Knitting external payload codec cannot be forged.",Yr=(e)=>e===br||e===Yn,Sa=(e)=>Yr(e)||e===Vn,yu=(e)=>{let r=La(e);return r===Pa||r===null},Aa=(e)=>{let r=e[Ra];return typeof r==="string"?r:void 0},pu=(e)=>{switch(e){case"node":return 1;case"deno":return 2;case"bun":return 3;default:return 0}},mu=(e)=>{switch(e){case"shared-array-buffer":return 1;case"external-array-buffer":return 2;default:return 0}},Gr=(e)=>typeof e==="number"&&Number.isInteger(e)&&e>=0&&e<=4294967295,Ba=(e)=>typeof e.toMetadata==="function"&&typeof e[Ra]==="string",wa=(e)=>{if(it(e))return Nt.prototype.toMetadata.call(e);if(Gt(e))return Cr.prototype.toMetadata.call(e);return e.toMetadata()},zt=(e,r)=>{let t=Sr(e);if(!qt(t)||t.length!==2)return t;let n=t[0],a=t[1];if(typeof n!=="string")return{codec:n,metadata:a};if(r&&Yr(n))throw TypeError(zr);let u=xa.__KNITTING_PAYLOAD_CODECS__?.[n];return typeof u?.decode==="function"?u.decode(a):{codec:n,metadata:a}},Qt=8,Gn=8,gu=4294967295,qn=(e,r)=>{let t=xa.__KNITTING_PAYLOAD_CODECS__?.[e];if(typeof t?.decodeNumeric==="function")return t.decodeNumeric(r);return{codec:e,metadata:Array.from(r)}},hu=(e)=>qn(Vn,e),bu=(e)=>qn(Yn,e),Su=(e)=>qn(br,e),Au=(e)=>{let r=e.value;switch(typeof r){case"number":if(r!==r)return e[i.Type]=Ve.NaN,!0;return Yt[0]=r,e[i.Type]=Ve.Float64,e[i.Start]=ar[0],e[i.End]=ar[1],!0;case"boolean":return e[i.Type]=r?Ve.True:Ve.False,!0;case"undefined":return e[i.Type]=Ve.Undefined,!0;case"bigint":if(r<su||r>iu)return!1;return ka[0]=r,e[i.Type]=Ve.BigInt,e[i.Start]=ar[0],e[i.End]=ar[1],!0;case"object":if(r===null)return e[i.Type]=Ve.Null,!0;return!1;default:return!1}},$n=(e,r)=>{if(e instanceof Promise)return!0;if(e===null||typeof e!=="object")return!1;let t=e,n=r??new Set;if(n.has(t))return!1;if(n.add(t),qt(t)){let u=t;for(let c=0;c<u.length;c++)if($n(u[c],n))return!0;return!1}if(!yu(t))return!1;let a=t;for(let u in a){if(!Jt.call(a,u))continue;if($n(a[u],n))return!0}return!1},va=(e)=>{if(e===null||e===void 0)return e;switch(typeof e){case"string":case"number":case"boolean":return e;case"bigint":return e.toString();case"symbol":case"function":return String(e)}if(e instanceof Error){let r={name:e.name,message:e.message};if(typeof e.stack==="string")r.stack=e.stack;if(Jt.call(e,"cause"))r.cause=va(e.cause);return r}try{return Sr($r(e))}catch{return String(e)}},Bu=(e)=>{let r={name:e.name,message:e.message};if(typeof e.stack==="string")r.stack=e.stack;if(Jt.call(e,"cause"))r.cause=va(e.cause);return r},wu=(e)=>{let r;try{r=Sr(e)}catch{return Error(e)}if(r==null||typeof r!=="object")return Error(String(r));let t=r,n=Error(typeof t.message==="string"?t.message:"");if(typeof t.name==="string"&&t.name.length>0)n.name=t.name;if(typeof t.stack==="string")try{n.stack=t.stack}catch{}if(Jt.call(t,"cause"))n.cause=t.cause;return n},Ta=(e)=>{let r=e[0],t=0n;for(let n=e.length-1;n>=1;n--)t=t<<8n|BigInt(e[n]);return r===1?-t:t},Tu=(e,r,t)=>{let n=r??yr,a=vn({slotCount:Te.slots,slotStrideU32:n,slotLengthU32:st,baseU32:Te.header});if(e.byteLength<Math.max(a,Bn))return null;return ia({headersBuffer:e,slotStrideU32:n,textCompat:t})},_a=(e,r,t)=>{let n=Tu(e,r,t);if(n===null)throw RangeError("headersBuffer is too small for static payload IO");return n},ku=({lockSector:e,payload:r,sab:t,payloadConfig:n,headersBuffer:a,headerSlotStrideU32:u,textCompat:c,onPromise:f,processBoundary:S=!1})=>{let N=r?.sab??t,P=dr({sab:N,options:r?.config??n}),H=P.maxPayloadBytes,{allocTask:k,setSlotLength:m,free:O}=Rn({lockSector:e}),{writeBinary:x,writeBuffer:w,writeArrayBuffer:M,write8Binary:J,writeUtf8:_}=Mn({sab:N,payloadConfig:P,textCompat:c?.payload}),{maxBytes:q,writeBinary:j,writeBuffer:te,writeArrayBuffer:oe,writeExactUint8Array:K,writeU32Words:ee,write8Binary:G,writeUtf8:C}=_a(a,u,c?.headers),Q=(o,E,T)=>Me({task:o,type:Ee.Serializable,onPromise:f,detail:`${lu} limit=${H}; actual=${E}; type=${T}.`}),ue=(o)=>Me({task:o,type:Ee.Serializable,onPromise:f,detail:du}),X=(o,E,T)=>{if(E<=H)return!0;return Q(o,E,T)},ce=(o,E,T,d)=>{let W=E.length*3;if(W+T<=H)return W;let Y=au(E),I=Y+T;if(I>H)return Q(o,I,d),-1;return Y},s=(o,E,T)=>ce(o,E,0,T),L=(o,E)=>(o[i.PayloadLen]=E,k(o)),g=-1,B=(o,E)=>{o[i.PayloadLen]=E;let T=k(o);return g=T,T},l=()=>{if(g!==-1)O(g),g=-1},p=(o,E)=>{if(O(E),g===E)g=-1;return ue(o)},h=new Uint8Array(16),z=(o)=>{let E=0,T=o;if(o<0n)E=1,T=-o;let d=1;while(T>0n){if(d>=h.byteLength){let W=new Uint8Array(h.byteLength<<1);W.set(h,0),h=W}h[d++]=Number(T&0xffn),T>>=8n}return h[0]=E,d},b=(o)=>{h.fill(0,0,o)},y=(o,E)=>{let T;try{T=$r(Bu(E))}catch(Y){let I=Y instanceof Error?Y.message:String(Y);return Me({task:o,type:Ee.Serializable,onPromise:f,detail:I})}let d=s(o,T,"Error");if(d<0)return!1;o[i.Type]=v.Error;let W=B(o,d),V=_(T,o[i.Start],d);if(V<0)return p(o,W);return o[i.PayloadLen]=V,m(W,V),o.value=null,!0},D=(o,E,T,d,W)=>{let V=T.byteLength;if(V<=q){let se=j(T,E);if(se!==-1)return o[i.Type]=W,o[i.PayloadLen]=se,o.value=null,!0}if(o[i.Type]=d,!X(o,V,Mo(d)))return!1;let Y=B(o,V),I=x(T,o[i.Start]);if(I<0)return p(o,Y);return o[i.PayloadLen]=I,m(Y,I),o.value=null,!0},ne=(o,E,T)=>{let d=T.byteLength;if(d<=q)return K(T,E),o[i.Type]=v.StaticBinary,o[i.PayloadLen]=d,o.value=null,!0;if(o[i.Type]=v.Binary,!X(o,d,"Binary"))return!1;let W=B(o,d),V=x(T,o[i.Start]);if(V<0)return p(o,W);return o[i.PayloadLen]=V,m(W,V),o.value=null,!0},re=(o,E,T)=>{let d=T.byteLength;if(d<=q){let Y=te(T,E);if(Y!==-1)return o[i.Type]=v.StaticBuffer,o[i.PayloadLen]=Y,o.value=null,!0}if(o[i.Type]=v.Buffer,!X(o,d,"Buffer"))return!1;let W=B(o,d),V=w(T,o[i.Start]);if(V<0)return p(o,W);return o[i.PayloadLen]=V,m(W,V),o.value=null,!0},me=(o,E,T)=>{let d=T.byteLength;if(d<=q){let Y=G(T,E);if(Y!==-1)return o[i.Type]=v.StaticFloat64Array,o[i.PayloadLen]=Y,o.value=null,!0}if(o[i.Type]=v.Float64Array,!X(o,d,"Float64Array"))return!1;let W=B(o,d),V=J(T,o[i.Start]);if(V<0)return p(o,W);return o[i.PayloadLen]=V,m(W,V),o.value=null,!0},ge=new Float64Array(0),ve=(o,E,T)=>{let d=T.length;if(ge.length<d)ge=new Float64Array(d);for(let se=0;se<d;se++)ge[se]=T[se];let W=ge.subarray(0,d),V=W.byteLength;if(V<=q){let se=G(W,E);if(se!==-1)return o[i.Type]=v.StaticNumericArray,o[i.PayloadLen]=se,o.value=null,!0}if(o[i.Type]=v.NumericArray,!X(o,V,"NumericArray"))return!1;let Y=B(o,V),I=J(W,o[i.Start]);if(I<0)return p(o,Y);return o[i.PayloadLen]=I,m(Y,I),o.value=null,!0},Ne=(o,E,T)=>{let d=T.byteLength;if(d<=q){let Y=oe(T,E);if(Y!==-1)return o[i.Type]=v.StaticArrayBuffer,o[i.PayloadLen]=Y,o.value=null,!0}if(o[i.Type]=v.ArrayBuffer,!X(o,d,"ArrayBuffer"))return!1;let W=B(o,d),V=M(T,o[i.Start]);if(V<0)return p(o,W);return o[i.PayloadLen]=V,m(W,V),o.value=null,!0},fe=new Uint32Array(Qt),he=new Uint32Array(jt),be=(o,E,T)=>{let d=T.descriptor;if(d===void 0||d.name!==void 0||!Gr(d.fd)||!Gr(d.size)||!Gr(d.byteLength)||!Gr(T.byteOffset)||!Gr(T.byteLength))return!1;let W=d.baseAddressMod64;if(W!==void 0&&!Gr(W))return!1;return fe[0]=d.fd,fe[1]=d.size,fe[2]=d.byteLength,fe[3]=T.byteOffset,fe[4]=T.byteLength,fe[5]=pu(d.runtime),fe[6]=mu(d.kind),fe[7]=W===void 0?gu:W,o[i.Type]=v.ProcessSharedBuffer,o[i.PayloadLen]=ee(fe,Qt,E),o.value=null,!0},de=(o,E,T)=>{let d=it(T)?Nt.prototype[wn].call(T):T[wn]?.();if(d===void 0)return!1;return o[i.Type]=v.BufferReference,o[i.PayloadLen]=ee(d,Gn,E),Lr(o,T),o.value=null,!0},De=(o,E,T)=>{let d=T[Wn]?.(e);if(d===void 0)return!1;return he[0]=d[0]??0,he[1]=d[1]??0,he[2]=d[2]??0,he[3]=d[3]??0,he[4]=d[4]??0,he[5]=d[5]??0,he[6]=d[6]??0,he[7]=d[7]??0,o[i.Type]=v.SharedArrayBuffer,o[i.PayloadLen]=ee(he,d.length,E),o.value=null,!0},xe=(o,E,T,d=!1)=>{let W=Aa(T);if(W===void 0)return Me({task:o,type:Ee.Serializable,onPromise:f,detail:ga});if(d){if(S&&Yr(W))return Me({task:o,type:Ee.Serializable,onPromise:f,detail:zr});if(W===br&&De(o,E,T))return!0;if(W===Yn&&de(o,E,T))return!0;if(W===Vn&&be(o,E,T))return!0}else if(Sa(W))return Me({task:o,type:Ee.Serializable,onPromise:f,detail:S&&Yr(W)?zr:ba});let V;try{V=$r([W,d?wa(T):T.toMetadata()])}catch(Z){let we=Z instanceof Error?Z.message:String(Z);return Me({task:o,type:Ee.Serializable,onPromise:f,detail:we})}if(typeof V!=="string")return Me({task:o,type:Ee.Serializable,onPromise:f,detail:"External payload metadata must be JSON serializable."});if(V.length<=q){let Z=C(V,E);if(Z!==-1)return o[i.Type]=v.StaticExternalPayload,o[i.PayloadLen]=Z,Lr(o,T),o.value=null,!0}o[i.Type]=v.ExternalPayload;let Y=s(o,V,"ExternalPayload");if(Y<0)return!1;let I=B(o,Y),se=_(V,o[i.Start],Y);if(se<0)return p(o,I);return o[i.PayloadLen]=se,m(I,se),Lr(o,T),o.value=null,!0},He=(o,E)=>(Yt[0]=E.getTime(),o[i.Type]=v.Date,o[i.Start]=ar[0],o[i.End]=ar[1],o.value=null,!0),We=(o,E,T)=>{if($n(E)){Me({task:o,type:Ee.Serializable,onPromise:f,detail:fu});return}if(T)return E;let d;try{d=$r(E)}catch(W){let V=W instanceof Error?W.message:String(W);Me({task:o,type:Ee.Json,onPromise:f,detail:V});return}if(typeof d!=="string"){Me({task:o,type:Ee.Serializable,onPromise:f,detail:cu});return}return d},Le=(o)=>{if(o===null||typeof o!=="object")return;let E=Un(o);if(E!==void 0)return{payload:E,trustedReservedCodec:!0};if(it(o)||Gt(o))return{payload:o,trustedReservedCodec:!0};if(Ba(o))return{payload:o,trustedReservedCodec:!1};return},je=(o,E,T,d,W)=>{let V=new Uint8Array(W),Y=V.byteLength,I=Y>0?Y:1,se=C(T,E);if(se!==-1){if(!X(o,I,"EnvelopeStaticHeaderPayload"))return!1;let U=B(o,I);if(o[i.Type]=d?v.EnvelopeStaticHeaderString:v.EnvelopeStaticHeader,o[i.PayloadLen]=se,o[i.End]=Y,Y>0){let le=x(V,o[i.Start]);if(le<0)return p(o,U);m(U,le)}return o.value=null,!0}let Z=ce(o,T,Y,d?"EnvelopeDynamicHeaderString":"EnvelopeDynamicHeader");if(Z<0)return!1;o[i.Type]=d?v.EnvelopeDynamicHeaderString:v.EnvelopeDynamicHeader;let we=B(o,Z+Y),ke=o[i.Start],R=_(T,ke,Z);if(R<0)return p(o,we);if(Y>0){if(x(V,ke+R)<0)return p(o,we)}return o[i.PayloadLen]=R,o[i.End]=Y,m(we,R+Y),o.value=null,!0},qe=(o,E,T,d,W,V)=>{let Y=Aa(W);if(Y===void 0)return Me({task:o,type:Ee.Serializable,onPromise:f,detail:ha});if(V){if(S&&Yr(Y))return Me({task:o,type:Ee.Serializable,onPromise:f,detail:zr})}else if(Sa(Y))return Me({task:o,type:Ee.Serializable,onPromise:f,detail:S&&Yr(Y)?zr:ba});let I;try{I=$r([Y,V?wa(W):W.toMetadata()])}catch(Pe){let Ae=Pe instanceof Error?Pe.message:String(Pe);return Me({task:o,type:Ee.Serializable,onPromise:f,detail:Ae})}if(typeof I!=="string")return Me({task:o,type:Ee.Serializable,onPromise:f,detail:"Envelope body metadata must be JSON serializable."});let se=Ea.encode(I),Z=se.byteLength,we=C(T,E);if(we!==-1){if(!X(o,Z,"EnvelopeStaticHeaderExternal"))return!1;let Pe=B(o,Z);o[i.Type]=d?v.EnvelopeStaticHeaderStringExternal:v.EnvelopeStaticHeaderExternal,o[i.PayloadLen]=we,o[i.End]=Z;let Ae=x(se,o[i.Start]);if(Ae<0)return p(o,Pe);return m(Pe,Ae),Lr(o,W),o.value=null,!0}let ke=ce(o,T,Z,d?"EnvelopeDynamicHeaderStringExternal":"EnvelopeDynamicHeaderExternal");if(ke<0)return!1;o[i.Type]=d?v.EnvelopeDynamicHeaderStringExternal:v.EnvelopeDynamicHeaderExternal;let R=B(o,ke+Z),U=o[i.Start],le=_(T,U,ke);if(le<0)return p(o,R);if(x(se,U+le)<0)return p(o,R);return o[i.PayloadLen]=le,o[i.End]=Z,m(R,le+Z),Lr(o,W),o.value=null,!0},er=(o,E,T)=>{let{header:d,payload:W}=T,V=typeof d==="string";if(W instanceof ArrayBuffer){let I=We(o,d,V);if(I===void 0)return!1;return je(o,E,I,V,W)}let Y=Le(W);if(Y!==void 0){let I=We(o,d,V);if(I===void 0)return!1;return qe(o,E,I,V,Y.payload,Y.trustedReservedCodec)}return Me({task:o,type:Ee.Serializable,onPromise:f,detail:ha})},sr=(o,E)=>{if(vt(o))E.then((T)=>{at(o),o.value=T,f(o,!1,T)},(T)=>{at(o),o.value=T,f(o,!0,T)});return!1};return(o,E)=>{let T=o.value;if(Au(o))return!0;switch(typeof T){case"bigint":{let d=z(T),W=h.subarray(0,d);if(d<=q){let I=j(W,E);if(I!==-1)return o[i.Type]=v.StaticBigInt,o[i.PayloadLen]=I,b(d),o.value=null,!0}if(o[i.Type]=v.BigInt,!X(o,d,"BigInt"))return b(d),!1;let V=L(o,d),Y=x(W,o[i.Start]);if(Y<0)return b(d),p(o,V);return o[i.PayloadLen]=Y,m(V,Y),b(d),o.value=null,!0}case"function":return Me({task:o,type:Ee.Function,onPromise:f});case"object":g=-1;try{let d=T,W=Un(d);if(W!==void 0)return xe(o,E,W,!0);let V=La(d);if(ou(d))return ne(o,E,d);if(qt(d)&&Hn(d))return ve(o,E,d);if(qt(d)||V===Pa||V===null){let I;try{I=$r(d)}catch(ke){let R=ke instanceof Error?ke.message:String(ke);return Me({task:o,type:Ee.Json,onPromise:f,detail:R})}if(I.length<=q){let ke=C(I,E);if(ke!==-1)return o[i.Type]=v.StaticJson,o[i.PayloadLen]=ke,o.value=null,!0}o[i.Type]=v.Json;let se=s(o,I,"Json");if(se<0)return!1;let Z=B(o,se),we=_(I,o[i.Start],se);if(we<0)return p(o,Z);return o[i.PayloadLen]=we,m(Z,we),o.value=null,!0}if(it(d)||Gt(d))return xe(o,E,d,!0);let Y=d.constructor;if(nu(d))return re(o,E,d);switch(Y){case ArrayBuffer:return Ne(o,E,d);case Int32Array:{let I=d;return D(o,E,new Uint8Array(I.buffer,I.byteOffset,I.byteLength),v.Int32Array,v.StaticInt32Array)}case Float64Array:return me(o,E,d);case BigInt64Array:{let I=d;return D(o,E,new Uint8Array(I.buffer,I.byteOffset,I.byteLength),v.BigInt64Array,v.StaticBigInt64Array)}case BigUint64Array:{let I=d;return D(o,E,new Uint8Array(I.buffer,I.byteOffset,I.byteLength),v.BigUint64Array,v.StaticBigUint64Array)}case DataView:{let I=d;return D(o,E,new Uint8Array(I.buffer,I.byteOffset,I.byteLength),v.DataView,v.StaticDataView)}case Date:return He(o,d);case hr:return er(o,E,d);case Promise:return sr(o,d);case Error:return y(o,d)}if(d instanceof Date)return He(o,d);if(d instanceof hr)return er(o,E,d);if(d instanceof Promise)return sr(o,d);if(d instanceof Error)return y(o,d);if(Ba(d))return xe(o,E,d);return Me({task:o,type:Ee.Serializable,onPromise:f,detail:ga})}catch(d){l();let W=d instanceof Error?d.message:String(d);return Me({task:o,type:Ee.Serializable,onPromise:f,detail:W})}case"string":{let d=T;if(d.length<=q){let I=C(d,E);if(I!==-1)return o[i.Type]=v.StaticString,o[i.PayloadLen]=I,o.value=null,!0}o[i.Type]=v.String;let W=s(o,d,"String");if(W<0)return!1;let V=L(o,W),Y=_(d,o[i.Start],W);if(Y<0)return p(o,V);return o[i.PayloadLen]=Y,m(V,Y),o.value=null,!0}case"symbol":{let d=uu(T);if(d===void 0)return Me({task:o,type:Ee.Symbol,onPromise:f});if(d.length*3<=q){let I=C(d,E);if(I!==-1)return o[i.Type]=v.StaticSymbol,o[i.PayloadLen]=I,o.value=null,!0}o[i.Type]=v.Symbol;let W=s(o,d,"Symbol");if(W<0)return!1;let V=L(o,W),Y=_(d,o[i.Start],W);if(Y<0)return p(o,V);return o[i.PayloadLen]=Y,m(V,Y),o.value=null,!0}}return!1}},Eu=({lockSector:e,payload:r,sab:t,payloadConfig:n,headersBuffer:a,headerSlotStrideU32:u,textCompat:c,host:f,processBoundary:S=!1})=>{let N=r?.sab??t,P=dr({sab:N,options:r?.config??n}),{free:H}=Rn({lockSector:e}),k=(s)=>H(Oo(s)),{readUtf8:m,readBytesCopy:O,readBytesBufferCopy:x,readBufferCopy:w,readBytesArrayBufferCopy:M,readArrayBufferCopy:J,read8BytesFloatCopy:_,read8BytesFloatView:q}=Mn({sab:N,payloadConfig:P,textCompat:c?.payload}),{readUtf8:j,readBytesBufferCopy:te,readBufferCopy:oe,readUint8ArrayCopy:K,readBytesArrayBufferCopy:ee,readArrayBufferCopy:G,read8BytesFloatCopy:C,readU32Words:Q}=_a(a,u,c?.headers),ue=new Uint32Array(Qt),X=new Uint32Array(jt),ce=new Uint32Array(Gn);return(s,L,g)=>{let B=s[i.Type];if(S&&(B===v.SharedArrayBuffer||B===v.BufferReference))throw TypeError(zr);switch(B){case Ve.BigInt:ar[0]=s[i.Start],ar[1]=s[i.End],s.value=ka[0];return;case Ve.True:s.value=!0;return;case Ve.False:s.value=!1;return;case Ve.Float64:ar[0]=s[i.Start],ar[1]=s[i.End],s.value=Yt[0];return;case Ve.NaN:s.value=NaN;return;case Ve.Null:s.value=null;return;case Ve.Undefined:s.value=void 0;return;case v.String:s.value=m(s[i.Start],s[i.Start]+s[i.PayloadLen]),k(s);return;case v.StaticString:s.value=j(0,s[i.PayloadLen],L);return;case v.Json:s.value=Sr(m(s[i.Start],s[i.Start]+s[i.PayloadLen])),k(s);return;case v.StaticJson:s.value=Sr(j(0,s[i.PayloadLen],L));return;case v.EnvelopeStaticHeader:case v.EnvelopeStaticHeaderString:{let l=j(0,s[i.PayloadLen],L),p=s[i.Type]===v.EnvelopeStaticHeaderString?l:Sr(l),h=s[i.End],z=h>0?M(s[i.Start],s[i.Start]+h):new ArrayBuffer(0);s.value=new hr(p,z),k(s);return}case v.EnvelopeDynamicHeader:case v.EnvelopeDynamicHeaderString:{let l=s[i.Start],p=l+s[i.PayloadLen],h=s[i.End],z=m(l,p),b=s[i.Type]===v.EnvelopeDynamicHeaderString?z:Sr(z),y=h>0?M(p,p+h):new ArrayBuffer(0);s.value=new hr(b,y),k(s);return}case v.EnvelopeStaticHeaderExternal:case v.EnvelopeStaticHeaderStringExternal:{let l=j(0,s[i.PayloadLen],L),p=s[i.Type]===v.EnvelopeStaticHeaderStringExternal?l:Sr(l),h=s[i.Start],z=zt(m(h,h+s[i.End]),S);s.value=new hr(p,z),k(s);return}case v.EnvelopeDynamicHeaderExternal:case v.EnvelopeDynamicHeaderStringExternal:{let l=s[i.Start],p=l+s[i.PayloadLen],h=m(l,p),z=s[i.Type]===v.EnvelopeDynamicHeaderStringExternal?h:Sr(h),b=zt(m(p,p+s[i.End]),S);s.value=new hr(z,b),k(s);return}case v.BigInt:s.value=Ta(x(s[i.Start],s[i.Start]+s[i.PayloadLen])),k(s);return;case v.StaticBigInt:s.value=Ta(te(0,s[i.PayloadLen],L));return;case v.Symbol:s.value=Kn(m(s[i.Start],s[i.Start]+s[i.PayloadLen])),k(s);return;case v.StaticSymbol:s.value=Kn(j(0,s[i.PayloadLen],L));return;case v.Int32Array:{let l=x(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new Int32Array(l.buffer,l.byteOffset,l.byteLength>>>2),k(s);return}case v.StaticInt32Array:{let l=te(0,s[i.PayloadLen],L);s.value=new Int32Array(l.buffer,l.byteOffset,l.byteLength>>>2);return}case v.Float64Array:{s.value=_(s[i.Start],s[i.Start]+s[i.PayloadLen]),k(s);return}case v.StaticFloat64Array:s.value=C(0,s[i.PayloadLen],L);return;case v.NumericArray:{s.value=jn(q(s[i.Start],s[i.Start]+s[i.PayloadLen])),k(s);return}case v.StaticNumericArray:s.value=jn(C(0,s[i.PayloadLen],L));return;case v.BigInt64Array:{let l=x(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new BigInt64Array(l.buffer,l.byteOffset,l.byteLength>>>3),k(s);return}case v.StaticBigInt64Array:{let l=te(0,s[i.PayloadLen],L);s.value=new BigInt64Array(l.buffer,l.byteOffset,l.byteLength>>>3);return}case v.BigUint64Array:{let l=x(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new BigUint64Array(l.buffer,l.byteOffset,l.byteLength>>>3),k(s);return}case v.StaticBigUint64Array:{let l=te(0,s[i.PayloadLen],L);s.value=new BigUint64Array(l.buffer,l.byteOffset,l.byteLength>>>3);return}case v.DataView:{let l=x(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new DataView(l.buffer,l.byteOffset,l.byteLength),k(s);return}case v.StaticDataView:{let l=te(0,s[i.PayloadLen],L);s.value=new DataView(l.buffer,l.byteOffset,l.byteLength);return}case v.ExternalPayload:s.value=zt(m(s[i.Start],s[i.Start]+s[i.PayloadLen]),S),k(s);return;case v.StaticExternalPayload:s.value=zt(j(0,s[i.PayloadLen],L),S);return;case v.ProcessSharedBuffer:s.value=hu(Q(ue,Qt,L));return;case v.SharedArrayBuffer:s.value=Su(Q(X,s[i.PayloadLen]>>>2,L));return;case v.BufferReference:s.value=bu(Q(ce,Gn,L));return;case v.Date:ar[0]=s[i.Start],ar[1]=s[i.End],s.value=new Date(Yt[0]);return;case v.Error:s.value=wu(m(s[i.Start],s[i.Start]+s[i.PayloadLen])),k(s);return;case v.Binary:{let l=x(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new Uint8Array(l.buffer,l.byteOffset,l.byteLength)}k(s);return;case v.StaticBinary:s.value=K(0,s[i.PayloadLen],L);return;case v.ArrayBuffer:s.value=J(s[i.Start],s[i.Start]+s[i.PayloadLen]),k(s);return;case v.StaticArrayBuffer:s.value=G(0,s[i.PayloadLen],L);return;case v.Buffer:s.value=w(s[i.Start],s[i.Start]+s[i.PayloadLen]),k(s);return;case v.StaticBuffer:s.value=oe(0,s[i.PayloadLen],L);return}}};Co(ku,Eu);var Vr=Symbol.for("task");var Ru=/^[A-Za-z]:[\\/]/,xu=/^\\\\[^\\/?]+\\[^\\/?]+/,Qn=(e)=>encodeURI(e).replace(/\?/g,"%3F").replace(/#/g,"%23"),Lu=()=>At("node:url")?.pathToFileURL,Pu=(e)=>{let r=e.startsWith("/")?e:`/${e}`;return`file://${Qn(r)}`},Ar=(e)=>{if(Ru.test(e)){let r=e.replace(/\\/g,"/");return`file:///${Qn(r)}`}if(xu.test(e)){let r=e.replace(/^\\\\+/,"").replace(/\\/g,"/");return`file://${Qn(r)}`}try{return new URL(e).href}catch{let r=Lu();return r?r(e).href:Pu(e)}},Ca=(e)=>{if(!Er||!e.startsWith("file://"))return e;let r=e.slice(7),t=r.startsWith("/")?r:`/${r}`;try{return decodeURIComponent(t)}catch{return t}};var ct={Reject:0,Resolve:1},vu=(e)=>{if(e==null)return;if(typeof e==="number"){let t=Math.floor(e);return t>=0?{ms:t,kind:ct.Reject,value:Error("Task timeout")}:void 0}let r=Math.floor(e.time);if(!(r>=0))return;if("default"in e)return{ms:r,kind:ct.Resolve,value:e.default};if(e.maybe===!0)return{ms:r,kind:ct.Resolve,value:void 0};if("error"in e)return{ms:r,kind:ct.Reject,value:e.error};return{ms:r,kind:ct.Reject,value:Error("Task timeout")}},_u=(e,r)=>e.f,Ia=async({list:e,ids:r,names:t,at:n,permission:a})=>{let u=e.map((m)=>Ar(m)),c=new Set(t),S=(await Promise.all(u.map(async(m)=>{let O=await import(Ca(m)),x=Object.entries(O).filter(([M,J])=>J!=null&&typeof J==="object"&&J?.[Vr]===!0).map(([M,J])=>({...J,name:M})),w=Object.entries(O).filter(([M,J])=>c.has(M)&&typeof J==="function").map(([M,J])=>({f:J,id:-1,importedFrom:m,at:-1,name:M,[Vr]:!0}));return[...x,...w]}))).flat(),N=u.length===1&&n.length>0,P=N?new Set(n):null,H=N?u[0]:null;return S.filter((m)=>N?m.importedFrom===H&&P.has(m.at):r.includes(m.id)).sort((m,O)=>m.name.localeCompare(O.name)).map((m)=>({...m,run:_u(m,a),timeout:vu(m.timeout)}))};var Cu={thisIsAHint:0},Iu=(()=>{let e=globalThis,r=typeof e.gc==="function"?()=>e.gc():void 0;if(r){try{delete e.gc}catch{e.gc=void 0}if(e.global)try{delete e.global.gc}catch{e.global.gc=void 0}}return r??(()=>{})})();var{load:Mu,store:Ma}=Atomics,ft=typeof Atomics.wait==="function"?Atomics.wait:void 0,Fa=performance.now.bind(performance),Oa=ft===void 0||typeof SharedArrayBuffer!=="function"?void 0:new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT)),Na="pause"in Atomics?Atomics.pause:void 0,Xt=globalThis,Fu=Xt.process?.platform==="win32"&&typeof Xt.process?.versions?.node==="string"&&Xt.process?.versions?.bun===void 0&&Xt.Deno===void 0,Ou=(e)=>Fu?1:Number.isFinite(e)?e:1/0,Nu=(e)=>Number.isFinite(e)?Math.min(Math.max(e,0),1):1,Zt=({pauseInNanoseconds:e})=>{let r=e??250;if(!Na||r<=0)return()=>{};return()=>Na(r)},Jn=Zt({}),Da=({at:e,opView:r,pauseInNanoseconds:t,rxStatus:n,txStatus:a,enqueueLock:u,write:c,nativeWaitU32:f,useSharedMemoryWait:S=!0,flushBeforeClaim:N=!1})=>{let P=t===void 0?Jn:Zt({pauseInNanoseconds:t}),H=()=>{if(!c)return!1;let m=c();if(typeof m==="number")return m>0;return m===!0},k=N?()=>{let m=H();return u()||m}:()=>{let m=u();return H()||m};return(m,O,x)=>{let w=Fa()+O/1000;Iu();let M=0;while(!0){if(Mu(r,e)!==m||a[Cu.thisIsAHint]===1)return;if(k())return;if(P(),(M++&63)===0&&Fa()>=w)break}if(k())return;if(Ma(n,0,0),f!==void 0)f(r.buffer,r.byteOffset+e*Int32Array.BYTES_PER_ELEMENT,m>>>0,Ou(x));else if(S&&ft&&r.buffer instanceof SharedArrayBuffer)ft(r,e,m,x??1/0);else if(ft&&Oa)ft(Oa,0,0,Nu(x));Ma(n,0,1)}};var lt=(e)=>e instanceof Error?e.message:String(e),en=(e,r,t)=>{let n=t===void 0?"":`: ${lt(t)}`;throw Error(`KNT_ERROR_PROCESS_GUARD_INSTALL: ${e} ${r}${n}`)},Xn=()=>{let e=$e();if(!e)return;if(e.__knittingTerminationGuard===!0)return;let r=(a)=>{throw Error(`KNT_ERROR_PROCESS_GUARD: ${a} is disabled in worker tasks`)},t=(a)=>{try{Object.defineProperty(e,a,{configurable:!1,writable:!1,value:(...u)=>r(`process.${a}`)})}catch(u){try{e[a]=(...c)=>r(`process.${a}`)}catch(c){en(`process.${a}`,"install failed",[lt(u),lt(c)].join("; "))}}if(typeof e[a]!=="function")en(`process.${a}`,"install verification failed")};t("exit"),t("kill"),t("abort"),t("reallyExit");let n=globalThis;if(n.Deno&&typeof n.Deno.exit==="function"){try{Object.defineProperty(n.Deno,"exit",{configurable:!1,writable:!1,value:(a)=>r("Deno.exit")})}catch(a){try{n.Deno.exit=(u)=>r("Deno.exit")}catch(u){en("Deno.exit","install failed",[lt(a),lt(u)].join("; "))}}if(typeof n.Deno.exit!=="function")en("Deno.exit","install verification failed")}e.__knittingTerminationGuard=!0},Zn=()=>{let e=$e();if(!e||typeof e.on!=="function")return;if(e.__knittingUnhandledRejectionSilencer===!0)return;e.__knittingUnhandledRejectionSilencer=!0,e.on("unhandledRejection",()=>{})};var eo=()=>{let e=globalThis;if(e.__knittingPerformanceNowGuardInstalled===!0)return;e.__knittingPerformanceNowGuardInstalled=!0;let r=globalThis.performance;if(!r||typeof r.now!=="function")return;try{r.now()}catch{}};var ro=(e)=>{let r=e;try{r.sab=void 0,r.lock=void 0,r.returnLock=void 0,r.permission=void 0}catch{}try{delete r.sab}catch{}try{delete r.lock}catch{}try{delete r.returnLock}catch{}try{delete r.permission}catch{}try{Object.freeze(r)}catch{}};var Wa=(e)=>rr(e?.headers)&&rr(e?.lockSector)&&rr(e?.payload)&&rr(e?.payloadSector)&&(e?.textCompat===void 0||Et(e.textCompat)),to=({sab:e,lock:r,returnLock:t})=>{if(!rr(e))throw Error("worker missing transport SAB");if(!Wa(r))throw Error("worker missing lock SABs");if(!Wa(t))throw Error("worker missing return lock SABs")},no=({list:e,ids:r,names:t,listOfFunctions:n})=>{if(n.length>0&&(t===void 0||n.length===t.length))return;if(console.log(e),console.log(r),t!==void 0)console.log(t);throw console.log(n),Error("No imports were found.")};var ao=32,oo=ao-1,Ua=Symbol.for("knitting.abortSignal.poolExhausted");var dt=({sab:e,maxSignals:r})=>{let t=Ye(e),n=new Uint32Array(t.sab,t.byteOffset,t.byteLength/Uint32Array.BYTES_PER_ELEMENT),a=n.length,u=new Uint32Array(a),c=a*ao,f=(()=>{if(!Number.isFinite(r))return c;let w=Math.floor(r);if(w<=0)return c;return Math.min(w,c)})(),S=f+1,N=0,P=0;return{max:f,closeNow:S,getSignal:()=>{if(N>=f)return S;for(let w=0;w<a;w++){let M=(P+w)%a,J=M<<5,_=f-J;if(_<=0)continue;let q=_>=ao?4294967295:(1<<_)-1>>>0,j=(~u[M]&q)>>>0;if(j===0)continue;let te=(j&-j)>>>0;u[M]=(u[M]|te)>>>0,N=N+1|0,P=(M+1)%a,Atomics.and(n,M,~te);let oe=31-Math.clz32(te);return(M<<5)+oe}return S},setSignal:(w)=>{if(w===S)return 0;if(!Number.isInteger(w))return-1;if(w<0||w>=f)return-1;let M=w>>>5,J=1<<(w&oo);return Atomics.or(n,M,J),1},abortAll:()=>{for(let w=0;w<a;w++)Atomics.store(n,w,u[w]);return N},hasAborted:(w)=>{if(w===S)return!0;if(!Number.isInteger(w))return!1;if(w<0||w>=f)return!1;let M=w>>>5,J=1<<(w&oo);return(Atomics.load(n,M)&J)!==0},resetSignal:(w)=>{if(w===S)return!1;if(!Number.isInteger(w))return!1;if(w<0||w>=f)return!1;let M=w>>>5,J=1<<(w&oo);if((u[M]&J)===0)return!1;if(u[M]=(u[M]&~J)>>>0,N>0)N=N-1|0;return P=M,Atomics.and(n,M,~J),!0},inUseCount:()=>N}};class so{#e=!1;constructor(e,r,t){let n=(a)=>(...u)=>{if(this.#e)return;this.#e=!0,r(),a(...u)};e.resolve=n(e.resolve),e.reject=n(e.reject),e.promise.reject=(a)=>{if(this.#e)return;if(a===void 0&&t!==void 0){t();return}e.reject(a)}}}var Du="default",Wu=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return typeof r.href==="string"&&r.href.length>0&&(r.name===void 0||typeof r.name==="string"&&r.name.length>0)},Uu=(e)=>{try{return Cr.fromMetadata(e),!0}catch{return!1}},io=(e,r=new WeakMap)=>{if(Uu(e))return Cr.fromMetadata(e);if(e===null||typeof e!=="object")return e;let t=r.get(e);if(t!==void 0)return t;if(Array.isArray(e)){let u=[];r.set(e,u);for(let c of e)u.push(io(c,r));return u}let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)return e;let a={};r.set(e,a);for(let[u,c]of Object.entries(e))a[u]=io(c,r);return a},Ha=async({bootstrap:e,thread:r,totalNumberOfThread:t})=>{if(e===void 0)return;if(!Wu(e))throw TypeError("worker.bootstrap must include a non-empty href");let n=await import(Ar(e.href)),a=e.name??Du,u=n[a];if(typeof u!=="function"){let f=Object.keys(n).join(", ");throw TypeError(`worker.bootstrap expected export "${a}" from "${e.href}" to be a function. Available exports: ${f||"(none)"}`)}let c=Object.freeze({thread:r,totalNumberOfThread:t,runtime:Oe});await u(io(e.data),c)};var ja=()=>{return},Ka=()=>{};var Hu=(e)=>{let r=globalThis.Deno?.env;if(typeof r?.get==="function")try{return r.get(e)}catch{}try{return $e()?.env?.[e]}catch{return}},ju=Hu("KNITTING_DEBUG"),Ga=new Set((ju??"").split(",").map((e)=>e.trim()).filter((e)=>e.length>0)),$a=Ga.size>0,rn=(e)=>{let r=new Set(Ga);if(e===!0)r.add("*");else if(e!==void 0&&e!==!1){for(let[t,n]of Object.entries(e))if(n===!0)r.add(t)}return r};var $u="__knittingWorkerFatal",tn=(e)=>{let r=String(e?.message??e),t={[$u]:r},n=!1;try{tt?.postMessage?.(t),n=tt!==void 0}catch{}if(!n)try{globalThis.postMessage(t),n=!0}catch{}if(!n){try{console.error(`Worker startup failed: ${r}`)}catch{}if(Rr)try{$e()?.exit?.(1)}catch{}}},zu=(e)=>{let r=(n)=>{let a=qo(n);if(a!==void 0)e(a)};if(tt!==void 0){xo(tt,r);return}globalThis.addEventListener?.("message",(n)=>{r(n?.data)})},nn=async(e)=>{Xn(),Zn(),eo();let{debug:r,sab:t,thread:n,startAt:a,workerOptions:u,lock:c,returnLock:f,abortSignalSAB:S,abortSignalMax:N,payloadConfig:P,bufferReferenceReturn:H,permission:k,notifyOnHostPublish:m,totalNumberOfThread:O,list:x,ids:w,names:M,at:J,steal:_}=e;ro(e),to({sab:t,lock:c,returnLock:f});let q=rn(r),j=q.size>0?await Promise.resolve().then(() => (qa(),Va)).then((Z)=>Z.initDebug({name:`w${n}`,runtime:Oe,namespaces:q})):void 0,te={thisIsAHint:0},oe=Dt({sabObject:{sharedSab:t},isMain:!1,thread:n,startTime:a}),K=Pr({headers:c.headers,headerSlotStrideU32:c.headerSlotStrideU32,LockBoundSector:c.lockSector,payload:c.payload,payloadSector:c.payloadSector,payloadConfig:P,textCompat:c.textCompat,processBoundary:Rr,consumers:_?.consumers,consumerId:_?.consumerId,regionLanes:_?.regionLanes}),ee=Pr({headers:f.headers,headerSlotStrideU32:f.headerSlotStrideU32,LockBoundSector:f.lockSector,payload:f.payload,payloadSector:f.payloadSector,payloadConfig:P,textCompat:f.textCompat,processBoundary:Rr,notifyOnHostPublish:m}),G=u?.timers,C=G?.spinMicroseconds??Math.max(1,O)*50,Q=j!==void 0?Number.POSITIVE_INFINITY:G?.parkMs??Math.max(1,O)*50,ue=(()=>{let Z=typeof G?.pauseNanoseconds==="number"?Zt({pauseInNanoseconds:G.pauseNanoseconds}):Jn;return()=>Z()})(),{opView:X,rxStatus:ce,txStatus:s}=oe,L=Atomics.store,g=Atomics.load,B=ja();await Ha({bootstrap:u?.bootstrap,thread:n,totalNumberOfThread:O}),j?.envPhase("bootstrap");let l=await Ia({list:x,isWorker:!0,ids:w,names:M,at:J,permission:k});j?.envPhase("tasks"),j?.log("imports",`${l.length} task(s) from ${x.map((Z)=>Z.split(/[\\/]/).pop()||Z).join(", ")}`),no({list:x,ids:w,names:M,listOfFunctions:l});let p=S?dt({sab:S,maxSignals:N}):void 0,{enqueueLock:h,serviceBatchImmediate:z,hasCompleted:b,writeBatch:y,hasPending:D,getAwaiting:ne,drainReturnReleases:re,releaseReturnedBufferReference:me}=Xo({listOfFunctions:l,workerOptions:u,lock:K,returnLock:ee,borrowReturnedBufferReferences:H==="borrow",hasAborted:p?.hasAborted,stealing:_!==void 0});zu(me),L(ce,0,1);let ge=64,ve=Da({opView:X,at:0,rxStatus:ce,txStatus:s,pauseInNanoseconds:G?.pauseNanoseconds,enqueueLock:h,write:()=>b()?y(ge):0,flushBeforeClaim:_!==void 0,nativeWaitU32:B,useSharedMemoryWait:!(Rr&&Oe==="node"&&B===void 0)}),Ne=Nr(),fe=Ne.port1,he=Ne.port2,be=(Z)=>he.postMessage(Z),de=!1,De=0,xe=0,He=10,We=g(X,0),Le=()=>{if(de)return;de=!0,be(null)},je=(Z)=>{if(de)return;if(de=!0,Z<=0&&typeof et==="function"){et(I);return}if(Z<=0){be(null);return}if(typeof setTimeout==="function"){setTimeout(I,Z);return}be(null)},qe=j?.enabled("signals")===!0,er=b,sr=D,mr=ne,o=re,E=ue,T=qe?()=>{let Z=h();if(Z)j.log("signals","work from=host");return Z}:h,d=qe?(Z)=>{let we=y(Z);if(we>0)j.log("signals",`result count=${we}`);return we}:y,W=qe?()=>{let Z=z();if(Z>0)j.log("signals",`run count=${Z}`);return Z}:z,V=qe?(Z,we,ke)=>{j.log("signals",`idle token=${Z}`),ve(Z,we,ke)}:ve,Y=_!==void 0,I=()=>{de=!1;let Z=!0,we=0;while(!0){if(Y){if(Z=!1,er()){if(d(ge)>0)Z=!0}Z=T()||Z}else if(Z=T(),er()){if(d(ge)>0)Z=!0}if(o(),sr()){if(W()>0)Z=!0}if((we=mr())>0){if(we!==xe)De=0;xe=we,De++;let ke=Math.min(He,Math.max(0,De-1));je(ke);return}if(De=xe=0,!Z){if(s[te.thisIsAHint]===1){E();continue}V(We,C,Q),We=g(X,0)}}},se=fe;if(typeof se.on==="function")se.on("message",I);else se.onmessage=I;se.start?.(),he.start?.(),j?.log("lifecycle",`ready: ${l.length} task(s) on thread ${n}/${O}, entering dispatch loop`),Le()},Yu=()=>{let e=globalThis.WorkerGlobalScope;if(typeof e==="function")try{if(globalThis instanceof e)return!0}catch{}if(Er&&typeof globalThis.self<"u")return!0;return!1},Qa=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return rr(r.headers)&&rr(r.lockSector)&&rr(r.payload)&&rr(r.payloadSector)&&(r.textCompat===void 0||Et(r.textCompat))},yt=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return rr(r.sab)&&Array.isArray(r.list)&&Array.isArray(r.ids)&&Array.isArray(r.names)&&Array.isArray(r.at)&&typeof r.thread==="number"&&typeof r.totalNumberOfThread==="number"&&typeof r.startAt==="number"&&(r.abortSignalSAB===void 0||rr(r.abortSignalSAB))&&Qa(r.lock)&&Qa(r.returnLock)},Vu=()=>{let e=globalThis,r=(t)=>{if(!yt(t))return;nn(t).catch(tn)};if(typeof e.addEventListener==="function"&&typeof e.removeEventListener==="function"){let t=(n)=>{let a=n?.data;if(!yt(a))return;try{e.removeEventListener?.("message",t)}catch{}r(a)};e.addEventListener("message",t);return}e.onmessage=(t)=>{let n=t?.data;if(!yt(n))return;e.onmessage=null,r(n)}};if(xr===!1&&yt(rt))nn(rt).catch(tn);else if(Rr)Ka({isWorkerBootPayload:yt,reportWorkerStartupFatal:tn,startWorker:(e)=>{nn(e).catch(tn)}});else if(Yu())Vu();var es=((e)=>()=>e++)(0),rs=(e,r)=>{let t=2166136261;for(let n=0;n<e.length;n++)t=Math.imul(t^e.charCodeAt(n),16777619);return Math.imul(t^r,16777619)>>>0},qu=["/src/common/task-source.ts","/src/common/task-source.js","\\src\\common\\task-source.ts","\\src\\common\\task-source.js","/src/api.ts","/src/api.js","\\src\\api.ts","\\src\\api.js"],Ja=new Set(["collectStackFrames","resolveCallerHref","getCallerFilePath","buildTaskDefinition","buildTaskDefinitionFromCaller","task","importTask"]),Qu=(e)=>e!==void 0,Ju=(e)=>qu.some((r)=>e.includes(r)),ts=(e)=>e.startsWith("node:")||e.startsWith("native:")||e.startsWith("bun:")||e.startsWith("internal/"),Xu=(e,r)=>e!==void 0&&Ja.has(e)||r!==void 0&&Ja.has(r),Zu=()=>{let e=Error,r=e.prepareStackTrace;try{e.prepareStackTrace=(a,u)=>u;let t=Error().stack;if(!Array.isArray(t))return[];return t.map((a)=>{try{let u=a?.getFileName?.();if(typeof u!=="string"||u.length===0)return;return{file:u,functionName:a?.getFunctionName?.()??void 0,methodName:a?.getMethodName?.()??void 0}}catch{return}}).filter(Qu)}finally{e.prepareStackTrace=r}},Xa=(e)=>ts(e.file)||Ju(e.file)||Xu(e.functionName,e.methodName),co,ns=(e)=>{co=typeof e==="string"&&e.length>0?Ar(e):void 0};var os=(e)=>{if(co!==void 0)return co;let r=Zu(),t=r[e],n=(t&&!Xa(t)?t.file:void 0)??r.find((a)=>!Xa(a))?.file??r.find((a)=>!ts(a.file))?.file;if(!n)throw Error("Unable to determine caller file. This runtime exposes no stack traces (e.g. Andromeda); call setModuleUrl(import.meta.url) at the top of the module that defines your tasks before creating a pool.");return Ar(n)},Za=new Map,as=(e=3)=>os(e),fo=(e=3)=>{let r=os(e),t=Za.get(r)??0;return Za.set(r,t+1),[r,t]};var ss=(e,r)=>{let t=e;return t.reject=r,t},on=()=>{let e=Promise.withResolvers;if(typeof e==="function"){let a=e.call(Promise);return{promise:ss(a.promise,a.reject),resolve:a.resolve,reject:a.reject}}let r,t;return{promise:ss(new Promise((a,u)=>{r=a,t=u}),t),resolve:r,reject:t}};var ec=31,rc=134217727,tc=5,nc=65535,oc=65535,ac=16,sc=1;var ic=performance.now.bind(performance);function lo({max:e,lock:r,returnLock:t,extraReturnLocks:n,releaseBufferReferenceReturn:a,abortSignals:u,now:c}){let f=(y)=>{throw"UNREACHABLE FROM PLACE HOLDER (main)"},S=(y)=>{let D=Ko();return D[i.ID]=y,D[i.FunctionID]=0,D.value=null,D.resolve=f,D.reject=f,D},N=e??10,P=Array.from({length:N},(y,D)=>S(D)),H=Array.from({length:N},(y,D)=>D),k=(y)=>H.push(y),m=()=>H.pop(),O=(y)=>P.push(y),{publish:x,flushPending:w,hasPendingFrames:M,getPendingFrameCount:J,getPendingPromiseCount:_,resetPendingState:q}=r,j=0,te=u?.resetSignal,oe=c??ic,K=(y)=>{j=j-1|0,Sn(y),Ur(y),y.value=null,y.resolve=f,y.reject=f,k(y[i.ID])},ee=[t,...n??[]].map((y)=>y.resolveHost({queue:P,activeRejectPlaceholder:f,onResolved:K})),G=[t,...n??[]].map((y)=>typeof y.waitForHostChange==="function"?y.waitForHostChange:()=>{return}),C=[t,...n??[]].map((y)=>typeof y.setHostWaiterArmed==="function"?y.setHostWaiterArmed:(D)=>{}),Q=Array(ee.length);if(a!==void 0)Q[0]=a;let ue=(y)=>{let D=ee[y],ne=Q[y];return ne===void 0?D():Tn(ne,D)},X=ee.length===1?a===void 0?ee[0]:()=>Tn(a,ee[0]):()=>{let y=0;for(let D=0;D<ee.length;D++)y=y+ue(D)|0;return y},ce=new Uint8Array(G.length),s,L=0,g=(y)=>{for(let D of C)D(y)},B=(y,D)=>{s=y,g(!0);let ne=!0;for(let re=0;re<G.length;re++){if(ce[re]!==0)continue;let me;try{me=G[re](D)}catch{me=void 0}if(me===void 0){ne=!1;break}ce[re]=1;let ge=L,ve=()=>{if(ce[re]===0)return;if(ce[re]=0,C[re](!1),ge!==L)return;s?.()};if(!me.async)ve();else Promise.resolve(me.value).then(ve,ve)}if(!ne)s=void 0,g(!1),L=L+1|0;return ne},l=()=>(j-_()|0)>0,p=()=>J()===0&&!l(),h=(y)=>{for(let D=0;D<P.length;D++){let ne=P[D];if(ne.reject!==f){try{ne.reject(y)}catch{}Ur(ne),ne.resolve=f,ne.reject=f,P[D]=S(D)}}q(),j=0},z=()=>w(),b=(y)=>x(y);return{rejectAll:h,hasPendingFrames:M,txIdle:p,completeFrame:X,waitForCompletion:B,setCompletionWaiterArmed:g,setReturnHooks:(y,D)=>{if(!Number.isInteger(y)||y<0||y>=Q.length)throw RangeError(`return lane ${y} out of range`);Q[y]=D},enqueue:(y,D,ne)=>{let re=D!==void 0,me=y&nc,ge=ne!==void 0&&u!==void 0;return(ve)=>{if(j===P.length){let be=j+32,de=P.length;while(be>de)O(S(de)),k(de),de++}let Ne=m(),fe=P[Ne],he=on();if(fe[i.FunctionID]=me,ge){let be=u.getSignal();if(be===u.closeNow)return Promise.reject(Ua);new so(he,()=>te(be),()=>{u.setSignal(be)});let de=(be+sc&oc)>>>0;fe[i.FunctionID]=(de<<ac|me)>>>0}if(fe.value=ve,fe[i.ID]=Ne,fe.resolve=he.resolve,fe.reject=he.reject,re)fe[i.slotBuffer]=(fe[i.slotBuffer]&ec|(oe()>>>0&rc)<<tc>>>0)>>>0;return x(fe),j=j+1|0,he.promise}},flushToWorker:z,enqueueKnown:b,settlePromisePayload:(y,D,ne)=>{if(y.reject===f)return!1;if(D){try{y.reject(ne)}catch{}return Sn(y),Ur(y),y.value=null,y.resolve=f,y.reject=f,j=j-1|0,k(y[i.ID]),!1}return y.value=ne,b(y)}}}var is=()=>{return},us=()=>{return},cs=()=>{},Ir=()=>{throw Error("process workers are unavailable in the browser build")},fs=Ir,ls=Ir,an=Ir,ds=Ir,ys=Ir,sn=Ir,ps=Ir,ms=Ir;var gs=(e)=>e.split("=",1)[0],hs=new Set(["--permission","--experimental-permission","--allow-fs-read","--allow-fs-write","--allow-worker","--allow-child-process","--allow-net","--allow-addons","--allow-ffi","--allow-wasi"]),uc=new Set(["--experimental-ffi","--experimental-transform-types","--expose-gc","--no-warnings",...hs]),cc=(e)=>uc.has(gs(e)),fc=(e)=>hs.has(gs(e)),po=(e)=>{if(!e||e.length===0)return;let r=e.filter(cc);if(r.length===0)return;let t=new Set,n=[];for(let a of r){if(t.has(a))continue;t.add(a),n.push(a)}return n},bs=(e)=>{let r=po(e);if(!r||r.length===0)return;let t=r.filter((n)=>!fc(n));return t.length>0?t:void 0},lc=(e)=>{if(e===null||typeof e!=="object")return!1;let r=Object.getPrototypeOf(e);return r===Object.prototype||r===null},yo=(e,r=new WeakMap)=>{if(e instanceof Cr)return e.toMetadata();if(e===null||typeof e!=="object")return e;let t=r.get(e);if(t!==void 0)return t;if(Array.isArray(e)){let a=[];r.set(e,a);for(let u of e)a.push(yo(u,r));return a}if(!lc(e))return e;let n={};r.set(e,n);for(let[a,u]of Object.entries(e))n[a]=yo(u,r);return n},Ss=(e)=>{let r=e.bootstrap;if(r===void 0||r.data===void 0)return e;return{...e,bootstrap:{...r,data:yo(r.data)}}},As=(e)=>{try{return e.unref?.(),Promise.resolve(e.terminate()).then(()=>{},()=>{})}catch{return Promise.resolve()}};var Bs=Oe==="deno"||Oe==="node"?et:void 0,ws=128,dc=1,un=({signalBox:{opView:e,txStatus:r,rxStatus:t},queue:{completeFrame:n,hasPendingFrames:a,flushToWorker:u,txIdle:c,waitForCompletion:f,setCompletionWaiterArmed:S},channelHandler:N,dispatcherOptions:P,notifySignal:H,crossProcess:k})=>{let{load:m,store:O,notify:x}=Atomics,w=e.buffer instanceof SharedArrayBuffer,M=H??(()=>{if(w)x(e,0,1)}),J=()=>N.notify(),_=k!==!0&&(P?.doorbell??!0)&&(Oe==="bun"||Oe==="node")&&typeof Atomics.waitAsync==="function",q=_,j=!1,te=0,oe=1000,K=0,ee=P?.stallFreeLoops,G=ee!==void 0?Math.max(0,ee|0):_?dc:ws,C=Math.max(0,(P?.maxBackoffMs??10)|0),Q,ue=!1,X=()=>{if(!j)return;te=te+1|0,j=!1,S(!1)},ce=()=>{if(!q||j===!0){if(!q)J();return}let g=te+1|0;te=g,j=!0;let B=!1,l=()=>{if(!j||te!==g||B)return;B=!0,j=!1,te=te+1|0,S(!1),J()},p=!1;try{p=f(l,oe)}catch{p=!1}if(!p){if(q=!1,ee===void 0)G=ws;j=!1,te=te+1|0,S(!1),J()}},s=()=>{if(ue){s.rerun=!0;return}if(X(),c()){s.isRunning=!1;return}if(ue=!0,Q!==void 0)clearTimeout(Q),Q=void 0;do{if(s.rerun=!1,r[0]=1,m(t,0)===0)O(e,0,1),M();let g=!1,B=!0;while(B){if(B=!1,n()>0)B=!0,g=!0;while(a()){if(!u())break;B=!0}}if(r[0]=0,!c()){if(g||a())K=0;else K=K+1|0;ue=!1,L();return}K=0}while(s.rerun);s.isRunning=!1,ue=!1};s.isRunning=!1,s.rerun=!1;let L=()=>{if(K<=G){J();return}if(q){s.isRunning=!1,ce();return}if(Q!==void 0)return;let g=K-G-1|0;if(g<0)g=0;else if(g>C)g=C;s.isRunning=!1,Q=setTimeout(()=>{if(Q=void 0,!s.isRunning)s.isRunning=!0,s()},g)};return{check:s}};class qr{channel;port1;port2;#e;#r;constructor(e="auto"){if(e==="auto"&&Bs!==void 0){let n=Bs,a=()=>{this.#e?.()};this.#r=()=>{n(a)};return}let r=Nr(),t=r.port2;this.channel=r,this.port1=r.port1,this.port2=t,this.#r=()=>{t.postMessage(null)}}notify(){this.#r()}open(e){this.#e=e;let r=this.port1;if(r===void 0)return;if(typeof r.on==="function")r.on("message",e);else r.onmessage=e;this.port1?.start?.(),this.port2?.start?.()}close(){if(this.#e=void 0,this.port1===void 0||this.port2===void 0)return;this.port1.onmessage=null,this.port2.onmessage=null,this.port1.close?.(),this.port2.close?.()}}var Ts=()=>{throw Error("compiled workers are unavailable in the browser build")};var ks="__knittingWorkerFatal",yc=(e)=>!!e&&typeof e==="object"&&typeof e[ks]==="string",pc=1,mc=258,Es=(e)=>{if(!Number.isFinite(e))return;let r=Math.floor(e);return r>0?r:void 0},Rs=(e)=>Es(e)??mc,mo=(e)=>Math.max(1,Math.ceil(e/32))*Uint32Array.BYTES_PER_ELEMENT,gc=(e)=>{let r=e?.timers?.parkMs??pc;if(e===void 0)return{timers:{parkMs:r}};return{...e,timers:{...e.timers,parkMs:r}}},xs=(e)=>({...e,mode:"fixed",payloadInitialBytes:e.payloadMaxByteLength}),hc=(e)=>{for(let r=Te.slots;r>=1;r>>=1)if(Te.slots/r>=e+1)return r;throw RangeError(`${e} stealing workers need more than ${Te.slots} lanes`)},Ls=Te.slots-1,Ps=({threads:e,payload:r,regionLanes:t,abortSignalCapacity:n,usesAbortSignal:a,processWorker:u})=>{let c=dr({options:r}),f=u===void 0?c:xs(c),S=()=>f.mode==="growable"?ze(f.payloadInitialBytes,f.payloadMaxByteLength):ze(f.payloadInitialBytes),N=()=>_n({signalBytes:0,abortBytes:0,lockSectorBytes:jr,headerSlotStrideU32:yr,slotCount:Te.slots,headerLayout:"split"}),P=(te,oe)=>({...te,payload:oe,textCompat:Dr({headers:te.headers,payload:oe})}),H=hc(e),k=t===void 0?H:Math.min(Math.max(1,t|0),H),m=Rs(n),O=u===void 0?void 0:ls({threads:e,signalBytes:u.signalBytes,abortBytes:a===!0?mo(m):0,abortSignalMax:a===!0?m:void 0,payloadBytes:f.payloadMaxByteLength,sharedMemory:u.sharedMemory}),x=O===void 0?(()=>{let te=N();return P(te.lock,S())})():P(O.workers[0].controlLayout.lock,O.workers[0].lockPayload),w=Pr({headers:x.headers,headerSlotStrideU32:x.headerSlotStrideU32,LockBoundSector:x.lockSector,payload:x.payload,payloadSector:x.payloadSector,payloadConfig:f,textCompat:x.textCompat,consumers:e,regionLanes:k,processBoundary:O!==void 0}),M=[],J=[];for(let te=0;te<e;te++){let oe=O===void 0?P(N().returnLock,S()):P(O.workers[te].controlLayout.returnLock,O.workers[te].returnPayload);M.push(oe),J.push(Pr({headers:oe.headers,headerSlotStrideU32:oe.headerSlotStrideU32,LockBoundSector:oe.lockSector,payload:oe.payload,payloadSector:oe.payloadSector,payloadConfig:f,textCompat:oe.textCompat,processBoundary:O!==void 0}))}let _=a===!0?O?.workers[0]?.controlLayout.abortSignals??ze(mo(m)):void 0,q=_===void 0?void 0:dt({sab:_,maxSignals:m}),j=lo({lock:w,returnLock:J[0],extraReturnLocks:J.slice(1),abortSignals:q});return{submitBuffers:x,returnBuffers:M,hostSubmitLock:w,hostReturnLocks:J,sharedQueue:j,regionLanes:k,processMemory:O,abortSignalSAB:_,abortSignalMax:O?.abortSignalMax??(_===void 0?void 0:m)}},vs=({list:e,ids:r,names:t,sab:n,thread:a,debug:u,hostDebug:c,totalNumberOfThread:f,source:S,at:N,workerOptions:P,workerExecArgv:H,permission:k,host:m,payload:O,bufferReferenceReturn:x,abortSignalCapacity:w,usesAbortSignal:M,sharedChannelHandler:J,stealPool:_})=>{if(P?.runtime==="compiled")return Ts({list:e,names:t,workerOptions:P,hostDebug:c,abortSignalCapacity:w,usesAbortSignal:M});let q=new URL(import.meta.url),j=Ro,te=Ss(gc(P)),oe=te.runtime==="process",K=oe?sn(te):void 0,ee=oe?ds(te):void 0,G=oe?an(te):void 0;if(!oe&&typeof j!=="function")throw Error("Worker is not available in this runtime");if(fn&&typeof SharedArrayBuffer!=="function")throw Error("SharedArrayBuffer is unavailable: serve the page cross-origin isolated (Cross-Origin-Opener-Policy: same-origin, Cross-Origin-Embedder-Policy: require-corp).");let C=j,Q=Es,ue=dr({options:O}),X=oe?xs(ue):ue,ce=Rs(w),s=Q(n?.size),L=n?.sharedSab;if(oe&&L!=null)throw Error("process worker runtime cannot use an external signal buffer");let g=Math.max(ut,s??ut),B=_===void 0&&M===!0?mo(ce):0,l=_?.processMemory,p=!oe?void 0:l===void 0?fs({signalBytes:g,abortBytes:B,payloadBytes:X.payloadMaxByteLength,thread:a,sharedMemory:G}):l.workers[a]??(()=>{throw RangeError(`stealing process pool has no shared-memory slice for worker ${a}`)})(),h=p===void 0?is(u):void 0,z=h?.createBuffer??Fr,b=h?.createBuffer,y=()=>b?b(X.payloadMaxByteLength):X.mode==="growable"?ze(X.payloadInitialBytes,X.payloadMaxByteLength):ze(X.payloadInitialBytes),D=()=>_n({signalBytes:g,abortBytes:B,lockSectorBytes:jr,headerSlotStrideU32:yr,slotCount:Te.slots,headerLayout:"split",createBuffer:z}),ne=p?.controlLayout??D(),re=p?.lockPayload??y(),me=_?.submitBuffers??{...ne.lock,payload:re,textCompat:Dr({headers:ne.lock.headers,payload:re})},ge=p?.returnPayload??y(),ve=_?.returnBuffers??{...ne.returnLock,payload:ge,textCompat:Dr({headers:ne.returnLock.headers,payload:ge})},Ne=_?.hostSubmitLock??Pr({headers:me.headers,headerSlotStrideU32:me.headerSlotStrideU32,LockBoundSector:me.lockSector,payload:me.payload,payloadSector:me.payloadSector,payloadConfig:X,textCompat:me.textCompat,processBoundary:oe}),fe=_?.hostReturnLock??Pr({headers:ve.headers,headerSlotStrideU32:ve.headerSlotStrideU32,LockBoundSector:ve.lockSector,payload:ve.payload,payloadSector:ve.payloadSector,payloadConfig:X,textCompat:ve.textCompat,processBoundary:oe}),he=_?.abortSignalSAB??(M===!0?ne.abortSignals:void 0),be=he&&_===void 0?dt({sab:he,maxSignals:ce}):void 0,de=Dt({sabObject:L==null?{size:s,sharedSab:ne.signals}:n,isMain:!0,thread:a}),De=de,xe=us({processRuntime:K,signal:De.opView}),He=x==="borrow"&&typeof WeakRef==="function"?new Map:void 0,We=(ye)=>{He?.delete(ye),U?.postMessage?.(Qo(ye))},Le=(ye)=>{if(He===void 0)return;for(let[Be,Ke]of He)try{let or=Ke.ref.deref();if(or!==void 0){or.revokeBorrow(ye);continue}let A=Ke.aliasBuffer?.deref();if(A!==void 0&&Jo(Ke.runtime,A)&&ye)We(Be)}catch{}He.clear()},je=x==="borrow"?{release:We,track:(ye,Be,Ke)=>{if(He===void 0)return;let or=He.get(Be);if(or!==void 0){if(Ke!==void 0)or.aliasBuffer=new WeakRef(Ke);return}He.set(Be,{ref:new WeakRef(ye),aliasBuffer:Ke===void 0?void 0:new WeakRef(Ke),runtime:ye.runtime})}}:void 0,qe=_?.sharedQueue??lo({lock:Ne,returnLock:fe,abortSignals:be,releaseBufferReferenceReturn:je});if(_!==void 0)_.sharedQueue.setReturnHooks(_.consumerId,je);let{enqueue:er,rejectAll:sr,txIdle:mr}=qe,o=De.opView,E=Atomics.add,T=Atomics.load,d=Atomics.notify,W=o.buffer instanceof SharedArrayBuffer,V=xe??(W?()=>d(o,0,1):void 0),Y=()=>{if(T(De.rxStatus,0)===0)E(o,0,1),V?.()},I=()=>{},se=()=>I(),Z,we=J===void 0&&_===void 0,ke=J??new qr,{check:R}=_!==void 0?{check:void 0}:un({signalBox:De,queue:qe,channelHandler:ke,dispatcherOptions:m,notifySignal:xe,crossProcess:oe});if(we&&R!==void 0)ke.open(R),Z=ke,I=()=>{if(R.isRunning===!0)return;R.isRunning=!0,Promise.resolve().then(R),Y()};let U,le=S??q;c?.(`worker thread=${a} mode=${oe?"process":pn?"worker_threads":"worker"}${K?` runtime=${K}`:""} url=${String(le)}`);let Pe={sab:de.sab,abortSignalSAB:he,abortSignalMax:_?.abortSignalMax??(M===!0?ce:void 0),list:e,ids:r,names:t,at:N,thread:a,debug:u,workerOptions:te,totalNumberOfThread:f,startAt:De.startAt,lock:me,returnLock:ve,payloadConfig:X,bufferReferenceReturn:x,permission:k,notifyOnHostPublish:!oe&&m?.doorbell!==!1&&(Oe==="bun"||Oe==="node")&&typeof Atomics.waitAsync==="function",steal:_===void 0?void 0:{consumers:_.consumers,consumerId:_.consumerId,regionLanes:_.regionLanes}},Ae={type:"module",workerData:Pe},_e=H&&H.length>0?{...Ae,execArgv:H}:Ae;if(p!==void 0)U=ps({workerUrl:le,bootPayload:ms(Pe,p),memory:p,processRuntime:K,commandPrefix:ee,permission:k});else if(pn)try{U=new C(le,_e)}catch(ye){if(ye?.code==="ERR_WORKER_INVALID_EXEC_ARGV"){let Be=po(_e.execArgv);if(Be&&Be.length>0)try{U=new C(le,{...Ae,execArgv:Be})}catch(Ke){if(Ke?.code==="ERR_WORKER_INVALID_EXEC_ARGV"){let or=bs(Be);if(or&&or.length>0)try{U=new C(le,{...Ae,execArgv:or})}catch{U=new C(le,Ae)}else U=new C(le,Ae)}else throw Ke}else U=new C(le,Ae)}else throw ye}else U=new C(le,{type:"module"}),U.postMessage?.(Pe);let Qe,tr=()=>{_?.hostSubmitLock.deactivateStealConsumer(_.consumerId)},wr=()=>{try{U.unref?.(),Promise.resolve(U.terminate()).catch(()=>{}).finally(tr)}catch{tr()}},Tr=(ye,Be=!1)=>{if(Qe)return;Qe=ye,Le(Be),sr(ye),Z?.close()},Ce=(ye)=>{if(!yc(ye))return;Tr(`Worker startup failed: ${ye[ks]}`,!0),wr()},ir=(ye)=>{let Be=String(ye?.message??ye);Tr(`Worker crashed: ${Be}`),wr()},nr=U;if(typeof nr.on==="function")nr.on("message",Ce),nr.on("error",ir),nr.on("exit",(ye)=>{if(tr(),Qe!==void 0)return;Tr(`Worker exited with code ${typeof ye==="number"?ye:-1}`)});else{let ye=U;if(typeof ye.addEventListener==="function")ye.addEventListener("message",(Be)=>{Ce(Be?.data)}),ye.addEventListener("error",(Be)=>{ir(Be?.error??Be?.message??Be)});else ye.onmessage=(Be)=>{Ce(Be?.data)},ye.onerror=(Be)=>{ir(Be)}}return Ne.setPromiseHandler((ye,Be,Ke)=>{qe.settlePromisePayload(ye,Be,Ke),se()}),{txIdle:mr,call:({fnNumber:ye,timeout:Be,abortSignal:Ke})=>{let or=er(ye,Be,Ke);return(A)=>{let F=or(A);return se(),F}},kills:async()=>{Tr("Thread closed",!0);let ye=As(U);if(p!==void 0)await ye;cs(p)},lock:Ne,processSharedMemoryBackings:h?.backings,dispatcherCheck:R,laneWake:J!==void 0||_!==void 0?Y:void 0,bindSend:J!==void 0||_!==void 0?(ye)=>void(I=ye):void 0}};var _s=()=>{return},Cs=()=>[],Is=()=>{throw Error("process workers are unavailable in the browser build")},Ms=Is,Fs=Is;var Os=(e,r,t)=>{switch(t??"roundRobin"){case"roundRobin":case"robinRound":return bc(e)(r)(r.length);case"firstIdle":return Sc(e)(r)(r.length);case"randomLane":return Ac(e)(r)(r.length);case"firstIdleOrRandom":return Bc(e)(r)(r.length)}throw Error(`Unknown balancer: ${t}`)},go=({contexts:e,balancer:r,handlers:t,inlinerGate:n})=>{let a=typeof r==="object"&&r!=null?r.strategy:r;if(e.length<2)throw Error(e.length===0?"No threads available.":"Cannot rotate with a single thread.");if(t.length===0)throw Error("No handlers provided.");let u=Os(e,t,a);if(!n)return u;let c=n.index|0,f=Number.isFinite(n.threshold)?Math.max(1,Math.floor(n.threshold)):1;if(f<=1||c<0||c>=t.length)return u;let S=t.length-1;if(S<=0)return u;let N=Array(S),P=Array(S);for(let x=0,w=0;x<t.length;x+=1){if(x===c)continue;N[w]=t[x],P[w]=e[x],w+=1}let H=Os(P,N,a),k=0,m=(x)=>(k-=1,x),O=(x)=>{throw k-=1,x};return(x)=>{k+=1;let w=k>=f?u:H;try{return w(x).then(m,O)}catch(M){throw k-=1,M}}};function bc(e){return(r)=>(t)=>{let n=Math.min(t,r.length);if(n<=1)return(u)=>r[0](u);let a=0;return(u)=>{let c=a;if(a+=1,a===n)a=0;return r[c](u)}}}function Sc(e){let r=e.map((t)=>t.txIdle);return(t)=>(n)=>{let a=Math.min(n,t.length);if(a<=1)return(c)=>t[0](c);let u=0;return(c)=>{for(let S=0;S<a;S+=1)if(r[S]())return t[S](c);let f=u;if(u+=1,u===a)u=0;return t[f](c)}}}var Ac=(e)=>(r)=>(t)=>{let n=Math.min(t,r.length);if(n<=1)return(a)=>r[0](a);return(a)=>{let u=Math.random()*n|0;return r[u](a)}};function Bc(e){let r=e.map((t)=>t.txIdle);return(t)=>(n)=>{let a=Math.min(n,t.length);if(a<=1)return(u)=>t[0](u);return(u)=>{for(let f=0;f<a;f+=1)if(r[f]())return t[f](u);let c=Math.random()*a|0;return t[c](u)}}}var Br={Free:-1,Pending:0},Qr={Reject:0,Resolve:1},wc=(e)=>{if(e==null)return;if(typeof e==="number")return e>=0?{ms:e,kind:Qr.Reject,value:Error("Task timeout")}:void 0;let r=e.time;if(!(r>=0))return;if("default"in e)return{ms:r,kind:Qr.Resolve,value:e.default};if(e.maybe===!0)return{ms:r,kind:Qr.Resolve,value:void 0};if("error"in e)return{ms:r,kind:Qr.Reject,value:e.error};return{ms:r,kind:Qr.Reject,value:Error("Task timeout")}},Tc=(e,r)=>new Promise((t,n)=>{let a=!1,u=setTimeout(()=>{if(a)return;if(a=!0,r.kind===Qr.Resolve)t(r.value);else n(r.value)},r.ms);e.then((c)=>{if(a)return;a=!0,clearTimeout(u),t(c)},(c)=>{if(a)return;a=!0,clearTimeout(u),n(c)})}),kc=(()=>({hasAborted:()=>!1,now:()=>performance.now()}))(),Ec=(e,r,t=!1)=>{let n=wc(r),a=t?(u)=>e(u,kc):e;if(!n)return a;return(u)=>{let c=a(u);return c instanceof Promise?Tc(c,n):c}},Ns=({tasks:e,genTaskID:r,batchSize:t})=>{let a=(Array.isArray(e)?e:Object.values(e).sort((g,B)=>g.name.localeCompare(B.name))).map((g)=>{if(g.imported===!0)return()=>{throw Error("Imported task cannot run on the host inline lane")};return Ec(g.f,g.timeout,g.abortSignal!==void 0)}),u=16,c=new Int32Array(16),f=new Int8Array(16).fill(Br.Free),S=Array(16),N=Array(16).fill(-1),P=Array(16),H=Array(16),k=16;for(let g=0;g<16;g++)H[g]=15-g;let m=new cr(16),O=0,x=!1,w=!1,M=Number.isFinite(t)?Math.max(1,Math.floor(t??1)):Number.POSITIVE_INFINITY,J=Nr(),_=J.port1,q=J.port2,j=(g)=>q.postMessage(g),te=()=>m.isEmpty===!1,oe=typeof queueMicrotask==="function"?queueMicrotask:(g)=>Promise.resolve().then(g),K=()=>{if(O===0||x)return;x=!0,j(null)},ee=()=>{if(O===0||x||w)return;w=!0,oe(ce)},G=(g)=>{m.push(g),ee()},C=(g,B)=>{if(f[g]!==Br.Pending||N[g]!==B)return;G(g)},Q=(g,B,l,p)=>{if(f[g]!==Br.Pending||N[g]!==B)return;let h=P[g];if(h)if(l)h.reject(p);else h.resolve(p);s(g)};function ue(){if(k>0)return H[--k];let g=c.length,B=g<<1,l=new Int32Array(B);l.set(c),c=l;let p=new Int8Array(B);p.fill(Br.Free),p.set(f),f=p,S.length=B,N.length=B,N.fill(-1,g),P.length=B;for(let h=B-1;h>=g;--h)H[k++]=h;return H[--k]}function X(g=!1){let B=0;while(B<M){let l=m.shiftNoClear();if(l===void 0)break;let p=l|0;if(f[p]!==Br.Pending)continue;let h=N[p];try{let z=S[p],b=c[p],y=a[b](z);if(!(y instanceof Promise)){Q(p,h,!1,y),B++;continue}y.then((D)=>Q(p,h,!1,D),(D)=>Q(p,h,!0,D)),B++}catch(z){Q(p,h,!0,z),B++}}if(te()){if(g)K();else j(null);return}if(!g)x=!1}function ce(){if(!w)return;X(!0),w=!1}function s(g){if(O--,f[g]=Br.Free,c[g]=0,N[g]=-1,S[g]=void 0,P[g]=void 0,H[k++]=g,O===0)x=!1}let L=({fnNumber:g})=>(B)=>{let l=r(),p=on(),h=ue();if(N[h]=l,S[h]=B,c[h]=g|0,P[h]=p,f[h]=Br.Pending,O++,B instanceof Promise)B.then((z)=>{if(N[h]!==l)return;S[h]=z,C(h,l)},(z)=>Q(h,l,!0,z));else G(h);return p.promise};return _.onmessage=()=>X(!1),{kills:async()=>{for(let g=0;g<f.length;g++){if(f[g]!==Br.Pending)continue;try{P[g]?.reject("Thread closed")}catch{}}_.onmessage=null,_.close?.(),q.onmessage=null,q.close?.(),m.clear(),k=0,H.length=0,S.fill(void 0),N.fill(-1),P.fill(void 0),c.fill(0),f.fill(Br.Free),O=0,x=!1,w=!1},call:L,txIdle:()=>O===0}};var Hs=(e,r)=>e.has("*")||e.has(r),Rc=(e)=>{if(!((u)=>Hs(e,u))("host"))return;let t=performance.now(),n=`host·${Oe}`;return{log:(u)=>{let c=(performance.now()-t).toFixed(1);console.error(`[${n}·+${c}ms] host: ${u}`)}}},xc=()=>{let e=globalThis.Deno?.cwd;if(typeof e==="function")try{return e()}catch{}let r=$e();if(typeof r?.cwd==="function")try{return r.cwd()}catch{return}return},Ds=(e,r="(none)")=>e&&e.length>0?e.join(","):r,js=65535,Ws=js+1,ho="default",Lc=xr;var Pc=(e)=>{let r=e.reduce((t,n)=>(t[0].add(n.importedFrom),t[1].add(n.id),t[2].add(n.at),t[3].push(n.name),t),[new Set,new Set,new Set,[]]);return{list:[...r[0]],ids:[...r[1]],at:[...r[2]],names:r[3]}},pt=(e,r)=>{try{return new URL(e,r).href}catch{return Ar(e)}},vc=(e,r)=>{if(e===void 0)return;let t=e.processRuntime==="porffor";if(t&&e.runtime!==void 0&&e.runtime!=="compiled")throw Error('worker.processRuntime "porffor" requires worker.runtime to be compiled or omitted');let n=t&&e.runtime===void 0,a=t?{...e,runtime:"compiled",processRuntime:void 0,compiled:n?{...e.compiled,build:"always"}:e.compiled}:e,u=a.bootstrap;if(u!==void 0){let f=u.name??ho;if(typeof u.href!=="string"||u.href.length===0)throw TypeError("worker.bootstrap.href must be a non-empty string");if(typeof f!=="string"||f.length===0)throw TypeError("worker.bootstrap.name must be a non-empty string");a={...a,bootstrap:{...u,href:pt(u.href,r),name:f}}}let c=a.compiled;if(c!==void 0){if(c.build!==void 0&&typeof c.build!=="boolean"&&c.build!=="always")throw TypeError('worker.compiled.build must be a boolean or "always"');for(let[f,S]of Object.entries({artifact:c.artifact,manifest:c.manifest,compiler:c.compiler}))if(S!==void 0&&(typeof S!=="string"||S.length===0))throw TypeError("worker.compiled."+f+" must be a non-empty string");a={...a,compiled:{build:c.build,compiler:c.compiler===void 0?void 0:c.compiler.startsWith(".")||c.compiler.startsWith("/")||c.compiler.startsWith("file:")||/^[A-Za-z]:[\\/]/.test(c.compiler)?pt(c.compiler,r):c.compiler,artifact:c.artifact===void 0?void 0:pt(c.artifact,r),manifest:c.manifest===void 0?void 0:pt(c.manifest,r)}}}return a};var _c=(e)=>e!=null&&typeof e==="object"&&typeof e.f==="function",Cc=(e,r)=>Object.entries(e).map(([t,n])=>{if(_c(n))return{...n,name:t};if(typeof n==="function")return{f:n,id:-1,importedFrom:new URL(r).href,at:-1,name:t,[Vr]:!0};throw TypeError(`createPool task "${t}" must be a task definition or exported function`)}),Ks=({threads:e,debug:r,inliner:t,balancer:n,payload:a,unsafe:u,abortSignalCapacity:c,source:f,worker:S,workerExecArgv:N,permission:P,host:H})=>(k)=>{let m=u?.BufferReferenceReturn,O=$a||r!==void 0&&r!==!1,x,w=()=>x??=rn(r),M=O?Rc(w()):void 0,J=(R)=>O&&Hs(w(),R);if(xr===!1){if(J("lifecycle"))console.warn("createPool has been called with : "+JSON.stringify(rt));let R=()=>{throw Error("createPool can only be called in the main thread.")},Se=new Proxy(function(){return R()},{get:function(){return R}});return{shutdown:Se,[Symbol.dispose]:()=>{},call:Se}}let _=as(3),q=Cc(k,_).sort((R,U)=>R.name.localeCompare(U.name)),{list:j,ids:te,names:oe,at:K}=Pc(q);if(M?.log(`cwd=${xc()??"(unknown)"} caller=${_}`),q.forEach((R)=>{M?.log(`task name=${R.name} id=${R.id} from=${R.importedFrom}`)}),q.length>Ws)throw RangeError(`Too many tasks: received ${q.length}. Maximum is ${Ws} (Uint16 function IDs: 0..${js}).`);let ee=typeof t==="object"&&t!=null,G=(e??1)+(ee?1:0),C=_s({permission:P??{mode:"strict",allowImport:!0},modules:j}),Q=Cs(C),ue=$e(),X=ue?.allowedNodeEnvironmentFlags??null,ce=(R)=>{let U=R.split("=",1)[0];return U==="--permission"||U==="--experimental-permission"||U==="--allow-fs-read"||U==="--allow-fs-write"||U==="--allow-worker"||U==="--allow-child-process"||U==="--allow-net"||U==="--allow-addons"||U==="--allow-ffi"||U==="--allow-wasi"},s=(R)=>R?.filter((U)=>!ce(U)),L=(R)=>{let U=[],le=new Set;for(let Se of R){if(le.has(Se))continue;le.add(Se),U.push(Se)}return U},g=(R)=>{if(!R||R.length===0)return;if(!X)return R;let U=R.filter((le)=>{let Se=le.split("=",1)[0];return X.has(Se)});return U.length>0?U:void 0},B=Array.isArray(ue?.execArgv)?ue.execArgv:void 0,l=N??(B?X?.has("--expose-gc")===!0?B.includes("--expose-gc")?B:[...B,"--expose-gc"]:B:void 0),p=C?.unsafe===!0?s(l):l,h=L([...Q,...p??[]]),z=g(h.length>0?h:void 0);M?.log(`pool runtime=${Oe} workers=${e??1} lanes=${G} inliner=${ee?"on":"off"}`),M?.log(`modules=${Ds(j)}`),M?.log(`permission=${C?.mode??"off"} execArgv=${Ds(z)}`);let b=q.some((R)=>R.abortSignal!==void 0),y=vc(S,_),D=ue?.env?.KNITTING_DISPATCHER,ne=ue?.env?.KNITTING_STEAL?.trim().toLowerCase(),re=ne==="1"||ne==="true"?!0:ne==="0"||ne==="false"?!1:void 0,me=H?.dispatcher!==void 0||D==="serial-channel"||D==="per-thread",ge=n===void 0&&!me&&(e??1)<=Ls,ve=H?.steal??re??ge,Ne=y?.runtime==="compiled";if(y?.compiled!==void 0&&!Ne)throw Error("worker.compiled requires worker.runtime to be compiled");if(Ne){let R=[];if(ee)R.push("inliner");if(a!==void 0)R.push("payload");if(u!==void 0)R.push("unsafe");if(f!==void 0)R.push("source");if(N!==void 0)R.push("workerExecArgv");if(P!==void 0)R.push("permission");if(H!==void 0)R.push("host");if(y.bootstrap!==void 0)R.push("worker.bootstrap");if(y.timers!==void 0)R.push("worker.timers");if(y.processRuntime!==void 0)R.push("worker.processRuntime");if(y.processCommandPrefix!==void 0)R.push("worker.processCommandPrefix");if(y.processSharedMemory!==void 0)R.push("worker.processSharedMemory");if(y.resolveAfterFinishingAll!==void 0)R.push("worker.resolveAfterFinishingAll");if(q.some((U)=>U.timeout!==void 0))R.push("task timeout");if(q.some((U)=>U.imported===!0))R.push("importTask");if(R.length>0)throw Error("Compiled workers do not support: "+R.join(", "))}if(y?.bootstrap!==void 0)M?.log(`bootstrap href=${y.bootstrap.href} name=${y.bootstrap.name}`);if(ee&&y?.bootstrap!==void 0)throw Error("worker.bootstrap cannot be used with the inliner");if(y?.runtime==="process"){let R=sn(y);Fs(Ms({permission:P,resolved:C,target:{runtime:R,nodeMajor:R==="node"?ys(y):void 0}}))}let fe=Number.isFinite(y?.hardTimeoutMs)?Math.max(1,Math.floor(y?.hardTimeoutMs)):void 0;if(yn>=1)throw Error(`createPool() tried to spawn workers from inside a worker process (pool depth ${yn}). This usually means a pool is created at module scope in a module your workers import, so every worker spawns its own pool recursively. Is your createPool protected by isMain? Guard pool creation behind \`if (isMain) { ... }\` (import { isMain } from "knitting") so only the main program starts the pool.`);let he=H?.dispatcher??(D==="serial-channel"||D==="per-thread"?D:void 0),be=(()=>{if(Oe==="bun")return"per-thread";if((e??1)<=1)return"per-thread";return"serial-channel"})(),de=he??be,De=ve&&!Ne&&(e??1)>1&&!ee,xe=De?Ps({threads:e??1,payload:a,regionLanes:H?.stealRegionLanes,abortSignalCapacity:c,usesAbortSignal:b,processWorker:y?.runtime==="process"?{signalBytes:ut,sharedMemory:an(y)}:void 0}):void 0,He=!Ne&&!De&&de==="serial-channel",We=He?new qr("channel"):void 0,Le=Array.from({length:e??1}).map((R,U)=>vs({list:j,ids:te,names:oe,at:K,thread:U,debug:r,hostDebug:M?.log,totalNumberOfThread:G,source:f,workerOptions:y,workerExecArgv:z,host:H,payload:a,bufferReferenceReturn:m,abortSignalCapacity:c,usesAbortSignal:b,permission:C,sharedChannelHandler:We,stealPool:xe===void 0?void 0:{submitBuffers:xe.submitBuffers,returnBuffers:xe.returnBuffers[U],hostSubmitLock:xe.hostSubmitLock,hostReturnLock:xe.hostReturnLocks[U],sharedQueue:xe.sharedQueue,consumers:e??1,consumerId:U,regionLanes:xe.regionLanes,abortSignalSAB:xe.abortSignalSAB,abortSignalMax:xe.abortSignalMax,processMemory:xe.processMemory}})),je=De?new qr:void 0;if(De){let R=je,U=xe.sharedQueue,le=0,Se=()=>{let _e=Le.length;if(_e===0)return;let Qe=le;le=le+1<_e?le+1:0,Le[Qe].laneWake?.()},Pe=new Int32Array(ze(3*Int32Array.BYTES_PER_ELEMENT)),{check:Ae}=un({signalBox:{opView:Pe.subarray(0,1),txStatus:Pe.subarray(1,2),rxStatus:Pe.subarray(2,3)},queue:U,channelHandler:R,dispatcherOptions:H,notifySignal:Se,crossProcess:y?.runtime==="process"});R.open(Ae),Le.forEach((_e)=>{_e.bindSend(()=>{if(Ae.isRunning!==!0)Ae.isRunning=!0,Promise.resolve().then(Ae);Se()})}),M?.log(`dispatcher=steal lanes=${Le.length} g=${xe.regionLanes}`)}let qe=We;if(He){let R=We,U=Le.map((Ce)=>Ce.dispatcherCheck),le=Le.map((Ce)=>Ce.txIdle),Se=!1,Pe=!1,Ae=!1,_e=[],Qe=new Uint8Array(U.length),tr=(Ce)=>{if(Qe[Ce]===1)return;Qe[Ce]=1,_e.push(Ce)},wr=()=>{if(Pe){Ae=!0;return}Pe=!0;do{Ae=!1,Se=!1;for(let Ce=_e.length-1;Ce>=0;Ce--){let ir=_e[Ce],nr=U[ir];if(nr.isRunning!==!0)nr.isRunning=!0;if(nr(),le[ir]()){Qe[ir]=0;let mt=_e.pop();if(Ce<_e.length)_e[Ce]=mt}}}while(Ae);Pe=!1},Tr=()=>{if(Pe){Ae=!0;return}if(Se)return;Se=!0,Promise.resolve().then(wr)};R.open(wr),Le.forEach((Ce,ir)=>{let nr=Ce.laneWake;Ce.bindSend(()=>{tr(ir),Tr(),nr()})}),M?.log(`dispatcher=serial-channel lanes=${U.length}`)}else M?.log(`dispatcher=per-thread lanes=${Le.length}`);if(ee){let R=Ns({tasks:q,genTaskID:es,batchSize:t?.batchSize??1});if(t?.position==="first")Le=[R,...Le];else Le.push(R)}let er=ee?t?.position==="first"?0:Le.length-1:-1,sr=Number.isFinite(t?.dispatchThreshold)?Math.max(1,Math.floor(t?.dispatchThreshold??1)):1,mr=!1,o,E,T=()=>{if(o)return o;return mr=!0,o=Promise.allSettled(Le.map((R)=>R.kills())).then(()=>{qe?.close(),je?.close()}),o},d=({invoke:R,taskName:U})=>(le)=>{if(mr)return Promise.reject(Error("Pool is shut down"));let Se=R(le);if(!fe)return Se;return new Promise((Pe,Ae)=>{let _e=!1,Qe=setTimeout(()=>{if(_e)return;_e=!0,Ae(Error(`Task hard timeout after ${fe}ms (${U}); pool force-shutdown`)),T()},fe);Se.then((tr)=>{if(_e)return;_e=!0,clearTimeout(Qe),Pe(tr)},(tr)=>{if(_e)return;_e=!0,clearTimeout(Qe),Ae(tr)})})},W=(R)=>{if(o)return o;if(E)return E;let U=Number.isFinite(R)?Math.max(0,Math.floor(R)):0;return E=(async()=>{if(o)return await o;if(U>0)await new Promise((le)=>setTimeout(le,U));if(o)return await o;await T()})(),E},V=()=>{W()},Y=q.map((R,U)=>({name:R.name,index:U,timeout:R.timeout,abortSignal:R.abortSignal,imported:R.imported===!0})),I=new Map;for(let{name:R}of Y)I.set(R,[]);for(let R of Le)for(let{name:U,index:le,timeout:Se,abortSignal:Pe}of Y)I.get(U).push(d({taskName:U,invoke:R.call({fnNumber:le,timeout:Se,abortSignal:Pe})}));let se=(e??1)===1&&!ee,Z=(R)=>{let U=[],le=[];for(let Se=0;Se<R.length;Se+=1){if(Se===er)continue;U.push(R[Se]),le.push(Le[Se])}if(U.length===0)throw Error("Imported task has no worker lane to run on: the pool only has the host inliner. Imported tasks are never inlined on the host; add at least one worker thread.");if(U.length===1)return U[0];return go({contexts:le,balancer:n,handlers:U})},we=(R,U)=>{if(U&&ee)return Z(R);return se?R[0]:go({contexts:Le,balancer:n,handlers:R,inlinerGate:ee?{index:er,threshold:sr}:void 0})},ke;try{ke=Y.map(({name:R,imported:U})=>[R,we(I.get(R),U)])}catch(R){throw T(),R}return{shutdown:W,[Symbol.dispose]:V,call:Object.fromEntries(ke)}},Us="__task__",Ic=(e,r)=>{let t=Ks(r??{})({[Us]:e});return{call:t.call[Us],shutdown:t.shutdown,[Symbol.dispose]:t[Symbol.dispose]}},Gs=(e,r,t,n=!1)=>{let a=new URL(r).href,u={...e,id:rs(a,t),importedFrom:a,at:t,imported:n,[Vr]:!0};return u.createPool=(c)=>{if(xr===!1)return u;return Ic(u,c)},u},Mc=(e,r)=>{let[t,n]=fo(r);return Gs(e,t,n)},Fc=(e,r)=>{let t,n,a=async()=>{if(t)return t;if(!n)n=import(e).then((u)=>{let c=u,f=r===ho?c.default:c[r];if(typeof f!=="function"){let S=Object.keys(c).join(", ");throw TypeError(`importTask expected export "${r}" from "${e}" to be a function. Available exports: ${S||"(none)"}`)}return t=f,t});return n};return async(...u)=>(await a())(...u)};function Oc(e){return Mc(e,4)}function Nc(e){let[r,t]=fo(3),{href:n,name:a=ho,...u}=e,c=pt(n,r);return Gs({...u,f:Fc(c,a)},r,t,!0)}export{hr as Envelope,$t as NumericArray,Ks as createPool,Nc as importTask,Lc as isMain,Hn as isNumericArray,ns as setModuleUrl,Oc as task,nn as workerMainLoop};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "knitting",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.62",
|
|
4
4
|
"description": "Shared-memory IPC runtime for Node.js, Deno, and Bun.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
"types": "./knitting.d.ts",
|
|
21
21
|
"default": "./knitting.js"
|
|
22
22
|
},
|
|
23
|
+
"./browser": {
|
|
24
|
+
"types": "./knitting.browser.d.ts",
|
|
25
|
+
"default": "./knitting.browser.js"
|
|
26
|
+
},
|
|
23
27
|
"./process-shared-buffer": {
|
|
24
28
|
"types": "./process-shared-buffer.d.ts",
|
|
25
29
|
"default": "./process-shared-buffer.js"
|
|
@@ -39,6 +43,7 @@
|
|
|
39
43
|
},
|
|
40
44
|
"files": [
|
|
41
45
|
"README.md",
|
|
46
|
+
"BROWSER.md",
|
|
42
47
|
"map.md",
|
|
43
48
|
"LICENSE",
|
|
44
49
|
"prebuilds/**/*.node",
|
|
@@ -50,6 +55,8 @@
|
|
|
50
55
|
"src/**/*.cc",
|
|
51
56
|
"src/**/*.d.ts",
|
|
52
57
|
"src/**/*.js",
|
|
58
|
+
"knitting.browser.d.ts",
|
|
59
|
+
"knitting.browser.js",
|
|
53
60
|
"knitting.d.ts",
|
|
54
61
|
"knitting.js",
|
|
55
62
|
"process-shared-buffer.d.ts",
|
|
@@ -69,6 +76,7 @@
|
|
|
69
76
|
"build:npm": "bun run build.ts && node scripts/rewrite-declaration-imports.mjs",
|
|
70
77
|
"build:native": "bun run scripts/build-native-addons.ts",
|
|
71
78
|
"build:compiled": "bun run scripts/build-compiled-worker.ts",
|
|
79
|
+
"build:browser": "bun run scripts/build-browser.ts",
|
|
72
80
|
"build:release": "bun run build:native && npm run build",
|
|
73
81
|
"build:node": "bun run build.ts && node scripts/rewrite-declaration-imports.mjs",
|
|
74
82
|
"prepack": "npm run build",
|
|
@@ -79,8 +87,9 @@
|
|
|
79
87
|
"test:node": "node --no-warnings --experimental-transform-types --test \"./test/*.test.ts\"",
|
|
80
88
|
"test:node:26": "node --no-warnings --experimental-ffi test/node26-ffi.integration.mjs",
|
|
81
89
|
"test:bun": "bun test ./test/*.test.ts --path-ignore-patterns=**/tx-queue.test.ts",
|
|
90
|
+
"test:browser": "bun run scripts/test-browser.ts",
|
|
82
91
|
"test:runtimes": "npm run test:node && npm run test:bun",
|
|
83
|
-
"test:all": "npm run test:deno && npm run test:runtimes",
|
|
92
|
+
"test:all": "npm run test:deno && npm run test:runtimes && npm run test:browser",
|
|
84
93
|
"coverage:node": "node --no-warnings --experimental-transform-types --experimental-test-coverage --test \"./test/*.test.ts\"",
|
|
85
94
|
"coverage:node:90": "node --no-warnings --experimental-transform-types --experimental-test-coverage --test-coverage-lines=90 --test-coverage-exclude=src/common/task-source.ts --test-coverage-exclude=src/ipc/protocol/parsers/NumericBuffer.ts --test-coverage-exclude=src/runtime/balancer.ts --test-coverage-exclude=src/worker/task-loader.ts --test \"./test/*.test.ts\"",
|
|
86
95
|
"bench": "./run.sh",
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|