@atolljs/core 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +1 -1
  2. package/dist/contract/memoryDevtools.d.ts +30 -0
  3. package/dist/contract/sharedMemory.d.ts +4 -2
  4. package/dist/contract/types.d.ts +11 -0
  5. package/dist/devtools.d.ts +127 -4
  6. package/dist/index.d.ts +8 -4
  7. package/dist/index.js +19 -17
  8. package/dist/index10.js +29 -14
  9. package/dist/index11.js +14 -307
  10. package/dist/index12.js +29 -50
  11. package/dist/index13.js +46 -60
  12. package/dist/index14.js +56 -22
  13. package/dist/index15.js +332 -55
  14. package/dist/index16.js +246 -45
  15. package/dist/index17.js +56 -51
  16. package/dist/index18.js +9 -39
  17. package/dist/index19.js +56 -80
  18. package/dist/index20.js +24 -53
  19. package/dist/index21.js +56 -52
  20. package/dist/index22.js +48 -0
  21. package/dist/index23.js +68 -0
  22. package/dist/index24.js +41 -0
  23. package/dist/index25.js +46 -0
  24. package/dist/index26.js +113 -0
  25. package/dist/index27.js +60 -0
  26. package/dist/index28.js +57 -0
  27. package/dist/index5.js +135 -64
  28. package/dist/index6.js +160 -35
  29. package/dist/index7.js +45 -503
  30. package/dist/index8.js +513 -19
  31. package/dist/index9.js +19 -33
  32. package/dist/pool/dedicatedWorker.d.ts +63 -0
  33. package/dist/pool/devtoolsCommands.d.ts +54 -0
  34. package/dist/pool/subWorkerClient.d.ts +50 -0
  35. package/dist/pool/workerChannel.d.ts +44 -0
  36. package/dist/pool/workerClient.d.ts +36 -8
  37. package/dist/pool/workerPool.d.ts +10 -1
  38. package/dist/reactive.d.ts +15 -0
  39. package/dist/reactiveGraph.d.ts +9 -0
  40. package/dist/userTiming.d.ts +27 -0
  41. package/package.json +4 -3
  42. package/src/contract/memoryDevtools.ts +249 -0
  43. package/src/contract/sharedMemory.ts +20 -6
  44. package/src/contract/types.ts +11 -0
  45. package/src/devtools.ts +251 -6
  46. package/src/index.ts +13 -1
  47. package/src/log.ts +22 -0
  48. package/src/observable.ts +16 -3
  49. package/src/pool/dedicatedWorker.ts +332 -0
  50. package/src/pool/devtoolsCommands.ts +165 -0
  51. package/src/pool/subWorkerClient.ts +70 -0
  52. package/src/pool/workerChannel.ts +99 -0
  53. package/src/pool/workerClient.ts +61 -15
  54. package/src/pool/workerPool.ts +75 -45
  55. package/src/reactive.ts +87 -12
  56. package/src/reactiveGraph.ts +91 -0
  57. package/src/testing/inProcessWorker.ts +4 -3
  58. package/src/userTiming.ts +71 -0
  59. package/src/worker/workerBootstrap.ts +33 -5
