@atolljs/core 0.1.5 → 0.1.7

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/dist/index18.js CHANGED
@@ -1,59 +1,41 @@
1
- import { scoped as e } from "./index5.js";
2
- import { createEffect as t, createMemo as n, createRoot as r, createSignal as i } from "solid-js";
3
- //#region src/reactive.ts
4
- var a = e("reactive");
5
- function o(e, t) {
6
- if (e === t) return !0;
7
- if (e == null || t == null) return !1;
8
- let n = Object.keys(e), r = Object.keys(t);
9
- return n.length === r.length && n.every((n) => Object.is(e[n], t[n]));
10
- }
1
+ import { scoped as e } from "./index6.js";
2
+ import { TaskRegistry as t } from "./index14.js";
3
+ import { installWorkerListener as n } from "./index17.js";
4
+ //#region src/worker/defineWorker.ts
5
+ var r = e("worker"), i = [
6
+ "start",
7
+ "terminate",
8
+ "pool",
9
+ "sharedMemory",
10
+ "then",
11
+ "with"
12
+ ], a = (e) => typeof e == "object" && !!e && "run" in e, o = new Set(i);
11
13
  function s(e) {
12
- let [t, n] = i(e.read(), { equals: !1 }), r = () => n(() => e.read());
13
- return {
14
- get: t,
15
- peek: () => e.read(),
16
- set: (t) => {
17
- e.write(t), r();
18
- },
19
- observeRemote: () => {
20
- let t = e._version;
21
- if (!t) throw Error("This connector does not support remote observation.");
22
- let n = !1, i = Atomics.load(t.view, t.index);
23
- if (typeof Atomics.waitAsync == "function") return a.debug(`observing remote writes (offset ${e.byteOffset}, waitAsync)`), (async () => {
24
- for (; !n;) {
25
- let o = Atomics.waitAsync(t.view, t.index, i);
26
- o.async && await o.value, i = Atomics.load(t.view, t.index), n || (a.trace(`remote write observed (offset ${e.byteOffset})`), r());
27
- }
28
- a.debug(`stopped observing (offset ${e.byteOffset})`);
29
- })(), () => {
30
- n = !0;
31
- };
32
- a.warn(`Atomics.waitAsync unavailable — observing via 50ms poll (offset ${e.byteOffset})`);
33
- let o = setInterval(() => {
34
- let e = Atomics.load(t.view, t.index);
35
- e !== i && (i = e, r());
36
- }, 50);
37
- return () => {
38
- n = !0, clearInterval(o);
39
- };
40
- }
14
+ n();
15
+ let i = e.methods ?? {}, s = e.services ?? {}, c = 0, l = (e, n, r, i) => {
16
+ if (o.has(n)) throw Error(`defineWorker: "${n}" is reserved for the client API — rename the method`);
17
+ if (a(r)) {
18
+ let { def: n } = r;
19
+ t.register({
20
+ taskId: n.taskId ?? e,
21
+ ...n.dataType ? { dataType: n.dataType } : {},
22
+ ...n.argsSchema ? { argsSchema: n.argsSchema } : {},
23
+ ...n.resultSchema ? { resultSchema: n.resultSchema } : {}
24
+ }, r.run.bind(r));
25
+ } else t.register({ taskId: e }, r.bind(i));
26
+ c++;
41
27
  };
42
- }
43
- function c(e, i, o, c) {
44
- let l = o ? i : ((e) => e), u = o ?? i, d = s(e), f = d.observeRemote(), p = r((e) => {
45
- let r = n(() => {
46
- let e = d.get();
47
- return e == null ? void 0 : l(e);
48
- }, void 0, c?.equals ? { equals: (e, t) => e === void 0 || t === void 0 ? e === t : c.equals(e, t) } : void 0);
49
- return t((e) => {
50
- let t = r();
51
- return t !== void 0 && u(t, e), t;
52
- }), e;
53
- });
54
- return a.debug(`watching connector at offset ${e.byteOffset}`), () => {
55
- a.debug(`watch stopped (offset ${e.byteOffset})`), f(), p();
28
+ for (let [e, t] of Object.entries(i)) l(e, e, t, i);
29
+ for (let [e, t] of Object.entries(s)) {
30
+ if (o.has(e)) throw Error(`defineWorker: service name "${e}" is reserved for the client API — rename it`);
31
+ for (let [n, r] of Object.entries(t)) l(`${e}.${n}`, n, r, t);
32
+ }
33
+ r.info(`worker defined — ${c} method(s)`);
34
+ let u = {
35
+ methods: i,
36
+ services: s
56
37
  };
38
+ return e.sharedMemory && (u.sharedMemory = e.sharedMemory), u;
57
39
  }
58
40
  //#endregion
59
- export { s as reactive, o as shallowEqual, c as watch };
41
+ export { i as RESERVED_CLIENT_KEYS, s as defineWorker };
package/dist/index19.js CHANGED
@@ -1,54 +1,88 @@
1
- import { scoped as e } from "./index5.js";
2
- import { watch as t } from "./index18.js";
3
- //#region src/observable.ts
4
- var n = e("observe");
5
- function r(e, r, i, a) {
6
- let o = i ?? ((e) => e), s = a?.equals ?? Object.is, c, l = -1, u = null, d = null, f = null, p = null, m = /* @__PURE__ */ new Set(), h = () => {
7
- if (u || d) return;
8
- let i;
9
- try {
10
- i = e.connector(String(r));
11
- } catch {
12
- d = e.onBound(() => {
13
- d = null, h();
14
- });
15
- return;
1
+ import { scoped as e } from "./index6.js";
2
+ import { createEffect as t, createMemo as n, createRenderEffect as r, createRoot as i, createSignal as a } from "solid-js";
3
+ //#region src/reactive.ts
4
+ var o = e("reactive");
5
+ function s(e, t) {
6
+ if (e === t) return !0;
7
+ if (e == null || t == null) return !1;
8
+ let n = Object.keys(e), r = Object.keys(t);
9
+ return n.length === r.length && n.every((n) => Object.is(e[n], t[n]));
10
+ }
11
+ var c = (e, t) => {
12
+ let n = e._version;
13
+ if (!n) throw Error("This connector does not support remote observation.");
14
+ let r = !1, i = Atomics.load(n.view, n.index);
15
+ if (typeof Atomics.waitAsync == "function") return o.debug(`observing remote writes (offset ${e.byteOffset}, waitAsync)`), (async () => {
16
+ for (; !r;) {
17
+ let a = Atomics.waitAsync(n.view, n.index, i);
18
+ a.async && await a.value, i = Atomics.load(n.view, n.index), r || (o.trace(`remote write observed (offset ${e.byteOffset})`), t());
16
19
  }
17
- u = t(i, o, (e) => {
18
- if (c === void 0 || !s(c, e)) {
19
- c = e;
20
- for (let t of m) t(e);
21
- }
22
- }, a), p = i, f ??= e.onBound(() => {
23
- let t;
24
- try {
25
- t = e.connector(String(r));
26
- } catch {
27
- return;
28
- }
29
- t !== p && (u?.(), u = null, p = null, h());
30
- }), n.debug(`observing "${String(r)}" (offset ${i.byteOffset})`);
31
- }, g = () => {
32
- u?.(), u = null, p = null, d?.(), d = null, f?.(), f = null;
20
+ o.debug(`stopped observing (offset ${e.byteOffset})`);
21
+ })(), () => {
22
+ r = !0;
33
23
  };
24
+ o.warn(`Atomics.waitAsync unavailable — observing via 50ms poll (offset ${e.byteOffset})`);
25
+ let a = setInterval(() => {
26
+ let e = Atomics.load(n.view, n.index);
27
+ e !== i && (i = e, t());
28
+ }, 50);
29
+ return () => {
30
+ r = !0, clearInterval(a);
31
+ };
32
+ }, l = null, u = () => {
33
+ if (l !== null) return l;
34
+ try {
35
+ let e = 0, t;
36
+ i(() => {
37
+ let [n, i] = a(0);
38
+ t = i, r(() => {
39
+ n(), e++;
40
+ });
41
+ }), t?.(1), l = e > 1;
42
+ } catch {
43
+ l = !1;
44
+ }
45
+ return l || o.warn("solid-js resolved to the SSR build — watch() falls back to direct version watching"), l;
46
+ };
47
+ function d(e) {
48
+ let [t, n] = a(e.read(), { equals: !1 }), r = () => n(() => e.read());
34
49
  return {
35
- get() {
36
- if (u || e.bound) try {
37
- let t = e.connector(String(r)), n = t._version ? Atomics.load(t._version.view, t._version.index) : 0;
38
- if (n !== l) {
39
- l = n;
40
- let e = o(t.read());
41
- (c === void 0 || !s(c, e)) && (c = e);
42
- }
43
- } catch {}
44
- return c;
50
+ get: t,
51
+ peek: () => e.read(),
52
+ set: (t) => {
53
+ e.write(t), r();
45
54
  },
46
- subscribe(e) {
47
- return m.add(e), h(), () => {
48
- m.delete(e), m.size === 0 && g();
49
- };
50
- }
55
+ observeRemote: () => c(e, r)
56
+ };
57
+ }
58
+ function f(e, r, a, s) {
59
+ let l = a ? r : ((e) => e), f = a ?? r;
60
+ if (!u()) {
61
+ let t = (e, t) => e === void 0 || t === void 0 ? e === t : (s?.equals ?? Object.is)(e, t), n, r = () => {
62
+ let r = e.read(), i = r == null ? void 0 : l(r);
63
+ if (i === void 0 || t(n, i)) return;
64
+ let a = n;
65
+ n = i, f(i, a);
66
+ };
67
+ r();
68
+ let i = c(e, r);
69
+ return o.debug(`watching connector at offset ${e.byteOffset} (direct)`), () => {
70
+ o.debug(`watch stopped (offset ${e.byteOffset})`), i();
71
+ };
72
+ }
73
+ let p = d(e), m = p.observeRemote(), h = i((e) => {
74
+ let r = n(() => {
75
+ let e = p.get();
76
+ return e == null ? void 0 : l(e);
77
+ }, void 0, s?.equals ? { equals: (e, t) => e === void 0 || t === void 0 ? e === t : s.equals(e, t) } : void 0);
78
+ return t((e) => {
79
+ let t = r();
80
+ return t !== void 0 && f(t, e), t;
81
+ }), e;
82
+ });
83
+ return o.debug(`watching connector at offset ${e.byteOffset}`), () => {
84
+ o.debug(`watch stopped (offset ${e.byteOffset})`), m(), h();
51
85
  };
52
86
  }
53
87
  //#endregion
54
- export { r as observe };
88
+ export { d as reactive, s as shallowEqual, f as watch };
package/dist/index20.js CHANGED
@@ -1,57 +1,54 @@
1
- import { scoped as e } from "./index5.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);
1
+ import { scoped as e } from "./index6.js";
2
+ import { watch as t } from "./index19.js";
3
+ //#region src/observable.ts
4
+ var n = e("observe");
5
+ function r(e, r, i, a) {
6
+ let o = i ?? ((e) => e), s = a?.equals ?? Object.is, c, l = -1, u = null, d = null, f = null, p = null, m = /* @__PURE__ */ new Set(), h = () => {
7
+ if (u || d) return;
8
+ let i;
9
+ try {
10
+ i = e.connector(String(r));
11
+ } catch {
12
+ d = e.onBound(() => {
13
+ d = null, h();
42
14
  });
15
+ return;
16
+ }
17
+ u = t(i, o, (e) => {
18
+ if (c === void 0 || !s(c, e)) {
19
+ c = e;
20
+ for (let t of m) t(e);
21
+ }
22
+ }, a), p = i, f ??= e.onBound(() => {
23
+ let t;
24
+ try {
25
+ t = e.connector(String(r));
26
+ } catch {
27
+ return;
28
+ }
29
+ t !== p && (u?.(), u = null, p = null, h());
30
+ }), n.debug(`observing "${String(r)}" (offset ${i.byteOffset})`);
31
+ }, g = () => {
32
+ u?.(), u = null, p = null, d?.(), d = null, f?.(), f = null;
33
+ };
34
+ return {
35
+ get() {
36
+ if (u || e.bound) try {
37
+ let t = e.connector(String(r)), n = t._version ? Atomics.load(t._version.view, t._version.index) : 0;
38
+ if (n !== l) {
39
+ l = n;
40
+ let e = o(t.read());
41
+ (c === void 0 || !s(c, e)) && (c = e);
42
+ }
43
+ } catch {}
44
+ return c;
43
45
  },
44
- runOnce(e) {
45
- r.pending || r.settled || o.run(e);
46
+ subscribe(e) {
47
+ return m.add(e), h(), () => {
48
+ m.delete(e), m.size === 0 && g();
49
+ };
46
50
  }
47
51
  };
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
52
  }
56
53
  //#endregion
57
- export { n as defineTask, r as isAsyncTask, i as toTask };
54
+ export { r as observe };
@@ -0,0 +1,57 @@
1
+ import { scoped as e } from "./index6.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/index3.js CHANGED
@@ -93,16 +93,16 @@ var e = (e, t) => ({
93
93
  inner(e) {
94
94
  return typeof e == "bigint" ? e : _("bigint");
95
95
  }
96
- }, S = class extends g {
96
+ }, ee = class extends g {
97
97
  inner(e) {
98
98
  return e;
99
99
  }
100
- }, C = class extends g {
100
+ }, S = class extends g {
101
101
  inner(e) {
102
102
  let t = this._zod.def.cls;
103
103
  return e instanceof t ? e : _(t.name ?? "instance");
104
104
  }
105
- }, w = class extends g {
105
+ }, C = class extends g {
106
106
  get shape() {
107
107
  return this._zod.def.shape;
108
108
  }
@@ -112,55 +112,109 @@ var e = (e, t) => ({
112
112
  for (let [n, r] of Object.entries(this.shape)) t[n] = r.parse(e[n]);
113
113
  return t;
114
114
  }
115
- }, T = class extends g {
115
+ }, w = class extends g {
116
116
  inner(e) {
117
117
  if (!Array.isArray(e)) return _("array");
118
118
  let t = this._zod.def.element;
119
119
  return e.map((e) => t.parse(e));
120
120
  }
121
- }, E = () => new v({ type: "number" }), D = () => new y({ type: "string" }), O = () => new b({ type: "boolean" }), k = () => new x({ type: "bigint" }), A = () => new S({ type: "unknown" }), j = (e) => new C({
121
+ }, T = class extends g {
122
+ inner(e) {
123
+ return e === void 0 ? void 0 : this._zod.def.element.parse(e);
124
+ }
125
+ }, E = class extends g {
126
+ inner(e) {
127
+ return e === null ? null : this._zod.def.element.parse(e);
128
+ }
129
+ }, D = class extends g {
130
+ inner(e) {
131
+ return e === this._zod.def.literal ? e : _(JSON.stringify(this._zod.def.literal));
132
+ }
133
+ }, O = class extends g {
134
+ inner(e) {
135
+ for (let t of this._zod.def.options) {
136
+ let n = t.safeParse(e);
137
+ if (n.success) return n.data;
138
+ }
139
+ return _("a union member");
140
+ }
141
+ }, k = class extends g {
142
+ inner(e) {
143
+ (typeof e != "object" || !e || Array.isArray(e)) && _("object");
144
+ let t = this._zod.def.element, n = {};
145
+ for (let [r, i] of Object.entries(e)) n[r] = t.parse(i);
146
+ return n;
147
+ }
148
+ }, A = class extends g {
149
+ inner(e) {
150
+ return typeof e == "function" ? e : _("function");
151
+ }
152
+ }, j = () => $(new v({ type: "number" })), M = () => $(new y({ type: "string" })), N = () => $(new b({ type: "boolean" })), P = () => $(new x({ type: "bigint" })), F = () => $(new ee({ type: "unknown" })), I = (e) => $(new S({
122
153
  type: "instanceof",
123
154
  cls: e
124
- }), M = (e) => new w({
155
+ })), L = (e) => $(new C({
125
156
  type: "object",
126
157
  shape: e
127
- }), N = (e) => new T({
158
+ })), R = (e) => $(new w({
128
159
  type: "array",
129
160
  element: e
130
- }), P = () => new v({
161
+ })), z = (e) => $(new T({
162
+ type: "optional",
163
+ element: e
164
+ })), B = (e) => $(new E({
165
+ type: "nullable",
166
+ element: e
167
+ })), V = (e) => $(new D({
168
+ type: "literal",
169
+ literal: e
170
+ })), H = (e) => $(new O({
171
+ type: "union",
172
+ options: e
173
+ })), U = (e) => $(new k({
174
+ type: "record",
175
+ element: e
176
+ })), W = () => $(new A({ type: "function" })), G = () => new v({
131
177
  type: "number",
132
178
  format: "int32"
133
- }).check(d("int32", t, n)), F = () => new v({
179
+ }).check(d("int32", t, n)), K = () => new v({
134
180
  type: "number",
135
181
  format: "uint32"
136
- }).check(d("uint32", 0, 4294967295)), I = () => new v({
182
+ }).check(d("uint32", 0, 4294967295)), q = () => new v({
137
183
  type: "number",
138
184
  format: "float32"
139
- }), L = () => new v({
185
+ }), J = () => new v({
140
186
  type: "number",
141
187
  format: "float64"
142
- }), R = () => new x({
188
+ }), Y = () => new x({
143
189
  type: "bigint",
144
190
  format: "int64"
145
- }).check(f("int64", -(2n ** 63n), 2n ** 63n - 1n)), z = () => new x({
191
+ }).check(f("int64", -(2n ** 63n), 2n ** 63n - 1n)), X = () => new x({
146
192
  type: "bigint",
147
193
  format: "uint64"
148
- }).check(f("uint64", 0n, 2n ** 64n - 1n)), B = /* @__PURE__ */ new Set([
194
+ }).check(f("uint64", 0n, 2n ** 64n - 1n)), Z = /* @__PURE__ */ new Set([
149
195
  "string",
150
196
  "array",
151
197
  "set"
152
- ]), V = (e, t, n) => {
153
- let r = B.has(e._zod.def.type);
198
+ ]), Q = (e, t, n) => {
199
+ let r = Z.has(e._zod.def.type);
154
200
  return t === "min" ? r ? u(n) : i(n) : r ? l(n) : a(n);
155
201
  };
156
- function H(e) {
202
+ function $(e) {
157
203
  let t = e.check.bind(e), n = e.register.bind(e), i = {
158
- refine: (e, n) => H(t(s(e, n))),
159
- meta: (t) => t === void 0 ? m.get(e) : H(n(m, t)),
160
- min: (n) => H(t(V(e, "min", n))),
161
- max: (n) => H(t(V(e, "max", n))),
162
- length: (e) => H(t(c(e))),
163
- int: () => H(t(r()))
204
+ refine: (e, n) => $(t(s(e, n))),
205
+ meta: (t) => t === void 0 ? m.get(e) : $(n(m, t)),
206
+ min: (n) => $(t(Q(e, "min", n))),
207
+ max: (n) => $(t(Q(e, "max", n))),
208
+ length: (e) => $(t(c(e))),
209
+ int: () => $(t(r())),
210
+ optional: () => $(new T({
211
+ type: "optional",
212
+ element: e
213
+ })),
214
+ nullable: () => $(new E({
215
+ type: "nullable",
216
+ element: e
217
+ }))
164
218
  };
165
219
  for (let [t, n] of Object.entries(i)) Object.defineProperty(e, t, {
166
220
  value: n,
@@ -169,21 +223,27 @@ function H(e) {
169
223
  });
170
224
  return e;
171
225
  }
172
- var U = {
173
- number: E,
174
- string: D,
175
- boolean: O,
176
- bigint: k,
177
- object: M,
178
- array: N,
179
- instanceof: j,
180
- unknown: A,
181
- int32: P,
182
- uint32: F,
183
- float32: I,
184
- float64: L,
185
- int64: R,
186
- uint64: z,
226
+ var te = {
227
+ number: j,
228
+ string: M,
229
+ boolean: N,
230
+ bigint: P,
231
+ object: L,
232
+ array: R,
233
+ instanceof: I,
234
+ unknown: F,
235
+ optional: z,
236
+ nullable: B,
237
+ literal: V,
238
+ union: H,
239
+ record: U,
240
+ callback: W,
241
+ int32: G,
242
+ uint32: K,
243
+ float32: q,
244
+ float64: J,
245
+ int64: Y,
246
+ uint64: X,
187
247
  int: r,
188
248
  gte: i,
189
249
  lte: a,
@@ -194,9 +254,9 @@ var U = {
194
254
  minLength: u,
195
255
  globalRegistry: m,
196
256
  ZodType: g,
197
- ZodObject: w,
198
- ZodArray: T,
257
+ ZodObject: C,
258
+ ZodArray: w,
199
259
  ZodString: y
200
260
  };
201
261
  //#endregion
202
- export { h as SchemaError, g as ZodType, H as fluent, m as globalRegistry, U as z };
262
+ export { h as SchemaError, g as ZodType, $ as fluent, m as globalRegistry, te as z };