@pumped-fn/lite 2.0.0 → 2.1.0
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/CHANGELOG.md +8 -0
- package/PATTERNS.md +12 -11
- package/README.md +8 -1
- package/dist/index.cjs +45 -10
- package/dist/index.d.cts +29 -9
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +29 -9
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +45 -10
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @pumped-fn/lite
|
|
2
2
|
|
|
3
|
+
## 2.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- a87362f: Add `controller({ resolve: true, watch: true, eq? })` for automatic reactive invalidation.
|
|
8
|
+
|
|
9
|
+
When `watch: true` is set, the parent atom re-runs automatically whenever the dep resolves to a new value (equality-gated via `Object.is` or a custom `eq` function). Replaces manual `ctx.cleanup(ctx.scope.on('resolved', dep, () => ctx.invalidate()))` wiring. Watch listeners are auto-cleaned on re-resolve, release, and dispose.
|
|
10
|
+
|
|
3
11
|
## 2.0.0
|
|
4
12
|
|
|
5
13
|
### Major Changes
|
package/PATTERNS.md
CHANGED
|
@@ -218,22 +218,23 @@ sequenceDiagram
|
|
|
218
218
|
|
|
219
219
|
### Controller as Dependency
|
|
220
220
|
|
|
221
|
-
Receive reactive handle instead of resolved value in atom
|
|
221
|
+
Receive a reactive handle instead of the resolved value in atom deps. Use `resolve: true` to pre-resolve before the factory runs. Add `watch: true` (atom deps only) to auto-invalidate the parent when the dep value changes — replaces manual `ctx.cleanup(ctx.scope.on('resolved', dep, () => ctx.invalidate()))`.
|
|
222
222
|
|
|
223
223
|
```mermaid
|
|
224
224
|
sequenceDiagram
|
|
225
225
|
participant Scope
|
|
226
|
-
participant
|
|
226
|
+
participant Parent as derivedAtom
|
|
227
|
+
participant Dep as configAtom
|
|
227
228
|
participant Ctrl as Controller
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
Note over
|
|
229
|
+
|
|
230
|
+
Scope->>Parent: resolve(derivedAtom)
|
|
231
|
+
Note over Parent: deps: { cfg: controller(configAtom, { resolve: true, watch: true, eq? }) }
|
|
232
|
+
Parent->>Scope: resolve configAtom first
|
|
233
|
+
Scope-->>Ctrl: ctrl (resolved)
|
|
234
|
+
Parent->>Parent: factory(_, { cfg: ctrl })
|
|
235
|
+
Note over Scope: on dep 'resolved': compare prev/next via eq ?? Object.is
|
|
236
|
+
Scope->>Parent: scheduleInvalidation if changed
|
|
237
|
+
Note over Parent: watch listener auto-cleaned on re-resolve / release / dispose
|
|
237
238
|
```
|
|
238
239
|
|
|
239
240
|
### Inline Function Execution
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @pumped-fn/lite
|
|
2
2
|
|
|
3
|
-
    