@@ -0,0 +1,46 @@
1
+ import { devtoolsEnabled as e, emitDevtools as t, registerDevtoolsCommand as n } from "./index5.js";
2
+ //#region src/reactiveGraph.ts
3
+ var r = typeof WorkerGlobalScope < "u" && self instanceof WorkerGlobalScope ? "worker" : "main", i = 0, a = /* @__PURE__ */ new Map(), o = !1, s = (e, n) => {
4
+ t({
5
+ type: "reactive:node",
6
+ ...e,
7
+ ...n ? { disposed: !0 } : {}
8
+ });
9
+ }, c = () => {
10
+ o || (o = !0, n("reactive.nodes", () => [...a.values()]));
11
+ }, l = (t) => {
12
+ if (!e() || t === void 0) return null;
13
+ c();
14
+ let n = `mem:${t}`;
15
+ if (!a.has(n)) {
16
+ let e = {
17
+ id: n,
18
+ kind: "source",
19
+ label: t,
20
+ owner: "shared"
21
+ };
22
+ a.set(n, e), s(e);
23
+ }
24
+ return n;
25
+ }, u = (t, n, o) => {
26
+ if (!e()) return null;
27
+ c();
28
+ let l = `${t[0]}${++i}`, u = {
29
+ id: l,
30
+ kind: t,
31
+ label: n,
32
+ deps: o.filter((e) => e !== null),
33
+ owner: r
34
+ };
35
+ return a.set(l, u), s(u), l;
36
+ }, d = (t, n) => {
37
+ let r = t === null ? void 0 : a.get(t);
38
+ r && r.label !== n && e() && (r.label = n, s(r));
39
+ }, f = (...t) => {
40
+ for (let n of t) {
41
+ let t = n === null ? void 0 : a.get(n);
42
+ t && (a.delete(n), e() && s(t, !0));
43
+ }
44
+ };
45
+ //#endregion
46
+ export { f as disposeNodes, u as graphNode, l as graphSource, d as relabelNode };
@@ -0,0 +1,113 @@
1
+ import { scoped as e } from "./index7.js";
2
+ import { disposeNodes as t, graphNode as n, graphSource as r } from "./index25.js";
3
+ import { createEffect as i, createMemo as a, createRenderEffect as o, createRoot as s, createSignal as c } from "solid-js";
4
+ //#region src/reactive.ts
5
+ var l = e("reactive");
6
+ function u(e, t) {
7
+ if (e === t) return !0;
8
+ if (e == null || t == null) return !1;
9
+ let n = Object.keys(e), r = Object.keys(t);
10
+ return n.length === r.length && n.every((n) => Object.is(e[n], t[n]));
11
+ }
12
+ var d = (e, i) => {
13
+ let a = e._version;
14
+ if (!a) throw Error("This connector does not support remote observation.");
15
+ let o = typeof Atomics.waitAsync == "function", s = n("bridge", `${o ? "waitAsync" : "poll"} ${e._path ?? `@${e.byteOffset}`}`, [r(e._path)]), c = p(e, a, i);
16
+ return {
17
+ node: s,
18
+ stop: () => {
19
+ c(), t(s);
20
+ }
21
+ };
22
+ }, f = (e, t) => d(e, t).stop, p = (e, t, n) => {
23
+ let r = !1, i = Atomics.load(t.view, t.index);
24
+ if (typeof Atomics.waitAsync == "function") return l.debug(`observing remote writes (offset ${e.byteOffset}, waitAsync)`), (async () => {
25
+ for (; !r;) {
26
+ let a = Atomics.waitAsync(t.view, t.index, i);
27
+ a.async && await a.value, i = Atomics.load(t.view, t.index), r || (l.trace(`remote write observed (offset ${e.byteOffset})`), n());
28
+ }
29
+ l.debug(`stopped observing (offset ${e.byteOffset})`);
30
+ })(), () => {
31
+ r = !0;
32
+ };
33
+ l.warn(`Atomics.waitAsync unavailable — observing via 50ms poll (offset ${e.byteOffset})`);
34
+ let a = setInterval(() => {
35
+ let e = Atomics.load(t.view, t.index);
36
+ e !== i && (i = e, n());
37
+ }, 50);
38
+ return () => {
39
+ r = !0, clearInterval(a);
40
+ };
41
+ }, m = null, h = () => {
42
+ if (m !== null) return m;
43
+ try {
44
+ let e = 0, t;
45
+ s(() => {
46
+ let [n, r] = c(0);
47
+ t = r, o(() => {
48
+ n(), e++;
49
+ });
50
+ }), t?.(1), m = e > 1;
51
+ } catch {
52
+ m = !1;
53
+ }
54
+ return m || l.warn("solid-js resolved to the SSR build — watch() falls back to direct version watching"), m;
55
+ };
56
+ function g(e) {
57
+ let [t, n] = c(e.read(), { equals: !1 }), r = () => n(() => e.read());
58
+ return {
59
+ get: t,
60
+ peek: () => e.read(),
61
+ set: (t) => {
62
+ e.write(t), r();
63
+ },
64
+ observeRemote: () => f(e, r)
65
+ };
66
+ }
67
+ function _(e, t, n, r) {
68
+ return v(e, n ? t : ((e) => e), n ?? t, r, {
69
+ sliced: n !== void 0,
70
+ label: "watch"
71
+ }).stop;
72
+ }
73
+ function v(e, r, o, u, f) {
74
+ let p = e._path ?? `@${e.byteOffset}`, m = null, g = null, _ = null, v = () => {
75
+ g = f.sliced ? n("derived", `select(${p})`, [m]) : null, _ = n("effect", `${f.label}(${p})`, [g ?? m]);
76
+ }, y = () => t(_, g);
77
+ if (!h()) {
78
+ let t = (e, t) => e === void 0 || t === void 0 ? e === t : (u?.equals ?? Object.is)(e, t), n, i = () => {
79
+ let i = e.read(), a = i == null ? void 0 : r(i);
80
+ if (a === void 0 || t(n, a)) return;
81
+ let s = n;
82
+ n = a, o(a, s);
83
+ };
84
+ i();
85
+ let a = d(e, i);
86
+ return m = a.node, v(), l.debug(`watching connector at offset ${e.byteOffset} (direct)`), {
87
+ effect: _,
88
+ stop: () => {
89
+ l.debug(`watch stopped (offset ${e.byteOffset})`), a.stop(), y();
90
+ }
91
+ };
92
+ }
93
+ let [b, x] = c(e.read(), { equals: !1 }), S = d(e, () => x(() => e.read()));
94
+ m = S.node, v();
95
+ let C = s((e) => {
96
+ let t = a(() => {
97
+ let e = b();
98
+ return e == null ? void 0 : r(e);
99
+ }, void 0, u?.equals ? { equals: (e, t) => e === void 0 || t === void 0 ? e === t : u.equals(e, t) } : void 0);
100
+ return i((e) => {
101
+ let n = t();
102
+ return n !== void 0 && o(n, e), n;
103
+ }), e;
104
+ });
105
+ return l.debug(`watching connector at offset ${e.byteOffset}`), {
106
+ effect: _,
107
+ stop: () => {
108
+ l.debug(`watch stopped (offset ${e.byteOffset})`), S.stop(), C(), y();
109
+ }
110
+ };
111
+ }
112
+ //#endregion
113
+ export { g as reactive, u as shallowEqual, _ as watch, v as watchNodes };
@@ -0,0 +1,60 @@
1
+ import { scoped as e } from "./index7.js";
2
+ import { relabelNode as t } from "./index25.js";
3
+ import { watchNodes as n } from "./index26.js";
4
+ //#region src/observable.ts
5
+ var r = e("observe");
6
+ function i(e, i, a, o) {
7
+ let s = a ?? ((e) => e), c = o?.equals ?? Object.is, l, u = -1, d = null, f = null, p = null, m = null, h = null, g = /* @__PURE__ */ new Set(), _ = () => t(h, `observe(${String(i)}) · ${g.size} sub${g.size === 1 ? "" : "s"}`), v = () => {
8
+ if (d || f) return;
9
+ let t;
10
+ try {
11
+ t = e.connector(String(i));
12
+ } catch {
13
+ f = e.onBound(() => {
14
+ let e = f;
15
+ f = null, e?.(), v();
16
+ });
17
+ return;
18
+ }
19
+ let u = n(t, s, (e) => {
20
+ if (l === void 0 || !c(l, e)) {
21
+ l = e;
22
+ for (let t of g) t(e);
23
+ }
24
+ }, o, {
25
+ sliced: a !== void 0,
26
+ label: "observe"
27
+ });
28
+ d = u.stop, h = u.effect, _(), m = t, p ??= e.onBound(() => {
29
+ let t;
30
+ try {
31
+ t = e.connector(String(i));
32
+ } catch {
33
+ return;
34
+ }
35
+ t !== m && (d?.(), d = null, m = null, v());
36
+ }), r.debug(`observing "${String(i)}" (offset ${t.byteOffset})`);
37
+ }, y = () => {
38
+ d?.(), d = null, h = null, m = null, f?.(), f = null, p?.(), p = null;
39
+ };
40
+ return {
41
+ get() {
42
+ if (d || e.bound) try {
43
+ let t = e.connector(String(i)), n = t._version ? Atomics.load(t._version.view, t._version.index) : 0;
44
+ if (n !== u) {
45
+ u = n;
46
+ let e = s(t.read());
47
+ (l === void 0 || !c(l, e)) && (l = e);
48
+ }
49
+ } catch {}
50
+ return l;
51
+ },
52
+ subscribe(e) {
53
+ return g.add(e), v(), _(), () => {
54
+ g.delete(e), g.size === 0 ? y() : _();
55
+ };
56
+ }
57
+ };
58
+ }
59
+ //#endregion
60
+ export { i as observe };
@@ -0,0 +1,57 @@
1
+ import { scoped as e } from "./index7.js";
2
+ //#region src/task.ts
3
+ var t = e("task");
4
+ function n(e) {
5
+ let n = 0, r = {
6
+ data: null,
7
+ pending: !1,
8
+ settled: !1,
9
+ elapsedMs: null,
10
+ error: null
11
+ }, i = /* @__PURE__ */ new Set(), a = (e) => {
12
+ r = e;
13
+ for (let t of i) t(e);
14
+ }, o = {
15
+ get: () => r,
16
+ subscribe(e) {
17
+ return i.add(e), () => {
18
+ i.delete(e);
19
+ };
20
+ },
21
+ run(i) {
22
+ let o = ++n, s = performance.now();
23
+ a({
24
+ ...r,
25
+ pending: !0,
26
+ error: null
27
+ }), e(i).then((e) => {
28
+ o === n && a({
29
+ data: e,
30
+ pending: !1,
31
+ settled: !0,
32
+ elapsedMs: performance.now() - s,
33
+ error: null
34
+ });
35
+ }, (e) => {
36
+ o === n && a({
37
+ ...r,
38
+ pending: !1,
39
+ settled: !0,
40
+ error: e
41
+ }), t.error("task run failed", e);
42
+ });
43
+ },
44
+ runOnce(e) {
45
+ r.pending || r.settled || o.run(e);
46
+ }
47
+ };
48
+ return o;
49
+ }
50
+ function r(e) {
51
+ return typeof e == "object" && !!e && typeof e.run == "function" && typeof e.runOnce == "function" && typeof e.get == "function" && typeof e.subscribe == "function";
52
+ }
53
+ function i(e) {
54
+ return r(e) ? e : n(e);
55
+ }
56
+ //#endregion
57
+ export { n as defineTask, r as isAsyncTask, i as toTask };
package/dist/index5.js CHANGED
@@ -1,24 +1,90 @@
1
1
  //#region src/devtools.ts
