octane 0.2.12 → 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/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-tables.cjs +4 -94
- package/dist/cjs/error-codes.client.generated.cjs +33 -0
- package/dist/cjs/error-codes.server.generated.cjs +19 -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 +6 -0
- package/dist/cjs/runtime.cjs +2791 -215
- package/dist/cjs/runtime.server.cjs +716 -76
- package/dist/cjs/server/early-signals.cjs +45 -0
- package/dist/cjs/server/index.cjs +44 -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 +163 -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 +32 -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/version.cjs +1 -1
- package/dist/class-names.d.ts +5 -0
- package/dist/class-names.js +25 -0
- package/dist/compiler/bundler.js +34 -6
- package/dist/compiler/compile.js +2234 -559
- 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 +26 -0
- package/dist/compiler/hydrate-boundaries.js +358 -15
- package/dist/compiler/index.d.ts +38 -1
- package/dist/compiler/index.js +1 -0
- package/dist/compiler/native-attribute-reads.js +127 -0
- package/dist/compiler/native-read-diagnostics.js +48 -9
- package/dist/compiler/native-read-types.js +55 -32
- 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.js +57 -10
- 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.d.ts +6 -1
- package/dist/compiler/volar.js +674 -143
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +10 -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-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 +5 -0
- package/dist/error-codes.server.generated.js +19 -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 +2 -0
- package/dist/index.js +4 -0
- package/dist/internal/signal-read.d.ts +1 -0
- package/dist/internal/signal-read.js +4 -0
- package/dist/jsx-runtime.d.ts +45 -6
- package/dist/public-types.d.ts +15 -1
- package/dist/runtime.d.ts +259 -21
- package/dist/runtime.js +2812 -220
- package/dist/runtime.server.d.ts +86 -6
- package/dist/runtime.server.js +712 -76
- package/dist/server/early-signals.d.ts +14 -0
- package/dist/server/early-signals.js +34 -0
- package/dist/server/index.d.ts +10 -2
- package/dist/server/index.js +48 -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 +50 -5
- package/dist/signals/graph.js +170 -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 +32 -3
- package/dist/signals/read-protocol.js +26 -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/version.js +1 -1
- package/package.json +37 -1
|
@@ -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,7 +359,24 @@ 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 };
|
|
328
380
|
}
|
|
329
381
|
[import_read_protocol.NATIVE_DOM_VALUE]() {
|
|
330
382
|
return this.get();
|
|
@@ -333,12 +385,23 @@ class ScopedNode {
|
|
|
333
385
|
assertAlive(this.owner);
|
|
334
386
|
assertWritable();
|
|
335
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
|
+
}
|
|
336
393
|
signalBatch(() => {
|
|
337
|
-
const previous = strictValue(refreshNode(this));
|
|
394
|
+
const previous = strictValue(refreshNode(this), this.key);
|
|
338
395
|
const next = typeof value === "function" ? untrack(() => pure(() => value(previous))) : value;
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
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
|
+
}
|
|
342
405
|
});
|
|
343
406
|
}
|
|
344
407
|
latest(fallback) {
|
|
@@ -388,8 +451,21 @@ function inspectNativeNode(node, read) {
|
|
|
388
451
|
dependencies
|
|
389
452
|
};
|
|
390
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
|
+
}
|
|
391
465
|
function readNode(node, read = "value") {
|
|
392
466
|
assertAlive(node.owner);
|
|
467
|
+
const candidate = import_transition_state.activeCandidate;
|
|
468
|
+
if (candidate) node = candidate.resolve(node);
|
|
393
469
|
const historical = historicalReader?.(node, read);
|
|
394
470
|
if (historical) return historical;
|
|
395
471
|
if (!historicalReader && node.owner.seedable) {
|
|
@@ -401,27 +477,35 @@ function readNode(node, read = "value") {
|
|
|
401
477
|
if (activeNode) graph.link(node, activeNode, trackingCycle);
|
|
402
478
|
if ((0, import_read_protocol.getNativeReadObserver)()) {
|
|
403
479
|
const field = read === "value" ? "nativeSource" : read === "latest" ? "nativeLatestSource" : "nativeSnapshotSource";
|
|
404
|
-
const source = node[field] ??=
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
},
|
|
410
|
-
serialize: (revision) => node.revision === revision ? node.owner.serializeRead(node, read) : void 0,
|
|
411
|
-
inspect: () => inspectNativeNode(node, read)
|
|
412
|
-
};
|
|
413
|
-
(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
|
+
);
|
|
414
485
|
}
|
|
415
486
|
if (observed.owners) for (const owner of observed.owners) assertAlive(owner);
|
|
416
487
|
if (activeNode) recordOwners(node, observed);
|
|
417
488
|
return observed;
|
|
418
489
|
}
|
|
419
|
-
function strictValue(state) {
|
|
490
|
+
function strictValue(state, key = "idle") {
|
|
420
491
|
const snapshot = state.snapshot;
|
|
421
492
|
if (snapshot.status === "ready") return snapshot.value;
|
|
422
493
|
if (snapshot.status === "error") throw snapshot.error;
|
|
494
|
+
if (snapshot.status === "idle") throw new import_errors.SignalIdleError(key);
|
|
423
495
|
throw state.waiting;
|
|
424
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
|
+
}
|
|
425
509
|
function refreshNode(node) {
|
|
426
510
|
assertAlive(node.owner);
|
|
427
511
|
if (node.evaluating) throw new import_errors.SignalCycleError(node.key);
|
|
@@ -464,7 +548,7 @@ function evaluate(node) {
|
|
|
464
548
|
let next;
|
|
465
549
|
let owners;
|
|
466
550
|
try {
|
|
467
|
-
next = node.compute();
|
|
551
|
+
next = node.compute(node);
|
|
468
552
|
} catch (error) {
|
|
469
553
|
if (isThenable(error)) {
|
|
470
554
|
const wakeup = node.wakeup ??= createWakeup();
|
|
@@ -533,9 +617,17 @@ function invalidateNode(node) {
|
|
|
533
617
|
function derivedState(node, read) {
|
|
534
618
|
const value = pure(read);
|
|
535
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) {
|
|
536
623
|
let refreshing = false;
|
|
537
624
|
let complete = true;
|
|
538
625
|
let connection = "none";
|
|
626
|
+
if (activity) {
|
|
627
|
+
refreshing = activity.refreshing;
|
|
628
|
+
complete = activity.complete;
|
|
629
|
+
connection = activity.connection;
|
|
630
|
+
}
|
|
539
631
|
for (let link = node.deps; link && node.depsTail; link = link.nextDep) {
|
|
540
632
|
const dependency = link.dep.state?.snapshot;
|
|
541
633
|
if (dependency) {
|
|
@@ -548,6 +640,18 @@ function derivedState(node, read) {
|
|
|
548
640
|
}
|
|
549
641
|
if (link === node.depsTail) break;
|
|
550
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
|
+
}
|
|
551
655
|
return readyState(value, { refreshing, complete, connection });
|
|
552
656
|
}
|
|
553
657
|
class SignalObserver {
|
|
@@ -571,6 +675,10 @@ function attachObserver(node, notify, native, state) {
|
|
|
571
675
|
node.owner.observers.add(observer);
|
|
572
676
|
return () => stopObserver(observer);
|
|
573
677
|
}
|
|
678
|
+
function subscribeNode(node, notify) {
|
|
679
|
+
const state = untrack(() => refreshNode(node));
|
|
680
|
+
return attachObserver(node, notify, true, state);
|
|
681
|
+
}
|
|
574
682
|
function runObserver(observer) {
|
|
575
683
|
const node = observer.node;
|
|
576
684
|
if (!node || !observer.flags) return;
|
|
@@ -610,6 +718,7 @@ function retireGraph(owner, nodes) {
|
|
|
610
718
|
node.state = errorState(retirementError);
|
|
611
719
|
releaseRetention(node);
|
|
612
720
|
node.compute = void 0;
|
|
721
|
+
node.invalidateAttempt = void 0;
|
|
613
722
|
if (node.kind === "async") node.retry = ScopedNode.prototype.retry;
|
|
614
723
|
if (node.subs) {
|
|
615
724
|
graph.propagate(node.subs, executionDepth !== 0);
|
|
@@ -623,15 +732,46 @@ function retireGraph(owner, nodes) {
|
|
|
623
732
|
retirementError = previousError;
|
|
624
733
|
}
|
|
625
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
|
+
});
|
|
626
762
|
// Annotate the CommonJS export names for ESM import in node:
|
|
627
763
|
0 && (module.exports = {
|
|
764
|
+
CandidateUnsupportedError,
|
|
628
765
|
ScopedNode,
|
|
629
766
|
SignalObserver,
|
|
630
767
|
assertAlive,
|
|
631
768
|
assertWritable,
|
|
769
|
+
attachObserver,
|
|
632
770
|
derivedState,
|
|
771
|
+
derivedValueState,
|
|
633
772
|
endSignalBatch,
|
|
634
773
|
errorState,
|
|
774
|
+
idleState,
|
|
635
775
|
inspectNativeNode,
|
|
636
776
|
invalidateNode,
|
|
637
777
|
isThenable,
|
|
@@ -639,6 +779,7 @@ function retireGraph(owner, nodes) {
|
|
|
639
779
|
publishNode,
|
|
640
780
|
pure,
|
|
641
781
|
readNode,
|
|
782
|
+
readSignalBinding,
|
|
642
783
|
readyState,
|
|
643
784
|
refreshNode,
|
|
644
785
|
releaseRetention,
|
|
@@ -649,5 +790,7 @@ function retireGraph(owner, nodes) {
|
|
|
649
790
|
startSignalBatch,
|
|
650
791
|
stopObserver,
|
|
651
792
|
strictValue,
|
|
652
|
-
|
|
793
|
+
subscribeNode,
|
|
794
|
+
untrack,
|
|
795
|
+
untrackCommitted
|
|
653
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
|
+
});
|