|
|
4
4
|
|
|
5
5
|
**Scoped Ambient State** for TypeScript — a scope-local atom graph with explicit dependencies and opt-in reactivity.
|
|
6
6
|
|
|
@@ -151,6 +151,13 @@ sequenceDiagram
|
|
|
151
151
|
|
|
152
152
|
App->>Scope: select(atom, selector, { eq })
|
|
153
153
|
Scope-->>App: handle { get, subscribe }
|
|
154
|
+
|
|
155
|
+
Note over App,Ctrl: Dependency reactivity — atom deps only
|
|
156
|
+
Note right of Scope: watch:true replaces manual ctx.cleanup(ctx.scope.on('resolved', dep, () => ctx.invalidate()))
|
|
157
|
+
App->>Scope: resolve(derivedAtom)
|
|
158
|
+
Note right of Scope: deps: { src: controller(srcAtom, { resolve: true, watch: true, eq? }) }
|
|
159
|
+
Scope->>Scope: on dep 'resolved': eq(prev, next) → scheduleInvalidation if changed
|
|
160
|
+
Note right of Scope: watch listener auto-cleaned on re-resolve / release / dispose
|
|
154
161
|
end
|
|
155
162
|
|
|
156
163
|
%% ── Cleanup & Teardown ──
|
package/dist/index.cjs
CHANGED
|
@@ -263,20 +263,33 @@ function isAtom(value) {
|
|
|
263
263
|
* The Controller provides full lifecycle control: get, resolve, release, invalidate, and subscribe.
|
|
264
264
|
*
|
|
265
265
|
* @param atom - The Atom to wrap
|
|
266
|
-
* @param options - Optional configuration
|
|
266
|
+
* @param options - Optional configuration:
|
|
267
|
+
* - `resolve: true` — auto-resolves the dep before the parent factory runs; `config.get()` is safe.
|
|
268
|
+
* - `watch: true` — atom deps only; requires `resolve: true`; automatically re-runs the parent factory
|
|
269
|
+
* when the dep resolves to a new value (value-equality gated via `Object.is` by default). Replaces
|
|
270
|
+
* manual `ctx.cleanup(ctx.scope.on('resolved', dep, () => ctx.invalidate()))` wiring. Watch
|
|
271
|
+
* listeners are auto-cleaned on re-resolve, release, and dispose.
|
|
272
|
+
* - `eq` — custom equality function `(a: T, b: T) => boolean`; only used with `watch: true`.
|
|
267
273
|
* @returns A ControllerDep that resolves to a Controller for the Atom
|
|
268
274
|
*
|
|
269
275
|
* @example
|
|
270
276
|
* ```typescript
|
|
271
|
-
*
|
|
277
|
+
* // resolve only
|
|
272
278
|
* const serverAtom = atom({
|
|
273
279
|
* deps: { config: controller(configAtom, { resolve: true }) },
|
|
274
|
-
* factory: (
|
|
275
|
-
*
|
|
276
|
-
*
|
|
277
|
-
*
|
|
278
|
-
*
|
|
279
|
-
* }
|
|
280
|
+
* factory: (_, { config }) => createServer(config.get().port),
|
|
281
|
+
* })
|
|
282
|
+
*
|
|
283
|
+
* // watch: re-runs parent when dep value changes
|
|
284
|
+
* const profileAtom = atom({
|
|
285
|
+
* deps: { token: controller(tokenAtom, { resolve: true, watch: true }) },
|
|
286
|
+
* factory: (_, { token }) => ({ id: `user-${token.get().jwt}` }),
|
|
287
|
+
* })
|
|
288
|
+
*
|
|
289
|
+
* // watch with custom equality
|
|
290
|
+
* const derivedAtom = atom({
|
|
291
|
+
* deps: { src: controller(srcAtom, { resolve: true, watch: true, eq: (a, b) => a.id === b.id }) },
|
|
292
|
+
* factory: (_, { src }) => src.get().name,
|
|
280
293
|
* })
|
|
281
294
|
* ```
|
|
282
295
|
*/
|
|
@@ -284,7 +297,9 @@ function controller(atom$1, options) {
|
|
|
284
297
|
return {
|
|
285
298
|
[controllerDepSymbol]: true,
|
|
286
299
|
atom: atom$1,
|
|
287
|
-
resolve: options?.resolve
|
|
300
|
+
resolve: options?.resolve,
|
|
301
|
+
watch: options?.watch,
|
|
302
|
+
eq: options?.eq
|
|
288
303
|
};
|
|
289
304
|
}
|
|
290
305
|
/**
|
|
@@ -771,6 +786,8 @@ var ScopeImpl = class {
|
|
|
771
786
|
async doResolve(atom$1) {
|
|
772
787
|
const entry = this.getOrCreateEntry(atom$1);
|
|
773
788
|
if (!(entry.state === "resolving")) {
|
|
789
|
+
for (let i = entry.cleanups.length - 1; i >= 0; i--) await entry.cleanups[i]?.();
|
|
790
|
+
entry.cleanups = [];
|
|
774
791
|
entry.state = "resolving";
|
|
775
792
|
this.emitStateChange("resolving", atom$1);
|
|
776
793
|
this.notifyListeners(atom$1, "resolving");
|
|
@@ -850,13 +867,31 @@ var ScopeImpl = class {
|
|
|
850
867
|
if (depEntry) depEntry.dependents.add(dependentAtom);
|
|
851
868
|
}
|
|
852
869
|
} else if (isControllerDep(dep)) {
|
|
853
|
-
|
|
870
|
+
if (dep.watch) {
|
|
871
|
+
if (!dependentAtom) throw new Error("controller({ watch: true }) is only supported in atom dependencies");
|
|
872
|
+
if (!dep.resolve) throw new Error("controller({ watch: true }) requires resolve: true");
|
|
873
|
+
}
|
|
874
|
+
const ctrl = this.controller(dep.atom);
|
|
854
875
|
if (dep.resolve) await ctrl.resolve();
|
|
855
876
|
result[key] = ctrl;
|
|
856
877
|
if (dependentAtom) {
|
|
857
878
|
const depEntry = this.getEntry(dep.atom);
|
|
858
879
|
if (depEntry) depEntry.dependents.add(dependentAtom);
|
|
859
880
|
}
|
|
881
|
+
if (dep.watch) {
|
|
882
|
+
const eq = dep.eq ?? Object.is;
|
|
883
|
+
let prev = ctrl.get();
|
|
884
|
+
const unsub = this.on("resolved", dep.atom, () => {
|
|
885
|
+
const next = ctrl.get();
|
|
886
|
+
if (!eq(prev, next)) {
|
|
887
|
+
prev = next;
|
|
888
|
+
this.scheduleInvalidation(dependentAtom);
|
|
889
|
+
}
|
|
890
|
+
});
|
|
891
|
+
const depEntry = this.getEntry(dependentAtom);
|
|
892
|
+
if (depEntry) depEntry.cleanups.push(unsub);
|
|
893
|
+
else unsub();
|
|
894
|
+
}
|
|
860
895
|
} else if (tagExecutorSymbol in dep) {
|
|
861
896
|
const tagExecutor = dep;
|
|
862
897
|
switch (tagExecutor.mode) {
|
package/dist/index.d.cts
CHANGED
|
@@ -230,10 +230,17 @@ declare namespace Lite {
|
|
|
230
230
|
readonly [controllerDepSymbol]: true;
|
|
231
231
|
readonly atom: Atom<T>;
|
|
232
232
|
readonly resolve?: boolean;
|
|
233
|
+
readonly watch?: boolean;
|
|
234
|
+
readonly eq?: (a: any, b: any) => boolean;
|
|
233
235
|
}
|
|
234
236
|
interface ControllerOptions {
|
|
235
237
|
resolve?: boolean;
|
|
236
238
|
}
|
|
239
|
+
interface ControllerDepOptions<T> {
|
|
240
|
+
resolve?: boolean;
|
|
241
|
+
watch?: boolean;
|
|
242
|
+
eq?: (a: T, b: T) => boolean;
|
|
243
|
+
}
|
|
237
244
|
interface Typed<T> {
|
|
238
245
|
readonly [typedSymbol]: true;
|
|
239
246
|
}
|
|
@@ -572,24 +579,37 @@ declare function isAtom(value: unknown): value is Lite.Atom<unknown>;
|
|
|
572
579
|
* The Controller provides full lifecycle control: get, resolve, release, invalidate, and subscribe.
|
|
573
580
|
*
|
|
574
581
|
* @param atom - The Atom to wrap
|
|
575
|
-
* @param options - Optional configuration
|
|
582
|
+
* @param options - Optional configuration:
|
|
583
|
+
* - `resolve: true` — auto-resolves the dep before the parent factory runs; `config.get()` is safe.
|
|
584
|
+
* - `watch: true` — atom deps only; requires `resolve: true`; automatically re-runs the parent factory
|
|
585
|
+
* when the dep resolves to a new value (value-equality gated via `Object.is` by default). Replaces
|
|
586
|
+
* manual `ctx.cleanup(ctx.scope.on('resolved', dep, () => ctx.invalidate()))` wiring. Watch
|
|
587
|
+
* listeners are auto-cleaned on re-resolve, release, and dispose.
|
|
588
|
+
* - `eq` — custom equality function `(a: T, b: T) => boolean`; only used with `watch: true`.
|
|
576
589
|
* @returns A ControllerDep that resolves to a Controller for the Atom
|
|
577
590
|
*
|
|
578
591
|
* @example
|
|
579
592
|
* ```typescript
|
|
580
|
-
*
|
|
593
|
+
* // resolve only
|
|
581
594
|
* const serverAtom = atom({
|
|
582
595
|
* deps: { config: controller(configAtom, { resolve: true }) },
|
|
583
|
-
* factory: (
|
|
584
|
-
*
|
|
585
|
-
*
|
|
586
|
-
*
|
|
587
|
-
*
|
|
588
|
-
* }
|
|
596
|
+
* factory: (_, { config }) => createServer(config.get().port),
|
|
597
|
+
* })
|
|
598
|
+
*
|
|
599
|
+
* // watch: re-runs parent when dep value changes
|
|
600
|
+
* const profileAtom = atom({
|
|
601
|
+
* deps: { token: controller(tokenAtom, { resolve: true, watch: true }) },
|
|
602
|
+
* factory: (_, { token }) => ({ id: `user-${token.get().jwt}` }),
|
|
603
|
+
* })
|
|
604
|
+
*
|
|
605
|
+
* // watch with custom equality
|
|
606
|
+
* const derivedAtom = atom({
|
|
607
|
+
* deps: { src: controller(srcAtom, { resolve: true, watch: true, eq: (a, b) => a.id === b.id }) },
|
|
608
|
+
* factory: (_, { src }) => src.get().name,
|
|
589
609
|
* })
|
|
590
610
|
* ```
|
|
591
611
|
*/
|
|
592
|
-
declare function controller<T>(atom: Lite.Atom<T>, options?: Lite.
|
|
612
|
+
declare function controller<T>(atom: Lite.Atom<T>, options?: Lite.ControllerDepOptions<T>): Lite.ControllerDep<T>;
|
|
593
613
|
/**
|
|
594
614
|
* Type guard to check if a value is a ControllerDep wrapper.
|
|
595
615
|
*
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/symbols.ts","../src/types.ts","../src/tag.ts","../src/atom.ts","../src/flow.ts","../src/preset.ts","../src/resource.ts","../src/service.ts","../src/scope.ts","../src/errors.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/symbols.ts","../src/types.ts","../src/tag.ts","../src/atom.ts","../src/flow.ts","../src/preset.ts","../src/resource.ts","../src/service.ts","../src/scope.ts","../src/errors.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -230,10 +230,17 @@ declare namespace Lite {
|
|
|
230
230
|
readonly [controllerDepSymbol]: true;
|
|
231
231
|
readonly atom: Atom<T>;
|
|
232
232
|
readonly resolve?: boolean;
|
|
233
|
+
readonly watch?: boolean;
|
|
234
|
+
readonly eq?: (a: any, b: any) => boolean;
|
|
233
235
|
}
|
|
234
236
|
interface ControllerOptions {
|
|
235
237
|
resolve?: boolean;
|
|
236
238
|
}
|
|
239
|
+
interface ControllerDepOptions<T> {
|
|
240
|
+
resolve?: boolean;
|
|
241
|
+
watch?: boolean;
|
|
242
|
+
eq?: (a: T, b: T) => boolean;
|
|
243
|
+
}
|
|
237
244
|
interface Typed<T> {
|
|
238
245
|
readonly [typedSymbol]: true;
|
|
239
246
|
}
|
|
@@ -572,24 +579,37 @@ declare function isAtom(value: unknown): value is Lite.Atom<unknown>;
|
|
|
572
579
|
* The Controller provides full lifecycle control: get, resolve, release, invalidate, and subscribe.
|
|
573
580
|
*
|
|
574
581
|
* @param atom - The Atom to wrap
|
|
575
|
-
* @param options - Optional configuration
|
|
582
|
+
* @param options - Optional configuration:
|
|
583
|
+
* - `resolve: true` — auto-resolves the dep before the parent factory runs; `config.get()` is safe.
|
|
584
|
+
* - `watch: true` — atom deps only; requires `resolve: true`; automatically re-runs the parent factory
|
|
585
|
+
* when the dep resolves to a new value (value-equality gated via `Object.is` by default). Replaces
|
|
586
|
+
* manual `ctx.cleanup(ctx.scope.on('resolved', dep, () => ctx.invalidate()))` wiring. Watch
|
|
587
|
+
* listeners are auto-cleaned on re-resolve, release, and dispose.
|
|
588
|
+
* - `eq` — custom equality function `(a: T, b: T) => boolean`; only used with `watch: true`.
|
|
576
589
|
* @returns A ControllerDep that resolves to a Controller for the Atom
|
|
577
590
|
*
|
|
578
591
|
* @example
|
|
579
592
|
* ```typescript
|
|
580
|
-
*
|
|
593
|
+
* // resolve only
|
|
581
594
|
* const serverAtom = atom({
|
|
582
595
|
* deps: { config: controller(configAtom, { resolve: true }) },
|
|
583
|
-
* factory: (
|
|
584
|
-
*
|
|
585
|
-
*
|
|
586
|
-
*
|
|
587
|
-
*
|
|
588
|
-
* }
|
|
596
|
+
* factory: (_, { config }) => createServer(config.get().port),
|
|
597
|
+
* })
|
|
598
|
+
*
|
|
599
|
+
* // watch: re-runs parent when dep value changes
|
|
600
|
+
* const profileAtom = atom({
|
|
601
|
+
* deps: { token: controller(tokenAtom, { resolve: true, watch: true }) },
|
|
602
|
+
* factory: (_, { token }) => ({ id: `user-${token.get().jwt}` }),
|
|
603
|
+
* })
|
|
604
|
+
*
|
|
605
|
+
* // watch with custom equality
|
|
606
|
+
* const derivedAtom = atom({
|
|
607
|
+
* deps: { src: controller(srcAtom, { resolve: true, watch: true, eq: (a, b) => a.id === b.id }) },
|
|
608
|
+
* factory: (_, { src }) => src.get().name,
|
|
589
609
|
* })
|
|
590
610
|
* ```
|
|
591
611
|
*/
|
|
592
|
-
declare function controller<T>(atom: Lite.Atom<T>, options?: Lite.
|
|
612
|
+
declare function controller<T>(atom: Lite.Atom<T>, options?: Lite.ControllerDepOptions<T>): Lite.ControllerDep<T>;
|
|
593
613
|
/**
|
|
594
614
|
* Type guard to check if a value is a ControllerDep wrapper.
|
|
595
615
|
*
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/symbols.ts","../src/types.ts","../src/tag.ts","../src/atom.ts","../src/flow.ts","../src/preset.ts","../src/resource.ts","../src/service.ts","../src/scope.ts","../src/errors.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/symbols.ts","../src/types.ts","../src/tag.ts","../src/atom.ts","../src/flow.ts","../src/preset.ts","../src/resource.ts","../src/service.ts","../src/scope.ts","../src/errors.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -262,20 +262,33 @@ function isAtom(value) {
|
|
|
262
262
|
* The Controller provides full lifecycle control: get, resolve, release, invalidate, and subscribe.
|
|
263
263
|
*
|
|
264
264
|
* @param atom - The Atom to wrap
|
|
265
|
-
* @param options - Optional configuration
|
|
265
|
+
* @param options - Optional configuration:
|
|
266
|
+
* - `resolve: true` — auto-resolves the dep before the parent factory runs; `config.get()` is safe.
|
|
267
|
+
* - `watch: true` — atom deps only; requires `resolve: true`; automatically re-runs the parent factory
|
|
268
|
+
* when the dep resolves to a new value (value-equality gated via `Object.is` by default). Replaces
|
|
269
|
+
* manual `ctx.cleanup(ctx.scope.on('resolved', dep, () => ctx.invalidate()))` wiring. Watch
|
|
270
|
+
* listeners are auto-cleaned on re-resolve, release, and dispose.
|
|
271
|
+
* - `eq` — custom equality function `(a: T, b: T) => boolean`; only used with `watch: true`.
|
|
266
272
|
* @returns A ControllerDep that resolves to a Controller for the Atom
|
|
267
273
|
*
|
|
268
274
|
* @example
|
|
269
275
|
* ```typescript
|
|
270
|
-
*
|
|
276
|
+
* // resolve only
|
|
271
277
|
* const serverAtom = atom({
|
|
272
278
|
* deps: { config: controller(configAtom, { resolve: true }) },
|
|
273
|
-
* factory: (
|
|
274
|
-
*
|
|
275
|
-
*
|
|
276
|
-
*
|
|
277
|
-
*
|
|
278
|
-
* }
|
|
279
|
+
* factory: (_, { config }) => createServer(config.get().port),
|
|
280
|
+
* })
|
|
281
|
+
*
|
|
282
|
+
* // watch: re-runs parent when dep value changes
|
|
283
|
+
* const profileAtom = atom({
|
|
284
|
+
* deps: { token: controller(tokenAtom, { resolve: true, watch: true }) },
|
|
285
|
+
* factory: (_, { token }) => ({ id: `user-${token.get().jwt}` }),
|
|
286
|
+
* })
|
|
287
|
+
*
|
|
288
|
+
* // watch with custom equality
|
|
289
|
+
* const derivedAtom = atom({
|
|
290
|
+
* deps: { src: controller(srcAtom, { resolve: true, watch: true, eq: (a, b) => a.id === b.id }) },
|
|
291
|
+
* factory: (_, { src }) => src.get().name,
|
|
279
292
|
* })
|
|
280
293
|
* ```
|
|
281
294
|
*/
|
|
@@ -283,7 +296,9 @@ function controller(atom$1, options) {
|
|
|
283
296
|
return {
|
|
284
297
|
[controllerDepSymbol]: true,
|
|
285
298
|
atom: atom$1,
|
|
286
|
-
resolve: options?.resolve
|
|
299
|
+
resolve: options?.resolve,
|
|
300
|
+
watch: options?.watch,
|
|
301
|
+
eq: options?.eq
|
|
287
302
|
};
|
|
288
303
|
}
|
|
289
304
|
/**
|
|
@@ -770,6 +785,8 @@ var ScopeImpl = class {
|
|
|
770
785
|
async doResolve(atom$1) {
|
|
771
786
|
const entry = this.getOrCreateEntry(atom$1);
|
|
772
787
|
if (!(entry.state === "resolving")) {
|
|
788
|
+
for (let i = entry.cleanups.length - 1; i >= 0; i--) await entry.cleanups[i]?.();
|
|
789
|
+
entry.cleanups = [];
|
|
773
790
|
entry.state = "resolving";
|
|
774
791
|
this.emitStateChange("resolving", atom$1);
|
|
775
792
|
this.notifyListeners(atom$1, "resolving");
|
|
@@ -849,13 +866,31 @@ var ScopeImpl = class {
|
|
|
849
866
|
if (depEntry) depEntry.dependents.add(dependentAtom);
|
|
850
867
|
}
|
|
851
868
|
} else if (isControllerDep(dep)) {
|
|
852
|
-
|
|
869
|
+
if (dep.watch) {
|
|
870
|
+
if (!dependentAtom) throw new Error("controller({ watch: true }) is only supported in atom dependencies");
|
|
871
|
+
if (!dep.resolve) throw new Error("controller({ watch: true }) requires resolve: true");
|
|
872
|
+
}
|
|
873
|
+
const ctrl = this.controller(dep.atom);
|
|
853
874
|
if (dep.resolve) await ctrl.resolve();
|
|
854
875
|
result[key] = ctrl;
|
|
855
876
|
if (dependentAtom) {
|
|
856
877
|
const depEntry = this.getEntry(dep.atom);
|
|
857
878
|
if (depEntry) depEntry.dependents.add(dependentAtom);
|
|
858
879
|
}
|
|
880
|
+
if (dep.watch) {
|
|
881
|
+
const eq = dep.eq ?? Object.is;
|
|
882
|
+
let prev = ctrl.get();
|
|
883
|
+
const unsub = this.on("resolved", dep.atom, () => {
|
|
884
|
+
const next = ctrl.get();
|
|
885
|
+
if (!eq(prev, next)) {
|
|
886
|
+
prev = next;
|
|
887
|
+
this.scheduleInvalidation(dependentAtom);
|
|
888
|
+
}
|
|
889
|
+
});
|
|
890
|
+
const depEntry = this.getEntry(dependentAtom);
|
|
891
|
+
if (depEntry) depEntry.cleanups.push(unsub);
|
|
892
|
+
else unsub();
|
|
893
|
+
}
|
|
859
894
|
} else if (tagExecutorSymbol in dep) {
|
|
860
895
|
const tagExecutor = dep;
|
|
861
896
|
switch (tagExecutor.mode) {
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["atomSymbol: unique symbol","flowSymbol: unique symbol","tagSymbol: unique symbol","taggedSymbol: unique symbol","controllerDepSymbol: unique symbol","presetSymbol: unique symbol","controllerSymbol: unique symbol","tagExecutorSymbol: unique symbol","typedSymbol: unique symbol","resourceSymbol: unique symbol","phase: \"tag\" | \"flow-input\"","label: string","cause: unknown","tagRegistry: WeakRef<Lite.Tag<unknown, boolean>>[]","live: Lite.Tag<unknown, boolean>[]","liveRefs: WeakRef<Lite.Tag<unknown, boolean>>[]","tag","tags","atom","live: Lite.Atom<unknown>[]","liveRefs: WeakRef<Lite.Atom<unknown>>[]","tagInstance: Lite.Tag<T, boolean>","result: T[]","atomInstance: Lite.Atom<T>","resource","parentData?: Lite.ContextData","tag","ctrl: Lite.Controller<T>","selector: (value: T) => S","eq: (prev: S, next: S) => boolean","atom: Lite.Atom<T>","scope: ScopeImpl","atom","ctx: Lite.ResolveContext","event: Lite.ResolveEvent","result: Record<string, unknown>","results: T[]","current: Lite.ExecutionContext | undefined","flow","parsedInput: unknown"],"sources":["../src/symbols.ts","../src/errors.ts","../src/tag.ts","../src/atom.ts","../src/flow.ts","../src/preset.ts","../src/resource.ts","../src/service.ts","../src/scope.ts","../src/index.ts"],"sourcesContent":["export const atomSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/atom\")\nexport const flowSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/flow\")\nexport const tagSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/tag\")\nexport const taggedSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/tagged\")\nexport const controllerDepSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/controller-dep\")\nexport const presetSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/preset\")\nexport const controllerSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/controller\")\nexport const tagExecutorSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/tag-executor\")\nexport const typedSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/typed\")\nexport const resourceSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/resource\")\n","export class ParseError extends Error {\n override readonly name = \"ParseError\"\n\n constructor(\n message: string,\n readonly phase: \"tag\" | \"flow-input\",\n readonly label: string,\n override readonly cause: unknown\n ) {\n super(message)\n }\n}\n","import { tagSymbol, taggedSymbol, tagExecutorSymbol } from \"./symbols\"\nimport { ParseError } from \"./errors\"\nimport type { Lite } from \"./types\"\n\nexport interface TagOptions<T, HasDefault extends boolean> {\n label: string\n default?: HasDefault extends true ? T : never\n parse?: (raw: unknown) => T\n}\n\nconst registry = new WeakMap<Lite.Tag<unknown, boolean>, WeakRef<Lite.Atom<unknown>>[]>()\nconst tagRegistry: WeakRef<Lite.Tag<unknown, boolean>>[] = []\n\n/**\n * Returns all tags that have been created.\n *\n * Uses WeakRef internally so tags can be garbage collected when no longer referenced.\n * Stale references are cleaned up lazily on each call (not between calls).\n *\n * @returns Array of all live Tag instances. Returns `Tag<unknown, boolean>[]` because\n * the registry cannot preserve individual tag type parameters at runtime.\n *\n * Performance: O(n) where n = total tags created. For typical usage (< 100 tags),\n * this is negligible. Cleanup happens during query, not continuously.\n *\n * @example\n * ```typescript\n * const allTags = getAllTags()\n * for (const t of allTags) {\n * console.log(t.label, t.atoms().length)\n * }\n * ```\n */\nexport function getAllTags(): Lite.Tag<unknown, boolean>[] {\n const live: Lite.Tag<unknown, boolean>[] = []\n const liveRefs: WeakRef<Lite.Tag<unknown, boolean>>[] = []\n\n for (const ref of tagRegistry) {\n const tag = ref.deref()\n if (tag) {\n live.push(tag)\n liveRefs.push(ref)\n }\n }\n\n tagRegistry.length = 0\n tagRegistry.push(...liveRefs)\n\n return live\n}\n\nexport function registerAtomToTags(\n atom: Lite.Atom<unknown>,\n tags: Lite.Tagged<any>[]\n): void {\n for (const tagged of tags) {\n let refs = registry.get(tagged.tag)\n if (!refs) {\n refs = []\n registry.set(tagged.tag, refs)\n }\n refs.push(new WeakRef(atom))\n }\n}\n\nfunction getAtomsForTag(tag: Lite.Tag<unknown, boolean>): Lite.Atom<unknown>[] {\n const refs = registry.get(tag)\n if (!refs) return []\n\n const live: Lite.Atom<unknown>[] = []\n const liveRefs: WeakRef<Lite.Atom<unknown>>[] = []\n\n for (const ref of refs) {\n const atom = ref.deref()\n if (atom) {\n live.push(atom)\n liveRefs.push(ref)\n }\n }\n\n if (liveRefs.length > 0) {\n registry.set(tag, liveRefs)\n } else {\n registry.delete(tag)\n }\n\n return live\n}\n\n/**\n * Creates a metadata tag for attaching and retrieving typed values from Atoms and Flows.\n *\n * @param options - Configuration object with label and optional default value\n * @returns A Tag instance that can create tagged values and query them from sources\n *\n * @example\n * ```typescript\n * const nameTag = tag<string>({ label: \"name\" })\n * const myAtom = atom({\n * factory: (ctx) => \"value\",\n * tags: [nameTag(\"MyAtom\")]\n * })\n * ```\n */\nexport function tag<T>(options: { label: string }): Lite.Tag<T, false>\nexport function tag<T>(options: {\n label: string\n default: T\n}): Lite.Tag<T, true>\nexport function tag<T>(options: {\n label: string\n parse: (raw: unknown) => T\n}): Lite.Tag<T, false>\nexport function tag<T>(options: {\n label: string\n parse: (raw: unknown) => T\n default: T\n}): Lite.Tag<T, true>\nexport function tag<T>(options: TagOptions<T, boolean>): Lite.Tag<T, boolean> {\n const key = Symbol.for(`@pumped-fn/lite/tag/${options.label}`)\n const hasDefault = \"default\" in options\n const defaultValue = hasDefault ? options.default : undefined\n const parse = options.parse\n\n let tagInstance: Lite.Tag<T, boolean>\n\n function createTagged(value: T): Lite.Tagged<T> {\n let validatedValue = value\n if (parse) {\n try {\n validatedValue = parse(value)\n } catch (err) {\n throw new ParseError(\n `Failed to parse tag \"${options.label}\"`,\n \"tag\",\n options.label,\n err\n )\n }\n }\n return {\n [taggedSymbol]: true,\n key,\n value: validatedValue,\n tag: tagInstance,\n }\n }\n\n function get(source: Lite.TagSource): T {\n const tags = Array.isArray(source) ? source : source.tags ?? []\n for (let i = 0; i < tags.length; i++) {\n if (tags[i]!.key === key) return tags[i]!.value as unknown as T\n }\n if (hasDefault) return defaultValue as unknown as T\n throw new Error(`Tag \"${options.label}\" not found and has no default`)\n }\n\n function find(source: Lite.TagSource): T | undefined {\n const tags = Array.isArray(source) ? source : source.tags ?? []\n for (let i = 0; i < tags.length; i++) {\n if (tags[i]!.key === key) return tags[i]!.value as unknown as T\n }\n if (hasDefault) return defaultValue as unknown as T\n return undefined\n }\n\n function collect(source: Lite.TagSource): T[] {\n const tags = Array.isArray(source) ? source : source.tags ?? []\n const result: T[] = []\n for (let i = 0; i < tags.length; i++) {\n if (tags[i]!.key === key) result.push(tags[i]!.value as unknown as T)\n }\n return result\n }\n\n /**\n * Returns all atoms that have been created with this tag.\n *\n * Uses WeakRef internally so atoms can be garbage collected when no longer referenced.\n * Stale references are cleaned up lazily on each call.\n *\n * @returns Array of atoms using this tag. Returns `Atom<unknown>[]` because multiple\n * atom types with different return types can use the same tag - TypeScript cannot\n * track this runtime relationship.\n *\n * Performance: O(n) where n = atoms using this tag. Cleanup happens during query.\n */\n function atoms(): Lite.Atom<unknown>[] {\n return getAtomsForTag(tagInstance as Lite.Tag<unknown, boolean>)\n }\n\n tagInstance = Object.assign(createTagged, {\n [tagSymbol]: true as const,\n key,\n label: options.label,\n hasDefault,\n defaultValue,\n parse,\n get,\n find,\n collect,\n atoms,\n }) as unknown as Lite.Tag<T, boolean>\n\n tagRegistry.push(new WeakRef(tagInstance as Lite.Tag<unknown, boolean>))\n\n return tagInstance\n}\n\n/**\n * Type guard to check if a value is a Tag.\n *\n * @param value - The value to check\n * @returns True if the value is a Tag, false otherwise\n *\n * @example\n * ```typescript\n * if (isTag(value)) {\n * const tagged = value(\"myValue\")\n * }\n * ```\n */\nexport function isTag(value: unknown): value is Lite.Tag<unknown, boolean> {\n return (\n typeof value === \"function\" &&\n (value as unknown as Record<symbol, unknown>)[tagSymbol] === true\n )\n}\n\n/**\n * Type guard to check if a value is a Tagged value.\n *\n * @param value - The value to check\n * @returns True if the value is a Tagged value, false otherwise\n *\n * @example\n * ```typescript\n * if (isTagged(value)) {\n * console.log(value.key, value.value)\n * }\n * ```\n */\nexport function isTagged(value: unknown): value is Lite.Tagged<unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as Record<symbol, unknown>)[taggedSymbol] === true\n )\n}\n\n/**\n * Tag execution helpers for declaring how tags should be resolved from dependency sources.\n */\nexport const tags = {\n /**\n * Creates a required tag executor that throws if the tag is not found.\n *\n * @param tag - The tag to execute\n * @returns A tag executor that requires the tag to be present\n *\n * @example\n * ```typescript\n * const myAtom = atom({\n * deps: { name: tags.required(nameTag) },\n * factory: (ctx, { name }) => `Hello ${name}`\n * })\n * ```\n */\n required<T>(tag: Lite.Tag<T, boolean>): Lite.TagExecutor<T, T> {\n return { [tagExecutorSymbol]: true, tag, mode: \"required\" }\n },\n\n /**\n * Creates an optional tag executor that returns undefined if the tag is not found.\n *\n * @param tag - The tag to execute\n * @returns A tag executor that allows the tag to be absent\n *\n * @example\n * ```typescript\n * const myAtom = atom({\n * deps: { name: tags.optional(nameTag) },\n * factory: (ctx, { name }) => name ?? \"Anonymous\"\n * })\n * ```\n */\n optional<T>(tag: Lite.Tag<T, boolean>): Lite.TagExecutor<T | undefined, T> {\n return { [tagExecutorSymbol]: true, tag, mode: \"optional\" }\n },\n\n /**\n * Creates a tag executor that collects all values for the given tag.\n *\n * @param tag - The tag to execute\n * @returns A tag executor that returns an array of all matching tag values\n *\n * @example\n * ```typescript\n * const myAtom = atom({\n * deps: { names: tags.all(nameTag) },\n * factory: (ctx, { names }) => names.join(\", \")\n * })\n * ```\n */\n all<T>(tag: Lite.Tag<T, boolean>): Lite.TagExecutor<T[], T> {\n return { [tagExecutorSymbol]: true, tag, mode: \"all\" }\n },\n}\n\n/**\n * Type guard to check if a value is a TagExecutor.\n *\n * @param value - The value to check\n * @returns True if the value is a TagExecutor, false otherwise\n *\n * @example\n * ```typescript\n * if (isTagExecutor(value)) {\n * console.log(value.mode, value.tag)\n * }\n * ```\n */\nexport function isTagExecutor(value: unknown): value is Lite.TagExecutor<unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n tagExecutorSymbol in value\n )\n}\n","import { atomSymbol, controllerDepSymbol } from \"./symbols\"\nimport { registerAtomToTags } from \"./tag\"\nimport type { Lite, MaybePromise } from \"./types\"\n\nexport interface AtomConfig<T, D extends Record<string, Lite.Dependency>> {\n deps?: D\n factory: Lite.AtomFactory<T, D>\n tags?: Lite.Tagged<any>[]\n keepAlive?: boolean\n}\n\n/**\n * Creates a long-lived dependency that can be resolved and reused within a scope.\n *\n * @param config - Configuration object containing factory function, optional dependencies, and tags\n * @returns An Atom instance that can be resolved to produce a value of type T\n *\n * @example\n * ```typescript\n * const dbAtom = atom({\n * factory: async (ctx) => createDatabase()\n * })\n * ```\n */\nexport function atom<T>(config: {\n deps?: undefined\n factory: (ctx: Lite.ResolveContext) => MaybePromise<T>\n tags?: Lite.Tagged<any>[]\n keepAlive?: boolean\n}): Lite.Atom<T>\n\nexport function atom<\n T,\n const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | { mode: string }>,\n>(config: {\n deps: D\n factory: (ctx: Lite.ResolveContext, deps: Lite.InferDeps<D>) => MaybePromise<T>\n tags?: Lite.Tagged<any>[]\n keepAlive?: boolean\n}): Lite.Atom<T>\n\nexport function atom<T, D extends Record<string, Lite.Dependency>>(\n config: AtomConfig<T, D>\n): Lite.Atom<T> {\n const atomInstance: Lite.Atom<T> = {\n [atomSymbol]: true,\n factory: config.factory as unknown as Lite.AtomFactory<T, Record<string, Lite.Dependency>>,\n deps: config.deps as unknown as Record<string, Lite.Dependency> | undefined,\n tags: config.tags,\n keepAlive: config.keepAlive,\n }\n\n if (config.tags?.length) {\n registerAtomToTags(atomInstance, config.tags)\n }\n\n return atomInstance\n}\n\n/**\n * Type guard to check if a value is an Atom.\n *\n * @param value - The value to check\n * @returns True if the value is an Atom, false otherwise\n *\n * @example\n * ```typescript\n * if (isAtom(value)) {\n * await scope.resolve(value)\n * }\n * ```\n */\nexport function isAtom(value: unknown): value is Lite.Atom<unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as Record<symbol, unknown>)[atomSymbol] === true\n )\n}\n\n/**\n * Wraps an Atom to receive a Controller instead of the resolved value.\n * The Controller provides full lifecycle control: get, resolve, release, invalidate, and subscribe.\n *\n * @param atom - The Atom to wrap\n * @param options - Optional configuration. Use { resolve: true } to auto-resolve before factory runs.\n * @returns A ControllerDep that resolves to a Controller for the Atom\n *\n * @example\n * ```typescript\n * const configAtom = atom({ factory: () => fetchConfig() })\n * const serverAtom = atom({\n * deps: { config: controller(configAtom, { resolve: true }) },\n * factory: (ctx, { config }) => {\n * // config.get() is safe - already resolved\n * const unsub = config.on('resolved', () => ctx.invalidate())\n * ctx.cleanup(unsub)\n * return createServer(config.get().port)\n * }\n * })\n * ```\n */\nexport function controller<T>(\n atom: Lite.Atom<T>,\n options?: Lite.ControllerOptions\n): Lite.ControllerDep<T> {\n return {\n [controllerDepSymbol]: true,\n atom,\n resolve: options?.resolve,\n }\n}\n\n/**\n * Type guard to check if a value is a ControllerDep wrapper.\n *\n * @param value - The value to check\n * @returns True if the value is a ControllerDep wrapper, false otherwise\n *\n * @example\n * ```typescript\n * if (isControllerDep(dep)) {\n * const ctrl = scope.controller(dep.atom)\n * }\n * ```\n */\nexport function isControllerDep(value: unknown): value is Lite.ControllerDep<unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as Record<symbol, unknown>)[controllerDepSymbol] === true\n )\n}\n","import { flowSymbol, typedSymbol } from \"./symbols\"\nimport type { Lite, MaybePromise } from \"./types\"\n\n/**\n * Type marker for flow input without runtime parsing.\n * Use this when you want typed input but don't need validation.\n *\n * @example\n * ```typescript\n * const myFlow = flow({\n * parse: typed<{ name: string }>(),\n * factory: (ctx) => {\n * return ctx.input.name.toUpperCase()\n * }\n * })\n * ```\n */\nexport function typed<T>(): Lite.Typed<T> {\n return { [typedSymbol]: true }\n}\n\nexport interface FlowConfig<\n Output,\n Input,\n D extends Record<string, Lite.Dependency>,\n> {\n name?: string\n parse?: ((raw: unknown) => MaybePromise<Input>) | Lite.Typed<Input>\n deps?: D\n factory: Lite.FlowFactory<Output, Input, D>\n tags?: Lite.Tagged<any>[]\n}\n\n/**\n * Creates a short-lived execution unit that processes input and produces output.\n *\n * @param config - Configuration object containing factory function, optional dependencies, and tags\n * @returns A Flow instance that can be executed within an execution context\n *\n * @example\n * ```typescript\n * const processUser = flow({\n * factory: async (ctx) => {\n * const userId = ctx.input\n * return await fetchUser(userId)\n * }\n * })\n * ```\n */\nexport function flow<TOutput>(config: {\n name?: string\n parse?: undefined\n deps?: undefined\n factory: (ctx: Lite.ExecutionContext) => MaybePromise<TOutput>\n tags?: Lite.Tagged<any>[]\n}): Lite.Flow<TOutput, void>\n\nexport function flow<TOutput, TInput>(config: {\n name?: string\n parse: (raw: unknown) => MaybePromise<TInput>\n deps?: undefined\n factory: (ctx: Lite.ExecutionContext & { readonly input: NoInfer<TInput> }) => MaybePromise<TOutput>\n tags?: Lite.Tagged<any>[]\n}): Lite.Flow<TOutput, TInput>\n\nexport function flow<TOutput, TInput>(config: {\n name?: string\n parse: Lite.Typed<TInput>\n deps?: undefined\n factory: (ctx: Lite.ExecutionContext & { readonly input: NoInfer<TInput> }) => MaybePromise<TOutput>\n tags?: Lite.Tagged<any>[]\n}): Lite.Flow<TOutput, TInput>\n\nexport function flow<\n TOutput,\n const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | Lite.Resource<unknown, Record<string, Lite.Dependency>> | { mode: string }>,\n>(config: {\n name?: string\n parse?: undefined\n deps: D\n factory: (ctx: Lite.ExecutionContext, deps: Lite.InferDeps<D>) => MaybePromise<TOutput>\n tags?: Lite.Tagged<any>[]\n}): Lite.Flow<TOutput, void>\n\nexport function flow<\n TOutput,\n TInput,\n const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | Lite.Resource<unknown, Record<string, Lite.Dependency>> | { mode: string }>,\n>(config: {\n name?: string\n parse: (raw: unknown) => MaybePromise<TInput>\n deps: D\n factory: (ctx: Lite.ExecutionContext & { readonly input: NoInfer<TInput> }, deps: Lite.InferDeps<D>) => MaybePromise<TOutput>\n tags?: Lite.Tagged<any>[]\n}): Lite.Flow<TOutput, TInput>\n\nexport function flow<\n TOutput,\n TInput,\n const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | Lite.Resource<unknown, Record<string, Lite.Dependency>> | { mode: string }>,\n>(config: {\n name?: string\n parse: Lite.Typed<TInput>\n deps: D\n factory: (ctx: Lite.ExecutionContext & { readonly input: NoInfer<TInput> }, deps: Lite.InferDeps<D>) => MaybePromise<TOutput>\n tags?: Lite.Tagged<any>[]\n}): Lite.Flow<TOutput, TInput>\n\nexport function flow<\n TOutput,\n TInput,\n D extends Record<string, Lite.Dependency>,\n>(config: FlowConfig<TOutput, TInput, D>): Lite.Flow<TOutput, TInput> {\n const parse = config.parse\n const isTypedMarker =\n typeof parse === \"object\" && parse !== null && typedSymbol in parse\n\n return {\n [flowSymbol]: true,\n name: config.name,\n parse: isTypedMarker\n ? undefined\n : (parse as ((raw: unknown) => MaybePromise<TInput>) | undefined),\n factory: config.factory as unknown as Lite.FlowFactory<\n TOutput,\n TInput,\n Record<string, Lite.Dependency>\n >,\n deps: config.deps as unknown as Record<string, Lite.Dependency> | undefined,\n tags: config.tags,\n }\n}\n\n/**\n * Type guard to check if a value is a Flow.\n *\n * @param value - The value to check\n * @returns True if the value is a Flow, false otherwise\n *\n * @example\n * ```typescript\n * if (isFlow(value)) {\n * await ctx.exec({ flow: value, input: data })\n * }\n * ```\n */\nexport function isFlow(value: unknown): value is Lite.Flow<unknown, unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as Record<symbol, unknown>)[flowSymbol] === true\n )\n}\n","import { presetSymbol } from \"./symbols\"\nimport type { Lite, MaybePromise } from \"./types\"\nimport { isAtom } from \"./atom\"\nimport { isFlow } from \"./flow\"\n\n/**\n * Creates a preset that overrides an Atom's factory within a scope.\n *\n * @param target - The Atom to preset\n * @param value - The preset value (can be a direct value or another Atom)\n * @returns A Preset instance to be used in scope configuration\n *\n * @example\n * ```typescript\n * const scope = createScope({\n * presets: [preset(dbAtom, mockDatabase)]\n * })\n * ```\n */\nexport function preset<T>(\n target: Lite.Atom<T>,\n value: T | Lite.Atom<T>\n): Lite.Preset<T>\n\n/**\n * Creates a preset that overrides a Flow's execution within a scope.\n *\n * @param target - The Flow to preset\n * @param value - The replacement (another Flow or a function that receives ctx with parsed input)\n * @returns A Preset instance to be used in scope configuration\n *\n * @example\n * ```typescript\n * // Replace with another flow\n * const scope = createScope({\n * presets: [preset(processFlow, mockProcessFlow)]\n * })\n *\n * // Replace with a function (deps are NOT resolved)\n * const scope = createScope({\n * presets: [preset(processFlow, (ctx) => ({ result: ctx.input }))]\n * })\n * ```\n */\nexport function preset<TOutput, TInput>(\n target: Lite.Flow<TOutput, TInput>,\n value: Lite.Flow<TOutput, TInput> | ((ctx: Lite.ExecutionContext & { readonly input: TInput }) => MaybePromise<TOutput>)\n): Lite.Preset<TOutput, TInput>\n\nexport function preset<T, I>(\n target: Lite.PresetTarget<T, I>,\n value: Lite.PresetValue<T, I>\n): Lite.Preset<T, I> {\n if (!isAtom(target) && !isFlow(target)) {\n throw new Error(\"preset target must be Atom or Flow\")\n }\n if (target === value) {\n throw new Error(\"preset cannot reference itself\")\n }\n return {\n [presetSymbol]: true,\n target,\n value,\n }\n}\n\n/**\n * Type guard to check if a value is a Preset.\n *\n * @param value - The value to check\n * @returns True if the value is a Preset, false otherwise\n *\n * @example\n * ```typescript\n * if (isPreset(value)) {\n * console.log(value.target, value.value)\n * }\n * ```\n */\nexport function isPreset(value: unknown): value is Lite.Preset<unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as Record<symbol, unknown>)[presetSymbol] === true\n )\n}\n","import { resourceSymbol } from \"./symbols\"\nimport type { Lite, MaybePromise } from \"./types\"\n\n/**\n * Creates an execution-scoped dependency that is resolved per execution chain.\n * Fresh instance on first encounter, seek-up on nested execs within the same chain.\n *\n * @param config - Configuration object containing factory function and optional dependencies\n * @returns A Resource instance that can be declared as a dependency in flows and other resources\n *\n * @example\n * ```typescript\n * const requestLogger = resource({\n * deps: { logService: logServiceAtom },\n * factory: (ctx, { logService }) => {\n * const logger = logService.child({ requestId: ctx.data.get(\"requestId\") })\n * ctx.onClose(() => logger.flush())\n * return logger\n * }\n * })\n * ```\n */\nexport function resource<T>(config: {\n name?: string\n deps?: undefined\n factory: (ctx: Lite.ExecutionContext) => MaybePromise<T>\n}): Lite.Resource<T>\n\nexport function resource<\n T,\n const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | Lite.Resource<unknown, Record<string, Lite.Dependency>> | { mode: string }>,\n>(config: {\n name?: string\n deps: D\n factory: (ctx: Lite.ExecutionContext, deps: Lite.InferDeps<D>) => MaybePromise<T>\n}): Lite.Resource<T>\n\nexport function resource<T, D extends Record<string, Lite.Dependency>>(\n config: {\n name?: string\n deps?: D\n factory: Lite.ResourceFactory<T, D>\n }\n): Lite.Resource<T> {\n return Object.freeze({\n [resourceSymbol]: true,\n name: config.name,\n deps: config.deps as unknown as Record<string, Lite.Dependency> | undefined,\n factory: config.factory as unknown as Lite.ResourceFactory<T, Record<string, Lite.Dependency>>,\n }) as Lite.Resource<T>\n}\n\n/**\n * Type guard to check if a value is a Resource.\n *\n * @param value - The value to check\n * @returns True if the value is a Resource, false otherwise\n *\n * @example\n * ```typescript\n * if (isResource(value)) {\n * // value is Lite.Resource<unknown>\n * }\n * ```\n */\nexport function isResource(value: unknown): value is Lite.Resource<unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as Record<symbol, unknown>)[resourceSymbol] === true\n )\n}\n","import { atomSymbol } from \"./symbols\"\nimport type { Lite, MaybePromise } from \"./types\"\n\n/** Creates an atom with methods constrained to (ctx: ExecutionContext, ...args) => result. */\nexport function service<T extends Lite.ServiceMethods>(config: {\n deps?: undefined\n factory: (ctx: Lite.ResolveContext) => MaybePromise<T>\n tags?: Lite.Tagged<any>[]\n}): Lite.Atom<T>\n\nexport function service<\n T extends Lite.ServiceMethods,\n const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | Lite.TagExecutor<any>>,\n>(config: {\n deps: D\n factory: (ctx: Lite.ResolveContext, deps: Lite.InferDeps<D>) => MaybePromise<T>\n tags?: Lite.Tagged<any>[]\n}): Lite.Atom<T>\n\nexport function service<T extends Lite.ServiceMethods, D extends Record<string, Lite.Dependency>>(config: {\n deps?: D\n factory: Lite.AtomFactory<T, D>\n tags?: Lite.Tagged<any>[]\n}): Lite.Atom<T> {\n return {\n [atomSymbol]: true,\n factory: config.factory as unknown as Lite.AtomFactory<T, Record<string, Lite.Dependency>>,\n deps: config.deps as unknown as Record<string, Lite.Dependency> | undefined,\n tags: config.tags,\n }\n}\n","import { controllerSymbol, tagExecutorSymbol } from \"./symbols\"\nimport type { Lite, MaybePromise, AtomState } from \"./types\"\nimport { isAtom, isControllerDep } from \"./atom\"\nimport { isFlow } from \"./flow\"\nimport { isResource } from \"./resource\"\nimport { ParseError } from \"./errors\"\n\nconst resourceKeys = new WeakMap<Lite.Resource<unknown>, symbol>()\nlet resourceKeyCounter = 0\n\nfunction getResourceKey(resource: Lite.Resource<unknown>): symbol {\n let key = resourceKeys.get(resource)\n if (!key) {\n key = Symbol(`resource:${resource.name ?? resourceKeyCounter++}`)\n resourceKeys.set(resource, key)\n }\n return key\n}\n\nconst inflightResources = new WeakMap<Lite.ContextData, Map<symbol, Promise<unknown>>>()\nconst resolvingResources = new Set<symbol>()\n\ntype ListenerEvent = 'resolving' | 'resolved' | '*'\n\nclass ContextDataImpl implements Lite.ContextData {\n private readonly map = new Map<string | symbol, unknown>()\n\n constructor(\n private readonly parentData?: Lite.ContextData\n ) {}\n\n // Raw Map operations\n get(key: string | symbol): unknown {\n return this.map.get(key)\n }\n\n set(key: string | symbol, value: unknown): void {\n this.map.set(key, value)\n }\n\n has(key: string | symbol): boolean {\n return this.map.has(key)\n }\n\n delete(key: string | symbol): boolean {\n return this.map.delete(key)\n }\n\n clear(): void {\n this.map.clear()\n }\n\n seek(key: string | symbol): unknown {\n if (this.map.has(key)) {\n return this.map.get(key)\n }\n return this.parentData?.seek(key)\n }\n\n // Tag-based operations\n getTag<T>(tag: Lite.Tag<T, boolean>): T | undefined {\n return this.map.get(tag.key) as T | undefined\n }\n\n setTag<T>(tag: Lite.Tag<T, boolean>, value: T): void {\n this.map.set(tag.key, value)\n }\n\n hasTag<T, H extends boolean>(tag: Lite.Tag<T, H>): boolean {\n return this.map.has(tag.key)\n }\n\n deleteTag<T, H extends boolean>(tag: Lite.Tag<T, H>): boolean {\n return this.map.delete(tag.key)\n }\n\n seekTag<T>(tag: Lite.Tag<T, boolean>): T | undefined {\n if (this.map.has(tag.key)) {\n return this.map.get(tag.key) as T\n }\n return this.parentData?.seekTag(tag)\n }\n\n getOrSetTag<T>(tag: Lite.Tag<T, true>): T\n getOrSetTag<T>(tag: Lite.Tag<T, true>, value: T): T\n getOrSetTag<T>(tag: Lite.Tag<T, false>, value: T): T\n getOrSetTag<T>(tag: Lite.Tag<T, boolean>, value?: T): T {\n if (this.map.has(tag.key)) {\n return this.map.get(tag.key) as T\n }\n const storedValue = value !== undefined ? value : (tag.defaultValue as T)\n this.map.set(tag.key, storedValue)\n return storedValue\n }\n}\n\ninterface AtomEntry<T> {\n state: AtomState\n value?: T\n hasValue: boolean\n error?: Error\n cleanups: (() => MaybePromise<void>)[]\n listeners: Map<ListenerEvent, Set<() => void>>\n pendingInvalidate: boolean\n pendingSet?: { value: T } | { fn: (prev: T) => T }\n data?: ContextDataImpl\n dependents: Set<Lite.Atom<unknown>>\n gcScheduled: ReturnType<typeof setTimeout> | null\n}\n\nclass SelectHandleImpl<T, S> implements Lite.SelectHandle<S> {\n private listeners = new Set<() => void>()\n private currentValue: S\n private ctrlUnsub: (() => void) | null = null\n\n constructor(\n private ctrl: Lite.Controller<T>,\n private selector: (value: T) => S,\n private eq: (prev: S, next: S) => boolean\n ) {\n if (ctrl.state !== 'resolved') {\n throw new Error(\"Cannot select from unresolved atom\")\n }\n\n this.currentValue = selector(ctrl.get())\n\n this.ctrlUnsub = ctrl.on('resolved', () => {\n const nextValue = this.selector(this.ctrl.get())\n if (!this.eq(this.currentValue, nextValue)) {\n this.currentValue = nextValue\n this.notifyListeners()\n }\n })\n }\n\n get(): S {\n return this.currentValue\n }\n\n subscribe(listener: () => void): () => void {\n this.listeners.add(listener)\n\n return () => {\n this.listeners.delete(listener)\n if (this.listeners.size === 0) {\n this.cleanup()\n }\n }\n }\n\n private notifyListeners(): void {\n for (const listener of this.listeners) {\n listener()\n }\n }\n\n private cleanup(): void {\n this.ctrlUnsub?.()\n this.ctrlUnsub = null\n this.listeners.clear()\n }\n}\n\nclass ControllerImpl<T> implements Lite.Controller<T> {\n readonly [controllerSymbol] = true\n\n constructor(\n private atom: Lite.Atom<T>,\n private scope: ScopeImpl\n ) {}\n\n get state(): AtomState {\n const entry = this.scope.getEntry(this.atom)\n return entry?.state ?? 'idle'\n }\n\n get(): T {\n const entry = this.scope.getEntry(this.atom)\n if (!entry || entry.state === 'idle') {\n throw new Error(\"Atom not resolved\")\n }\n if (entry.state === 'failed' && entry.error) {\n throw entry.error\n }\n if (entry.state === 'resolving' && entry.hasValue) {\n return entry.value as T\n }\n if (entry.state === 'resolved' && entry.hasValue) {\n return entry.value as T\n }\n throw new Error(\"Atom not resolved\")\n }\n\n async resolve(): Promise<T> {\n return this.scope.resolve(this.atom)\n }\n\n async release(): Promise<void> {\n return this.scope.release(this.atom)\n }\n\n invalidate(): void {\n this.scope.invalidate(this.atom)\n }\n\n set(value: T): void {\n this.scope.scheduleSet(this.atom, value)\n }\n\n update(fn: (prev: T) => T): void {\n this.scope.scheduleUpdate(this.atom, fn)\n }\n\n on(event: ListenerEvent, listener: () => void): () => void {\n return this.scope.addListener(this.atom, event, listener)\n }\n}\n\nclass ScopeImpl implements Lite.Scope {\n private cache = new Map<Lite.Atom<unknown>, AtomEntry<unknown>>()\n private presets = new Map<Lite.Atom<unknown> | Lite.Flow<unknown, unknown>, unknown>()\n private resolving = new Set<Lite.Atom<unknown>>()\n private pending = new Map<Lite.Atom<unknown>, Promise<unknown>>()\n private stateListeners = new Map<AtomState, Map<Lite.Atom<unknown>, Set<() => void>>>()\n private invalidationQueue = new Set<Lite.Atom<unknown>>()\n private invalidationScheduled = false\n private invalidationChain: Set<Lite.Atom<unknown>> | null = null\n private chainPromise: Promise<void> | null = null\n private initialized = false\n private controllers = new Map<Lite.Atom<unknown>, ControllerImpl<unknown>>()\n private gcOptions: Required<Lite.GCOptions>\n readonly extensions: Lite.Extension[]\n readonly tags: Lite.Tagged<any>[]\n readonly ready: Promise<void>\n\n private scheduleInvalidation<T>(atom: Lite.Atom<T>): void {\n const entry = this.cache.get(atom) as AtomEntry<T> | undefined\n if (!entry || entry.state === \"idle\") return\n\n if (entry.state === \"resolving\") {\n entry.pendingInvalidate = true\n return\n }\n\n this.invalidationQueue.add(atom)\n\n if (!this.chainPromise) {\n this.invalidationChain = new Set()\n this.invalidationScheduled = true\n this.chainPromise = new Promise<void>((resolve, reject) => {\n queueMicrotask(() => {\n this.processInvalidationChain().then(resolve).catch(reject)\n })\n })\n }\n }\n\n private async processInvalidationChain(): Promise<void> {\n try {\n while (this.invalidationQueue.size > 0) {\n const atom = this.invalidationQueue.values().next().value as Lite.Atom<unknown>\n this.invalidationQueue.delete(atom)\n\n if (this.invalidationChain!.has(atom)) {\n const chainAtoms = Array.from(this.invalidationChain!)\n chainAtoms.push(atom)\n const path = chainAtoms\n .map(a => a.factory?.name || \"<anonymous>\")\n .join(\" → \")\n throw new Error(`Infinite invalidation loop detected: ${path}`)\n }\n\n this.invalidationChain!.add(atom)\n await this.doInvalidateSequential(atom)\n }\n } finally {\n this.invalidationChain = null\n this.chainPromise = null\n this.invalidationScheduled = false\n }\n }\n\n constructor(options?: Lite.ScopeOptions) {\n this.extensions = options?.extensions ?? []\n this.tags = options?.tags ?? []\n\n for (const p of options?.presets ?? []) {\n this.presets.set(p.target, p.value)\n }\n\n this.gcOptions = {\n enabled: options?.gc?.enabled ?? true,\n graceMs: options?.gc?.graceMs ?? 3000,\n }\n\n this.ready = this.init()\n }\n\n private async init(): Promise<void> {\n for (const ext of this.extensions) {\n if (ext.init) {\n await ext.init(this)\n }\n }\n this.initialized = true\n }\n\n getEntry<T>(atom: Lite.Atom<T>): AtomEntry<T> | undefined {\n return this.cache.get(atom) as AtomEntry<T> | undefined\n }\n\n private getOrCreateEntry<T>(atom: Lite.Atom<T>): AtomEntry<T> {\n let entry = this.cache.get(atom) as AtomEntry<T> | undefined\n if (!entry) {\n entry = {\n state: 'idle',\n hasValue: false,\n cleanups: [],\n listeners: new Map([\n ['resolving', new Set()],\n ['resolved', new Set()],\n ['*', new Set()],\n ]),\n pendingInvalidate: false,\n dependents: new Set(),\n gcScheduled: null,\n }\n this.cache.set(atom, entry as AtomEntry<unknown>)\n }\n return entry\n }\n\n addListener<T>(atom: Lite.Atom<T>, event: ListenerEvent, listener: () => void): () => void {\n this.cancelScheduledGC(atom)\n \n const entry = this.getOrCreateEntry(atom)\n const listeners = entry.listeners.get(event)!\n listeners.add(listener)\n return () => {\n listeners.delete(listener)\n this.maybeScheduleGC(atom)\n }\n }\n\n private getSubscriberCount<T>(atom: Lite.Atom<T>): number {\n const entry = this.cache.get(atom)\n if (!entry) return 0\n let count = 0\n for (const listeners of entry.listeners.values()) {\n count += listeners.size\n }\n return count\n }\n\n private maybeScheduleGC<T>(atom: Lite.Atom<T>): void {\n if (!this.gcOptions.enabled) return\n if (atom.keepAlive) return\n \n const entry = this.cache.get(atom)\n if (!entry) return\n if (entry.state === 'idle') return\n \n const subscriberCount = this.getSubscriberCount(atom)\n if (subscriberCount > 0) return\n if (entry.dependents.size > 0) return\n \n if (entry.gcScheduled) return\n \n entry.gcScheduled = setTimeout(() => {\n this.executeGC(atom)\n }, this.gcOptions.graceMs)\n }\n\n private cancelScheduledGC<T>(atom: Lite.Atom<T>): void {\n const entry = this.cache.get(atom)\n if (entry?.gcScheduled) {\n clearTimeout(entry.gcScheduled)\n entry.gcScheduled = null\n }\n }\n\n private async executeGC<T>(atom: Lite.Atom<T>): Promise<void> {\n const entry = this.cache.get(atom)\n if (!entry) return\n \n entry.gcScheduled = null\n \n if (this.getSubscriberCount(atom) > 0) return\n if (entry.dependents.size > 0) return\n if (atom.keepAlive) return\n \n await this.release(atom)\n \n if (atom.deps) {\n for (const dep of Object.values(atom.deps)) {\n const depAtom = isAtom(dep) ? dep : isControllerDep(dep) ? dep.atom : null\n if (!depAtom) continue\n \n const depEntry = this.cache.get(depAtom)\n if (depEntry) {\n depEntry.dependents.delete(atom)\n this.maybeScheduleGC(depAtom)\n }\n }\n }\n }\n\n private notifyListeners<T>(atom: Lite.Atom<T>, event: 'resolving' | 'resolved'): void {\n const entry = this.cache.get(atom)\n if (!entry) return\n\n const eventListeners = entry.listeners.get(event)\n if (eventListeners) {\n for (const listener of eventListeners) {\n listener()\n }\n }\n\n const allListeners = entry.listeners.get('*')\n if (allListeners) {\n for (const listener of allListeners) {\n listener()\n }\n }\n }\n\n private notifyAllListeners<T>(atom: Lite.Atom<T>): void {\n const entry = this.cache.get(atom)\n if (!entry) return\n\n const allListeners = entry.listeners.get('*')\n if (allListeners) {\n for (const listener of allListeners) {\n listener()\n }\n }\n }\n\n private emitStateChange(state: AtomState, atom: Lite.Atom<unknown>): void {\n const stateMap = this.stateListeners.get(state)\n if (stateMap) {\n const listeners = stateMap.get(atom)\n if (listeners) {\n for (const listener of listeners) {\n listener()\n }\n }\n }\n }\n\n on(event: AtomState, atom: Lite.Atom<unknown>, listener: () => void): () => void {\n let stateMap = this.stateListeners.get(event)\n if (!stateMap) {\n stateMap = new Map()\n this.stateListeners.set(event, stateMap)\n }\n let listeners = stateMap.get(atom)\n if (!listeners) {\n listeners = new Set()\n stateMap.set(atom, listeners)\n }\n listeners.add(listener)\n\n const capturedStateMap = stateMap\n const capturedListeners = listeners\n\n return () => {\n capturedListeners.delete(listener)\n if (capturedListeners.size === 0) {\n capturedStateMap.delete(atom)\n if (capturedStateMap.size === 0) {\n this.stateListeners.delete(event)\n }\n }\n }\n }\n\n async resolve<T>(atom: Lite.Atom<T>): Promise<T> {\n if (!this.initialized) {\n await this.ready\n }\n\n const entry = this.cache.get(atom) as AtomEntry<T> | undefined\n if (entry?.state === 'resolved') {\n return entry.value as T\n }\n\n const pendingPromise = this.pending.get(atom)\n if (pendingPromise) {\n return pendingPromise as Promise<T>\n }\n\n if (this.resolving.has(atom)) {\n throw new Error(\"Circular dependency detected\")\n }\n\n const presetValue = this.presets.get(atom)\n if (presetValue !== undefined) {\n if (isAtom(presetValue)) {\n return this.resolve(presetValue as Lite.Atom<T>)\n }\n const newEntry = this.getOrCreateEntry(atom)\n newEntry.state = 'resolved'\n newEntry.value = presetValue as T\n newEntry.hasValue = true\n this.emitStateChange('resolved', atom)\n this.notifyListeners(atom, 'resolved')\n return newEntry.value\n }\n\n this.resolving.add(atom)\n\n const promise = this.doResolve(atom)\n this.pending.set(atom, promise as Promise<unknown>)\n\n try {\n return await promise\n } finally {\n this.resolving.delete(atom)\n this.pending.delete(atom)\n }\n }\n\n private async doResolve<T>(atom: Lite.Atom<T>): Promise<T> {\n const entry = this.getOrCreateEntry(atom)\n\n const wasResolving = entry.state === 'resolving'\n if (!wasResolving) {\n entry.state = 'resolving'\n this.emitStateChange('resolving', atom)\n this.notifyListeners(atom, 'resolving')\n }\n\n const resolvedDeps = await this.resolveDeps(atom.deps, undefined, atom)\n\n const ctx: Lite.ResolveContext = {\n cleanup: (fn) => entry.cleanups.push(fn),\n invalidate: () => {\n this.scheduleInvalidation(atom)\n },\n scope: this,\n get data() {\n if (!entry.data) {\n entry.data = new ContextDataImpl()\n }\n return entry.data\n },\n }\n\n const factory = atom.factory as (\n ctx: Lite.ResolveContext,\n deps?: Record<string, unknown>\n ) => MaybePromise<T>\n\n const doResolve = async () => {\n if (atom.deps && Object.keys(atom.deps).length > 0) {\n return factory(ctx, resolvedDeps)\n } else {\n return factory(ctx)\n }\n }\n\n try {\n const event: Lite.ResolveEvent = { kind: \"atom\", target: atom as Lite.Atom<unknown>, scope: this }\n const value = await this.applyResolveExtensions(event, doResolve)\n entry.state = 'resolved'\n entry.value = value\n entry.hasValue = true\n entry.error = undefined\n this.emitStateChange('resolved', atom)\n this.notifyListeners(atom, 'resolved')\n\n if (entry.pendingInvalidate) {\n entry.pendingInvalidate = false\n this.invalidationChain?.delete(atom)\n this.scheduleInvalidation(atom)\n } else if (entry.pendingSet) {\n this.invalidationChain?.delete(atom)\n this.scheduleInvalidation(atom)\n }\n\n return value\n } catch (err) {\n entry.state = 'failed'\n entry.error = err instanceof Error ? err : new Error(String(err))\n entry.value = undefined\n entry.hasValue = false\n this.emitStateChange('failed', atom)\n this.notifyAllListeners(atom)\n\n if (entry.pendingInvalidate) {\n entry.pendingInvalidate = false\n this.invalidationChain?.delete(atom)\n this.scheduleInvalidation(atom)\n }\n\n throw entry.error\n }\n }\n\n private async applyResolveExtensions<T>(\n event: Lite.ResolveEvent,\n doResolve: () => Promise<T>\n ): Promise<T> {\n let next = doResolve\n\n for (let i = this.extensions.length - 1; i >= 0; i--) {\n const ext = this.extensions[i]\n if (ext?.wrapResolve) {\n const currentNext = next\n next = ext.wrapResolve.bind(ext, currentNext, event) as () => Promise<T>\n }\n }\n\n return next()\n }\n\n async resolveDeps(\n deps: Record<string, Lite.Dependency> | undefined,\n ctx?: Lite.ExecutionContext,\n dependentAtom?: Lite.Atom<unknown>\n ): Promise<Record<string, unknown>> {\n if (!deps) return {}\n\n const result: Record<string, unknown> = {}\n\n for (const [key, dep] of Object.entries(deps)) {\n if (isAtom(dep)) {\n result[key] = await this.resolve(dep)\n if (dependentAtom) {\n const depEntry = this.getEntry(dep)\n if (depEntry) {\n depEntry.dependents.add(dependentAtom)\n }\n }\n } else if (isControllerDep(dep)) {\n const ctrl = new ControllerImpl(dep.atom, this)\n if (dep.resolve) {\n await ctrl.resolve()\n }\n result[key] = ctrl\n if (dependentAtom) {\n const depEntry = this.getEntry(dep.atom)\n if (depEntry) {\n depEntry.dependents.add(dependentAtom)\n }\n }\n } else if (tagExecutorSymbol in (dep as object)) {\n const tagExecutor = dep as Lite.TagExecutor<unknown, boolean>\n\n switch (tagExecutor.mode) {\n case \"required\": {\n const value = ctx\n ? ctx.data.seekTag(tagExecutor.tag)\n : tagExecutor.tag.find(this.tags)\n if (value !== undefined) {\n result[key] = value\n } else if (tagExecutor.tag.hasDefault) {\n result[key] = tagExecutor.tag.defaultValue\n } else {\n throw new Error(`Tag \"${tagExecutor.tag.label}\" not found`)\n }\n break\n }\n case \"optional\": {\n const value = ctx\n ? ctx.data.seekTag(tagExecutor.tag)\n : tagExecutor.tag.find(this.tags)\n result[key] = value ?? tagExecutor.tag.defaultValue\n break\n }\n case \"all\": {\n result[key] = ctx\n ? this.collectFromHierarchy(ctx, tagExecutor.tag)\n : tagExecutor.tag.collect(this.tags)\n break\n }\n }\n } else if (isResource(dep)) {\n if (!ctx) {\n throw new Error(\"Resource deps require an ExecutionContext\")\n }\n\n const resource = dep as Lite.Resource<unknown>\n const resourceKey = getResourceKey(resource)\n const storeCtx = ctx.parent ?? ctx\n\n if (storeCtx.data.has(resourceKey)) {\n result[key] = storeCtx.data.get(resourceKey)\n continue\n }\n\n const existingSeek = ctx.data.seek(resourceKey)\n if (existingSeek !== undefined || ctx.data.has(resourceKey)) {\n result[key] = existingSeek\n continue\n }\n\n if (resolvingResources.has(resourceKey)) {\n throw new Error(`Circular resource dependency detected: ${resource.name ?? \"anonymous\"}`)\n }\n\n let flights = inflightResources.get(storeCtx.data)\n if (!flights) {\n flights = new Map()\n inflightResources.set(storeCtx.data, flights)\n }\n\n const inflight = flights.get(resourceKey)\n if (inflight) {\n result[key] = await inflight\n continue\n }\n\n const resolve = async () => {\n resolvingResources.add(resourceKey)\n try {\n const resourceDeps = await this.resolveDeps(resource.deps, ctx)\n\n const event: Lite.ResolveEvent = {\n kind: \"resource\",\n target: resource,\n ctx: storeCtx,\n }\n\n const doResolve = async () => {\n const factory = resource.factory as (\n ctx: Lite.ExecutionContext,\n deps?: Record<string, unknown>\n ) => MaybePromise<unknown>\n if (resource.deps && Object.keys(resource.deps).length > 0) {\n return factory(storeCtx, resourceDeps)\n }\n return factory(storeCtx)\n }\n\n const value = await this.applyResolveExtensions(event, doResolve)\n storeCtx.data.set(resourceKey, value)\n return value\n } finally {\n resolvingResources.delete(resourceKey)\n }\n }\n\n const promise = resolve()\n flights.set(resourceKey, promise)\n\n try {\n result[key] = await promise\n } finally {\n flights.delete(resourceKey)\n }\n }\n }\n\n return result\n }\n\n private collectFromHierarchy<T>(ctx: Lite.ExecutionContext, tag: Lite.Tag<T, boolean>): T[] {\n const results: T[] = []\n let current: Lite.ExecutionContext | undefined = ctx\n\n while (current) {\n const value = current.data.getTag(tag)\n if (value !== undefined) {\n results.push(value)\n }\n current = current.parent\n }\n\n return results\n }\n\n controller<T>(atom: Lite.Atom<T>): Lite.Controller<T>\n controller<T>(atom: Lite.Atom<T>, options: { resolve: true }): Promise<Lite.Controller<T>>\n controller<T>(atom: Lite.Atom<T>, options?: Lite.ControllerOptions): Lite.Controller<T> | Promise<Lite.Controller<T>>\n controller<T>(atom: Lite.Atom<T>, options?: Lite.ControllerOptions): Lite.Controller<T> | Promise<Lite.Controller<T>> {\n let ctrl = this.controllers.get(atom) as ControllerImpl<T> | undefined\n if (!ctrl) {\n ctrl = new ControllerImpl(atom, this)\n this.controllers.set(atom, ctrl as ControllerImpl<unknown>)\n }\n if (options?.resolve) {\n return ctrl.resolve().then(() => ctrl)\n }\n return ctrl\n }\n\n select<T, S>(\n atom: Lite.Atom<T>,\n selector: (value: T) => S,\n options?: Lite.SelectOptions<S>\n ): Lite.SelectHandle<S> {\n const ctrl = this.controller(atom)\n const eq = options?.eq ?? ((a, b) => a === b)\n return new SelectHandleImpl(ctrl, selector, eq)\n }\n\n getFlowPreset<O, I>(flow: Lite.Flow<O, I>): Lite.PresetValue<O, I> | undefined {\n return this.presets.get(flow as Lite.Flow<unknown, unknown>) as Lite.PresetValue<O, I> | undefined\n }\n\n invalidate<T>(atom: Lite.Atom<T>): void {\n const entry = this.cache.get(atom)\n if (!entry) return\n\n if (entry.state === 'idle') return\n\n if (entry.state === 'resolving') {\n entry.pendingInvalidate = true\n return\n }\n\n this.scheduleInvalidation(atom)\n }\n\n scheduleSet<T>(atom: Lite.Atom<T>, value: T): void {\n const entry = this.cache.get(atom) as AtomEntry<T> | undefined\n if (!entry || entry.state === 'idle') {\n throw new Error(\"Atom not resolved\")\n }\n if (entry.state === 'failed' && entry.error) {\n throw entry.error\n }\n\n if (entry.state === 'resolving') {\n entry.pendingSet = { value }\n return\n }\n\n entry.pendingSet = { value }\n this.scheduleInvalidation(atom)\n }\n\n scheduleUpdate<T>(atom: Lite.Atom<T>, fn: (prev: T) => T): void {\n const entry = this.cache.get(atom) as AtomEntry<T> | undefined\n if (!entry || entry.state === 'idle') {\n throw new Error(\"Atom not resolved\")\n }\n if (entry.state === 'failed' && entry.error) {\n throw entry.error\n }\n\n if (entry.state === 'resolving') {\n entry.pendingSet = { fn }\n return\n }\n\n entry.pendingSet = { fn }\n this.scheduleInvalidation(atom)\n }\n\n private async doInvalidateSequential<T>(atom: Lite.Atom<T>): Promise<void> {\n const entry = this.cache.get(atom) as AtomEntry<T> | undefined\n if (!entry) return\n if (entry.state === \"idle\") return\n\n const previousValue = entry.value\n const pendingSet = entry.pendingSet\n entry.pendingSet = undefined\n\n for (let i = entry.cleanups.length - 1; i >= 0; i--) {\n const cleanup = entry.cleanups[i]\n if (cleanup) await cleanup()\n }\n entry.cleanups = []\n\n entry.state = \"resolving\"\n entry.value = previousValue\n entry.error = undefined\n entry.pendingInvalidate = false\n this.pending.delete(atom)\n this.resolving.delete(atom)\n this.emitStateChange(\"resolving\", atom)\n this.notifyListeners(atom, \"resolving\")\n\n if (pendingSet) {\n if ('value' in pendingSet) {\n entry.value = pendingSet.value\n } else {\n entry.value = pendingSet.fn(previousValue as T)\n }\n entry.state = 'resolved'\n entry.hasValue = true\n this.emitStateChange('resolved', atom)\n this.notifyListeners(atom, 'resolved')\n return\n }\n\n await this.resolve(atom)\n }\n\n async release<T>(atom: Lite.Atom<T>): Promise<void> {\n const entry = this.cache.get(atom)\n if (!entry) return\n\n if (entry.gcScheduled) {\n clearTimeout(entry.gcScheduled)\n entry.gcScheduled = null\n }\n\n for (let i = entry.cleanups.length - 1; i >= 0; i--) {\n const cleanup = entry.cleanups[i]\n if (cleanup) await cleanup()\n }\n\n this.cache.delete(atom)\n this.controllers.delete(atom)\n }\n\n async dispose(): Promise<void> {\n for (const ext of this.extensions) {\n if (ext.dispose) {\n await ext.dispose(this)\n }\n }\n\n for (const entry of this.cache.values()) {\n if (entry.gcScheduled) {\n clearTimeout(entry.gcScheduled)\n entry.gcScheduled = null\n }\n }\n\n const atoms = Array.from(this.cache.keys())\n for (const atom of atoms) {\n await this.release(atom as Lite.Atom<unknown>)\n }\n }\n\n async flush(): Promise<void> {\n if (this.chainPromise) {\n await this.chainPromise\n }\n }\n\n createContext(options?: Lite.CreateContextOptions): Lite.ExecutionContext {\n const ctx = new ExecutionContextImpl(this, options)\n\n for (const tagged of options?.tags ?? []) {\n ctx.data.set(tagged.key, tagged.value)\n }\n\n for (const tagged of this.tags) {\n if (!ctx.data.has(tagged.key)) {\n ctx.data.set(tagged.key, tagged.value)\n }\n }\n\n return ctx\n }\n}\n\nclass ExecutionContextImpl implements Lite.ExecutionContext {\n private cleanups: ((result: Lite.CloseResult) => MaybePromise<void>)[] = []\n private closed = false\n private readonly _input: unknown\n private _data: ContextDataImpl | undefined\n private readonly _execName: string | undefined\n private readonly _flowName: string | undefined\n readonly parent: Lite.ExecutionContext | undefined\n\n constructor(\n readonly scope: ScopeImpl,\n options?: Lite.CreateContextOptions & {\n parent?: Lite.ExecutionContext\n input?: unknown\n execName?: string\n flowName?: string\n }\n ) {\n this.parent = options?.parent\n this._input = options?.input\n this._execName = options?.execName\n this._flowName = options?.flowName\n }\n\n get input(): unknown {\n return this._input\n }\n\n get name(): string | undefined {\n return this._execName ?? this._flowName\n }\n\n get data(): Lite.ContextData {\n if (!this._data) {\n this._data = new ContextDataImpl(this.parent?.data)\n }\n return this._data\n }\n\n async exec(options: {\n flow: Lite.Flow<unknown, unknown>\n input?: unknown\n rawInput?: unknown\n name?: string\n tags?: Lite.Tagged<any>[]\n } | Lite.ExecFnOptions<unknown>): Promise<unknown> {\n if (this.closed) {\n throw new Error(\"ExecutionContext is closed\")\n }\n\n if (\"flow\" in options) {\n const { flow, input, rawInput, name: execName, tags: execTags } = options\n\n const presetValue = this.scope.getFlowPreset(flow)\n if (presetValue !== undefined && isFlow(presetValue)) {\n return this.exec({ ...options, flow: presetValue })\n }\n\n const rawValue = rawInput !== undefined ? rawInput : input\n let parsedInput: unknown = rawValue\n if (flow.parse) {\n const label = execName ?? flow.name ?? \"anonymous\"\n try {\n parsedInput = await flow.parse(rawValue)\n } catch (err) {\n throw new ParseError(\n `Failed to parse flow input \"${label}\"`,\n \"flow-input\",\n label,\n err\n )\n }\n }\n\n const childCtx = new ExecutionContextImpl(this.scope, {\n parent: this,\n input: parsedInput,\n execName,\n flowName: flow.name\n })\n\n for (const tagged of execTags ?? []) {\n childCtx.data.set(tagged.key, tagged.value)\n }\n\n for (const tagged of flow.tags ?? []) {\n if (!childCtx.data.has(tagged.key)) {\n childCtx.data.set(tagged.key, tagged.value)\n }\n }\n\n try {\n const result = presetValue !== undefined && typeof presetValue === 'function'\n ? await childCtx.execPresetFn(flow, presetValue as (ctx: Lite.ExecutionContext) => unknown)\n : await childCtx.execFlowInternal(flow)\n await childCtx.close({ ok: true })\n return result\n } catch (error) {\n await childCtx.close({ ok: false, error })\n throw error\n }\n } else {\n const childCtx = new ExecutionContextImpl(this.scope, {\n parent: this,\n execName: options.name,\n flowName: options.fn.name || undefined,\n input: options.params\n })\n\n try {\n const result = await childCtx.execFnInternal(options)\n await childCtx.close({ ok: true })\n return result\n } catch (error) {\n await childCtx.close({ ok: false, error })\n throw error\n }\n }\n }\n\n private async execFlowInternal(flow: Lite.Flow<unknown, unknown>): Promise<unknown> {\n const resolvedDeps = await this.scope.resolveDeps(flow.deps, this)\n\n const factory = flow.factory as unknown as (\n ctx: Lite.ExecutionContext,\n deps?: Record<string, unknown>\n ) => MaybePromise<unknown>\n\n const doExec = async (): Promise<unknown> => {\n if (flow.deps && Object.keys(flow.deps).length > 0) {\n return factory(this, resolvedDeps)\n } else {\n return factory(this)\n }\n }\n\n return this.applyExecExtensions(flow, doExec)\n }\n\n private async execFnInternal(options: Lite.ExecFnOptions<unknown>): Promise<unknown> {\n const { fn, params } = options\n const doExec = () => Promise.resolve(fn(this, ...params))\n return this.applyExecExtensions(fn, doExec)\n }\n\n async execPresetFn(\n flow: Lite.Flow<unknown, unknown>,\n fn: (ctx: Lite.ExecutionContext) => MaybePromise<unknown>\n ): Promise<unknown> {\n const doExec = () => Promise.resolve(fn(this))\n return this.applyExecExtensions(flow, doExec)\n }\n\n private async applyExecExtensions(\n target: Lite.Flow<unknown, unknown> | ((ctx: Lite.ExecutionContext, ...args: unknown[]) => MaybePromise<unknown>),\n doExec: () => Promise<unknown>\n ): Promise<unknown> {\n let next = doExec\n\n for (let i = this.scope.extensions.length - 1; i >= 0; i--) {\n const ext = this.scope.extensions[i]\n if (ext?.wrapExec) {\n const currentNext = next\n next = ext.wrapExec.bind(ext, currentNext, target, this) as () => Promise<unknown>\n }\n }\n\n return next()\n }\n\n onClose(fn: (result: Lite.CloseResult) => MaybePromise<void>): void {\n this.cleanups.push(fn)\n }\n\n async close(result: Lite.CloseResult = { ok: true }): Promise<void> {\n if (this.closed) return\n\n this.closed = true\n\n for (let i = this.cleanups.length - 1; i >= 0; i--) {\n const cleanup = this.cleanups[i]\n if (cleanup) await cleanup(result)\n }\n }\n}\n\n/**\n * Creates a DI container that manages Atom resolution, caching, and lifecycle.\n *\n * The scope is returned synchronously, with a `ready` promise that resolves\n * when all extensions have been initialized. Resolution methods automatically\n * wait for `ready` before proceeding.\n *\n * @param options - Optional configuration for extensions, presets, and tags\n * @returns A Scope instance with a `ready` promise for extension initialization\n *\n * @example\n * ```typescript\n * const scope = createScope({\n * extensions: [loggingExtension],\n * presets: [preset(dbAtom, testDb)]\n * })\n *\n * // Option 1: resolve() waits for ready internally\n * const db = await scope.resolve(dbAtom)\n *\n * // Option 2: explicit wait\n * await scope.ready\n * const db = await scope.resolve(dbAtom)\n * ```\n */\nexport function createScope(options?: Lite.ScopeOptions): Lite.Scope {\n return new ScopeImpl(options)\n}\n","export type { Lite, AtomState } from \"./types\"\nexport {\n atomSymbol,\n flowSymbol,\n tagSymbol,\n taggedSymbol,\n controllerDepSymbol,\n presetSymbol,\n controllerSymbol,\n tagExecutorSymbol,\n typedSymbol,\n resourceSymbol,\n} from \"./symbols\"\nexport { tag, tags, isTag, isTagged, isTagExecutor, getAllTags } from \"./tag\"\nexport { atom, isAtom, controller, isControllerDep } from \"./atom\"\nexport { flow, isFlow, typed } from \"./flow\"\nexport { preset, isPreset } from \"./preset\"\nexport { resource, isResource } from \"./resource\"\nexport { service } from \"./service\"\nexport { createScope } from \"./scope\"\nexport { ParseError } from \"./errors\"\n\nexport const VERSION = \"0.0.1\"\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["atomSymbol: unique symbol","flowSymbol: unique symbol","tagSymbol: unique symbol","taggedSymbol: unique symbol","controllerDepSymbol: unique symbol","presetSymbol: unique symbol","controllerSymbol: unique symbol","tagExecutorSymbol: unique symbol","typedSymbol: unique symbol","resourceSymbol: unique symbol","phase: \"tag\" | \"flow-input\"","label: string","cause: unknown","tagRegistry: WeakRef<Lite.Tag<unknown, boolean>>[]","live: Lite.Tag<unknown, boolean>[]","liveRefs: WeakRef<Lite.Tag<unknown, boolean>>[]","tag","tags","atom","live: Lite.Atom<unknown>[]","liveRefs: WeakRef<Lite.Atom<unknown>>[]","tagInstance: Lite.Tag<T, boolean>","result: T[]","atomInstance: Lite.Atom<T>","resource","parentData?: Lite.ContextData","tag","ctrl: Lite.Controller<T>","selector: (value: T) => S","eq: (prev: S, next: S) => boolean","atom: Lite.Atom<T>","scope: ScopeImpl","atom","ctx: Lite.ResolveContext","event: Lite.ResolveEvent","result: Record<string, unknown>","results: T[]","current: Lite.ExecutionContext | undefined","flow","parsedInput: unknown"],"sources":["../src/symbols.ts","../src/errors.ts","../src/tag.ts","../src/atom.ts","../src/flow.ts","../src/preset.ts","../src/resource.ts","../src/service.ts","../src/scope.ts","../src/index.ts"],"sourcesContent":["export const atomSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/atom\")\nexport const flowSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/flow\")\nexport const tagSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/tag\")\nexport const taggedSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/tagged\")\nexport const controllerDepSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/controller-dep\")\nexport const presetSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/preset\")\nexport const controllerSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/controller\")\nexport const tagExecutorSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/tag-executor\")\nexport const typedSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/typed\")\nexport const resourceSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/resource\")\n","export class ParseError extends Error {\n override readonly name = \"ParseError\"\n\n constructor(\n message: string,\n readonly phase: \"tag\" | \"flow-input\",\n readonly label: string,\n override readonly cause: unknown\n ) {\n super(message)\n }\n}\n","import { tagSymbol, taggedSymbol, tagExecutorSymbol } from \"./symbols\"\nimport { ParseError } from \"./errors\"\nimport type { Lite } from \"./types\"\n\nexport interface TagOptions<T, HasDefault extends boolean> {\n label: string\n default?: HasDefault extends true ? T : never\n parse?: (raw: unknown) => T\n}\n\nconst registry = new WeakMap<Lite.Tag<unknown, boolean>, WeakRef<Lite.Atom<unknown>>[]>()\nconst tagRegistry: WeakRef<Lite.Tag<unknown, boolean>>[] = []\n\n/**\n * Returns all tags that have been created.\n *\n * Uses WeakRef internally so tags can be garbage collected when no longer referenced.\n * Stale references are cleaned up lazily on each call (not between calls).\n *\n * @returns Array of all live Tag instances. Returns `Tag<unknown, boolean>[]` because\n * the registry cannot preserve individual tag type parameters at runtime.\n *\n * Performance: O(n) where n = total tags created. For typical usage (< 100 tags),\n * this is negligible. Cleanup happens during query, not continuously.\n *\n * @example\n * ```typescript\n * const allTags = getAllTags()\n * for (const t of allTags) {\n * console.log(t.label, t.atoms().length)\n * }\n * ```\n */\nexport function getAllTags(): Lite.Tag<unknown, boolean>[] {\n const live: Lite.Tag<unknown, boolean>[] = []\n const liveRefs: WeakRef<Lite.Tag<unknown, boolean>>[] = []\n\n for (const ref of tagRegistry) {\n const tag = ref.deref()\n if (tag) {\n live.push(tag)\n liveRefs.push(ref)\n }\n }\n\n tagRegistry.length = 0\n tagRegistry.push(...liveRefs)\n\n return live\n}\n\nexport function registerAtomToTags(\n atom: Lite.Atom<unknown>,\n tags: Lite.Tagged<any>[]\n): void {\n for (const tagged of tags) {\n let refs = registry.get(tagged.tag)\n if (!refs) {\n refs = []\n registry.set(tagged.tag, refs)\n }\n refs.push(new WeakRef(atom))\n }\n}\n\nfunction getAtomsForTag(tag: Lite.Tag<unknown, boolean>): Lite.Atom<unknown>[] {\n const refs = registry.get(tag)\n if (!refs) return []\n\n const live: Lite.Atom<unknown>[] = []\n const liveRefs: WeakRef<Lite.Atom<unknown>>[] = []\n\n for (const ref of refs) {\n const atom = ref.deref()\n if (atom) {\n live.push(atom)\n liveRefs.push(ref)\n }\n }\n\n if (liveRefs.length > 0) {\n registry.set(tag, liveRefs)\n } else {\n registry.delete(tag)\n }\n\n return live\n}\n\n/**\n * Creates a metadata tag for attaching and retrieving typed values from Atoms and Flows.\n *\n * @param options - Configuration object with label and optional default value\n * @returns A Tag instance that can create tagged values and query them from sources\n *\n * @example\n * ```typescript\n * const nameTag = tag<string>({ label: \"name\" })\n * const myAtom = atom({\n * factory: (ctx) => \"value\",\n * tags: [nameTag(\"MyAtom\")]\n * })\n * ```\n */\nexport function tag<T>(options: { label: string }): Lite.Tag<T, false>\nexport function tag<T>(options: {\n label: string\n default: T\n}): Lite.Tag<T, true>\nexport function tag<T>(options: {\n label: string\n parse: (raw: unknown) => T\n}): Lite.Tag<T, false>\nexport function tag<T>(options: {\n label: string\n parse: (raw: unknown) => T\n default: T\n}): Lite.Tag<T, true>\nexport function tag<T>(options: TagOptions<T, boolean>): Lite.Tag<T, boolean> {\n const key = Symbol.for(`@pumped-fn/lite/tag/${options.label}`)\n const hasDefault = \"default\" in options\n const defaultValue = hasDefault ? options.default : undefined\n const parse = options.parse\n\n let tagInstance: Lite.Tag<T, boolean>\n\n function createTagged(value: T): Lite.Tagged<T> {\n let validatedValue = value\n if (parse) {\n try {\n validatedValue = parse(value)\n } catch (err) {\n throw new ParseError(\n `Failed to parse tag \"${options.label}\"`,\n \"tag\",\n options.label,\n err\n )\n }\n }\n return {\n [taggedSymbol]: true,\n key,\n value: validatedValue,\n tag: tagInstance,\n }\n }\n\n function get(source: Lite.TagSource): T {\n const tags = Array.isArray(source) ? source : source.tags ?? []\n for (let i = 0; i < tags.length; i++) {\n if (tags[i]!.key === key) return tags[i]!.value as unknown as T\n }\n if (hasDefault) return defaultValue as unknown as T\n throw new Error(`Tag \"${options.label}\" not found and has no default`)\n }\n\n function find(source: Lite.TagSource): T | undefined {\n const tags = Array.isArray(source) ? source : source.tags ?? []\n for (let i = 0; i < tags.length; i++) {\n if (tags[i]!.key === key) return tags[i]!.value as unknown as T\n }\n if (hasDefault) return defaultValue as unknown as T\n return undefined\n }\n\n function collect(source: Lite.TagSource): T[] {\n const tags = Array.isArray(source) ? source : source.tags ?? []\n const result: T[] = []\n for (let i = 0; i < tags.length; i++) {\n if (tags[i]!.key === key) result.push(tags[i]!.value as unknown as T)\n }\n return result\n }\n\n /**\n * Returns all atoms that have been created with this tag.\n *\n * Uses WeakRef internally so atoms can be garbage collected when no longer referenced.\n * Stale references are cleaned up lazily on each call.\n *\n * @returns Array of atoms using this tag. Returns `Atom<unknown>[]` because multiple\n * atom types with different return types can use the same tag - TypeScript cannot\n * track this runtime relationship.\n *\n * Performance: O(n) where n = atoms using this tag. Cleanup happens during query.\n */\n function atoms(): Lite.Atom<unknown>[] {\n return getAtomsForTag(tagInstance as Lite.Tag<unknown, boolean>)\n }\n\n tagInstance = Object.assign(createTagged, {\n [tagSymbol]: true as const,\n key,\n label: options.label,\n hasDefault,\n defaultValue,\n parse,\n get,\n find,\n collect,\n atoms,\n }) as unknown as Lite.Tag<T, boolean>\n\n tagRegistry.push(new WeakRef(tagInstance as Lite.Tag<unknown, boolean>))\n\n return tagInstance\n}\n\n/**\n * Type guard to check if a value is a Tag.\n *\n * @param value - The value to check\n * @returns True if the value is a Tag, false otherwise\n *\n * @example\n * ```typescript\n * if (isTag(value)) {\n * const tagged = value(\"myValue\")\n * }\n * ```\n */\nexport function isTag(value: unknown): value is Lite.Tag<unknown, boolean> {\n return (\n typeof value === \"function\" &&\n (value as unknown as Record<symbol, unknown>)[tagSymbol] === true\n )\n}\n\n/**\n * Type guard to check if a value is a Tagged value.\n *\n * @param value - The value to check\n * @returns True if the value is a Tagged value, false otherwise\n *\n * @example\n * ```typescript\n * if (isTagged(value)) {\n * console.log(value.key, value.value)\n * }\n * ```\n */\nexport function isTagged(value: unknown): value is Lite.Tagged<unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as Record<symbol, unknown>)[taggedSymbol] === true\n )\n}\n\n/**\n * Tag execution helpers for declaring how tags should be resolved from dependency sources.\n */\nexport const tags = {\n /**\n * Creates a required tag executor that throws if the tag is not found.\n *\n * @param tag - The tag to execute\n * @returns A tag executor that requires the tag to be present\n *\n * @example\n * ```typescript\n * const myAtom = atom({\n * deps: { name: tags.required(nameTag) },\n * factory: (ctx, { name }) => `Hello ${name}`\n * })\n * ```\n */\n required<T>(tag: Lite.Tag<T, boolean>): Lite.TagExecutor<T, T> {\n return { [tagExecutorSymbol]: true, tag, mode: \"required\" }\n },\n\n /**\n * Creates an optional tag executor that returns undefined if the tag is not found.\n *\n * @param tag - The tag to execute\n * @returns A tag executor that allows the tag to be absent\n *\n * @example\n * ```typescript\n * const myAtom = atom({\n * deps: { name: tags.optional(nameTag) },\n * factory: (ctx, { name }) => name ?? \"Anonymous\"\n * })\n * ```\n */\n optional<T>(tag: Lite.Tag<T, boolean>): Lite.TagExecutor<T | undefined, T> {\n return { [tagExecutorSymbol]: true, tag, mode: \"optional\" }\n },\n\n /**\n * Creates a tag executor that collects all values for the given tag.\n *\n * @param tag - The tag to execute\n * @returns A tag executor that returns an array of all matching tag values\n *\n * @example\n * ```typescript\n * const myAtom = atom({\n * deps: { names: tags.all(nameTag) },\n * factory: (ctx, { names }) => names.join(\", \")\n * })\n * ```\n */\n all<T>(tag: Lite.Tag<T, boolean>): Lite.TagExecutor<T[], T> {\n return { [tagExecutorSymbol]: true, tag, mode: \"all\" }\n },\n}\n\n/**\n * Type guard to check if a value is a TagExecutor.\n *\n * @param value - The value to check\n * @returns True if the value is a TagExecutor, false otherwise\n *\n * @example\n * ```typescript\n * if (isTagExecutor(value)) {\n * console.log(value.mode, value.tag)\n * }\n * ```\n */\nexport function isTagExecutor(value: unknown): value is Lite.TagExecutor<unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n tagExecutorSymbol in value\n )\n}\n","import { atomSymbol, controllerDepSymbol } from \"./symbols\"\nimport { registerAtomToTags } from \"./tag\"\nimport type { Lite, MaybePromise } from \"./types\"\n\nexport interface AtomConfig<T, D extends Record<string, Lite.Dependency>> {\n deps?: D\n factory: Lite.AtomFactory<T, D>\n tags?: Lite.Tagged<any>[]\n keepAlive?: boolean\n}\n\n/**\n * Creates a long-lived dependency that can be resolved and reused within a scope.\n *\n * @param config - Configuration object containing factory function, optional dependencies, and tags\n * @returns An Atom instance that can be resolved to produce a value of type T\n *\n * @example\n * ```typescript\n * const dbAtom = atom({\n * factory: async (ctx) => createDatabase()\n * })\n * ```\n */\nexport function atom<T>(config: {\n deps?: undefined\n factory: (ctx: Lite.ResolveContext) => MaybePromise<T>\n tags?: Lite.Tagged<any>[]\n keepAlive?: boolean\n}): Lite.Atom<T>\n\nexport function atom<\n T,\n const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | { mode: string }>,\n>(config: {\n deps: D\n factory: (ctx: Lite.ResolveContext, deps: Lite.InferDeps<D>) => MaybePromise<T>\n tags?: Lite.Tagged<any>[]\n keepAlive?: boolean\n}): Lite.Atom<T>\n\nexport function atom<T, D extends Record<string, Lite.Dependency>>(\n config: AtomConfig<T, D>\n): Lite.Atom<T> {\n const atomInstance: Lite.Atom<T> = {\n [atomSymbol]: true,\n factory: config.factory as unknown as Lite.AtomFactory<T, Record<string, Lite.Dependency>>,\n deps: config.deps as unknown as Record<string, Lite.Dependency> | undefined,\n tags: config.tags,\n keepAlive: config.keepAlive,\n }\n\n if (config.tags?.length) {\n registerAtomToTags(atomInstance, config.tags)\n }\n\n return atomInstance\n}\n\n/**\n * Type guard to check if a value is an Atom.\n *\n * @param value - The value to check\n * @returns True if the value is an Atom, false otherwise\n *\n * @example\n * ```typescript\n * if (isAtom(value)) {\n * await scope.resolve(value)\n * }\n * ```\n */\nexport function isAtom(value: unknown): value is Lite.Atom<unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as Record<symbol, unknown>)[atomSymbol] === true\n )\n}\n\n/**\n * Wraps an Atom to receive a Controller instead of the resolved value.\n * The Controller provides full lifecycle control: get, resolve, release, invalidate, and subscribe.\n *\n * @param atom - The Atom to wrap\n * @param options - Optional configuration:\n * - `resolve: true` — auto-resolves the dep before the parent factory runs; `config.get()` is safe.\n * - `watch: true` — atom deps only; requires `resolve: true`; automatically re-runs the parent factory\n * when the dep resolves to a new value (value-equality gated via `Object.is` by default). Replaces\n * manual `ctx.cleanup(ctx.scope.on('resolved', dep, () => ctx.invalidate()))` wiring. Watch\n * listeners are auto-cleaned on re-resolve, release, and dispose.\n * - `eq` — custom equality function `(a: T, b: T) => boolean`; only used with `watch: true`.\n * @returns A ControllerDep that resolves to a Controller for the Atom\n *\n * @example\n * ```typescript\n * // resolve only\n * const serverAtom = atom({\n * deps: { config: controller(configAtom, { resolve: true }) },\n * factory: (_, { config }) => createServer(config.get().port),\n * })\n *\n * // watch: re-runs parent when dep value changes\n * const profileAtom = atom({\n * deps: { token: controller(tokenAtom, { resolve: true, watch: true }) },\n * factory: (_, { token }) => ({ id: `user-${token.get().jwt}` }),\n * })\n *\n * // watch with custom equality\n * const derivedAtom = atom({\n * deps: { src: controller(srcAtom, { resolve: true, watch: true, eq: (a, b) => a.id === b.id }) },\n * factory: (_, { src }) => src.get().name,\n * })\n * ```\n */\nexport function controller<T>(\n atom: Lite.Atom<T>,\n options?: Lite.ControllerDepOptions<T>\n): Lite.ControllerDep<T> {\n return {\n [controllerDepSymbol]: true,\n atom,\n resolve: options?.resolve,\n watch: options?.watch,\n eq: options?.eq,\n }\n}\n\n/**\n * Type guard to check if a value is a ControllerDep wrapper.\n *\n * @param value - The value to check\n * @returns True if the value is a ControllerDep wrapper, false otherwise\n *\n * @example\n * ```typescript\n * if (isControllerDep(dep)) {\n * const ctrl = scope.controller(dep.atom)\n * }\n * ```\n */\nexport function isControllerDep(value: unknown): value is Lite.ControllerDep<unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as Record<symbol, unknown>)[controllerDepSymbol] === true\n )\n}\n","import { flowSymbol, typedSymbol } from \"./symbols\"\nimport type { Lite, MaybePromise } from \"./types\"\n\n/**\n * Type marker for flow input without runtime parsing.\n * Use this when you want typed input but don't need validation.\n *\n * @example\n * ```typescript\n * const myFlow = flow({\n * parse: typed<{ name: string }>(),\n * factory: (ctx) => {\n * return ctx.input.name.toUpperCase()\n * }\n * })\n * ```\n */\nexport function typed<T>(): Lite.Typed<T> {\n return { [typedSymbol]: true }\n}\n\nexport interface FlowConfig<\n Output,\n Input,\n D extends Record<string, Lite.Dependency>,\n> {\n name?: string\n parse?: ((raw: unknown) => MaybePromise<Input>) | Lite.Typed<Input>\n deps?: D\n factory: Lite.FlowFactory<Output, Input, D>\n tags?: Lite.Tagged<any>[]\n}\n\n/**\n * Creates a short-lived execution unit that processes input and produces output.\n *\n * @param config - Configuration object containing factory function, optional dependencies, and tags\n * @returns A Flow instance that can be executed within an execution context\n *\n * @example\n * ```typescript\n * const processUser = flow({\n * factory: async (ctx) => {\n * const userId = ctx.input\n * return await fetchUser(userId)\n * }\n * })\n * ```\n */\nexport function flow<TOutput>(config: {\n name?: string\n parse?: undefined\n deps?: undefined\n factory: (ctx: Lite.ExecutionContext) => MaybePromise<TOutput>\n tags?: Lite.Tagged<any>[]\n}): Lite.Flow<TOutput, void>\n\nexport function flow<TOutput, TInput>(config: {\n name?: string\n parse: (raw: unknown) => MaybePromise<TInput>\n deps?: undefined\n factory: (ctx: Lite.ExecutionContext & { readonly input: NoInfer<TInput> }) => MaybePromise<TOutput>\n tags?: Lite.Tagged<any>[]\n}): Lite.Flow<TOutput, TInput>\n\nexport function flow<TOutput, TInput>(config: {\n name?: string\n parse: Lite.Typed<TInput>\n deps?: undefined\n factory: (ctx: Lite.ExecutionContext & { readonly input: NoInfer<TInput> }) => MaybePromise<TOutput>\n tags?: Lite.Tagged<any>[]\n}): Lite.Flow<TOutput, TInput>\n\nexport function flow<\n TOutput,\n const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | Lite.Resource<unknown, Record<string, Lite.Dependency>> | { mode: string }>,\n>(config: {\n name?: string\n parse?: undefined\n deps: D\n factory: (ctx: Lite.ExecutionContext, deps: Lite.InferDeps<D>) => MaybePromise<TOutput>\n tags?: Lite.Tagged<any>[]\n}): Lite.Flow<TOutput, void>\n\nexport function flow<\n TOutput,\n TInput,\n const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | Lite.Resource<unknown, Record<string, Lite.Dependency>> | { mode: string }>,\n>(config: {\n name?: string\n parse: (raw: unknown) => MaybePromise<TInput>\n deps: D\n factory: (ctx: Lite.ExecutionContext & { readonly input: NoInfer<TInput> }, deps: Lite.InferDeps<D>) => MaybePromise<TOutput>\n tags?: Lite.Tagged<any>[]\n}): Lite.Flow<TOutput, TInput>\n\nexport function flow<\n TOutput,\n TInput,\n const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | Lite.Resource<unknown, Record<string, Lite.Dependency>> | { mode: string }>,\n>(config: {\n name?: string\n parse: Lite.Typed<TInput>\n deps: D\n factory: (ctx: Lite.ExecutionContext & { readonly input: NoInfer<TInput> }, deps: Lite.InferDeps<D>) => MaybePromise<TOutput>\n tags?: Lite.Tagged<any>[]\n}): Lite.Flow<TOutput, TInput>\n\nexport function flow<\n TOutput,\n TInput,\n D extends Record<string, Lite.Dependency>,\n>(config: FlowConfig<TOutput, TInput, D>): Lite.Flow<TOutput, TInput> {\n const parse = config.parse\n const isTypedMarker =\n typeof parse === \"object\" && parse !== null && typedSymbol in parse\n\n return {\n [flowSymbol]: true,\n name: config.name,\n parse: isTypedMarker\n ? undefined\n : (parse as ((raw: unknown) => MaybePromise<TInput>) | undefined),\n factory: config.factory as unknown as Lite.FlowFactory<\n TOutput,\n TInput,\n Record<string, Lite.Dependency>\n >,\n deps: config.deps as unknown as Record<string, Lite.Dependency> | undefined,\n tags: config.tags,\n }\n}\n\n/**\n * Type guard to check if a value is a Flow.\n *\n * @param value - The value to check\n * @returns True if the value is a Flow, false otherwise\n *\n * @example\n * ```typescript\n * if (isFlow(value)) {\n * await ctx.exec({ flow: value, input: data })\n * }\n * ```\n */\nexport function isFlow(value: unknown): value is Lite.Flow<unknown, unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as Record<symbol, unknown>)[flowSymbol] === true\n )\n}\n","import { presetSymbol } from \"./symbols\"\nimport type { Lite, MaybePromise } from \"./types\"\nimport { isAtom } from \"./atom\"\nimport { isFlow } from \"./flow\"\n\n/**\n * Creates a preset that overrides an Atom's factory within a scope.\n *\n * @param target - The Atom to preset\n * @param value - The preset value (can be a direct value or another Atom)\n * @returns A Preset instance to be used in scope configuration\n *\n * @example\n * ```typescript\n * const scope = createScope({\n * presets: [preset(dbAtom, mockDatabase)]\n * })\n * ```\n */\nexport function preset<T>(\n target: Lite.Atom<T>,\n value: T | Lite.Atom<T>\n): Lite.Preset<T>\n\n/**\n * Creates a preset that overrides a Flow's execution within a scope.\n *\n * @param target - The Flow to preset\n * @param value - The replacement (another Flow or a function that receives ctx with parsed input)\n * @returns A Preset instance to be used in scope configuration\n *\n * @example\n * ```typescript\n * // Replace with another flow\n * const scope = createScope({\n * presets: [preset(processFlow, mockProcessFlow)]\n * })\n *\n * // Replace with a function (deps are NOT resolved)\n * const scope = createScope({\n * presets: [preset(processFlow, (ctx) => ({ result: ctx.input }))]\n * })\n * ```\n */\nexport function preset<TOutput, TInput>(\n target: Lite.Flow<TOutput, TInput>,\n value: Lite.Flow<TOutput, TInput> | ((ctx: Lite.ExecutionContext & { readonly input: TInput }) => MaybePromise<TOutput>)\n): Lite.Preset<TOutput, TInput>\n\nexport function preset<T, I>(\n target: Lite.PresetTarget<T, I>,\n value: Lite.PresetValue<T, I>\n): Lite.Preset<T, I> {\n if (!isAtom(target) && !isFlow(target)) {\n throw new Error(\"preset target must be Atom or Flow\")\n }\n if (target === value) {\n throw new Error(\"preset cannot reference itself\")\n }\n return {\n [presetSymbol]: true,\n target,\n value,\n }\n}\n\n/**\n * Type guard to check if a value is a Preset.\n *\n * @param value - The value to check\n * @returns True if the value is a Preset, false otherwise\n *\n * @example\n * ```typescript\n * if (isPreset(value)) {\n * console.log(value.target, value.value)\n * }\n * ```\n */\nexport function isPreset(value: unknown): value is Lite.Preset<unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as Record<symbol, unknown>)[presetSymbol] === true\n )\n}\n","import { resourceSymbol } from \"./symbols\"\nimport type { Lite, MaybePromise } from \"./types\"\n\n/**\n * Creates an execution-scoped dependency that is resolved per execution chain.\n * Fresh instance on first encounter, seek-up on nested execs within the same chain.\n *\n * @param config - Configuration object containing factory function and optional dependencies\n * @returns A Resource instance that can be declared as a dependency in flows and other resources\n *\n * @example\n * ```typescript\n * const requestLogger = resource({\n * deps: { logService: logServiceAtom },\n * factory: (ctx, { logService }) => {\n * const logger = logService.child({ requestId: ctx.data.get(\"requestId\") })\n * ctx.onClose(() => logger.flush())\n * return logger\n * }\n * })\n * ```\n */\nexport function resource<T>(config: {\n name?: string\n deps?: undefined\n factory: (ctx: Lite.ExecutionContext) => MaybePromise<T>\n}): Lite.Resource<T>\n\nexport function resource<\n T,\n const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | Lite.Resource<unknown, Record<string, Lite.Dependency>> | { mode: string }>,\n>(config: {\n name?: string\n deps: D\n factory: (ctx: Lite.ExecutionContext, deps: Lite.InferDeps<D>) => MaybePromise<T>\n}): Lite.Resource<T>\n\nexport function resource<T, D extends Record<string, Lite.Dependency>>(\n config: {\n name?: string\n deps?: D\n factory: Lite.ResourceFactory<T, D>\n }\n): Lite.Resource<T> {\n return Object.freeze({\n [resourceSymbol]: true,\n name: config.name,\n deps: config.deps as unknown as Record<string, Lite.Dependency> | undefined,\n factory: config.factory as unknown as Lite.ResourceFactory<T, Record<string, Lite.Dependency>>,\n }) as Lite.Resource<T>\n}\n\n/**\n * Type guard to check if a value is a Resource.\n *\n * @param value - The value to check\n * @returns True if the value is a Resource, false otherwise\n *\n * @example\n * ```typescript\n * if (isResource(value)) {\n * // value is Lite.Resource<unknown>\n * }\n * ```\n */\nexport function isResource(value: unknown): value is Lite.Resource<unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as Record<symbol, unknown>)[resourceSymbol] === true\n )\n}\n","import { atomSymbol } from \"./symbols\"\nimport type { Lite, MaybePromise } from \"./types\"\n\n/** Creates an atom with methods constrained to (ctx: ExecutionContext, ...args) => result. */\nexport function service<T extends Lite.ServiceMethods>(config: {\n deps?: undefined\n factory: (ctx: Lite.ResolveContext) => MaybePromise<T>\n tags?: Lite.Tagged<any>[]\n}): Lite.Atom<T>\n\nexport function service<\n T extends Lite.ServiceMethods,\n const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | Lite.TagExecutor<any>>,\n>(config: {\n deps: D\n factory: (ctx: Lite.ResolveContext, deps: Lite.InferDeps<D>) => MaybePromise<T>\n tags?: Lite.Tagged<any>[]\n}): Lite.Atom<T>\n\nexport function service<T extends Lite.ServiceMethods, D extends Record<string, Lite.Dependency>>(config: {\n deps?: D\n factory: Lite.AtomFactory<T, D>\n tags?: Lite.Tagged<any>[]\n}): Lite.Atom<T> {\n return {\n [atomSymbol]: true,\n factory: config.factory as unknown as Lite.AtomFactory<T, Record<string, Lite.Dependency>>,\n deps: config.deps as unknown as Record<string, Lite.Dependency> | undefined,\n tags: config.tags,\n }\n}\n","import { controllerSymbol, tagExecutorSymbol } from \"./symbols\"\nimport type { Lite, MaybePromise, AtomState } from \"./types\"\nimport { isAtom, isControllerDep } from \"./atom\"\nimport { isFlow } from \"./flow\"\nimport { isResource } from \"./resource\"\nimport { ParseError } from \"./errors\"\n\nconst resourceKeys = new WeakMap<Lite.Resource<unknown>, symbol>()\nlet resourceKeyCounter = 0\n\nfunction getResourceKey(resource: Lite.Resource<unknown>): symbol {\n let key = resourceKeys.get(resource)\n if (!key) {\n key = Symbol(`resource:${resource.name ?? resourceKeyCounter++}`)\n resourceKeys.set(resource, key)\n }\n return key\n}\n\nconst inflightResources = new WeakMap<Lite.ContextData, Map<symbol, Promise<unknown>>>()\nconst resolvingResources = new Set<symbol>()\n\ntype ListenerEvent = 'resolving' | 'resolved' | '*'\n\nclass ContextDataImpl implements Lite.ContextData {\n private readonly map = new Map<string | symbol, unknown>()\n\n constructor(\n private readonly parentData?: Lite.ContextData\n ) {}\n\n // Raw Map operations\n get(key: string | symbol): unknown {\n return this.map.get(key)\n }\n\n set(key: string | symbol, value: unknown): void {\n this.map.set(key, value)\n }\n\n has(key: string | symbol): boolean {\n return this.map.has(key)\n }\n\n delete(key: string | symbol): boolean {\n return this.map.delete(key)\n }\n\n clear(): void {\n this.map.clear()\n }\n\n seek(key: string | symbol): unknown {\n if (this.map.has(key)) {\n return this.map.get(key)\n }\n return this.parentData?.seek(key)\n }\n\n // Tag-based operations\n getTag<T>(tag: Lite.Tag<T, boolean>): T | undefined {\n return this.map.get(tag.key) as T | undefined\n }\n\n setTag<T>(tag: Lite.Tag<T, boolean>, value: T): void {\n this.map.set(tag.key, value)\n }\n\n hasTag<T, H extends boolean>(tag: Lite.Tag<T, H>): boolean {\n return this.map.has(tag.key)\n }\n\n deleteTag<T, H extends boolean>(tag: Lite.Tag<T, H>): boolean {\n return this.map.delete(tag.key)\n }\n\n seekTag<T>(tag: Lite.Tag<T, boolean>): T | undefined {\n if (this.map.has(tag.key)) {\n return this.map.get(tag.key) as T\n }\n return this.parentData?.seekTag(tag)\n }\n\n getOrSetTag<T>(tag: Lite.Tag<T, true>): T\n getOrSetTag<T>(tag: Lite.Tag<T, true>, value: T): T\n getOrSetTag<T>(tag: Lite.Tag<T, false>, value: T): T\n getOrSetTag<T>(tag: Lite.Tag<T, boolean>, value?: T): T {\n if (this.map.has(tag.key)) {\n return this.map.get(tag.key) as T\n }\n const storedValue = value !== undefined ? value : (tag.defaultValue as T)\n this.map.set(tag.key, storedValue)\n return storedValue\n }\n}\n\ninterface AtomEntry<T> {\n state: AtomState\n value?: T\n hasValue: boolean\n error?: Error\n cleanups: (() => MaybePromise<void>)[]\n listeners: Map<ListenerEvent, Set<() => void>>\n pendingInvalidate: boolean\n pendingSet?: { value: T } | { fn: (prev: T) => T }\n data?: ContextDataImpl\n dependents: Set<Lite.Atom<unknown>>\n gcScheduled: ReturnType<typeof setTimeout> | null\n}\n\nclass SelectHandleImpl<T, S> implements Lite.SelectHandle<S> {\n private listeners = new Set<() => void>()\n private currentValue: S\n private ctrlUnsub: (() => void) | null = null\n\n constructor(\n private ctrl: Lite.Controller<T>,\n private selector: (value: T) => S,\n private eq: (prev: S, next: S) => boolean\n ) {\n if (ctrl.state !== 'resolved') {\n throw new Error(\"Cannot select from unresolved atom\")\n }\n\n this.currentValue = selector(ctrl.get())\n\n this.ctrlUnsub = ctrl.on('resolved', () => {\n const nextValue = this.selector(this.ctrl.get())\n if (!this.eq(this.currentValue, nextValue)) {\n this.currentValue = nextValue\n this.notifyListeners()\n }\n })\n }\n\n get(): S {\n return this.currentValue\n }\n\n subscribe(listener: () => void): () => void {\n this.listeners.add(listener)\n\n return () => {\n this.listeners.delete(listener)\n if (this.listeners.size === 0) {\n this.cleanup()\n }\n }\n }\n\n private notifyListeners(): void {\n for (const listener of this.listeners) {\n listener()\n }\n }\n\n private cleanup(): void {\n this.ctrlUnsub?.()\n this.ctrlUnsub = null\n this.listeners.clear()\n }\n}\n\nclass ControllerImpl<T> implements Lite.Controller<T> {\n readonly [controllerSymbol] = true\n\n constructor(\n private atom: Lite.Atom<T>,\n private scope: ScopeImpl\n ) {}\n\n get state(): AtomState {\n const entry = this.scope.getEntry(this.atom)\n return entry?.state ?? 'idle'\n }\n\n get(): T {\n const entry = this.scope.getEntry(this.atom)\n if (!entry || entry.state === 'idle') {\n throw new Error(\"Atom not resolved\")\n }\n if (entry.state === 'failed' && entry.error) {\n throw entry.error\n }\n if (entry.state === 'resolving' && entry.hasValue) {\n return entry.value as T\n }\n if (entry.state === 'resolved' && entry.hasValue) {\n return entry.value as T\n }\n throw new Error(\"Atom not resolved\")\n }\n\n async resolve(): Promise<T> {\n return this.scope.resolve(this.atom)\n }\n\n async release(): Promise<void> {\n return this.scope.release(this.atom)\n }\n\n invalidate(): void {\n this.scope.invalidate(this.atom)\n }\n\n set(value: T): void {\n this.scope.scheduleSet(this.atom, value)\n }\n\n update(fn: (prev: T) => T): void {\n this.scope.scheduleUpdate(this.atom, fn)\n }\n\n on(event: ListenerEvent, listener: () => void): () => void {\n return this.scope.addListener(this.atom, event, listener)\n }\n}\n\nclass ScopeImpl implements Lite.Scope {\n private cache = new Map<Lite.Atom<unknown>, AtomEntry<unknown>>()\n private presets = new Map<Lite.Atom<unknown> | Lite.Flow<unknown, unknown>, unknown>()\n private resolving = new Set<Lite.Atom<unknown>>()\n private pending = new Map<Lite.Atom<unknown>, Promise<unknown>>()\n private stateListeners = new Map<AtomState, Map<Lite.Atom<unknown>, Set<() => void>>>()\n private invalidationQueue = new Set<Lite.Atom<unknown>>()\n private invalidationScheduled = false\n private invalidationChain: Set<Lite.Atom<unknown>> | null = null\n private chainPromise: Promise<void> | null = null\n private initialized = false\n private controllers = new Map<Lite.Atom<unknown>, ControllerImpl<unknown>>()\n private gcOptions: Required<Lite.GCOptions>\n readonly extensions: Lite.Extension[]\n readonly tags: Lite.Tagged<any>[]\n readonly ready: Promise<void>\n\n private scheduleInvalidation<T>(atom: Lite.Atom<T>): void {\n const entry = this.cache.get(atom) as AtomEntry<T> | undefined\n if (!entry || entry.state === \"idle\") return\n\n if (entry.state === \"resolving\") {\n entry.pendingInvalidate = true\n return\n }\n\n this.invalidationQueue.add(atom)\n\n if (!this.chainPromise) {\n this.invalidationChain = new Set()\n this.invalidationScheduled = true\n this.chainPromise = new Promise<void>((resolve, reject) => {\n queueMicrotask(() => {\n this.processInvalidationChain().then(resolve).catch(reject)\n })\n })\n }\n }\n\n private async processInvalidationChain(): Promise<void> {\n try {\n while (this.invalidationQueue.size > 0) {\n const atom = this.invalidationQueue.values().next().value as Lite.Atom<unknown>\n this.invalidationQueue.delete(atom)\n\n if (this.invalidationChain!.has(atom)) {\n const chainAtoms = Array.from(this.invalidationChain!)\n chainAtoms.push(atom)\n const path = chainAtoms\n .map(a => a.factory?.name || \"<anonymous>\")\n .join(\" → \")\n throw new Error(`Infinite invalidation loop detected: ${path}`)\n }\n\n this.invalidationChain!.add(atom)\n await this.doInvalidateSequential(atom)\n }\n } finally {\n this.invalidationChain = null\n this.chainPromise = null\n this.invalidationScheduled = false\n }\n }\n\n constructor(options?: Lite.ScopeOptions) {\n this.extensions = options?.extensions ?? []\n this.tags = options?.tags ?? []\n\n for (const p of options?.presets ?? []) {\n this.presets.set(p.target, p.value)\n }\n\n this.gcOptions = {\n enabled: options?.gc?.enabled ?? true,\n graceMs: options?.gc?.graceMs ?? 3000,\n }\n\n this.ready = this.init()\n }\n\n private async init(): Promise<void> {\n for (const ext of this.extensions) {\n if (ext.init) {\n await ext.init(this)\n }\n }\n this.initialized = true\n }\n\n getEntry<T>(atom: Lite.Atom<T>): AtomEntry<T> | undefined {\n return this.cache.get(atom) as AtomEntry<T> | undefined\n }\n\n private getOrCreateEntry<T>(atom: Lite.Atom<T>): AtomEntry<T> {\n let entry = this.cache.get(atom) as AtomEntry<T> | undefined\n if (!entry) {\n entry = {\n state: 'idle',\n hasValue: false,\n cleanups: [],\n listeners: new Map([\n ['resolving', new Set()],\n ['resolved', new Set()],\n ['*', new Set()],\n ]),\n pendingInvalidate: false,\n dependents: new Set(),\n gcScheduled: null,\n }\n this.cache.set(atom, entry as AtomEntry<unknown>)\n }\n return entry\n }\n\n addListener<T>(atom: Lite.Atom<T>, event: ListenerEvent, listener: () => void): () => void {\n this.cancelScheduledGC(atom)\n \n const entry = this.getOrCreateEntry(atom)\n const listeners = entry.listeners.get(event)!\n listeners.add(listener)\n return () => {\n listeners.delete(listener)\n this.maybeScheduleGC(atom)\n }\n }\n\n private getSubscriberCount<T>(atom: Lite.Atom<T>): number {\n const entry = this.cache.get(atom)\n if (!entry) return 0\n let count = 0\n for (const listeners of entry.listeners.values()) {\n count += listeners.size\n }\n return count\n }\n\n private maybeScheduleGC<T>(atom: Lite.Atom<T>): void {\n if (!this.gcOptions.enabled) return\n if (atom.keepAlive) return\n \n const entry = this.cache.get(atom)\n if (!entry) return\n if (entry.state === 'idle') return\n \n const subscriberCount = this.getSubscriberCount(atom)\n if (subscriberCount > 0) return\n if (entry.dependents.size > 0) return\n \n if (entry.gcScheduled) return\n \n entry.gcScheduled = setTimeout(() => {\n this.executeGC(atom)\n }, this.gcOptions.graceMs)\n }\n\n private cancelScheduledGC<T>(atom: Lite.Atom<T>): void {\n const entry = this.cache.get(atom)\n if (entry?.gcScheduled) {\n clearTimeout(entry.gcScheduled)\n entry.gcScheduled = null\n }\n }\n\n private async executeGC<T>(atom: Lite.Atom<T>): Promise<void> {\n const entry = this.cache.get(atom)\n if (!entry) return\n \n entry.gcScheduled = null\n \n if (this.getSubscriberCount(atom) > 0) return\n if (entry.dependents.size > 0) return\n if (atom.keepAlive) return\n \n await this.release(atom)\n \n if (atom.deps) {\n for (const dep of Object.values(atom.deps)) {\n const depAtom = isAtom(dep) ? dep : isControllerDep(dep) ? dep.atom : null\n if (!depAtom) continue\n \n const depEntry = this.cache.get(depAtom)\n if (depEntry) {\n depEntry.dependents.delete(atom)\n this.maybeScheduleGC(depAtom)\n }\n }\n }\n }\n\n private notifyListeners<T>(atom: Lite.Atom<T>, event: 'resolving' | 'resolved'): void {\n const entry = this.cache.get(atom)\n if (!entry) return\n\n const eventListeners = entry.listeners.get(event)\n if (eventListeners) {\n for (const listener of eventListeners) {\n listener()\n }\n }\n\n const allListeners = entry.listeners.get('*')\n if (allListeners) {\n for (const listener of allListeners) {\n listener()\n }\n }\n }\n\n private notifyAllListeners<T>(atom: Lite.Atom<T>): void {\n const entry = this.cache.get(atom)\n if (!entry) return\n\n const allListeners = entry.listeners.get('*')\n if (allListeners) {\n for (const listener of allListeners) {\n listener()\n }\n }\n }\n\n private emitStateChange(state: AtomState, atom: Lite.Atom<unknown>): void {\n const stateMap = this.stateListeners.get(state)\n if (stateMap) {\n const listeners = stateMap.get(atom)\n if (listeners) {\n for (const listener of listeners) {\n listener()\n }\n }\n }\n }\n\n on(event: AtomState, atom: Lite.Atom<unknown>, listener: () => void): () => void {\n let stateMap = this.stateListeners.get(event)\n if (!stateMap) {\n stateMap = new Map()\n this.stateListeners.set(event, stateMap)\n }\n let listeners = stateMap.get(atom)\n if (!listeners) {\n listeners = new Set()\n stateMap.set(atom, listeners)\n }\n listeners.add(listener)\n\n const capturedStateMap = stateMap\n const capturedListeners = listeners\n\n return () => {\n capturedListeners.delete(listener)\n if (capturedListeners.size === 0) {\n capturedStateMap.delete(atom)\n if (capturedStateMap.size === 0) {\n this.stateListeners.delete(event)\n }\n }\n }\n }\n\n async resolve<T>(atom: Lite.Atom<T>): Promise<T> {\n if (!this.initialized) {\n await this.ready\n }\n\n const entry = this.cache.get(atom) as AtomEntry<T> | undefined\n if (entry?.state === 'resolved') {\n return entry.value as T\n }\n\n const pendingPromise = this.pending.get(atom)\n if (pendingPromise) {\n return pendingPromise as Promise<T>\n }\n\n if (this.resolving.has(atom)) {\n throw new Error(\"Circular dependency detected\")\n }\n\n const presetValue = this.presets.get(atom)\n if (presetValue !== undefined) {\n if (isAtom(presetValue)) {\n return this.resolve(presetValue as Lite.Atom<T>)\n }\n const newEntry = this.getOrCreateEntry(atom)\n newEntry.state = 'resolved'\n newEntry.value = presetValue as T\n newEntry.hasValue = true\n this.emitStateChange('resolved', atom)\n this.notifyListeners(atom, 'resolved')\n return newEntry.value\n }\n\n this.resolving.add(atom)\n\n const promise = this.doResolve(atom)\n this.pending.set(atom, promise as Promise<unknown>)\n\n try {\n return await promise\n } finally {\n this.resolving.delete(atom)\n this.pending.delete(atom)\n }\n }\n\n private async doResolve<T>(atom: Lite.Atom<T>): Promise<T> {\n const entry = this.getOrCreateEntry(atom)\n\n const wasResolving = entry.state === 'resolving'\n if (!wasResolving) {\n for (let i = entry.cleanups.length - 1; i >= 0; i--) {\n await entry.cleanups[i]?.()\n }\n entry.cleanups = []\n entry.state = 'resolving'\n this.emitStateChange('resolving', atom)\n this.notifyListeners(atom, 'resolving')\n }\n\n const resolvedDeps = await this.resolveDeps(atom.deps, undefined, atom)\n\n const ctx: Lite.ResolveContext = {\n cleanup: (fn) => entry.cleanups.push(fn),\n invalidate: () => {\n this.scheduleInvalidation(atom)\n },\n scope: this,\n get data() {\n if (!entry.data) {\n entry.data = new ContextDataImpl()\n }\n return entry.data\n },\n }\n\n const factory = atom.factory as (\n ctx: Lite.ResolveContext,\n deps?: Record<string, unknown>\n ) => MaybePromise<T>\n\n const doResolve = async () => {\n if (atom.deps && Object.keys(atom.deps).length > 0) {\n return factory(ctx, resolvedDeps)\n } else {\n return factory(ctx)\n }\n }\n\n try {\n const event: Lite.ResolveEvent = { kind: \"atom\", target: atom as Lite.Atom<unknown>, scope: this }\n const value = await this.applyResolveExtensions(event, doResolve)\n entry.state = 'resolved'\n entry.value = value\n entry.hasValue = true\n entry.error = undefined\n this.emitStateChange('resolved', atom)\n this.notifyListeners(atom, 'resolved')\n\n if (entry.pendingInvalidate) {\n entry.pendingInvalidate = false\n this.invalidationChain?.delete(atom)\n this.scheduleInvalidation(atom)\n } else if (entry.pendingSet) {\n this.invalidationChain?.delete(atom)\n this.scheduleInvalidation(atom)\n }\n\n return value\n } catch (err) {\n entry.state = 'failed'\n entry.error = err instanceof Error ? err : new Error(String(err))\n entry.value = undefined\n entry.hasValue = false\n this.emitStateChange('failed', atom)\n this.notifyAllListeners(atom)\n\n if (entry.pendingInvalidate) {\n entry.pendingInvalidate = false\n this.invalidationChain?.delete(atom)\n this.scheduleInvalidation(atom)\n }\n\n throw entry.error\n }\n }\n\n private async applyResolveExtensions<T>(\n event: Lite.ResolveEvent,\n doResolve: () => Promise<T>\n ): Promise<T> {\n let next = doResolve\n\n for (let i = this.extensions.length - 1; i >= 0; i--) {\n const ext = this.extensions[i]\n if (ext?.wrapResolve) {\n const currentNext = next\n next = ext.wrapResolve.bind(ext, currentNext, event) as () => Promise<T>\n }\n }\n\n return next()\n }\n\n async resolveDeps(\n deps: Record<string, Lite.Dependency> | undefined,\n ctx?: Lite.ExecutionContext,\n dependentAtom?: Lite.Atom<unknown>\n ): Promise<Record<string, unknown>> {\n if (!deps) return {}\n\n const result: Record<string, unknown> = {}\n\n for (const [key, dep] of Object.entries(deps)) {\n if (isAtom(dep)) {\n result[key] = await this.resolve(dep)\n if (dependentAtom) {\n const depEntry = this.getEntry(dep)\n if (depEntry) {\n depEntry.dependents.add(dependentAtom)\n }\n }\n } else if (isControllerDep(dep)) {\n if (dep.watch) {\n if (!dependentAtom) throw new Error(\"controller({ watch: true }) is only supported in atom dependencies\")\n if (!dep.resolve) throw new Error(\"controller({ watch: true }) requires resolve: true\")\n }\n const ctrl = this.controller(dep.atom)\n if (dep.resolve) {\n await ctrl.resolve()\n }\n result[key] = ctrl\n if (dependentAtom) {\n const depEntry = this.getEntry(dep.atom)\n if (depEntry) {\n depEntry.dependents.add(dependentAtom)\n }\n }\n if (dep.watch) {\n const eq = dep.eq ?? Object.is\n let prev = ctrl.get() as unknown\n const unsub = this.on(\"resolved\", dep.atom, () => {\n const next = ctrl.get() as unknown\n if (!eq(prev, next)) {\n prev = next\n this.scheduleInvalidation(dependentAtom!)\n }\n })\n const depEntry = this.getEntry(dependentAtom!)\n if (depEntry) depEntry.cleanups.push(unsub)\n else unsub()\n }\n } else if (tagExecutorSymbol in (dep as object)) {\n const tagExecutor = dep as Lite.TagExecutor<unknown, boolean>\n\n switch (tagExecutor.mode) {\n case \"required\": {\n const value = ctx\n ? ctx.data.seekTag(tagExecutor.tag)\n : tagExecutor.tag.find(this.tags)\n if (value !== undefined) {\n result[key] = value\n } else if (tagExecutor.tag.hasDefault) {\n result[key] = tagExecutor.tag.defaultValue\n } else {\n throw new Error(`Tag \"${tagExecutor.tag.label}\" not found`)\n }\n break\n }\n case \"optional\": {\n const value = ctx\n ? ctx.data.seekTag(tagExecutor.tag)\n : tagExecutor.tag.find(this.tags)\n result[key] = value ?? tagExecutor.tag.defaultValue\n break\n }\n case \"all\": {\n result[key] = ctx\n ? this.collectFromHierarchy(ctx, tagExecutor.tag)\n : tagExecutor.tag.collect(this.tags)\n break\n }\n }\n } else if (isResource(dep)) {\n if (!ctx) {\n throw new Error(\"Resource deps require an ExecutionContext\")\n }\n\n const resource = dep as Lite.Resource<unknown>\n const resourceKey = getResourceKey(resource)\n const storeCtx = ctx.parent ?? ctx\n\n if (storeCtx.data.has(resourceKey)) {\n result[key] = storeCtx.data.get(resourceKey)\n continue\n }\n\n const existingSeek = ctx.data.seek(resourceKey)\n if (existingSeek !== undefined || ctx.data.has(resourceKey)) {\n result[key] = existingSeek\n continue\n }\n\n if (resolvingResources.has(resourceKey)) {\n throw new Error(`Circular resource dependency detected: ${resource.name ?? \"anonymous\"}`)\n }\n\n let flights = inflightResources.get(storeCtx.data)\n if (!flights) {\n flights = new Map()\n inflightResources.set(storeCtx.data, flights)\n }\n\n const inflight = flights.get(resourceKey)\n if (inflight) {\n result[key] = await inflight\n continue\n }\n\n const resolve = async () => {\n resolvingResources.add(resourceKey)\n try {\n const resourceDeps = await this.resolveDeps(resource.deps, ctx)\n\n const event: Lite.ResolveEvent = {\n kind: \"resource\",\n target: resource,\n ctx: storeCtx,\n }\n\n const doResolve = async () => {\n const factory = resource.factory as (\n ctx: Lite.ExecutionContext,\n deps?: Record<string, unknown>\n ) => MaybePromise<unknown>\n if (resource.deps && Object.keys(resource.deps).length > 0) {\n return factory(storeCtx, resourceDeps)\n }\n return factory(storeCtx)\n }\n\n const value = await this.applyResolveExtensions(event, doResolve)\n storeCtx.data.set(resourceKey, value)\n return value\n } finally {\n resolvingResources.delete(resourceKey)\n }\n }\n\n const promise = resolve()\n flights.set(resourceKey, promise)\n\n try {\n result[key] = await promise\n } finally {\n flights.delete(resourceKey)\n }\n }\n }\n\n return result\n }\n\n private collectFromHierarchy<T>(ctx: Lite.ExecutionContext, tag: Lite.Tag<T, boolean>): T[] {\n const results: T[] = []\n let current: Lite.ExecutionContext | undefined = ctx\n\n while (current) {\n const value = current.data.getTag(tag)\n if (value !== undefined) {\n results.push(value)\n }\n current = current.parent\n }\n\n return results\n }\n\n controller<T>(atom: Lite.Atom<T>): Lite.Controller<T>\n controller<T>(atom: Lite.Atom<T>, options: { resolve: true }): Promise<Lite.Controller<T>>\n controller<T>(atom: Lite.Atom<T>, options?: Lite.ControllerOptions): Lite.Controller<T> | Promise<Lite.Controller<T>>\n controller<T>(atom: Lite.Atom<T>, options?: Lite.ControllerOptions): Lite.Controller<T> | Promise<Lite.Controller<T>> {\n let ctrl = this.controllers.get(atom) as ControllerImpl<T> | undefined\n if (!ctrl) {\n ctrl = new ControllerImpl(atom, this)\n this.controllers.set(atom, ctrl as ControllerImpl<unknown>)\n }\n if (options?.resolve) {\n return ctrl.resolve().then(() => ctrl)\n }\n return ctrl\n }\n\n select<T, S>(\n atom: Lite.Atom<T>,\n selector: (value: T) => S,\n options?: Lite.SelectOptions<S>\n ): Lite.SelectHandle<S> {\n const ctrl = this.controller(atom)\n const eq = options?.eq ?? ((a, b) => a === b)\n return new SelectHandleImpl(ctrl, selector, eq)\n }\n\n getFlowPreset<O, I>(flow: Lite.Flow<O, I>): Lite.PresetValue<O, I> | undefined {\n return this.presets.get(flow as Lite.Flow<unknown, unknown>) as Lite.PresetValue<O, I> | undefined\n }\n\n invalidate<T>(atom: Lite.Atom<T>): void {\n const entry = this.cache.get(atom)\n if (!entry) return\n\n if (entry.state === 'idle') return\n\n if (entry.state === 'resolving') {\n entry.pendingInvalidate = true\n return\n }\n\n this.scheduleInvalidation(atom)\n }\n\n scheduleSet<T>(atom: Lite.Atom<T>, value: T): void {\n const entry = this.cache.get(atom) as AtomEntry<T> | undefined\n if (!entry || entry.state === 'idle') {\n throw new Error(\"Atom not resolved\")\n }\n if (entry.state === 'failed' && entry.error) {\n throw entry.error\n }\n\n if (entry.state === 'resolving') {\n entry.pendingSet = { value }\n return\n }\n\n entry.pendingSet = { value }\n this.scheduleInvalidation(atom)\n }\n\n scheduleUpdate<T>(atom: Lite.Atom<T>, fn: (prev: T) => T): void {\n const entry = this.cache.get(atom) as AtomEntry<T> | undefined\n if (!entry || entry.state === 'idle') {\n throw new Error(\"Atom not resolved\")\n }\n if (entry.state === 'failed' && entry.error) {\n throw entry.error\n }\n\n if (entry.state === 'resolving') {\n entry.pendingSet = { fn }\n return\n }\n\n entry.pendingSet = { fn }\n this.scheduleInvalidation(atom)\n }\n\n private async doInvalidateSequential<T>(atom: Lite.Atom<T>): Promise<void> {\n const entry = this.cache.get(atom) as AtomEntry<T> | undefined\n if (!entry) return\n if (entry.state === \"idle\") return\n\n const previousValue = entry.value\n const pendingSet = entry.pendingSet\n entry.pendingSet = undefined\n\n for (let i = entry.cleanups.length - 1; i >= 0; i--) {\n const cleanup = entry.cleanups[i]\n if (cleanup) await cleanup()\n }\n entry.cleanups = []\n\n entry.state = \"resolving\"\n entry.value = previousValue\n entry.error = undefined\n entry.pendingInvalidate = false\n this.pending.delete(atom)\n this.resolving.delete(atom)\n this.emitStateChange(\"resolving\", atom)\n this.notifyListeners(atom, \"resolving\")\n\n if (pendingSet) {\n if ('value' in pendingSet) {\n entry.value = pendingSet.value\n } else {\n entry.value = pendingSet.fn(previousValue as T)\n }\n entry.state = 'resolved'\n entry.hasValue = true\n this.emitStateChange('resolved', atom)\n this.notifyListeners(atom, 'resolved')\n return\n }\n\n await this.resolve(atom)\n }\n\n async release<T>(atom: Lite.Atom<T>): Promise<void> {\n const entry = this.cache.get(atom)\n if (!entry) return\n\n if (entry.gcScheduled) {\n clearTimeout(entry.gcScheduled)\n entry.gcScheduled = null\n }\n\n for (let i = entry.cleanups.length - 1; i >= 0; i--) {\n const cleanup = entry.cleanups[i]\n if (cleanup) await cleanup()\n }\n\n this.cache.delete(atom)\n this.controllers.delete(atom)\n }\n\n async dispose(): Promise<void> {\n for (const ext of this.extensions) {\n if (ext.dispose) {\n await ext.dispose(this)\n }\n }\n\n for (const entry of this.cache.values()) {\n if (entry.gcScheduled) {\n clearTimeout(entry.gcScheduled)\n entry.gcScheduled = null\n }\n }\n\n const atoms = Array.from(this.cache.keys())\n for (const atom of atoms) {\n await this.release(atom as Lite.Atom<unknown>)\n }\n }\n\n async flush(): Promise<void> {\n if (this.chainPromise) {\n await this.chainPromise\n }\n }\n\n createContext(options?: Lite.CreateContextOptions): Lite.ExecutionContext {\n const ctx = new ExecutionContextImpl(this, options)\n\n for (const tagged of options?.tags ?? []) {\n ctx.data.set(tagged.key, tagged.value)\n }\n\n for (const tagged of this.tags) {\n if (!ctx.data.has(tagged.key)) {\n ctx.data.set(tagged.key, tagged.value)\n }\n }\n\n return ctx\n }\n}\n\nclass ExecutionContextImpl implements Lite.ExecutionContext {\n private cleanups: ((result: Lite.CloseResult) => MaybePromise<void>)[] = []\n private closed = false\n private readonly _input: unknown\n private _data: ContextDataImpl | undefined\n private readonly _execName: string | undefined\n private readonly _flowName: string | undefined\n readonly parent: Lite.ExecutionContext | undefined\n\n constructor(\n readonly scope: ScopeImpl,\n options?: Lite.CreateContextOptions & {\n parent?: Lite.ExecutionContext\n input?: unknown\n execName?: string\n flowName?: string\n }\n ) {\n this.parent = options?.parent\n this._input = options?.input\n this._execName = options?.execName\n this._flowName = options?.flowName\n }\n\n get input(): unknown {\n return this._input\n }\n\n get name(): string | undefined {\n return this._execName ?? this._flowName\n }\n\n get data(): Lite.ContextData {\n if (!this._data) {\n this._data = new ContextDataImpl(this.parent?.data)\n }\n return this._data\n }\n\n async exec(options: {\n flow: Lite.Flow<unknown, unknown>\n input?: unknown\n rawInput?: unknown\n name?: string\n tags?: Lite.Tagged<any>[]\n } | Lite.ExecFnOptions<unknown>): Promise<unknown> {\n if (this.closed) {\n throw new Error(\"ExecutionContext is closed\")\n }\n\n if (\"flow\" in options) {\n const { flow, input, rawInput, name: execName, tags: execTags } = options\n\n const presetValue = this.scope.getFlowPreset(flow)\n if (presetValue !== undefined && isFlow(presetValue)) {\n return this.exec({ ...options, flow: presetValue })\n }\n\n const rawValue = rawInput !== undefined ? rawInput : input\n let parsedInput: unknown = rawValue\n if (flow.parse) {\n const label = execName ?? flow.name ?? \"anonymous\"\n try {\n parsedInput = await flow.parse(rawValue)\n } catch (err) {\n throw new ParseError(\n `Failed to parse flow input \"${label}\"`,\n \"flow-input\",\n label,\n err\n )\n }\n }\n\n const childCtx = new ExecutionContextImpl(this.scope, {\n parent: this,\n input: parsedInput,\n execName,\n flowName: flow.name\n })\n\n for (const tagged of execTags ?? []) {\n childCtx.data.set(tagged.key, tagged.value)\n }\n\n for (const tagged of flow.tags ?? []) {\n if (!childCtx.data.has(tagged.key)) {\n childCtx.data.set(tagged.key, tagged.value)\n }\n }\n\n try {\n const result = presetValue !== undefined && typeof presetValue === 'function'\n ? await childCtx.execPresetFn(flow, presetValue as (ctx: Lite.ExecutionContext) => unknown)\n : await childCtx.execFlowInternal(flow)\n await childCtx.close({ ok: true })\n return result\n } catch (error) {\n await childCtx.close({ ok: false, error })\n throw error\n }\n } else {\n const childCtx = new ExecutionContextImpl(this.scope, {\n parent: this,\n execName: options.name,\n flowName: options.fn.name || undefined,\n input: options.params\n })\n\n try {\n const result = await childCtx.execFnInternal(options)\n await childCtx.close({ ok: true })\n return result\n } catch (error) {\n await childCtx.close({ ok: false, error })\n throw error\n }\n }\n }\n\n private async execFlowInternal(flow: Lite.Flow<unknown, unknown>): Promise<unknown> {\n const resolvedDeps = await this.scope.resolveDeps(flow.deps, this)\n\n const factory = flow.factory as unknown as (\n ctx: Lite.ExecutionContext,\n deps?: Record<string, unknown>\n ) => MaybePromise<unknown>\n\n const doExec = async (): Promise<unknown> => {\n if (flow.deps && Object.keys(flow.deps).length > 0) {\n return factory(this, resolvedDeps)\n } else {\n return factory(this)\n }\n }\n\n return this.applyExecExtensions(flow, doExec)\n }\n\n private async execFnInternal(options: Lite.ExecFnOptions<unknown>): Promise<unknown> {\n const { fn, params } = options\n const doExec = () => Promise.resolve(fn(this, ...params))\n return this.applyExecExtensions(fn, doExec)\n }\n\n async execPresetFn(\n flow: Lite.Flow<unknown, unknown>,\n fn: (ctx: Lite.ExecutionContext) => MaybePromise<unknown>\n ): Promise<unknown> {\n const doExec = () => Promise.resolve(fn(this))\n return this.applyExecExtensions(flow, doExec)\n }\n\n private async applyExecExtensions(\n target: Lite.Flow<unknown, unknown> | ((ctx: Lite.ExecutionContext, ...args: unknown[]) => MaybePromise<unknown>),\n doExec: () => Promise<unknown>\n ): Promise<unknown> {\n let next = doExec\n\n for (let i = this.scope.extensions.length - 1; i >= 0; i--) {\n const ext = this.scope.extensions[i]\n if (ext?.wrapExec) {\n const currentNext = next\n next = ext.wrapExec.bind(ext, currentNext, target, this) as () => Promise<unknown>\n }\n }\n\n return next()\n }\n\n onClose(fn: (result: Lite.CloseResult) => MaybePromise<void>): void {\n this.cleanups.push(fn)\n }\n\n async close(result: Lite.CloseResult = { ok: true }): Promise<void> {\n if (this.closed) return\n\n this.closed = true\n\n for (let i = this.cleanups.length - 1; i >= 0; i--) {\n const cleanup = this.cleanups[i]\n if (cleanup) await cleanup(result)\n }\n }\n}\n\n/**\n * Creates a DI container that manages Atom resolution, caching, and lifecycle.\n *\n * The scope is returned synchronously, with a `ready` promise that resolves\n * when all extensions have been initialized. Resolution methods automatically\n * wait for `ready` before proceeding.\n *\n * @param options - Optional configuration for extensions, presets, and tags\n * @returns A Scope instance with a `ready` promise for extension initialization\n *\n * @example\n * ```typescript\n * const scope = createScope({\n * extensions: [loggingExtension],\n * presets: [preset(dbAtom, testDb)]\n * })\n *\n * // Option 1: resolve() waits for ready internally\n * const db = await scope.resolve(dbAtom)\n *\n * // Option 2: explicit wait\n * await scope.ready\n * const db = await scope.resolve(dbAtom)\n * ```\n */\nexport function createScope(options?: Lite.ScopeOptions): Lite.Scope {\n return new ScopeImpl(options)\n}\n","export type { Lite, AtomState } from \"./types\"\nexport {\n atomSymbol,\n flowSymbol,\n tagSymbol,\n taggedSymbol,\n controllerDepSymbol,\n presetSymbol,\n controllerSymbol,\n tagExecutorSymbol,\n typedSymbol,\n resourceSymbol,\n} from \"./symbols\"\nexport { tag, tags, isTag, isTagged, isTagExecutor, getAllTags } from \"./tag\"\nexport { atom, isAtom, controller, isControllerDep } from \"./atom\"\nexport { flow, isFlow, typed } from \"./flow\"\nexport { preset, isPreset } from \"./preset\"\nexport { resource, isResource } from \"./resource\"\nexport { service } from \"./service\"\nexport { createScope } from \"./scope\"\nexport { ParseError } from \"./errors\"\n\nexport const VERSION = \"0.0.1\"\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pumped-fn/lite",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Lightweight dependency injection with minimal reactivity",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -59,8 +59,8 @@
|
|
|
59
59
|
"license": "MIT",
|
|
60
60
|
"scripts": {
|
|
61
61
|
"build": "tsdown",
|
|
62
|
-
"typecheck": "
|
|
63
|
-
"typecheck:full": "
|
|
62
|
+
"typecheck": "bunx @typescript/native-preview --noEmit",
|
|
63
|
+
"typecheck:full": "bunx @typescript/native-preview --noEmit -p tsconfig.test.json",
|
|
64
64
|
"test": "vitest run",
|
|
65
65
|
"test:watch": "vitest"
|
|
66
66
|
}
|