2
- var e = typeof WorkerGlobalScope < "u" && self instanceof WorkerGlobalScope ? "worker" : "main", t = null, n = (e) => {
3
- t = e;
4
- }, r = (n) => {
2
+ var e = typeof WorkerGlobalScope < "u" && self instanceof WorkerGlobalScope ? "worker" : "main", t = null, n = null, r = /* @__PURE__ */ new Set(), i = () => {
3
+ if (r.size === 0) {
4
+ t = n;
5
+ return;
6
+ }
7
+ let e = n ? [n, ...r] : [...r];
8
+ t = e.length === 1 ? e[0] : (t) => {
9
+ for (let n of e) try {
10
+ n(t);
11
+ } catch {}
12
+ };
13
+ }, a = (e) => {
14
+ n = e, i();
15
+ }, o = (e) => (r.add(e), i(), () => {
16
+ r.delete(e) && i();
17
+ }), s = (n) => {
5
18
  t && t({
6
19
  ...n,
7
20
  at: performance.now(),
8
21
  thread: e
9
22
  });
10
- }, i = (e) => {
23
+ }, c = (e) => {
11
24
  t && t(e);
12
- }, a = () => t !== null, o = !1, s = () => {
13
- o || typeof self > "u" || (o = !0, n((e) => {
25
+ }, l = () => t !== null, u = (e, t = 2048) => {
26
+ let n = /* @__PURE__ */ new WeakSet(), r;
27
+ try {
28
+ r = JSON.stringify(e, (e, t) => {
29
+ if (typeof t == "function") return "[fn]";
30
+ if (typeof t == "bigint") return `${t}n`;
31
+ if (t instanceof ArrayBuffer) return `[ArrayBuffer ${t.byteLength}B]`;
32
+ if (ArrayBuffer.isView(t)) return `[${t.constructor.name} ${t.byteLength}B]`;
33
+ if (t instanceof Map) return { "[Map]": [...t.entries()].slice(0, 50) };
34
+ if (t instanceof Set) return { "[Set]": [...t].slice(0, 50) };
35
+ if (t && typeof t == "object") {
36
+ if (n.has(t)) return "[cycle]";
37
+ n.add(t);
38
+ }
39
+ return t;
40
+ }) ?? String(e);
41
+ } catch {
42
+ r = String(e);
43
+ }
44
+ return r.length > t ? `${r.slice(0, t)}…` : r;
45
+ }, d = (e, t = 5e3) => {
46
+ let n = 0, r = /* @__PURE__ */ new WeakSet(), i = (e) => {
47
+ if (++n > t) return 0;
48
+ switch (typeof e) {
49
+ case "string": return 4 + e.length * 2;
50
+ case "number": return 8;
51
+ case "boolean": return 4;
52
+ case "bigint": return 16;
53
+ case "undefined": return 1;
54
+ case "object": {
55
+ if (e === null) return 1;
56
+ if (e instanceof ArrayBuffer || ArrayBuffer.isView(e)) return e.byteLength;
57
+ if (typeof SharedArrayBuffer < "u" && e instanceof SharedArrayBuffer) return 8;
58
+ if (r.has(e)) return 4;
59
+ r.add(e);
60
+ let t = 8;
61
+ if (e instanceof Map) for (let [n, r] of e) t += i(n) + i(r);
62
+ else if (e instanceof Set) for (let n of e) t += i(n);
63
+ else if (Array.isArray(e)) for (let n of e) t += i(n);
64
+ else for (let n of Object.keys(e)) t += 4 + n.length * 2 + i(e[n]);
65
+ return t;
66
+ }
67
+ default: return 0;
68
+ }
69
+ };
70
+ return i(e);
71
+ }, f = /* @__PURE__ */ new Map(), p = (e, t) => (f.set(e, t), () => {
72
+ f.get(e) === t && f.delete(e);
73
+ }), m = () => [...f.keys()].sort(), h = async (e, t = {}) => {
74
+ if (e === "devtools.commands") return m();
75
+ let n = f.get(e);
76
+ if (!n) throw Error(`unknown devtools command '${e}'`);
77
+ return n(t);
78
+ }, g = !1, _ = () => {
79
+ g || typeof self > "u" || (g = !0, a((e) => {
14
80
  self.postMessage({
15
81
  type: "ATOLL_DEVTOOLS",
16
82
  event: e
17
83
  });
18
- }), h(self), _(self));
19
- }, c = Symbol.for("atoll.devtools.fetch"), l = 8192, u = /text|json|javascript|xml|html|css|svg|csv|urlencoded|graphql/, d = (e) => e ? [...e.entries()].slice(0, 64) : void 0, f = (e) => {
20
- if (e != null) return typeof e == "string" ? e.slice(0, l) : e instanceof URLSearchParams ? String(e).slice(0, l) : e instanceof Blob ? `[${e.type || "blob"} ${e.size}B]` : e instanceof ArrayBuffer ? `[ArrayBuffer ${e.byteLength}B]` : ArrayBuffer.isView(e) ? `[${e.constructor.name} ${e.byteLength}B]` : typeof FormData < "u" && e instanceof FormData ? "[FormData]" : "[stream]";
21
- }, p = async (e, t) => {
84
+ }), T(self), D(self));
85
+ }, v = Symbol.for("atoll.devtools.fetch"), y = 8192, b = /text|json|javascript|xml|html|css|svg|csv|urlencoded|graphql/, x = (e) => e ? [...e.entries()].slice(0, 64) : void 0, S = (e) => {
86
+ if (e != null) return typeof e == "string" ? e.slice(0, y) : e instanceof URLSearchParams ? String(e).slice(0, y) : e instanceof Blob ? `[${e.type || "blob"} ${e.size}B]` : e instanceof ArrayBuffer ? `[ArrayBuffer ${e.byteLength}B]` : ArrayBuffer.isView(e) ? `[${e.constructor.name} ${e.byteLength}B]` : typeof FormData < "u" && e instanceof FormData ? "[FormData]" : "[stream]";
87
+ }, C = async (e, t) => {
22
88
  let n = e.body?.getReader();
23
89
  if (!n) return;
24
90
  let r = [], i = 0;
@@ -33,7 +99,7 @@ var e = typeof WorkerGlobalScope < "u" && self instanceof WorkerGlobalScope ? "w
33
99
  let a = new Uint8Array(i), o = 0;
34
100
  for (let e of r) a.set(e, o), o += e.byteLength;
35
101
  return new TextDecoder().decode(a) + (i >= t ? "…" : "");
36
- }, m = async (e, t) => {
102
+ }, w = async (e, t) => {
37
103
  let n = globalThis.performance;
38
104
  if (n?.getEntriesByType) for (let r = 0; r < 12; r++) {
39
105
  let r;
@@ -54,99 +120,99 @@ var e = typeof WorkerGlobalScope < "u" && self instanceof WorkerGlobalScope ? "w
54
120
  }
55
121
  await new Promise((e) => setTimeout(e, 250));
56
122
  }
57
- }, h = (e) => {
123
+ }, T = (e) => {
58
124
  let t = e.fetch;
59
- if (!t || t[c]) return;
60
- let n = 0, i = async (i, a) => {
61
- let o = performance.now(), s = ++n, c = typeof Request < "u" && i instanceof Request, h = c ? i.url : String(i), g = (() => {
125
+ if (!t || t[v]) return;
126
+ let n = 0, r = async (r, i) => {
127
+ let a = performance.now(), o = ++n, c = typeof Request < "u" && r instanceof Request, l = c ? r.url : String(r), u = (() => {
62
128
  try {
63
- return new URL(h, self.location?.href).href;
129
+ return new URL(l, self.location?.href).href;
64
130
  } catch {
65
- return h;
131
+ return l;
66
132
  }
67
- })(), _ = (a?.method ?? (c ? i.method : "GET")).toUpperCase(), v = c && !a?.body ? i.clone() : null, y = d(a?.headers ? new Headers(a.headers) : c ? i.headers : void 0), b = f(a?.body);
133
+ })(), d = (i?.method ?? (c ? r.method : "GET")).toUpperCase(), f = c && !i?.body ? r.clone() : null, p = x(i?.headers ? new Headers(i.headers) : c ? r.headers : void 0), m = S(i?.body);
68
134
  try {
69
- let n = await t.call(e, i, a), c = n.headers.get("content-length");
70
- r({
135
+ let n = await t.call(e, r, i), c = n.headers.get("content-length");
136
+ s({
71
137
  type: "net:fetch",
72
- id: s,
73
- url: h.slice(0, 300),
74
- method: _,
138
+ id: o,
139
+ url: l.slice(0, 300),
140
+ method: d,
75
141
  status: n.status,
76
- ms: performance.now() - o,
142
+ ms: performance.now() - a,
77
143
  bytes: c === null ? void 0 : Number(c),
78
- reqHeaders: y,
79
- reqBody: b
144
+ reqHeaders: p,
145
+ reqBody: m
80
146
  });
81
- let f = n.clone();
147
+ let h = n.clone();
82
148
  return (async () => {
83
- b ??= v ? await v.text().then((e) => e.slice(0, l)).catch(() => void 0) : void 0;
84
- let e = n.headers.get("content-type") ?? "", t = u.test(e) ? await p(f, l).catch(() => void 0) : void 0, i = await m(g, o);
85
- r({
149
+ m ??= f ? await f.text().then((e) => e.slice(0, y)).catch(() => void 0) : void 0;
150
+ let e = n.headers.get("content-type") ?? "", t = b.test(e) ? await C(h, y).catch(() => void 0) : void 0, r = await w(u, a);
151
+ s({
86
152
  type: "net:fetch-detail",
87
- id: s,
88
- reqBody: b,
89
- resHeaders: d(n.headers),
153
+ id: o,
154
+ reqBody: m,
155
+ resHeaders: x(n.headers),
90
156
  resBody: t,
91
- timing: i,
92
- transferSize: i?.transferSize,
93
- encodedSize: i?.encodedSize,
94
- decodedSize: i?.decodedSize
157
+ timing: r,
158
+ transferSize: r?.transferSize,
159
+ encodedSize: r?.encodedSize,
160
+ decodedSize: r?.decodedSize
95
161
  });
96
162
  })(), n;
97
163
  } catch (e) {
98
- throw r({
164
+ throw s({
99
165
  type: "net:fetch",
100
- id: s,
101
- url: h.slice(0, 300),
102
- method: _,
103
- ms: performance.now() - o,
166
+ id: o,
167
+ url: l.slice(0, 300),
168
+ method: d,
169
+ ms: performance.now() - a,
104
170
  error: e instanceof Error ? e.message : String(e),
105
- reqHeaders: y,
106
- reqBody: b
171
+ reqHeaders: p,
172
+ reqBody: m
107
173
  }), e;
108
174
  }
109
175
  };
110
- i[c] = !0, e.fetch = i;
111
- }, g = /* @__PURE__ */ new WeakSet(), _ = (e, t = 2500) => {
112
- if (g.has(e)) return;
176
+ r[v] = !0, e.fetch = r;
177
+ }, E = /* @__PURE__ */ new WeakSet(), D = (e, t = 2500) => {
178
+ if (E.has(e)) return;
113
179
  let n = e.performance;
114
180
  if (!n) return;
115
- let i = n.memory, a = typeof WorkerGlobalScope < "u" && globalThis.self instanceof WorkerGlobalScope, o = n.measureUserAgentSpecificMemory?.bind(n), s = globalThis.process?.memoryUsage;
116
- if (i || o && !a || s) {
117
- if (g.add(e), o && !a) {
181
+ let r = n.memory, i = typeof WorkerGlobalScope < "u" && globalThis.self instanceof WorkerGlobalScope, a = n.measureUserAgentSpecificMemory?.bind(n), o = globalThis.process?.memoryUsage;
182
+ if (r || a && !i || o) {
183
+ if (E.add(e), a && !i) {
118
184
  setInterval(() => {
119
- o().then((e) => {
185
+ a().then((e) => {
120
186
  let t = (e.breakdown ?? []).map((e) => ({
121
187
  bytes: e.bytes,
122
188
  scope: e.attribution?.[0]?.scope,
123
189
  url: e.attribution?.[0]?.url
124
190
  })).sort((e, t) => t.bytes - e.bytes).slice(0, 24);
125
- r({
191
+ s({
126
192
  type: "runtime:memory",
127
193
  heapBytes: e.bytes,
128
- heapLimitBytes: i?.jsHeapSizeLimit,
194
+ heapLimitBytes: r?.jsHeapSizeLimit,
129
195
  contexts: t
130
196
  });
131
197
  }).catch(() => {
132
- i && r({
198
+ r && s({
133
199
  type: "runtime:memory",
134
- heapBytes: i.usedJSHeapSize,
135
- heapLimitBytes: i.jsHeapSizeLimit
200
+ heapBytes: r.usedJSHeapSize,
201
+ heapLimitBytes: r.jsHeapSizeLimit
136
202
  });
137
203
  });
138
204
  }, Math.max(t, 4e3)).unref?.();
139
205
  return;
140
206
  }
141
207
  setInterval(() => {
142
- if (i) r({
208
+ if (r) s({
143
209
  type: "runtime:memory",
144
- heapBytes: i.usedJSHeapSize,
145
- heapLimitBytes: i.jsHeapSizeLimit
210
+ heapBytes: r.usedJSHeapSize,
211
+ heapLimitBytes: r.jsHeapSizeLimit
146
212
  });
147
- else if (s) {
148
- let e = s();
149
- r({
213
+ else if (o) {
214
+ let e = o();
215
+ s({
150
216
  type: "runtime:memory",
151
217
  heapBytes: e.heapUsed,
152
218
  rssBytes: e.rss
@@ -154,6 +220,11 @@ var e = typeof WorkerGlobalScope < "u" && self instanceof WorkerGlobalScope ? "w
154
220
  }
155
221
  }, t).unref?.();
156
222
  }
157
- }, v = 0, y = (e) => `${e}-${++v}`;
223
+ }, O = 0, k = /* @__PURE__ */ new Map(), A = (e, t) => {
224
+ let n = t?.toLowerCase().replace(/[^a-z0-9._-]+/g, "-").replace(/^-+|-+$/g, "");
225
+ if (!n) return `${e}-${++O}`;
226
+ let r = `${n}-${e === "pool" ? "p" : e === "worker" ? "w" : e}`, i = (k.get(r) ?? 0) + 1;
227
+ return k.set(r, i), i === 1 ? r : `${r}${i}`;
228
+ };
158
229
  //#endregion
159
- export { a as devtoolsEnabled, r as emitDevtools, s as enableWorkerDevtoolsForwarding, i as forwardDevtools, h as installFetchProbe, _ as installMemoryProbe, y as nextDevtoolsId, n as setDevtoolsSink };
230
+ export { o as addDevtoolsSink, l as devtoolsEnabled, s as emitDevtools, _ as enableWorkerDevtoolsForwarding, d as estimateCloneBytes, c as forwardDevtools, T as installFetchProbe, D as installMemoryProbe, m as listDevtoolsCommands, A as nextDevtoolsId, u as previewValue, p as registerDevtoolsCommand, h as runDevtoolsCommand, a as setDevtoolsSink };