octane 0.2.11 → 0.2.13
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/README.md +5 -0
- package/dist/behavior-root.d.ts +13 -3
- package/dist/behavior-root.js +28 -5
- package/dist/cjs/behavior-root.cjs +32 -6
- package/dist/cjs/class-names.cjs +49 -0
- package/dist/cjs/constants.cjs +9 -0
- package/dist/cjs/context-epoch.cjs +38 -0
- package/dist/cjs/css.cjs +6 -27
- package/dist/cjs/data-encoding.cjs +160 -0
- package/dist/cjs/dom-binding-handoff.cjs +93 -0
- package/dist/cjs/dom-binding-protocol.cjs +115 -0
- package/dist/cjs/dom-binding-styles.cjs +292 -0
- package/dist/cjs/dom-bindings.cjs +700 -0
- package/dist/cjs/dom-focused-move.cjs +66 -0
- package/dist/cjs/dom-stage.cjs +896 -0
- package/dist/cjs/dom-tables.cjs +4 -94
- package/dist/cjs/error-codes.client.generated.cjs +33 -0
- package/dist/cjs/error-codes.server.generated.cjs +24 -0
- package/dist/cjs/hydration/control-capture.cjs +244 -0
- package/dist/cjs/hydration/event-capture.cjs +125 -43
- package/dist/cjs/hydration/interaction-config.cjs +50 -2
- package/dist/cjs/hydration-markers.cjs +37 -0
- package/dist/cjs/independent-hydration-protocol.cjs +106 -0
- package/dist/cjs/index.cjs +9 -0
- package/dist/cjs/runtime.cjs +6397 -1683
- package/dist/cjs/runtime.server.cjs +1465 -213
- package/dist/cjs/server/early-signals.cjs +45 -0
- package/dist/cjs/server/index.cjs +47 -0
- package/dist/cjs/server/rpc-batch.cjs +149 -0
- package/dist/cjs/server/rpc-stream.cjs +146 -0
- package/dist/cjs/server/rpc.cjs +34 -15
- package/dist/cjs/server/signal-query-observation.cjs +158 -0
- package/dist/cjs/server/streamed-region.cjs +52 -0
- package/dist/cjs/server/streamed-signals.cjs +512 -0
- package/dist/cjs/server-call.cjs +103 -0
- package/dist/cjs/server-rpc-batch-client.cjs +141 -0
- package/dist/cjs/server-rpc-client.cjs +94 -27
- package/dist/cjs/server-rpc-protocol.cjs +141 -0
- package/dist/cjs/server-rpc-stream-client.cjs +118 -0
- package/dist/cjs/signals/actions.cjs +474 -0
- package/dist/cjs/signals/client.cjs +4 -1
- package/dist/cjs/signals/computations.cjs +460 -0
- package/dist/cjs/signals/control-binding.cjs +368 -0
- package/dist/cjs/signals/derived-facade.cjs +50 -0
- package/dist/cjs/signals/document-owner.cjs +71 -0
- package/dist/cjs/signals/early-values.cjs +155 -0
- package/dist/cjs/signals/encoding.cjs +6 -95
- package/dist/cjs/signals/engine.cjs +276 -12
- package/dist/cjs/signals/errors.cjs +18 -0
- package/dist/cjs/signals/facade.cjs +477 -0
- package/dist/cjs/signals/graph.cjs +166 -20
- package/dist/cjs/signals/handle-protocol.cjs +36 -0
- package/dist/cjs/signals/index.cjs +81 -2
- package/dist/cjs/signals/native-read-client.cjs +10 -0
- package/dist/cjs/signals/owner-context.cjs +112 -0
- package/dist/cjs/signals/query-attempt-observer.cjs +68 -0
- package/dist/cjs/signals/query-facade.cjs +72 -0
- package/dist/cjs/signals/read-protocol.cjs +54 -0
- package/dist/cjs/signals/requests.cjs +287 -14
- package/dist/cjs/signals/scalar-computations.cjs +76 -0
- package/dist/cjs/signals/server.cjs +4 -1
- package/dist/cjs/signals/transition-candidate.cjs +567 -0
- package/dist/cjs/signals/transition-state.cjs +106 -0
- package/dist/cjs/signals/types.cjs +50 -0
- package/dist/cjs/stream-protocol.cjs +3 -0
- package/dist/cjs/streamed-signals-protocol.cjs +159 -0
- package/dist/cjs/style-values.cjs +122 -0
- package/dist/cjs/trusted-html.cjs +30 -0
- package/dist/cjs/version.cjs +1 -1
- package/dist/class-names.d.ts +5 -0
- package/dist/class-names.js +25 -0
- package/dist/compiler/bundler.js +51 -22
- package/dist/compiler/compile.js +2534 -581
- package/dist/compiler/dom-binding-program.js +935 -0
- package/dist/compiler/dom-binding-request.js +57 -0
- package/dist/compiler/dom-bindings.js +2245 -0
- package/dist/compiler/hook-deps.js +759 -10
- package/dist/compiler/hydrate-boundaries.js +358 -15
- package/dist/compiler/index.d.ts +39 -2
- package/dist/compiler/index.js +1 -0
- package/dist/compiler/native-attribute-reads.js +127 -0
- package/dist/compiler/native-change-diagnostics.js +32 -38
- package/dist/compiler/native-read-diagnostics.js +69 -8
- package/dist/compiler/native-read-types.js +80 -34
- package/dist/compiler/parser.node.js +1 -1
- package/dist/compiler/renderer-boundaries.js +40 -0
- package/dist/compiler/server-context.js +118 -0
- package/dist/compiler/signal-attempt-reads.js +479 -0
- package/dist/compiler/signal-declarations.js +557 -0
- package/dist/compiler/signal-start-reads.js +413 -0
- package/dist/compiler/slot-hooks.d.ts +3 -1
- package/dist/compiler/slot-hooks.js +168 -34
- package/dist/compiler/strong-auto-memo.js +90 -0
- package/dist/compiler/strong-html.js +143 -0
- package/dist/compiler/strong-mode.js +764 -66
- package/dist/compiler/strong-template-policy.js +307 -0
- package/dist/compiler/template-ir.js +200 -0
- package/dist/compiler/typescript.d.ts +2 -0
- package/dist/compiler/typescript.js +2 -0
- package/dist/compiler/vite.d.ts +3 -1
- package/dist/compiler/vite.js +122 -4
- package/dist/compiler/volar.LICENSES.txt +1 -1
- package/dist/compiler/volar.d.ts +6 -1
- package/dist/compiler/volar.js +750 -1433
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +10 -0
- package/dist/context-epoch.d.ts +2 -0
- package/dist/context-epoch.js +13 -0
- package/dist/css.d.ts +2 -5
- package/dist/css.js +2 -23
- package/dist/data-encoding.d.ts +9 -0
- package/dist/data-encoding.js +134 -0
- package/dist/dom-binding-classes.d.ts +15 -0
- package/dist/dom-binding-classes.js +129 -0
- package/dist/dom-binding-controls.d.ts +2 -0
- package/dist/dom-binding-controls.js +6 -0
- package/dist/dom-binding-handoff.d.ts +55 -0
- package/dist/dom-binding-handoff.js +62 -0
- package/dist/dom-binding-program.d.ts +300 -0
- package/dist/dom-binding-program.js +1625 -0
- package/dist/dom-binding-projections.d.ts +15 -0
- package/dist/dom-binding-projections.js +187 -0
- package/dist/dom-binding-protocol.d.ts +13 -0
- package/dist/dom-binding-protocol.js +88 -0
- package/dist/dom-binding-signals.d.ts +21 -0
- package/dist/dom-binding-signals.js +109 -0
- package/dist/dom-binding-styles.d.ts +17 -0
- package/dist/dom-binding-styles.js +272 -0
- package/dist/dom-bindings.d.ts +89 -0
- package/dist/dom-bindings.js +670 -0
- package/dist/dom-focused-move.d.ts +6 -0
- package/dist/dom-focused-move.js +42 -0
- package/dist/dom-stage.d.ts +52 -0
- package/dist/dom-stage.js +872 -0
- package/dist/dom-tables.d.ts +1 -3
- package/dist/dom-tables.js +1 -91
- package/dist/error-codes.client.generated.d.ts +9 -0
- package/dist/error-codes.client.generated.js +33 -0
- package/dist/error-codes.server.generated.d.ts +6 -0
- package/dist/error-codes.server.generated.js +24 -0
- package/dist/hydration/control-capture.d.ts +62 -0
- package/dist/hydration/control-capture.js +223 -0
- package/dist/hydration/document-lifecycle.d.ts +23 -0
- package/dist/hydration/document-lifecycle.js +80 -0
- package/dist/hydration/event-capture.d.ts +20 -1
- package/dist/hydration/event-capture.js +128 -42
- package/dist/hydration/independent-island.d.ts +45 -0
- package/dist/hydration/independent-island.js +233 -0
- package/dist/hydration/index.d.ts +8 -1
- package/dist/hydration/index.js +55 -1
- package/dist/hydration/interaction-config.d.ts +5 -0
- package/dist/hydration/interaction-config.js +44 -1
- package/dist/hydration/stream-delivery.d.ts +32 -0
- package/dist/hydration/stream-delivery.js +333 -0
- package/dist/hydration/stream-receiver.d.ts +26 -0
- package/dist/hydration/stream-receiver.js +204 -0
- package/dist/hydration/stream-result-receiver.d.ts +70 -0
- package/dist/hydration/stream-result-receiver.js +246 -0
- package/dist/hydration/streamed-signals.d.ts +44 -0
- package/dist/hydration/streamed-signals.js +186 -0
- package/dist/hydration/types.d.ts +6 -0
- package/dist/hydration-markers.d.ts +7 -0
- package/dist/hydration-markers.js +10 -0
- package/dist/independent-hydration-protocol.d.ts +31 -0
- package/dist/independent-hydration-protocol.js +80 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +6 -0
- package/dist/internal/signal-read.d.ts +1 -0
- package/dist/internal/signal-read.js +4 -0
- package/dist/jsx-runtime-strong.d.ts +33 -0
- package/dist/jsx-runtime.d.ts +58 -2
- package/dist/public-types.d.ts +15 -1
- package/dist/runtime.d.ts +297 -23
- package/dist/runtime.js +6405 -1679
- package/dist/runtime.server.d.ts +110 -27
- package/dist/runtime.server.js +1458 -213
- package/dist/server/early-signals.d.ts +14 -0
- package/dist/server/early-signals.js +34 -0
- package/dist/server/index.d.ts +11 -2
- package/dist/server/index.js +50 -1
- package/dist/server/rpc-batch.d.ts +17 -0
- package/dist/server/rpc-batch.js +129 -0
- package/dist/server/rpc-stream.d.ts +9 -0
- package/dist/server/rpc-stream.js +125 -0
- package/dist/server/rpc.d.ts +5 -1
- package/dist/server/rpc.js +37 -13
- package/dist/server/signal-query-observation.d.ts +3 -0
- package/dist/server/signal-query-observation.js +134 -0
- package/dist/server/streamed-region.d.ts +15 -0
- package/dist/server/streamed-region.js +30 -0
- package/dist/server/streamed-signals.d.ts +45 -0
- package/dist/server/streamed-signals.js +488 -0
- package/dist/server-call.d.ts +41 -0
- package/dist/server-call.js +75 -0
- package/dist/server-rpc-batch-client.d.ts +7 -0
- package/dist/server-rpc-batch-client.js +119 -0
- package/dist/server-rpc-client.d.ts +3 -1
- package/dist/server-rpc-client.js +99 -27
- package/dist/server-rpc-protocol.d.ts +47 -0
- package/dist/server-rpc-protocol.js +109 -0
- package/dist/server-rpc-stream-client.d.ts +5 -0
- package/dist/server-rpc-stream-client.js +98 -0
- package/dist/signals/actions.d.ts +12 -0
- package/dist/signals/actions.js +466 -0
- package/dist/signals/client.d.ts +2 -0
- package/dist/signals/client.js +1 -0
- package/dist/signals/computations.d.ts +37 -0
- package/dist/signals/computations.js +455 -0
- package/dist/signals/control-binding.d.ts +31 -0
- package/dist/signals/control-binding.js +353 -0
- package/dist/signals/derived-facade.d.ts +3 -0
- package/dist/signals/derived-facade.js +25 -0
- package/dist/signals/document-owner.d.ts +10 -0
- package/dist/signals/document-owner.js +43 -0
- package/dist/signals/early-values.d.ts +24 -0
- package/dist/signals/early-values.js +124 -0
- package/dist/signals/encoding.d.ts +1 -3
- package/dist/signals/encoding.js +3 -93
- package/dist/signals/engine.d.ts +53 -4
- package/dist/signals/engine.js +275 -16
- package/dist/signals/errors.d.ts +7 -0
- package/dist/signals/errors.js +16 -0
- package/dist/signals/facade.d.ts +74 -0
- package/dist/signals/facade.js +452 -0
- package/dist/signals/graph.d.ts +52 -6
- package/dist/signals/graph.js +174 -19
- package/dist/signals/handle-protocol.d.ts +4 -0
- package/dist/signals/handle-protocol.js +11 -0
- package/dist/signals/index.d.ts +12 -3
- package/dist/signals/index.js +71 -2
- package/dist/signals/native-read-client.d.ts +3 -0
- package/dist/signals/native-read-client.js +10 -0
- package/dist/signals/owner-context.d.ts +22 -0
- package/dist/signals/owner-context.js +77 -0
- package/dist/signals/query-attempt-observer.d.ts +49 -0
- package/dist/signals/query-attempt-observer.js +41 -0
- package/dist/signals/query-facade.d.ts +3 -0
- package/dist/signals/query-facade.js +49 -0
- package/dist/signals/read-protocol.d.ts +37 -2
- package/dist/signals/read-protocol.js +44 -0
- package/dist/signals/requests.d.ts +38 -5
- package/dist/signals/requests.js +298 -15
- package/dist/signals/scalar-computations.d.ts +2 -0
- package/dist/signals/scalar-computations.js +60 -0
- package/dist/signals/server.d.ts +2 -0
- package/dist/signals/server.js +1 -0
- package/dist/signals/transition-candidate.d.ts +71 -0
- package/dist/signals/transition-candidate.js +557 -0
- package/dist/signals/transition-state.d.ts +51 -0
- package/dist/signals/transition-state.js +70 -0
- package/dist/signals/types.d.ts +95 -5
- package/dist/signals/types.js +20 -0
- package/dist/stream-protocol.d.ts +0 -5
- package/dist/stream-protocol.js +3 -0
- package/dist/streamed-signals-protocol.d.ts +60 -0
- package/dist/streamed-signals-protocol.js +130 -0
- package/dist/style-values.d.ts +3 -0
- package/dist/style-values.js +96 -0
- package/dist/trusted-html.d.ts +17 -0
- package/dist/trusted-html.js +6 -0
- package/dist/universal-core.d.ts +6 -0
- package/dist/universal-core.js +214 -202
- package/dist/version.js +1 -1
- package/package.json +48 -5
|
@@ -18,13 +18,17 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var graph_exports = {};
|
|
20
20
|
__export(graph_exports, {
|
|
21
|
+
CandidateUnsupportedError: () => import_transition_state2.CandidateUnsupportedError,
|
|
21
22
|
ScopedNode: () => ScopedNode,
|
|
22
23
|
SignalObserver: () => SignalObserver,
|
|
23
24
|
assertAlive: () => assertAlive,
|
|
24
25
|
assertWritable: () => assertWritable,
|
|
26
|
+
attachObserver: () => attachObserver,
|
|
25
27
|
derivedState: () => derivedState,
|
|
28
|
+
derivedValueState: () => derivedValueState,
|
|
26
29
|
endSignalBatch: () => endSignalBatch,
|
|
27
30
|
errorState: () => errorState,
|
|
31
|
+
idleState: () => idleState,
|
|
28
32
|
inspectNativeNode: () => inspectNativeNode,
|
|
29
33
|
invalidateNode: () => invalidateNode,
|
|
30
34
|
isThenable: () => isThenable,
|
|
@@ -32,6 +36,7 @@ __export(graph_exports, {
|
|
|
32
36
|
publishNode: () => publishNode,
|
|
33
37
|
pure: () => pure,
|
|
34
38
|
readNode: () => readNode,
|
|
39
|
+
readSignalBinding: () => readSignalBinding,
|
|
35
40
|
readyState: () => readyState,
|
|
36
41
|
refreshNode: () => refreshNode,
|
|
37
42
|
releaseRetention: () => releaseRetention,
|
|
@@ -42,12 +47,17 @@ __export(graph_exports, {
|
|
|
42
47
|
startSignalBatch: () => startSignalBatch,
|
|
43
48
|
stopObserver: () => stopObserver,
|
|
44
49
|
strictValue: () => strictValue,
|
|
45
|
-
|
|
50
|
+
subscribeNode: () => subscribeNode,
|
|
51
|
+
untrack: () => untrack,
|
|
52
|
+
untrackCommitted: () => untrackCommitted
|
|
46
53
|
});
|
|
47
54
|
module.exports = __toCommonJS(graph_exports);
|
|
55
|
+
var import_transition_state = require("./transition-state.cjs");
|
|
48
56
|
var import_system = require("alien-signals/system");
|
|
49
57
|
var import_errors = require("./errors.cjs");
|
|
50
58
|
var import_read_protocol = require("./read-protocol.cjs");
|
|
59
|
+
var import_types = require("./types.cjs");
|
|
60
|
+
var import_transition_state2 = require("./transition-state.cjs");
|
|
51
61
|
const ReactiveFlags = {
|
|
52
62
|
None: 0,
|
|
53
63
|
Mutable: 1,
|
|
@@ -86,7 +96,15 @@ const graph = (0, import_system.createReactiveSystem)({
|
|
|
86
96
|
node.flags |= ReactiveFlags.Dirty;
|
|
87
97
|
}
|
|
88
98
|
node.owner.trace("invalidate", node);
|
|
89
|
-
if (node.
|
|
99
|
+
if (node.invalidateAttempt) {
|
|
100
|
+
if (import_transition_state.deferCandidateInvalidation) {
|
|
101
|
+
const invalidate = node.invalidateAttempt;
|
|
102
|
+
queued.add(() => {
|
|
103
|
+
if (node.invalidateAttempt === invalidate) invalidate();
|
|
104
|
+
});
|
|
105
|
+
} else node.invalidateAttempt();
|
|
106
|
+
queued.add(node);
|
|
107
|
+
} else if (node.kind === "async") queued.add(node);
|
|
90
108
|
} else {
|
|
91
109
|
queued.add(node);
|
|
92
110
|
}
|
|
@@ -127,6 +145,9 @@ function untrack(run) {
|
|
|
127
145
|
(0, import_read_protocol.setNativeReadObserver)(previousObserver);
|
|
128
146
|
}
|
|
129
147
|
}
|
|
148
|
+
function untrackCommitted(run) {
|
|
149
|
+
return (0, import_transition_state.withoutSignalCandidate)(() => untrack(run));
|
|
150
|
+
}
|
|
130
151
|
function startSignalBatch() {
|
|
131
152
|
batchDepth++;
|
|
132
153
|
}
|
|
@@ -204,6 +225,16 @@ function pendingState(waiting, connection = "none", requestKey, resolveWaiting)
|
|
|
204
225
|
...resolveWaiting ? { resolveWaiting } : {}
|
|
205
226
|
};
|
|
206
227
|
}
|
|
228
|
+
function idleState() {
|
|
229
|
+
return {
|
|
230
|
+
snapshot: {
|
|
231
|
+
status: "idle",
|
|
232
|
+
refreshing: false,
|
|
233
|
+
connection: "none",
|
|
234
|
+
complete: false
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
}
|
|
207
238
|
function sameOwners(a, b) {
|
|
208
239
|
if (a.owners === b.owners) return true;
|
|
209
240
|
if ((a.owners?.size ?? 0) !== (b.owners?.size ?? 0)) return false;
|
|
@@ -303,6 +334,9 @@ class ScopedNode {
|
|
|
303
334
|
owner;
|
|
304
335
|
key;
|
|
305
336
|
kind;
|
|
337
|
+
get [import_types.SIGNAL_HANDLE]() {
|
|
338
|
+
return true;
|
|
339
|
+
}
|
|
306
340
|
deps;
|
|
307
341
|
depsTail;
|
|
308
342
|
subs;
|
|
@@ -311,6 +345,7 @@ class ScopedNode {
|
|
|
311
345
|
revision = 0;
|
|
312
346
|
state;
|
|
313
347
|
compute;
|
|
348
|
+
invalidateAttempt;
|
|
314
349
|
last;
|
|
315
350
|
lastState;
|
|
316
351
|
hasLast = false;
|
|
@@ -324,18 +359,49 @@ class ScopedNode {
|
|
|
324
359
|
throw new TypeError("Only an async signal can be retried.");
|
|
325
360
|
}
|
|
326
361
|
get() {
|
|
327
|
-
return strictValue(readNode(this));
|
|
362
|
+
return strictValue(readNode(this), this.key);
|
|
363
|
+
}
|
|
364
|
+
[import_types.SIGNAL_BINDING_READ]() {
|
|
365
|
+
return readSignalBinding(this);
|
|
366
|
+
}
|
|
367
|
+
[import_types.SIGNAL_BINDING_SUBSCRIBE](notify, onRetire) {
|
|
368
|
+
assertAlive(this.owner);
|
|
369
|
+
return attachObserver(
|
|
370
|
+
this,
|
|
371
|
+
onRetire === void 0 ? notify : (0, import_read_protocol.forwardNativeTransitionConsumer)(
|
|
372
|
+
notify,
|
|
373
|
+
() => this.owner.retired ? onRetire() : notify()
|
|
374
|
+
),
|
|
375
|
+
true
|
|
376
|
+
);
|
|
377
|
+
}
|
|
378
|
+
[import_types.SIGNAL_BINDING_IDENTITY]() {
|
|
379
|
+
return { scope: "instance", nodeKey: this.key };
|
|
380
|
+
}
|
|
381
|
+
[import_read_protocol.NATIVE_DOM_VALUE]() {
|
|
382
|
+
return this.get();
|
|
328
383
|
}
|
|
329
384
|
set(value) {
|
|
330
385
|
assertAlive(this.owner);
|
|
331
386
|
assertWritable();
|
|
332
387
|
if (this.kind !== "signal") throw new TypeError("Only a writable signal accepts set().");
|
|
388
|
+
const candidate = import_transition_state.activeCandidate ?? (0, import_read_protocol.getNativeCandidate)();
|
|
389
|
+
if (candidate) {
|
|
390
|
+
candidate.run(() => candidate.write(this, value));
|
|
391
|
+
return;
|
|
392
|
+
}
|
|
333
393
|
signalBatch(() => {
|
|
334
|
-
const previous = strictValue(refreshNode(this));
|
|
394
|
+
const previous = strictValue(refreshNode(this), this.key);
|
|
335
395
|
const next = typeof value === "function" ? untrack(() => pure(() => value(previous))) : value;
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
396
|
+
const releases = import_transition_state.candidateWriteCount ? (0, import_transition_state.recordCandidateUrgentWrite)(this, value) : void 0;
|
|
397
|
+
try {
|
|
398
|
+
if (!Object.is(previous, next)) {
|
|
399
|
+
publishNode(this, readyState(next));
|
|
400
|
+
this.owner.trace("write", this);
|
|
401
|
+
}
|
|
402
|
+
} finally {
|
|
403
|
+
if (releases) for (const release of releases) release();
|
|
404
|
+
}
|
|
339
405
|
});
|
|
340
406
|
}
|
|
341
407
|
latest(fallback) {
|
|
@@ -385,8 +451,21 @@ function inspectNativeNode(node, read) {
|
|
|
385
451
|
dependencies
|
|
386
452
|
};
|
|
387
453
|
}
|
|
454
|
+
function createNativeSource(node, read) {
|
|
455
|
+
return {
|
|
456
|
+
getVersion: () => import_transition_state.activeCandidate && !import_transition_state.activeCandidate.observes(node) ? NaN : node.revision,
|
|
457
|
+
subscribe: (notify) => {
|
|
458
|
+
assertAlive(node.owner);
|
|
459
|
+
return attachObserver(node, notify, true);
|
|
460
|
+
},
|
|
461
|
+
serialize: (revision) => node.revision === revision ? node.owner.serializeRead(node, read) : void 0,
|
|
462
|
+
inspect: () => inspectNativeNode(node, read)
|
|
463
|
+
};
|
|
464
|
+
}
|
|
388
465
|
function readNode(node, read = "value") {
|
|
389
466
|
assertAlive(node.owner);
|
|
467
|
+
const candidate = import_transition_state.activeCandidate;
|
|
468
|
+
if (candidate) node = candidate.resolve(node);
|
|
390
469
|
const historical = historicalReader?.(node, read);
|
|
391
470
|
if (historical) return historical;
|
|
392
471
|
if (!historicalReader && node.owner.seedable) {
|
|
@@ -398,27 +477,35 @@ function readNode(node, read = "value") {
|
|
|
398
477
|
if (activeNode) graph.link(node, activeNode, trackingCycle);
|
|
399
478
|
if ((0, import_read_protocol.getNativeReadObserver)()) {
|
|
400
479
|
const field = read === "value" ? "nativeSource" : read === "latest" ? "nativeLatestSource" : "nativeSnapshotSource";
|
|
401
|
-
const source = node[field] ??=
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
},
|
|
407
|
-
serialize: (revision) => node.revision === revision ? node.owner.serializeRead(node, read) : void 0,
|
|
408
|
-
inspect: () => inspectNativeNode(node, read)
|
|
409
|
-
};
|
|
410
|
-
(0, import_read_protocol.reportNativeRead)(source, node.revision);
|
|
480
|
+
const source = node[field] ??= createNativeSource(node, read);
|
|
481
|
+
(0, import_read_protocol.reportNativeRead)(
|
|
482
|
+
candidate ? candidate.nativeSource(node, read, source) : source,
|
|
483
|
+
node.revision
|
|
484
|
+
);
|
|
411
485
|
}
|
|
412
486
|
if (observed.owners) for (const owner of observed.owners) assertAlive(owner);
|
|
413
487
|
if (activeNode) recordOwners(node, observed);
|
|
414
488
|
return observed;
|
|
415
489
|
}
|
|
416
|
-
function strictValue(state) {
|
|
490
|
+
function strictValue(state, key = "idle") {
|
|
417
491
|
const snapshot = state.snapshot;
|
|
418
492
|
if (snapshot.status === "ready") return snapshot.value;
|
|
419
493
|
if (snapshot.status === "error") throw snapshot.error;
|
|
494
|
+
if (snapshot.status === "idle") throw new import_errors.SignalIdleError(key);
|
|
420
495
|
throw state.waiting;
|
|
421
496
|
}
|
|
497
|
+
function readSignalBinding(handle$) {
|
|
498
|
+
const resolveAdoption = (0, import_read_protocol.getNativeAdoptionResolver)();
|
|
499
|
+
if ((historicalReader || resolveAdoption) && handle$ instanceof ScopedNode && handle$.owner.seedable && (historicalReader || resolveAdoption?.(handle$.owner))) {
|
|
500
|
+
return handle$.get();
|
|
501
|
+
}
|
|
502
|
+
const observer = (0, import_read_protocol.setNativeReadObserver)(null);
|
|
503
|
+
try {
|
|
504
|
+
return handle$.get();
|
|
505
|
+
} finally {
|
|
506
|
+
(0, import_read_protocol.setNativeReadObserver)(observer);
|
|
507
|
+
}
|
|
508
|
+
}
|
|
422
509
|
function refreshNode(node) {
|
|
423
510
|
assertAlive(node.owner);
|
|
424
511
|
if (node.evaluating) throw new import_errors.SignalCycleError(node.key);
|
|
@@ -461,7 +548,7 @@ function evaluate(node) {
|
|
|
461
548
|
let next;
|
|
462
549
|
let owners;
|
|
463
550
|
try {
|
|
464
|
-
next = node.compute();
|
|
551
|
+
next = node.compute(node);
|
|
465
552
|
} catch (error) {
|
|
466
553
|
if (isThenable(error)) {
|
|
467
554
|
const wakeup = node.wakeup ??= createWakeup();
|
|
@@ -530,9 +617,17 @@ function invalidateNode(node) {
|
|
|
530
617
|
function derivedState(node, read) {
|
|
531
618
|
const value = pure(read);
|
|
532
619
|
if (isThenable(value)) throw new TypeError("derived$ requires a synchronous computation.");
|
|
620
|
+
return derivedValueState(node, value);
|
|
621
|
+
}
|
|
622
|
+
function derivedValueState(node, value, activity, additionalDependencies) {
|
|
533
623
|
let refreshing = false;
|
|
534
624
|
let complete = true;
|
|
535
625
|
let connection = "none";
|
|
626
|
+
if (activity) {
|
|
627
|
+
refreshing = activity.refreshing;
|
|
628
|
+
complete = activity.complete;
|
|
629
|
+
connection = activity.connection;
|
|
630
|
+
}
|
|
536
631
|
for (let link = node.deps; link && node.depsTail; link = link.nextDep) {
|
|
537
632
|
const dependency = link.dep.state?.snapshot;
|
|
538
633
|
if (dependency) {
|
|
@@ -545,6 +640,18 @@ function derivedState(node, read) {
|
|
|
545
640
|
}
|
|
546
641
|
if (link === node.depsTail) break;
|
|
547
642
|
}
|
|
643
|
+
if (additionalDependencies) {
|
|
644
|
+
for (const node2 of additionalDependencies) {
|
|
645
|
+
const dependency = node2.state?.snapshot;
|
|
646
|
+
if (!dependency) continue;
|
|
647
|
+
refreshing ||= dependency.refreshing;
|
|
648
|
+
complete &&= dependency.complete;
|
|
649
|
+
if (dependency.connection === "open") connection = "open";
|
|
650
|
+
else if (connection !== "open" && dependency.connection === "connecting")
|
|
651
|
+
connection = "connecting";
|
|
652
|
+
else if (connection === "none" && dependency.connection === "closed") connection = "closed";
|
|
653
|
+
}
|
|
654
|
+
}
|
|
548
655
|
return readyState(value, { refreshing, complete, connection });
|
|
549
656
|
}
|
|
550
657
|
class SignalObserver {
|
|
@@ -568,6 +675,10 @@ function attachObserver(node, notify, native, state) {
|
|
|
568
675
|
node.owner.observers.add(observer);
|
|
569
676
|
return () => stopObserver(observer);
|
|
570
677
|
}
|
|
678
|
+
function subscribeNode(node, notify) {
|
|
679
|
+
const state = untrack(() => refreshNode(node));
|
|
680
|
+
return attachObserver(node, notify, true, state);
|
|
681
|
+
}
|
|
571
682
|
function runObserver(observer) {
|
|
572
683
|
const node = observer.node;
|
|
573
684
|
if (!node || !observer.flags) return;
|
|
@@ -607,6 +718,7 @@ function retireGraph(owner, nodes) {
|
|
|
607
718
|
node.state = errorState(retirementError);
|
|
608
719
|
releaseRetention(node);
|
|
609
720
|
node.compute = void 0;
|
|
721
|
+
node.invalidateAttempt = void 0;
|
|
610
722
|
if (node.kind === "async") node.retry = ScopedNode.prototype.retry;
|
|
611
723
|
if (node.subs) {
|
|
612
724
|
graph.propagate(node.subs, executionDepth !== 0);
|
|
@@ -620,15 +732,46 @@ function retireGraph(owner, nodes) {
|
|
|
620
732
|
retirementError = previousError;
|
|
621
733
|
}
|
|
622
734
|
}
|
|
735
|
+
(0, import_transition_state.registerCandidateGraph)({
|
|
736
|
+
ScopedNode,
|
|
737
|
+
graph,
|
|
738
|
+
flags: ReactiveFlags,
|
|
739
|
+
historical: () => historicalReader !== void 0,
|
|
740
|
+
link: (from, to) => {
|
|
741
|
+
graph.link(from, to, ++trackingCycle);
|
|
742
|
+
},
|
|
743
|
+
removeQueued: (node) => {
|
|
744
|
+
queued.delete(node);
|
|
745
|
+
},
|
|
746
|
+
assertAlive,
|
|
747
|
+
strictValue,
|
|
748
|
+
refreshNode,
|
|
749
|
+
pure,
|
|
750
|
+
untrack,
|
|
751
|
+
signalBatch,
|
|
752
|
+
publishNode,
|
|
753
|
+
readyState,
|
|
754
|
+
commitState,
|
|
755
|
+
sameState,
|
|
756
|
+
releaseRetainedOwners,
|
|
757
|
+
retainOwners,
|
|
758
|
+
releaseRetention,
|
|
759
|
+
createNativeSource,
|
|
760
|
+
attachObserver
|
|
761
|
+
});
|
|
623
762
|
// Annotate the CommonJS export names for ESM import in node:
|
|
624
763
|
0 && (module.exports = {
|
|
764
|
+
CandidateUnsupportedError,
|
|
625
765
|
ScopedNode,
|
|
626
766
|
SignalObserver,
|
|
627
767
|
assertAlive,
|
|
628
768
|
assertWritable,
|
|
769
|
+
attachObserver,
|
|
629
770
|
derivedState,
|
|
771
|
+
derivedValueState,
|
|
630
772
|
endSignalBatch,
|
|
631
773
|
errorState,
|
|
774
|
+
idleState,
|
|
632
775
|
inspectNativeNode,
|
|
633
776
|
invalidateNode,
|
|
634
777
|
isThenable,
|
|
@@ -636,6 +779,7 @@ function retireGraph(owner, nodes) {
|
|
|
636
779
|
publishNode,
|
|
637
780
|
pure,
|
|
638
781
|
readNode,
|
|
782
|
+
readSignalBinding,
|
|
639
783
|
readyState,
|
|
640
784
|
refreshNode,
|
|
641
785
|
releaseRetention,
|
|
@@ -646,5 +790,7 @@ function retireGraph(owner, nodes) {
|
|
|
646
790
|
startSignalBatch,
|
|
647
791
|
stopObserver,
|
|
648
792
|
strictValue,
|
|
649
|
-
|
|
793
|
+
subscribeNode,
|
|
794
|
+
untrack,
|
|
795
|
+
untrackCommitted
|
|
650
796
|
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var handle_protocol_exports = {};
|
|
20
|
+
__export(handle_protocol_exports, {
|
|
21
|
+
isSignalHandle: () => isSignalHandle,
|
|
22
|
+
isWritableSignal: () => isWritableSignal
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(handle_protocol_exports);
|
|
25
|
+
var import_types = require("./types.cjs");
|
|
26
|
+
function isSignalHandle(value) {
|
|
27
|
+
return (typeof value === "object" || typeof value === "function") && value !== null && value[import_types.SIGNAL_HANDLE] === true;
|
|
28
|
+
}
|
|
29
|
+
function isWritableSignal(value) {
|
|
30
|
+
return isSignalHandle(value) && value.kind === "signal" && typeof value.set === "function";
|
|
31
|
+
}
|
|
32
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
33
|
+
0 && (module.exports = {
|
|
34
|
+
isSignalHandle,
|
|
35
|
+
isWritableSignal
|
|
36
|
+
});
|
|
@@ -18,25 +18,104 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var signals_exports = {};
|
|
20
20
|
__export(signals_exports, {
|
|
21
|
+
ActionUncertainError: () => import_actions.ActionUncertainError,
|
|
22
|
+
QUERY_REQUEST: () => import_types.QUERY_REQUEST,
|
|
23
|
+
SIGNAL_BINDING_IDENTITY: () => import_types.SIGNAL_BINDING_IDENTITY,
|
|
24
|
+
SIGNAL_BINDING_READ: () => import_types.SIGNAL_BINDING_READ,
|
|
25
|
+
SIGNAL_BINDING_SUBSCRIBE: () => import_types.SIGNAL_BINDING_SUBSCRIBE,
|
|
26
|
+
SIGNAL_HANDLE: () => import_types.SIGNAL_HANDLE,
|
|
21
27
|
ScopeDisposedError: () => import_errors.ScopeDisposedError,
|
|
22
28
|
SignalCycleError: () => import_errors.SignalCycleError,
|
|
23
29
|
SignalFrameError: () => import_errors.SignalFrameError,
|
|
30
|
+
SignalIdleError: () => import_errors.SignalIdleError,
|
|
24
31
|
SignalSerializationError: () => import_errors.SignalSerializationError,
|
|
32
|
+
SignalStreamError: () => import_errors.SignalStreamError,
|
|
25
33
|
SignalWriteError: () => import_errors.SignalWriteError,
|
|
34
|
+
__derivedAt: () => import_derived_facade.__derivedAt,
|
|
35
|
+
__derivedScalarAt: () => import_facade.__derivedScalarAt,
|
|
36
|
+
__enableSignalDocument: () => import_document_owner.enableSignalDocument,
|
|
37
|
+
__queryAt: () => import_query_facade.__queryAt,
|
|
38
|
+
__signalAt: () => import_facade.__signalAt,
|
|
39
|
+
__startSignalReads: () => import_facade.__startSignalReads,
|
|
40
|
+
acceptStreamedSignalResult: () => import_facade.acceptStreamedSignalResult,
|
|
41
|
+
action$: () => import_actions.action$,
|
|
42
|
+
attachStreamedSignalResult: () => import_facade.attachStreamedSignalResult,
|
|
43
|
+
bindSignalControl: () => import_control_binding.bindSignalControl,
|
|
44
|
+
bindStreamedSignalSelection: () => import_facade.bindStreamedSignalSelection,
|
|
45
|
+
captureSignalOwner: () => import_owner_context.captureSignalOwner,
|
|
46
|
+
createResource: () => import_requests.createResource,
|
|
26
47
|
createScope: () => import_engine.createScope,
|
|
27
|
-
|
|
48
|
+
currentSignalOwner: () => import_owner_context.currentSignalOwner,
|
|
49
|
+
derived$: () => import_derived_facade.derived$,
|
|
50
|
+
failStreamedSignalResult: () => import_facade.failStreamedSignalResult,
|
|
51
|
+
installSignalOwnerEnvironment: () => import_owner_context.installSignalOwnerEnvironment,
|
|
52
|
+
isActionUncertain: () => import_actions.isActionUncertain,
|
|
53
|
+
isSignalHandle: () => import_handle_protocol.isSignalHandle,
|
|
54
|
+
isWritableSignal: () => import_handle_protocol.isWritableSignal,
|
|
55
|
+
optimistic$: () => import_actions.optimistic$,
|
|
56
|
+
query: () => import_requests.query,
|
|
57
|
+
query$: () => import_query_facade.query$,
|
|
58
|
+
readSignalBinding: () => import_facade.readSignalBinding,
|
|
59
|
+
retireSignalOwnerIdentity: () => import_owner_context.retireSignalOwnerIdentity,
|
|
60
|
+
runWithSignalOwner: () => import_owner_context.runWithSignalOwner,
|
|
61
|
+
signal$: () => import_facade.signal$,
|
|
62
|
+
skip: () => import_types.skip
|
|
28
63
|
});
|
|
29
64
|
module.exports = __toCommonJS(signals_exports);
|
|
30
65
|
var import_engine = require("./engine.cjs");
|
|
66
|
+
var import_control_binding = require("./control-binding.cjs");
|
|
67
|
+
var import_document_owner = require("./document-owner.cjs");
|
|
31
68
|
var import_requests = require("./requests.cjs");
|
|
69
|
+
var import_actions = require("./actions.cjs");
|
|
70
|
+
var import_derived_facade = require("./derived-facade.cjs");
|
|
71
|
+
var import_query_facade = require("./query-facade.cjs");
|
|
72
|
+
var import_handle_protocol = require("./handle-protocol.cjs");
|
|
73
|
+
var import_facade = require("./facade.cjs");
|
|
74
|
+
var import_owner_context = require("./owner-context.cjs");
|
|
32
75
|
var import_errors = require("./errors.cjs");
|
|
76
|
+
var import_types = require("./types.cjs");
|
|
33
77
|
// Annotate the CommonJS export names for ESM import in node:
|
|
34
78
|
0 && (module.exports = {
|
|
79
|
+
ActionUncertainError,
|
|
80
|
+
QUERY_REQUEST,
|
|
81
|
+
SIGNAL_BINDING_IDENTITY,
|
|
82
|
+
SIGNAL_BINDING_READ,
|
|
83
|
+
SIGNAL_BINDING_SUBSCRIBE,
|
|
84
|
+
SIGNAL_HANDLE,
|
|
35
85
|
ScopeDisposedError,
|
|
36
86
|
SignalCycleError,
|
|
37
87
|
SignalFrameError,
|
|
88
|
+
SignalIdleError,
|
|
38
89
|
SignalSerializationError,
|
|
90
|
+
SignalStreamError,
|
|
39
91
|
SignalWriteError,
|
|
92
|
+
__derivedAt,
|
|
93
|
+
__derivedScalarAt,
|
|
94
|
+
__enableSignalDocument,
|
|
95
|
+
__queryAt,
|
|
96
|
+
__signalAt,
|
|
97
|
+
__startSignalReads,
|
|
98
|
+
acceptStreamedSignalResult,
|
|
99
|
+
action$,
|
|
100
|
+
attachStreamedSignalResult,
|
|
101
|
+
bindSignalControl,
|
|
102
|
+
bindStreamedSignalSelection,
|
|
103
|
+
captureSignalOwner,
|
|
104
|
+
createResource,
|
|
40
105
|
createScope,
|
|
41
|
-
|
|
106
|
+
currentSignalOwner,
|
|
107
|
+
derived$,
|
|
108
|
+
failStreamedSignalResult,
|
|
109
|
+
installSignalOwnerEnvironment,
|
|
110
|
+
isActionUncertain,
|
|
111
|
+
isSignalHandle,
|
|
112
|
+
isWritableSignal,
|
|
113
|
+
optimistic$,
|
|
114
|
+
query,
|
|
115
|
+
query$,
|
|
116
|
+
readSignalBinding,
|
|
117
|
+
retireSignalOwnerIdentity,
|
|
118
|
+
runWithSignalOwner,
|
|
119
|
+
signal$,
|
|
120
|
+
skip
|
|
42
121
|
});
|
|
@@ -22,6 +22,7 @@ __export(native_read_client_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(native_read_client_exports);
|
|
24
24
|
var import_native_read_collector = require("./native-read-collector.cjs");
|
|
25
|
+
var import_read_protocol = require("./read-protocol.cjs");
|
|
25
26
|
var import_native_read_inspection = require("./native-read-inspection.cjs");
|
|
26
27
|
function createNativeReadDriver(host) {
|
|
27
28
|
const consumers = /* @__PURE__ */ new WeakMap();
|
|
@@ -57,6 +58,7 @@ function createNativeReadDriver(host) {
|
|
|
57
58
|
function disposeConsumer(consumer) {
|
|
58
59
|
if (consumer.disposed) return;
|
|
59
60
|
consumer.disposed = true;
|
|
61
|
+
host.retire?.(consumer.block);
|
|
60
62
|
if (consumer.committed !== null) release(consumer.committed);
|
|
61
63
|
consumer.committed = null;
|
|
62
64
|
for (const candidate of consumer.pending) release(candidate);
|
|
@@ -79,6 +81,14 @@ function createNativeReadDriver(host) {
|
|
|
79
81
|
};
|
|
80
82
|
consumers.set(scope, consumer);
|
|
81
83
|
const owned = consumer;
|
|
84
|
+
if (host.prepare !== void 0) {
|
|
85
|
+
Object.assign(owned.notify, {
|
|
86
|
+
[import_read_protocol.NATIVE_TRANSITION_CONSUMER]: {
|
|
87
|
+
active: () => !owned.disposed && !owned.block.disposed,
|
|
88
|
+
prepare: () => host.prepare(owned.block)
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
82
92
|
host.cleanup(scope, () => disposeConsumer(owned));
|
|
83
93
|
}
|
|
84
94
|
return consumer;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var owner_context_exports = {};
|
|
20
|
+
__export(owner_context_exports, {
|
|
21
|
+
activeSignalOwnerEnvironment: () => installedEnvironment,
|
|
22
|
+
activeSynchronousSignalOwner: () => synchronousOwner,
|
|
23
|
+
captureSignalOwner: () => captureSignalOwner,
|
|
24
|
+
currentExplicitSignalOwner: () => currentExplicitSignalOwner,
|
|
25
|
+
currentSignalOwner: () => currentSignalOwner,
|
|
26
|
+
enterSynchronousSignalOwner: () => enterSynchronousSignalOwner,
|
|
27
|
+
installDefaultSignalOwner: () => installDefaultSignalOwner,
|
|
28
|
+
installSignalOwnerEnvironment: () => installSignalOwnerEnvironment,
|
|
29
|
+
installSignalOwnerRetirement: () => installSignalOwnerRetirement,
|
|
30
|
+
restoreSynchronousSignalOwner: () => restoreSynchronousSignalOwner,
|
|
31
|
+
retireSignalOwnerIdentity: () => retireSignalOwnerIdentity,
|
|
32
|
+
runWithSignalOwner: () => runWithSignalOwner
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(owner_context_exports);
|
|
35
|
+
let installedEnvironment;
|
|
36
|
+
let synchronousOwner = null;
|
|
37
|
+
let defaultOwner;
|
|
38
|
+
let retireOwner;
|
|
39
|
+
function installSignalOwnerEnvironment(environment) {
|
|
40
|
+
if (!environment || typeof environment.current !== "function" || typeof environment.run !== "function" || typeof environment.capture !== "function") {
|
|
41
|
+
throw new TypeError("A signal owner environment requires current, run, and capture.");
|
|
42
|
+
}
|
|
43
|
+
const previous = installedEnvironment;
|
|
44
|
+
installedEnvironment = environment;
|
|
45
|
+
return () => {
|
|
46
|
+
if (installedEnvironment === environment) installedEnvironment = previous;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function currentSignalOwner() {
|
|
50
|
+
if (installedEnvironment !== void 0) return installedEnvironment.current() ?? synchronousOwner;
|
|
51
|
+
return synchronousOwner ?? defaultOwner?.() ?? null;
|
|
52
|
+
}
|
|
53
|
+
function currentExplicitSignalOwner() {
|
|
54
|
+
return installedEnvironment?.current() ?? synchronousOwner;
|
|
55
|
+
}
|
|
56
|
+
function installDefaultSignalOwner(current) {
|
|
57
|
+
if (typeof current !== "function")
|
|
58
|
+
throw new TypeError("A default signal owner requires a provider.");
|
|
59
|
+
const previous = defaultOwner;
|
|
60
|
+
defaultOwner = current;
|
|
61
|
+
return () => {
|
|
62
|
+
if (defaultOwner === current) defaultOwner = previous;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function runWithSignalOwner(owner, callback) {
|
|
66
|
+
if (typeof callback !== "function") throw new TypeError("A signal owner callback is required.");
|
|
67
|
+
if (installedEnvironment) return installedEnvironment.run(owner, callback);
|
|
68
|
+
const previous = synchronousOwner;
|
|
69
|
+
synchronousOwner = owner;
|
|
70
|
+
try {
|
|
71
|
+
return callback();
|
|
72
|
+
} finally {
|
|
73
|
+
synchronousOwner = previous;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function enterSynchronousSignalOwner(owner) {
|
|
77
|
+
if (installedEnvironment !== void 0) return void 0;
|
|
78
|
+
const previous = synchronousOwner;
|
|
79
|
+
synchronousOwner = owner;
|
|
80
|
+
return previous;
|
|
81
|
+
}
|
|
82
|
+
function restoreSynchronousSignalOwner(previous) {
|
|
83
|
+
synchronousOwner = previous;
|
|
84
|
+
}
|
|
85
|
+
function captureSignalOwner(owner) {
|
|
86
|
+
return installedEnvironment?.capture(owner) ?? ((callback) => runWithSignalOwner(owner, callback));
|
|
87
|
+
}
|
|
88
|
+
function retireSignalOwnerIdentity(owner) {
|
|
89
|
+
retireOwner?.(owner);
|
|
90
|
+
}
|
|
91
|
+
function installSignalOwnerRetirement(retire) {
|
|
92
|
+
const previous = retireOwner;
|
|
93
|
+
retireOwner = retire;
|
|
94
|
+
return () => {
|
|
95
|
+
if (retireOwner === retire) retireOwner = previous;
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
99
|
+
0 && (module.exports = {
|
|
100
|
+
activeSignalOwnerEnvironment,
|
|
101
|
+
activeSynchronousSignalOwner,
|
|
102
|
+
captureSignalOwner,
|
|
103
|
+
currentExplicitSignalOwner,
|
|
104
|
+
currentSignalOwner,
|
|
105
|
+
enterSynchronousSignalOwner,
|
|
106
|
+
installDefaultSignalOwner,
|
|
107
|
+
installSignalOwnerEnvironment,
|
|
108
|
+
installSignalOwnerRetirement,
|
|
109
|
+
restoreSynchronousSignalOwner,
|
|
110
|
+
retireSignalOwnerIdentity,
|
|
111
|
+
runWithSignalOwner
|
|
112
|
+
});
|