@pumped-fn/lite 1.5.0 → 1.6.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 +39 -0
- package/dist/index.cjs +12 -26
- package/dist/index.d.cts +18 -50
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +18 -50
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +13 -25
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,44 @@
|
|
|
1
1
|
# @pumped-fn/lite
|
|
2
2
|
|
|
3
|
+
## 1.6.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 97ef8b0: Add controller auto-resolution option
|
|
8
|
+
|
|
9
|
+
- Add `{ resolve: true }` option to `controller()` helper
|
|
10
|
+
- When set, the controller is auto-resolved before the factory runs
|
|
11
|
+
- Eliminates need for redundant atom+controller deps or manual `resolve()` calls
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
const myAtom = atom({
|
|
15
|
+
deps: { config: controller(configAtom, { resolve: true }) },
|
|
16
|
+
factory: (ctx, { config }) => {
|
|
17
|
+
config.get(); // safe - already resolved
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 1.5.1
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- 22c5807: fix: simplify service to be narrowed atom with type constraint
|
|
27
|
+
|
|
28
|
+
**BREAKING**: Removed `Service<T>` interface, `isService()`, and `serviceSymbol`
|
|
29
|
+
|
|
30
|
+
- `service()` now returns `Atom<T extends ServiceMethods>` directly
|
|
31
|
+
- Use `isAtom()` instead of `isService()` for type guards
|
|
32
|
+
- Removed `ServiceFactory` type - uses `AtomFactory` instead
|
|
33
|
+
|
|
34
|
+
The `ServiceMethods` constraint ensures methods match the `(ctx: ExecutionContext, ...args) => result`
|
|
35
|
+
signature that `ctx.exec({ fn, params })` expects. This is enforced at compile time.
|
|
36
|
+
|
|
37
|
+
Migration:
|
|
38
|
+
|
|
39
|
+
- Replace `Lite.Service<T>` with `Lite.Atom<T>` where `T extends Lite.ServiceMethods`
|
|
40
|
+
- Replace `isService(value)` with `isAtom(value)`
|
|
41
|
+
|
|
3
42
|
## 1.5.0
|
|
4
43
|
|
|
5
44
|
### Minor Changes
|
package/dist/index.cjs
CHANGED
|
@@ -9,7 +9,6 @@ const presetSymbol = Symbol.for("@pumped-fn/lite/preset");
|
|
|
9
9
|
const controllerSymbol = Symbol.for("@pumped-fn/lite/controller");
|
|
10
10
|
const tagExecutorSymbol = Symbol.for("@pumped-fn/lite/tag-executor");
|
|
11
11
|
const typedSymbol = Symbol.for("@pumped-fn/lite/typed");
|
|
12
|
-
const serviceSymbol = Symbol.for("@pumped-fn/lite/service");
|
|
13
12
|
|
|
14
13
|
//#endregion
|
|
15
14
|
//#region src/errors.ts
|
|
@@ -178,25 +177,28 @@ function isAtom(value) {
|
|
|
178
177
|
* The Controller provides full lifecycle control: get, resolve, release, invalidate, and subscribe.
|
|
179
178
|
*
|
|
180
179
|
* @param atom - The Atom to wrap
|
|
180
|
+
* @param options - Optional configuration. Use { resolve: true } to auto-resolve before factory runs.
|
|
181
181
|
* @returns A ControllerDep that resolves to a Controller for the Atom
|
|
182
182
|
*
|
|
183
183
|
* @example
|
|
184
184
|
* ```typescript
|
|
185
185
|
* const configAtom = atom({ factory: () => fetchConfig() })
|
|
186
186
|
* const serverAtom = atom({
|
|
187
|
-
* deps: { config: controller(configAtom) },
|
|
187
|
+
* deps: { config: controller(configAtom, { resolve: true }) },
|
|
188
188
|
* factory: (ctx, { config }) => {
|
|
189
|
-
*
|
|
189
|
+
* // config.get() is safe - already resolved
|
|
190
|
+
* const unsub = config.on('resolved', () => ctx.invalidate())
|
|
190
191
|
* ctx.cleanup(unsub)
|
|
191
192
|
* return createServer(config.get().port)
|
|
192
193
|
* }
|
|
193
194
|
* })
|
|
194
195
|
* ```
|
|
195
196
|
*/
|
|
196
|
-
function controller(atom$1) {
|
|
197
|
+
function controller(atom$1, options) {
|
|
197
198
|
return {
|
|
198
199
|
[controllerDepSymbol]: true,
|
|
199
|
-
atom: atom$1
|
|
200
|
+
atom: atom$1,
|
|
201
|
+
resolve: options?.resolve
|
|
200
202
|
};
|
|
201
203
|
}
|
|
202
204
|
/**
|
|
@@ -309,28 +311,11 @@ function isPreset(value) {
|
|
|
309
311
|
function service(config) {
|
|
310
312
|
return {
|
|
311
313
|
[atomSymbol]: true,
|
|
312
|
-
[serviceSymbol]: true,
|
|
313
314
|
factory: config.factory,
|
|
314
315
|
deps: config.deps,
|
|
315
316
|
tags: config.tags
|
|
316
317
|
};
|
|
317
318
|
}
|
|
318
|
-
/**
|
|
319
|
-
* Type guard to check if a value is a Service.
|
|
320
|
-
*
|
|
321
|
-
* @param value - The value to check
|
|
322
|
-
* @returns True if the value is a Service, false otherwise
|
|
323
|
-
*
|
|
324
|
-
* @example
|
|
325
|
-
* ```typescript
|
|
326
|
-
* if (isService(value)) {
|
|
327
|
-
* const methods = await scope.resolve(value)
|
|
328
|
-
* }
|
|
329
|
-
* ```
|
|
330
|
-
*/
|
|
331
|
-
function isService(value) {
|
|
332
|
-
return typeof value === "object" && value !== null && value[serviceSymbol] === true;
|
|
333
|
-
}
|
|
334
319
|
|
|
335
320
|
//#endregion
|
|
336
321
|
//#region src/scope.ts
|
|
@@ -664,8 +649,11 @@ var ScopeImpl = class {
|
|
|
664
649
|
const result = {};
|
|
665
650
|
const tags$1 = tagSource ?? this.tags;
|
|
666
651
|
for (const [key, dep] of Object.entries(deps)) if (isAtom(dep)) result[key] = await this.resolve(dep);
|
|
667
|
-
else if (isControllerDep(dep))
|
|
668
|
-
|
|
652
|
+
else if (isControllerDep(dep)) {
|
|
653
|
+
const ctrl = new ControllerImpl(dep.atom, this);
|
|
654
|
+
if (dep.resolve) await ctrl.resolve();
|
|
655
|
+
result[key] = ctrl;
|
|
656
|
+
} else if (tagExecutorSymbol in dep) {
|
|
669
657
|
const tagExecutor = dep;
|
|
670
658
|
switch (tagExecutor.mode) {
|
|
671
659
|
case "required":
|
|
@@ -918,14 +906,12 @@ exports.isAtom = isAtom;
|
|
|
918
906
|
exports.isControllerDep = isControllerDep;
|
|
919
907
|
exports.isFlow = isFlow;
|
|
920
908
|
exports.isPreset = isPreset;
|
|
921
|
-
exports.isService = isService;
|
|
922
909
|
exports.isTag = isTag;
|
|
923
910
|
exports.isTagExecutor = isTagExecutor;
|
|
924
911
|
exports.isTagged = isTagged;
|
|
925
912
|
exports.preset = preset;
|
|
926
913
|
exports.presetSymbol = presetSymbol;
|
|
927
914
|
exports.service = service;
|
|
928
|
-
exports.serviceSymbol = serviceSymbol;
|
|
929
915
|
exports.tag = tag;
|
|
930
916
|
exports.tagExecutorSymbol = tagExecutorSymbol;
|
|
931
917
|
exports.tagSymbol = tagSymbol;
|
package/dist/index.d.cts
CHANGED
|
@@ -8,7 +8,6 @@ declare const presetSymbol: unique symbol;
|
|
|
8
8
|
declare const controllerSymbol: unique symbol;
|
|
9
9
|
declare const tagExecutorSymbol: unique symbol;
|
|
10
10
|
declare const typedSymbol: unique symbol;
|
|
11
|
-
declare const serviceSymbol: unique symbol;
|
|
12
11
|
//#endregion
|
|
13
12
|
//#region src/types.d.ts
|
|
14
13
|
type MaybePromise<T> = T | Promise<T>;
|
|
@@ -16,7 +15,7 @@ type AtomState = 'idle' | 'resolving' | 'resolved' | 'failed';
|
|
|
16
15
|
declare namespace Lite {
|
|
17
16
|
interface Scope {
|
|
18
17
|
readonly ready: Promise<void>;
|
|
19
|
-
resolve<T>(atom: Atom<T>
|
|
18
|
+
resolve<T>(atom: Atom<T>): Promise<T>;
|
|
20
19
|
controller<T>(atom: Atom<T>): Controller<T>;
|
|
21
20
|
release<T>(atom: Atom<T>): Promise<void>;
|
|
22
21
|
dispose(): Promise<void>;
|
|
@@ -183,6 +182,10 @@ declare namespace Lite {
|
|
|
183
182
|
interface ControllerDep<T> {
|
|
184
183
|
readonly [controllerDepSymbol]: true;
|
|
185
184
|
readonly atom: Atom<T>;
|
|
185
|
+
readonly resolve?: boolean;
|
|
186
|
+
}
|
|
187
|
+
interface ControllerOptions {
|
|
188
|
+
resolve?: boolean;
|
|
186
189
|
}
|
|
187
190
|
interface Typed<T> {
|
|
188
191
|
readonly [typedSymbol]: true;
|
|
@@ -208,14 +211,8 @@ declare namespace Lite {
|
|
|
208
211
|
}) => MaybePromise<Output> : (ctx: ExecutionContext & {
|
|
209
212
|
readonly input: Input;
|
|
210
213
|
}, deps: InferDeps<D>) => MaybePromise<Output>;
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
readonly [serviceSymbol]: true;
|
|
214
|
-
readonly factory: ServiceFactory<T, Record<string, Dependency>>;
|
|
215
|
-
readonly deps?: Record<string, Dependency>;
|
|
216
|
-
readonly tags?: Tagged<unknown>[];
|
|
217
|
-
}
|
|
218
|
-
type ServiceFactory<T, D extends Record<string, Dependency>> = keyof D extends never ? (ctx: ResolveContext) => MaybePromise<T> : (ctx: ResolveContext, deps: InferDeps<D>) => MaybePromise<T>;
|
|
214
|
+
type ServiceMethod = (ctx: ExecutionContext, ...args: any[]) => unknown;
|
|
215
|
+
type ServiceMethods = Record<string, ServiceMethod>;
|
|
219
216
|
}
|
|
220
217
|
//#endregion
|
|
221
218
|
//#region src/tag.d.ts
|
|
@@ -388,22 +385,24 @@ declare function isAtom(value: unknown): value is Lite.Atom<unknown>;
|
|
|
388
385
|
* The Controller provides full lifecycle control: get, resolve, release, invalidate, and subscribe.
|
|
389
386
|
*
|
|
390
387
|
* @param atom - The Atom to wrap
|
|
388
|
+
* @param options - Optional configuration. Use { resolve: true } to auto-resolve before factory runs.
|
|
391
389
|
* @returns A ControllerDep that resolves to a Controller for the Atom
|
|
392
390
|
*
|
|
393
391
|
* @example
|
|
394
392
|
* ```typescript
|
|
395
393
|
* const configAtom = atom({ factory: () => fetchConfig() })
|
|
396
394
|
* const serverAtom = atom({
|
|
397
|
-
* deps: { config: controller(configAtom) },
|
|
395
|
+
* deps: { config: controller(configAtom, { resolve: true }) },
|
|
398
396
|
* factory: (ctx, { config }) => {
|
|
399
|
-
*
|
|
397
|
+
* // config.get() is safe - already resolved
|
|
398
|
+
* const unsub = config.on('resolved', () => ctx.invalidate())
|
|
400
399
|
* ctx.cleanup(unsub)
|
|
401
400
|
* return createServer(config.get().port)
|
|
402
401
|
* }
|
|
403
402
|
* })
|
|
404
403
|
* ```
|
|
405
404
|
*/
|
|
406
|
-
declare function controller<T>(atom: Lite.Atom<T
|
|
405
|
+
declare function controller<T>(atom: Lite.Atom<T>, options?: Lite.ControllerOptions): Lite.ControllerDep<T>;
|
|
407
406
|
/**
|
|
408
407
|
* Type guard to check if a value is a ControllerDep wrapper.
|
|
409
408
|
*
|
|
@@ -554,48 +553,17 @@ declare function preset<T>(atom: Lite.Atom<T>, value: T | Lite.Atom<T>): Lite.Pr
|
|
|
554
553
|
declare function isPreset(value: unknown): value is Lite.Preset<unknown>;
|
|
555
554
|
//#endregion
|
|
556
555
|
//#region src/service.d.ts
|
|
557
|
-
/**
|
|
558
|
-
|
|
559
|
-
* Each method receives ExecutionContext as its first parameter.
|
|
560
|
-
*
|
|
561
|
-
* @param config - Configuration object containing factory function, optional dependencies, and tags
|
|
562
|
-
* @returns A Service instance that can be resolved to produce methods
|
|
563
|
-
*
|
|
564
|
-
* @example
|
|
565
|
-
* ```typescript
|
|
566
|
-
* const dbService = service({
|
|
567
|
-
* deps: { pool: poolAtom },
|
|
568
|
-
* factory: (ctx, { pool }) => ({
|
|
569
|
-
* query: (ctx, sql: string) => pool.query(sql),
|
|
570
|
-
* transaction: (ctx, fn) => pool.withTransaction(fn),
|
|
571
|
-
* })
|
|
572
|
-
* })
|
|
573
|
-
* ```
|
|
574
|
-
*/
|
|
575
|
-
declare function service<T>(config: {
|
|
556
|
+
/** Creates an atom with methods constrained to (ctx: ExecutionContext, ...args) => result. */
|
|
557
|
+
declare function service<T extends Lite.ServiceMethods>(config: {
|
|
576
558
|
deps?: undefined;
|
|
577
559
|
factory: (ctx: Lite.ResolveContext) => MaybePromise<T>;
|
|
578
560
|
tags?: Lite.Tagged<unknown>[];
|
|
579
|
-
}): Lite.
|
|
580
|
-
declare function service<T, const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | Lite.TagExecutor<unknown>>>(config: {
|
|
561
|
+
}): Lite.Atom<T>;
|
|
562
|
+
declare function service<T extends Lite.ServiceMethods, const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | Lite.TagExecutor<unknown>>>(config: {
|
|
581
563
|
deps: D;
|
|
582
564
|
factory: (ctx: Lite.ResolveContext, deps: Lite.InferDeps<D>) => MaybePromise<T>;
|
|
583
565
|
tags?: Lite.Tagged<unknown>[];
|
|
584
|
-
}): Lite.
|
|
585
|
-
/**
|
|
586
|
-
* Type guard to check if a value is a Service.
|
|
587
|
-
*
|
|
588
|
-
* @param value - The value to check
|
|
589
|
-
* @returns True if the value is a Service, false otherwise
|
|
590
|
-
*
|
|
591
|
-
* @example
|
|
592
|
-
* ```typescript
|
|
593
|
-
* if (isService(value)) {
|
|
594
|
-
* const methods = await scope.resolve(value)
|
|
595
|
-
* }
|
|
596
|
-
* ```
|
|
597
|
-
*/
|
|
598
|
-
declare function isService(value: unknown): value is Lite.Service<unknown>;
|
|
566
|
+
}): Lite.Atom<T>;
|
|
599
567
|
//#endregion
|
|
600
568
|
//#region src/scope.d.ts
|
|
601
569
|
/**
|
|
@@ -637,5 +605,5 @@ declare class ParseError extends Error {
|
|
|
637
605
|
//#region src/index.d.ts
|
|
638
606
|
declare const VERSION = "0.0.1";
|
|
639
607
|
//#endregion
|
|
640
|
-
export { type AtomState, type Lite, ParseError, VERSION, atom, atomSymbol, controller, controllerDepSymbol, controllerSymbol, createScope, flow, flowSymbol, isAtom, isControllerDep, isFlow, isPreset,
|
|
608
|
+
export { type AtomState, type Lite, ParseError, VERSION, atom, atomSymbol, controller, controllerDepSymbol, controllerSymbol, createScope, flow, flowSymbol, isAtom, isControllerDep, isFlow, isPreset, isTag, isTagExecutor, isTagged, preset, presetSymbol, service, tag, tagExecutorSymbol, tagSymbol, taggedSymbol, tags, typed, typedSymbol };
|
|
641
609
|
//# sourceMappingURL=index.d.cts.map
|
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/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/service.ts","../src/scope.ts","../src/errors.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -8,7 +8,6 @@ declare const presetSymbol: unique symbol;
|
|
|
8
8
|
declare const controllerSymbol: unique symbol;
|
|
9
9
|
declare const tagExecutorSymbol: unique symbol;
|
|
10
10
|
declare const typedSymbol: unique symbol;
|
|
11
|
-
declare const serviceSymbol: unique symbol;
|
|
12
11
|
//#endregion
|
|
13
12
|
//#region src/types.d.ts
|
|
14
13
|
type MaybePromise<T> = T | Promise<T>;
|
|
@@ -16,7 +15,7 @@ type AtomState = 'idle' | 'resolving' | 'resolved' | 'failed';
|
|
|
16
15
|
declare namespace Lite {
|
|
17
16
|
interface Scope {
|
|
18
17
|
readonly ready: Promise<void>;
|
|
19
|
-
resolve<T>(atom: Atom<T>
|
|
18
|
+
resolve<T>(atom: Atom<T>): Promise<T>;
|
|
20
19
|
controller<T>(atom: Atom<T>): Controller<T>;
|
|
21
20
|
release<T>(atom: Atom<T>): Promise<void>;
|
|
22
21
|
dispose(): Promise<void>;
|
|
@@ -183,6 +182,10 @@ declare namespace Lite {
|
|
|
183
182
|
interface ControllerDep<T> {
|
|
184
183
|
readonly [controllerDepSymbol]: true;
|
|
185
184
|
readonly atom: Atom<T>;
|
|
185
|
+
readonly resolve?: boolean;
|
|
186
|
+
}
|
|
187
|
+
interface ControllerOptions {
|
|
188
|
+
resolve?: boolean;
|
|
186
189
|
}
|
|
187
190
|
interface Typed<T> {
|
|
188
191
|
readonly [typedSymbol]: true;
|
|
@@ -208,14 +211,8 @@ declare namespace Lite {
|
|
|
208
211
|
}) => MaybePromise<Output> : (ctx: ExecutionContext & {
|
|
209
212
|
readonly input: Input;
|
|
210
213
|
}, deps: InferDeps<D>) => MaybePromise<Output>;
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
readonly [serviceSymbol]: true;
|
|
214
|
-
readonly factory: ServiceFactory<T, Record<string, Dependency>>;
|
|
215
|
-
readonly deps?: Record<string, Dependency>;
|
|
216
|
-
readonly tags?: Tagged<unknown>[];
|
|
217
|
-
}
|
|
218
|
-
type ServiceFactory<T, D extends Record<string, Dependency>> = keyof D extends never ? (ctx: ResolveContext) => MaybePromise<T> : (ctx: ResolveContext, deps: InferDeps<D>) => MaybePromise<T>;
|
|
214
|
+
type ServiceMethod = (ctx: ExecutionContext, ...args: any[]) => unknown;
|
|
215
|
+
type ServiceMethods = Record<string, ServiceMethod>;
|
|
219
216
|
}
|
|
220
217
|
//#endregion
|
|
221
218
|
//#region src/tag.d.ts
|
|
@@ -388,22 +385,24 @@ declare function isAtom(value: unknown): value is Lite.Atom<unknown>;
|
|
|
388
385
|
* The Controller provides full lifecycle control: get, resolve, release, invalidate, and subscribe.
|
|
389
386
|
*
|
|
390
387
|
* @param atom - The Atom to wrap
|
|
388
|
+
* @param options - Optional configuration. Use { resolve: true } to auto-resolve before factory runs.
|
|
391
389
|
* @returns A ControllerDep that resolves to a Controller for the Atom
|
|
392
390
|
*
|
|
393
391
|
* @example
|
|
394
392
|
* ```typescript
|
|
395
393
|
* const configAtom = atom({ factory: () => fetchConfig() })
|
|
396
394
|
* const serverAtom = atom({
|
|
397
|
-
* deps: { config: controller(configAtom) },
|
|
395
|
+
* deps: { config: controller(configAtom, { resolve: true }) },
|
|
398
396
|
* factory: (ctx, { config }) => {
|
|
399
|
-
*
|
|
397
|
+
* // config.get() is safe - already resolved
|
|
398
|
+
* const unsub = config.on('resolved', () => ctx.invalidate())
|
|
400
399
|
* ctx.cleanup(unsub)
|
|
401
400
|
* return createServer(config.get().port)
|
|
402
401
|
* }
|
|
403
402
|
* })
|
|
404
403
|
* ```
|
|
405
404
|
*/
|
|
406
|
-
declare function controller<T>(atom: Lite.Atom<T
|
|
405
|
+
declare function controller<T>(atom: Lite.Atom<T>, options?: Lite.ControllerOptions): Lite.ControllerDep<T>;
|
|
407
406
|
/**
|
|
408
407
|
* Type guard to check if a value is a ControllerDep wrapper.
|
|
409
408
|
*
|
|
@@ -554,48 +553,17 @@ declare function preset<T>(atom: Lite.Atom<T>, value: T | Lite.Atom<T>): Lite.Pr
|
|
|
554
553
|
declare function isPreset(value: unknown): value is Lite.Preset<unknown>;
|
|
555
554
|
//#endregion
|
|
556
555
|
//#region src/service.d.ts
|
|
557
|
-
/**
|
|
558
|
-
|
|
559
|
-
* Each method receives ExecutionContext as its first parameter.
|
|
560
|
-
*
|
|
561
|
-
* @param config - Configuration object containing factory function, optional dependencies, and tags
|
|
562
|
-
* @returns A Service instance that can be resolved to produce methods
|
|
563
|
-
*
|
|
564
|
-
* @example
|
|
565
|
-
* ```typescript
|
|
566
|
-
* const dbService = service({
|
|
567
|
-
* deps: { pool: poolAtom },
|
|
568
|
-
* factory: (ctx, { pool }) => ({
|
|
569
|
-
* query: (ctx, sql: string) => pool.query(sql),
|
|
570
|
-
* transaction: (ctx, fn) => pool.withTransaction(fn),
|
|
571
|
-
* })
|
|
572
|
-
* })
|
|
573
|
-
* ```
|
|
574
|
-
*/
|
|
575
|
-
declare function service<T>(config: {
|
|
556
|
+
/** Creates an atom with methods constrained to (ctx: ExecutionContext, ...args) => result. */
|
|
557
|
+
declare function service<T extends Lite.ServiceMethods>(config: {
|
|
576
558
|
deps?: undefined;
|
|
577
559
|
factory: (ctx: Lite.ResolveContext) => MaybePromise<T>;
|
|
578
560
|
tags?: Lite.Tagged<unknown>[];
|
|
579
|
-
}): Lite.
|
|
580
|
-
declare function service<T, const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | Lite.TagExecutor<unknown>>>(config: {
|
|
561
|
+
}): Lite.Atom<T>;
|
|
562
|
+
declare function service<T extends Lite.ServiceMethods, const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | Lite.TagExecutor<unknown>>>(config: {
|
|
581
563
|
deps: D;
|
|
582
564
|
factory: (ctx: Lite.ResolveContext, deps: Lite.InferDeps<D>) => MaybePromise<T>;
|
|
583
565
|
tags?: Lite.Tagged<unknown>[];
|
|
584
|
-
}): Lite.
|
|
585
|
-
/**
|
|
586
|
-
* Type guard to check if a value is a Service.
|
|
587
|
-
*
|
|
588
|
-
* @param value - The value to check
|
|
589
|
-
* @returns True if the value is a Service, false otherwise
|
|
590
|
-
*
|
|
591
|
-
* @example
|
|
592
|
-
* ```typescript
|
|
593
|
-
* if (isService(value)) {
|
|
594
|
-
* const methods = await scope.resolve(value)
|
|
595
|
-
* }
|
|
596
|
-
* ```
|
|
597
|
-
*/
|
|
598
|
-
declare function isService(value: unknown): value is Lite.Service<unknown>;
|
|
566
|
+
}): Lite.Atom<T>;
|
|
599
567
|
//#endregion
|
|
600
568
|
//#region src/scope.d.ts
|
|
601
569
|
/**
|
|
@@ -637,5 +605,5 @@ declare class ParseError extends Error {
|
|
|
637
605
|
//#region src/index.d.ts
|
|
638
606
|
declare const VERSION = "0.0.1";
|
|
639
607
|
//#endregion
|
|
640
|
-
export { type AtomState, type Lite, ParseError, VERSION, atom, atomSymbol, controller, controllerDepSymbol, controllerSymbol, createScope, flow, flowSymbol, isAtom, isControllerDep, isFlow, isPreset,
|
|
608
|
+
export { type AtomState, type Lite, ParseError, VERSION, atom, atomSymbol, controller, controllerDepSymbol, controllerSymbol, createScope, flow, flowSymbol, isAtom, isControllerDep, isFlow, isPreset, isTag, isTagExecutor, isTagged, preset, presetSymbol, service, tag, tagExecutorSymbol, tagSymbol, taggedSymbol, tags, typed, typedSymbol };
|
|
641
609
|
//# sourceMappingURL=index.d.mts.map
|
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/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/service.ts","../src/scope.ts","../src/errors.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -8,7 +8,6 @@ const presetSymbol = Symbol.for("@pumped-fn/lite/preset");
|
|
|
8
8
|
const controllerSymbol = Symbol.for("@pumped-fn/lite/controller");
|
|
9
9
|
const tagExecutorSymbol = Symbol.for("@pumped-fn/lite/tag-executor");
|
|
10
10
|
const typedSymbol = Symbol.for("@pumped-fn/lite/typed");
|
|
11
|
-
const serviceSymbol = Symbol.for("@pumped-fn/lite/service");
|
|
12
11
|
|
|
13
12
|
//#endregion
|
|
14
13
|
//#region src/errors.ts
|
|
@@ -177,25 +176,28 @@ function isAtom(value) {
|
|
|
177
176
|
* The Controller provides full lifecycle control: get, resolve, release, invalidate, and subscribe.
|
|
178
177
|
*
|
|
179
178
|
* @param atom - The Atom to wrap
|
|
179
|
+
* @param options - Optional configuration. Use { resolve: true } to auto-resolve before factory runs.
|
|
180
180
|
* @returns A ControllerDep that resolves to a Controller for the Atom
|
|
181
181
|
*
|
|
182
182
|
* @example
|
|
183
183
|
* ```typescript
|
|
184
184
|
* const configAtom = atom({ factory: () => fetchConfig() })
|
|
185
185
|
* const serverAtom = atom({
|
|
186
|
-
* deps: { config: controller(configAtom) },
|
|
186
|
+
* deps: { config: controller(configAtom, { resolve: true }) },
|
|
187
187
|
* factory: (ctx, { config }) => {
|
|
188
|
-
*
|
|
188
|
+
* // config.get() is safe - already resolved
|
|
189
|
+
* const unsub = config.on('resolved', () => ctx.invalidate())
|
|
189
190
|
* ctx.cleanup(unsub)
|
|
190
191
|
* return createServer(config.get().port)
|
|
191
192
|
* }
|
|
192
193
|
* })
|
|
193
194
|
* ```
|
|
194
195
|
*/
|
|
195
|
-
function controller(atom$1) {
|
|
196
|
+
function controller(atom$1, options) {
|
|
196
197
|
return {
|
|
197
198
|
[controllerDepSymbol]: true,
|
|
198
|
-
atom: atom$1
|
|
199
|
+
atom: atom$1,
|
|
200
|
+
resolve: options?.resolve
|
|
199
201
|
};
|
|
200
202
|
}
|
|
201
203
|
/**
|
|
@@ -308,28 +310,11 @@ function isPreset(value) {
|
|
|
308
310
|
function service(config) {
|
|
309
311
|
return {
|
|
310
312
|
[atomSymbol]: true,
|
|
311
|
-
[serviceSymbol]: true,
|
|
312
313
|
factory: config.factory,
|
|
313
314
|
deps: config.deps,
|
|
314
315
|
tags: config.tags
|
|
315
316
|
};
|
|
316
317
|
}
|
|
317
|
-
/**
|
|
318
|
-
* Type guard to check if a value is a Service.
|
|
319
|
-
*
|
|
320
|
-
* @param value - The value to check
|
|
321
|
-
* @returns True if the value is a Service, false otherwise
|
|
322
|
-
*
|
|
323
|
-
* @example
|
|
324
|
-
* ```typescript
|
|
325
|
-
* if (isService(value)) {
|
|
326
|
-
* const methods = await scope.resolve(value)
|
|
327
|
-
* }
|
|
328
|
-
* ```
|
|
329
|
-
*/
|
|
330
|
-
function isService(value) {
|
|
331
|
-
return typeof value === "object" && value !== null && value[serviceSymbol] === true;
|
|
332
|
-
}
|
|
333
318
|
|
|
334
319
|
//#endregion
|
|
335
320
|
//#region src/scope.ts
|
|
@@ -663,8 +648,11 @@ var ScopeImpl = class {
|
|
|
663
648
|
const result = {};
|
|
664
649
|
const tags$1 = tagSource ?? this.tags;
|
|
665
650
|
for (const [key, dep] of Object.entries(deps)) if (isAtom(dep)) result[key] = await this.resolve(dep);
|
|
666
|
-
else if (isControllerDep(dep))
|
|
667
|
-
|
|
651
|
+
else if (isControllerDep(dep)) {
|
|
652
|
+
const ctrl = new ControllerImpl(dep.atom, this);
|
|
653
|
+
if (dep.resolve) await ctrl.resolve();
|
|
654
|
+
result[key] = ctrl;
|
|
655
|
+
} else if (tagExecutorSymbol in dep) {
|
|
668
656
|
const tagExecutor = dep;
|
|
669
657
|
switch (tagExecutor.mode) {
|
|
670
658
|
case "required":
|
|
@@ -903,5 +891,5 @@ function createScope(options) {
|
|
|
903
891
|
const VERSION = "0.0.1";
|
|
904
892
|
|
|
905
893
|
//#endregion
|
|
906
|
-
export { ParseError, VERSION, atom, atomSymbol, controller, controllerDepSymbol, controllerSymbol, createScope, flow, flowSymbol, isAtom, isControllerDep, isFlow, isPreset,
|
|
894
|
+
export { ParseError, VERSION, atom, atomSymbol, controller, controllerDepSymbol, controllerSymbol, createScope, flow, flowSymbol, isAtom, isControllerDep, isFlow, isPreset, isTag, isTagExecutor, isTagged, preset, presetSymbol, service, tag, tagExecutorSymbol, tagSymbol, taggedSymbol, tags, typed, typedSymbol };
|
|
907
895
|
//# sourceMappingURL=index.mjs.map
|
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","serviceSymbol: unique symbol","phase: \"tag\" | \"flow-input\"","label: string","cause: unknown","tags","result: T[]","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","result: Record<string, unknown>","tags","parsedInput: unknown","flow"],"sources":["../src/symbols.ts","../src/errors.ts","../src/tag.ts","../src/atom.ts","../src/flow.ts","../src/preset.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 serviceSymbol: unique symbol = Symbol.for(\"@pumped-fn/lite/service\")\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\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 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 }\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 return 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 }) as unknown as Lite.Tag<T, boolean>\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 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<unknown>[]\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<unknown>[]\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<unknown>[]\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 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\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 * @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) },\n * factory: (ctx, { config }) => {\n * const unsub = config.on(() => ctx.invalidate())\n * ctx.cleanup(unsub)\n * return createServer(config.get().port)\n * }\n * })\n * ```\n */\nexport function controller<T>(atom: Lite.Atom<T>): Lite.ControllerDep<T> {\n return {\n [controllerDepSymbol]: true,\n atom,\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<unknown>[]\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<unknown>[]\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<unknown>[]\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<unknown>[]\n}): Lite.Flow<TOutput, TInput>\n\nexport function flow<\n TOutput,\n const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | { 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<unknown>[]\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> | { 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<unknown>[]\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> | { 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<unknown>[]\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 } from \"./types\"\n\n/**\n * Creates a preset value for an Atom, overriding its factory within a scope.\n *\n * @param atom - 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 = await createScope({\n * presets: [preset(dbAtom, mockDatabase)]\n * })\n * ```\n */\nexport function preset<T>(\n atom: Lite.Atom<T>,\n value: T | Lite.Atom<T>\n): Lite.Preset<T> {\n return {\n [presetSymbol]: true,\n atom,\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.atom, 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 { atomSymbol, serviceSymbol } from \"./symbols\"\nimport type { Lite, MaybePromise } from \"./types\"\n\nexport interface ServiceConfig<T, D extends Record<string, Lite.Dependency>> {\n deps?: D\n factory: Lite.ServiceFactory<T, D>\n tags?: Lite.Tagged<unknown>[]\n}\n\n/**\n * Creates a context-aware service that exposes multiple methods.\n * Each method receives ExecutionContext as its first parameter.\n *\n * @param config - Configuration object containing factory function, optional dependencies, and tags\n * @returns A Service instance that can be resolved to produce methods\n *\n * @example\n * ```typescript\n * const dbService = service({\n * deps: { pool: poolAtom },\n * factory: (ctx, { pool }) => ({\n * query: (ctx, sql: string) => pool.query(sql),\n * transaction: (ctx, fn) => pool.withTransaction(fn),\n * })\n * })\n * ```\n */\nexport function service<T>(config: {\n deps?: undefined\n factory: (ctx: Lite.ResolveContext) => MaybePromise<T>\n tags?: Lite.Tagged<unknown>[]\n}): Lite.Service<T>\n\nexport function service<\n T,\n const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | Lite.TagExecutor<unknown>>,\n>(config: {\n deps: D\n factory: (ctx: Lite.ResolveContext, deps: Lite.InferDeps<D>) => MaybePromise<T>\n tags?: Lite.Tagged<unknown>[]\n}): Lite.Service<T>\n\nexport function service<T, D extends Record<string, Lite.Dependency>>(\n config: ServiceConfig<T, D>\n): Lite.Service<T> {\n return {\n [atomSymbol]: true,\n [serviceSymbol]: true,\n factory: config.factory as unknown as Lite.ServiceFactory<T, Record<string, Lite.Dependency>>,\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 Service.\n *\n * @param value - The value to check\n * @returns True if the value is a Service, false otherwise\n *\n * @example\n * ```typescript\n * if (isService(value)) {\n * const methods = await scope.resolve(value)\n * }\n * ```\n */\nexport function isService(value: unknown): value is Lite.Service<unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n (value as Record<symbol, unknown>)[serviceSymbol] === true\n )\n}\n","import { controllerSymbol, tagExecutorSymbol } from \"./symbols\"\nimport type { Lite, MaybePromise, AtomState } from \"./types\"\nimport { isAtom, isControllerDep } from \"./atom\"\nimport { ParseError } from \"./errors\"\n\ntype ListenerEvent = 'resolving' | 'resolved' | '*'\n\nclass DataStoreImpl implements Lite.DataStore {\n private readonly map = new Map<symbol, unknown>()\n\n get<T>(tag: Lite.Tag<T, boolean>): T | undefined {\n return this.map.get(tag.key) as T | undefined\n }\n\n set<T>(tag: Lite.Tag<T, boolean>, value: T): void {\n this.map.set(tag.key, value)\n }\n\n has<T, H extends boolean>(tag: Lite.Tag<T, H>): boolean {\n return this.map.has(tag.key)\n }\n\n delete<T, H extends boolean>(tag: Lite.Tag<T, H>): boolean {\n return this.map.delete(tag.key)\n }\n\n clear(): void {\n this.map.clear()\n }\n\n getOrSet<T>(tag: Lite.Tag<T, true>): T\n getOrSet<T>(tag: Lite.Tag<T, true>, value: T): T\n getOrSet<T>(tag: Lite.Tag<T, false>, value: T): T\n getOrSet<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?: Lite.DataStore\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>, unknown | Lite.Atom<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 readonly extensions: Lite.Extension[]\n readonly tags: Lite.Tagged<unknown>[]\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.atom, p.value)\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 }\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 const entry = this.getOrCreateEntry(atom)\n const listeners = entry.listeners.get(event)!\n listeners.add(listener)\n return () => {\n listeners.delete(listener)\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)\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 DataStoreImpl()\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 value = await this.applyResolveExtensions(atom, 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 atom: Lite.Atom<T>,\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, atom, this) as () => Promise<T>\n }\n }\n\n return next()\n }\n\n async resolveDeps(\n deps: Record<string, Lite.Dependency> | undefined,\n tagSource?: Lite.Tagged<unknown>[]\n ): Promise<Record<string, unknown>> {\n if (!deps) return {}\n\n const result: Record<string, unknown> = {}\n const tags = tagSource ?? this.tags\n\n for (const [key, dep] of Object.entries(deps)) {\n if (isAtom(dep)) {\n result[key] = await this.resolve(dep)\n } else if (isControllerDep(dep)) {\n result[key] = new ControllerImpl(dep.atom, this)\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 result[key] = tagExecutor.tag.get(tags)\n break\n case \"optional\":\n result[key] = tagExecutor.tag.find(tags)\n break\n case \"all\":\n result[key] = tagExecutor.tag.collect(tags)\n break\n }\n }\n }\n\n return result\n }\n\n controller<T>(atom: Lite.Atom<T>): Lite.Controller<T> {\n return new ControllerImpl(atom, this)\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 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 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 }\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 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 return new ExecutionContextImpl(this, options)\n }\n}\n\nclass ExecutionContextImpl implements Lite.ExecutionContext {\n private cleanups: (() => MaybePromise<void>)[] = []\n private closed = false\n private readonly _input: unknown\n private readonly baseTags: Lite.Tagged<unknown>[]\n private _data: Map<symbol, unknown> | 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 }\n ) {\n this.parent = options?.parent\n this._input = options?.input\n const ctxTags = options?.tags\n this.baseTags = ctxTags?.length\n ? [...ctxTags, ...scope.tags]\n : scope.tags\n }\n\n get input(): unknown {\n return this._input\n }\n\n get data(): Map<symbol, unknown> {\n if (!this._data) {\n this._data = new Map()\n }\n return this._data\n }\n\n async exec(options: {\n flow: Lite.Flow<unknown, unknown>\n input?: unknown\n name?: string\n tags?: Lite.Tagged<unknown>[]\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, name: execName } = options\n let parsedInput: unknown = input\n if (flow.parse) {\n const label = execName ?? flow.name ?? \"anonymous\"\n try {\n parsedInput = await flow.parse(input)\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 tags: this.baseTags,\n input: parsedInput\n })\n\n try {\n return await childCtx.execFlowInternal(options)\n } finally {\n await childCtx.close()\n }\n } else {\n const childCtx = new ExecutionContextImpl(this.scope, {\n parent: this,\n tags: this.baseTags\n })\n\n try {\n return await childCtx.execFnInternal(options)\n } finally {\n await childCtx.close()\n }\n }\n }\n\n private async execFlowInternal(options: {\n flow: Lite.Flow<unknown, unknown>\n input?: unknown\n name?: string\n tags?: Lite.Tagged<unknown>[]\n }): Promise<unknown> {\n const { flow, tags: execTags } = options\n\n const hasExtraTags = (execTags?.length ?? 0) > 0 || (flow.tags?.length ?? 0) > 0\n const allTags = hasExtraTags\n ? [...(execTags ?? []), ...this.baseTags, ...(flow.tags ?? [])]\n : this.baseTags\n\n const resolvedDeps = await this.scope.resolveDeps(flow.deps, allTags)\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 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: () => MaybePromise<void>): void {\n this.cleanups.push(fn)\n }\n\n async close(): 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()\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 serviceSymbol,\n} from \"./symbols\"\nexport { tag, tags, isTag, isTagged, isTagExecutor } from \"./tag\"\nexport { atom, isAtom, controller, isControllerDep } from \"./atom\"\nexport { flow, isFlow, typed } from \"./flow\"\nexport { preset, isPreset } from \"./preset\"\nexport { service, isService } from \"./service\"\nexport { createScope } from \"./scope\"\nexport { ParseError } from \"./errors\"\n\nexport const VERSION = \"0.0.1\"\n"],"mappings":";AAAA,MAAaA,aAA4B,OAAO,IAAI,uBAAuB;AAC3E,MAAaC,aAA4B,OAAO,IAAI,uBAAuB;AAC3E,MAAaC,YAA2B,OAAO,IAAI,sBAAsB;AACzE,MAAaC,eAA8B,OAAO,IAAI,yBAAyB;AAC/E,MAAaC,sBAAqC,OAAO,IAAI,iCAAiC;AAC9F,MAAaC,eAA8B,OAAO,IAAI,yBAAyB;AAC/E,MAAaC,mBAAkC,OAAO,IAAI,6BAA6B;AACvF,MAAaC,oBAAmC,OAAO,IAAI,+BAA+B;AAC1F,MAAaC,cAA6B,OAAO,IAAI,wBAAwB;AAC7E,MAAaC,gBAA+B,OAAO,IAAI,0BAA0B;;;;ACTjF,IAAa,aAAb,cAAgC,MAAM;CACpC,AAAkB,OAAO;CAEzB,YACE,SACA,AAASC,OACT,AAASC,OACT,AAAkBC,OAClB;AACA,QAAM,QAAQ;EAJL;EACA;EACS;;;;;;ACgCtB,SAAgB,IAAO,SAAuD;CAC5E,MAAM,MAAM,OAAO,IAAI,uBAAuB,QAAQ,QAAQ;CAC9D,MAAM,aAAa,aAAa;CAChC,MAAM,eAAe,aAAa,QAAQ,UAAU;CACpD,MAAM,QAAQ,QAAQ;CAEtB,SAAS,aAAa,OAA0B;EAC9C,IAAI,iBAAiB;AACrB,MAAI,MACF,KAAI;AACF,oBAAiB,MAAM,MAAM;WACtB,KAAK;AACZ,SAAM,IAAI,WACR,wBAAwB,QAAQ,MAAM,IACtC,OACA,QAAQ,OACR,IACD;;AAGL,SAAO;IACJ,eAAe;GAChB;GACA,OAAO;GACR;;CAGH,SAAS,IAAI,QAA2B;EACtC,MAAMC,SAAO,MAAM,QAAQ,OAAO,GAAG,SAAS,OAAO,QAAQ,EAAE;AAC/D,OAAK,IAAI,IAAI,GAAG,IAAIA,OAAK,QAAQ,IAC/B,KAAIA,OAAK,GAAI,QAAQ,IAAK,QAAOA,OAAK,GAAI;AAE5C,MAAI,WAAY,QAAO;AACvB,QAAM,IAAI,MAAM,QAAQ,QAAQ,MAAM,gCAAgC;;CAGxE,SAAS,KAAK,QAAuC;EACnD,MAAMA,SAAO,MAAM,QAAQ,OAAO,GAAG,SAAS,OAAO,QAAQ,EAAE;AAC/D,OAAK,IAAI,IAAI,GAAG,IAAIA,OAAK,QAAQ,IAC/B,KAAIA,OAAK,GAAI,QAAQ,IAAK,QAAOA,OAAK,GAAI;AAE5C,MAAI,WAAY,QAAO;;CAIzB,SAAS,QAAQ,QAA6B;EAC5C,MAAMA,SAAO,MAAM,QAAQ,OAAO,GAAG,SAAS,OAAO,QAAQ,EAAE;EAC/D,MAAMC,SAAc,EAAE;AACtB,OAAK,IAAI,IAAI,GAAG,IAAID,OAAK,QAAQ,IAC/B,KAAIA,OAAK,GAAI,QAAQ,IAAK,QAAO,KAAKA,OAAK,GAAI,MAAsB;AAEvE,SAAO;;AAGT,QAAO,OAAO,OAAO,cAAc;GAChC,YAAY;EACb;EACA,OAAO,QAAQ;EACf;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;;;;;;;;;;;;;;;AAgBJ,SAAgB,MAAM,OAAqD;AACzE,QACE,OAAO,UAAU,cAChB,MAA6C,eAAe;;;;;;;;;;;;;;;AAiBjE,SAAgB,SAAS,OAA+C;AACtE,QACE,OAAO,UAAU,YACjB,UAAU,QACT,MAAkC,kBAAkB;;;;;AAOzD,MAAa,OAAO;CAelB,SAAY,OAAmD;AAC7D,SAAO;IAAG,oBAAoB;GAAM;GAAK,MAAM;GAAY;;CAiB7D,SAAY,OAA+D;AACzE,SAAO;IAAG,oBAAoB;GAAM;GAAK,MAAM;GAAY;;CAiB7D,IAAO,OAAqD;AAC1D,SAAO;IAAG,oBAAoB;GAAM;GAAK,MAAM;GAAO;;CAEzD;;;;;;;;;;;;;;AAeD,SAAgB,cAAc,OAAoD;AAChF,QACE,OAAO,UAAU,YACjB,UAAU,QACV,qBAAqB;;;;;AC1LzB,SAAgB,KACd,QACc;AACd,QAAO;GACJ,aAAa;EACd,SAAS,OAAO;EAChB,MAAM,OAAO;EACb,MAAM,OAAO;EACd;;;;;;;;;;;;;;;AAgBH,SAAgB,OAAO,OAA6C;AAClE,QACE,OAAO,UAAU,YACjB,UAAU,QACT,MAAkC,gBAAgB;;;;;;;;;;;;;;;;;;;;;;AAwBvD,SAAgB,WAAc,QAA2C;AACvE,QAAO;GACJ,sBAAsB;EACvB;EACD;;;;;;;;;;;;;;;AAgBH,SAAgB,gBAAgB,OAAsD;AACpF,QACE,OAAO,UAAU,YACjB,UAAU,QACT,MAAkC,yBAAyB;;;;;;;;;;;;;;;;;;;AChGhE,SAAgB,QAA0B;AACxC,QAAO,GAAG,cAAc,MAAM;;AA0FhC,SAAgB,KAId,QAAoE;CACpE,MAAM,QAAQ,OAAO;CACrB,MAAM,gBACJ,OAAO,UAAU,YAAY,UAAU,QAAQ,eAAe;AAEhE,QAAO;GACJ,aAAa;EACd,MAAM,OAAO;EACb,OAAO,gBACH,SACC;EACL,SAAS,OAAO;EAKhB,MAAM,OAAO;EACb,MAAM,OAAO;EACd;;;;;;;;;;;;;;;AAgBH,SAAgB,OAAO,OAAsD;AAC3E,QACE,OAAO,UAAU,YACjB,UAAU,QACT,MAAkC,gBAAgB;;;;;;;;;;;;;;;;;;;ACrIvD,SAAgB,OACd,QACA,OACgB;AAChB,QAAO;GACJ,eAAe;EAChB;EACA;EACD;;;;;;;;;;;;;;;AAgBH,SAAgB,SAAS,OAA+C;AACtE,QACE,OAAO,UAAU,YACjB,UAAU,QACT,MAAkC,kBAAkB;;;;;ACHzD,SAAgB,QACd,QACiB;AACjB,QAAO;GACJ,aAAa;GACb,gBAAgB;EACjB,SAAS,OAAO;EAChB,MAAM,OAAO;EACb,MAAM,OAAO;EACd;;;;;;;;;;;;;;;AAgBH,SAAgB,UAAU,OAAgD;AACxE,QACE,OAAO,UAAU,YACjB,UAAU,QACT,MAAkC,mBAAmB;;;;;AChE1D,IAAM,gBAAN,MAA8C;CAC5C,AAAiB,sBAAM,IAAI,KAAsB;CAEjD,IAAO,OAA0C;AAC/C,SAAO,KAAK,IAAI,IAAIE,MAAI,IAAI;;CAG9B,IAAO,OAA2B,OAAgB;AAChD,OAAK,IAAI,IAAIA,MAAI,KAAK,MAAM;;CAG9B,IAA0B,OAA8B;AACtD,SAAO,KAAK,IAAI,IAAIA,MAAI,IAAI;;CAG9B,OAA6B,OAA8B;AACzD,SAAO,KAAK,IAAI,OAAOA,MAAI,IAAI;;CAGjC,QAAc;AACZ,OAAK,IAAI,OAAO;;CAMlB,SAAY,OAA2B,OAAc;AACnD,MAAI,KAAK,IAAI,IAAIA,MAAI,IAAI,CACvB,QAAO,KAAK,IAAI,IAAIA,MAAI,IAAI;EAE9B,MAAM,cAAc,UAAU,SAAY,QAASA,MAAI;AACvD,OAAK,IAAI,IAAIA,MAAI,KAAK,YAAY;AAClC,SAAO;;;AAgBX,IAAM,mBAAN,MAA6D;CAC3D,AAAQ,4BAAY,IAAI,KAAiB;CACzC,AAAQ;CACR,AAAQ,YAAiC;CAEzC,YACE,AAAQC,MACR,AAAQC,UACR,AAAQC,IACR;EAHQ;EACA;EACA;AAER,MAAI,KAAK,UAAU,WACjB,OAAM,IAAI,MAAM,qCAAqC;AAGvD,OAAK,eAAe,SAAS,KAAK,KAAK,CAAC;AAExC,OAAK,YAAY,KAAK,GAAG,kBAAkB;GACzC,MAAM,YAAY,KAAK,SAAS,KAAK,KAAK,KAAK,CAAC;AAChD,OAAI,CAAC,KAAK,GAAG,KAAK,cAAc,UAAU,EAAE;AAC1C,SAAK,eAAe;AACpB,SAAK,iBAAiB;;IAExB;;CAGJ,MAAS;AACP,SAAO,KAAK;;CAGd,UAAU,UAAkC;AAC1C,OAAK,UAAU,IAAI,SAAS;AAE5B,eAAa;AACX,QAAK,UAAU,OAAO,SAAS;AAC/B,OAAI,KAAK,UAAU,SAAS,EAC1B,MAAK,SAAS;;;CAKpB,AAAQ,kBAAwB;AAC9B,OAAK,MAAM,YAAY,KAAK,UAC1B,WAAU;;CAId,AAAQ,UAAgB;AACtB,OAAK,aAAa;AAClB,OAAK,YAAY;AACjB,OAAK,UAAU,OAAO;;;AAI1B,IAAM,iBAAN,MAAsD;CACpD,CAAU,oBAAoB;CAE9B,YACE,AAAQC,QACR,AAAQC,OACR;EAFQ;EACA;;CAGV,IAAI,QAAmB;AAErB,SADc,KAAK,MAAM,SAAS,KAAK,KAAK,EAC9B,SAAS;;CAGzB,MAAS;EACP,MAAM,QAAQ,KAAK,MAAM,SAAS,KAAK,KAAK;AAC5C,MAAI,CAAC,SAAS,MAAM,UAAU,OAC5B,OAAM,IAAI,MAAM,oBAAoB;AAEtC,MAAI,MAAM,UAAU,YAAY,MAAM,MACpC,OAAM,MAAM;AAEd,MAAI,MAAM,UAAU,eAAe,MAAM,SACvC,QAAO,MAAM;AAEf,MAAI,MAAM,UAAU,cAAc,MAAM,SACtC,QAAO,MAAM;AAEf,QAAM,IAAI,MAAM,oBAAoB;;CAGtC,MAAM,UAAsB;AAC1B,SAAO,KAAK,MAAM,QAAQ,KAAK,KAAK;;CAGtC,MAAM,UAAyB;AAC7B,SAAO,KAAK,MAAM,QAAQ,KAAK,KAAK;;CAGtC,aAAmB;AACjB,OAAK,MAAM,WAAW,KAAK,KAAK;;CAGlC,IAAI,OAAgB;AAClB,OAAK,MAAM,YAAY,KAAK,MAAM,MAAM;;CAG1C,OAAO,IAA0B;AAC/B,OAAK,MAAM,eAAe,KAAK,MAAM,GAAG;;CAG1C,GAAG,OAAsB,UAAkC;AACzD,SAAO,KAAK,MAAM,YAAY,KAAK,MAAM,OAAO,SAAS;;;AAI7D,IAAM,YAAN,MAAsC;CACpC,AAAQ,wBAAQ,IAAI,KAA6C;CACjE,AAAQ,0BAAU,IAAI,KAAuD;CAC7E,AAAQ,4BAAY,IAAI,KAAyB;CACjD,AAAQ,0BAAU,IAAI,KAA2C;CACjE,AAAQ,iCAAiB,IAAI,KAA0D;CACvF,AAAQ,oCAAoB,IAAI,KAAyB;CACzD,AAAQ,wBAAwB;CAChC,AAAQ,oBAAoD;CAC5D,AAAQ,eAAqC;CAC7C,AAAQ,cAAc;CACtB,AAAS;CACT,AAAS;CACT,AAAS;CAET,AAAQ,qBAAwB,QAA0B;EACxD,MAAM,QAAQ,KAAK,MAAM,IAAIC,OAAK;AAClC,MAAI,CAAC,SAAS,MAAM,UAAU,OAAQ;AAEtC,MAAI,MAAM,UAAU,aAAa;AAC/B,SAAM,oBAAoB;AAC1B;;AAGF,OAAK,kBAAkB,IAAIA,OAAK;AAEhC,MAAI,CAAC,KAAK,cAAc;AACtB,QAAK,oCAAoB,IAAI,KAAK;AAClC,QAAK,wBAAwB;AAC7B,QAAK,eAAe,IAAI,SAAe,SAAS,WAAW;AACzD,yBAAqB;AACnB,UAAK,0BAA0B,CAAC,KAAK,QAAQ,CAAC,MAAM,OAAO;MAC3D;KACF;;;CAIN,MAAc,2BAA0C;AACtD,MAAI;AACF,UAAO,KAAK,kBAAkB,OAAO,GAAG;IACtC,MAAMA,SAAO,KAAK,kBAAkB,QAAQ,CAAC,MAAM,CAAC;AACpD,SAAK,kBAAkB,OAAOA,OAAK;AAEnC,QAAI,KAAK,kBAAmB,IAAIA,OAAK,EAAE;KACrC,MAAM,aAAa,MAAM,KAAK,KAAK,kBAAmB;AACtD,gBAAW,KAAKA,OAAK;KACrB,MAAM,OAAO,WACV,KAAI,MAAK,EAAE,SAAS,QAAQ,cAAc,CAC1C,KAAK,MAAM;AACd,WAAM,IAAI,MAAM,wCAAwC,OAAO;;AAGjE,SAAK,kBAAmB,IAAIA,OAAK;AACjC,UAAM,KAAK,uBAAuBA,OAAK;;YAEjC;AACR,QAAK,oBAAoB;AACzB,QAAK,eAAe;AACpB,QAAK,wBAAwB;;;CAIjC,YAAY,SAA6B;AACvC,OAAK,aAAa,SAAS,cAAc,EAAE;AAC3C,OAAK,OAAO,SAAS,QAAQ,EAAE;AAE/B,OAAK,MAAM,KAAK,SAAS,WAAW,EAAE,CACpC,MAAK,QAAQ,IAAI,EAAE,MAAM,EAAE,MAAM;AAGnC,OAAK,QAAQ,KAAK,MAAM;;CAG1B,MAAc,OAAsB;AAClC,OAAK,MAAM,OAAO,KAAK,WACrB,KAAI,IAAI,KACN,OAAM,IAAI,KAAK,KAAK;AAGxB,OAAK,cAAc;;CAGrB,SAAY,QAA8C;AACxD,SAAO,KAAK,MAAM,IAAIA,OAAK;;CAG7B,AAAQ,iBAAoB,QAAkC;EAC5D,IAAI,QAAQ,KAAK,MAAM,IAAIA,OAAK;AAChC,MAAI,CAAC,OAAO;AACV,WAAQ;IACN,OAAO;IACP,UAAU;IACV,UAAU,EAAE;IACZ,WAAW,IAAI,IAAI;KACjB,CAAC,6BAAa,IAAI,KAAK,CAAC;KACxB,CAAC,4BAAY,IAAI,KAAK,CAAC;KACvB,CAAC,qBAAK,IAAI,KAAK,CAAC;KACjB,CAAC;IACF,mBAAmB;IACpB;AACD,QAAK,MAAM,IAAIA,QAAM,MAA4B;;AAEnD,SAAO;;CAGT,YAAe,QAAoB,OAAsB,UAAkC;EAEzF,MAAM,YADQ,KAAK,iBAAiBA,OAAK,CACjB,UAAU,IAAI,MAAM;AAC5C,YAAU,IAAI,SAAS;AACvB,eAAa;AACX,aAAU,OAAO,SAAS;;;CAI9B,AAAQ,gBAAmB,QAAoB,OAAuC;EACpF,MAAM,QAAQ,KAAK,MAAM,IAAIA,OAAK;AAClC,MAAI,CAAC,MAAO;EAEZ,MAAM,iBAAiB,MAAM,UAAU,IAAI,MAAM;AACjD,MAAI,eACF,MAAK,MAAM,YAAY,eACrB,WAAU;EAId,MAAM,eAAe,MAAM,UAAU,IAAI,IAAI;AAC7C,MAAI,aACF,MAAK,MAAM,YAAY,aACrB,WAAU;;CAKhB,AAAQ,mBAAsB,QAA0B;EACtD,MAAM,QAAQ,KAAK,MAAM,IAAIA,OAAK;AAClC,MAAI,CAAC,MAAO;EAEZ,MAAM,eAAe,MAAM,UAAU,IAAI,IAAI;AAC7C,MAAI,aACF,MAAK,MAAM,YAAY,aACrB,WAAU;;CAKhB,AAAQ,gBAAgB,OAAkB,QAAgC;EACxE,MAAM,WAAW,KAAK,eAAe,IAAI,MAAM;AAC/C,MAAI,UAAU;GACZ,MAAM,YAAY,SAAS,IAAIA,OAAK;AACpC,OAAI,UACF,MAAK,MAAM,YAAY,UACrB,WAAU;;;CAMlB,GAAG,OAAkB,QAA0B,UAAkC;EAC/E,IAAI,WAAW,KAAK,eAAe,IAAI,MAAM;AAC7C,MAAI,CAAC,UAAU;AACb,8BAAW,IAAI,KAAK;AACpB,QAAK,eAAe,IAAI,OAAO,SAAS;;EAE1C,IAAI,YAAY,SAAS,IAAIA,OAAK;AAClC,MAAI,CAAC,WAAW;AACd,+BAAY,IAAI,KAAK;AACrB,YAAS,IAAIA,QAAM,UAAU;;AAE/B,YAAU,IAAI,SAAS;EAEvB,MAAM,mBAAmB;EACzB,MAAM,oBAAoB;AAE1B,eAAa;AACX,qBAAkB,OAAO,SAAS;AAClC,OAAI,kBAAkB,SAAS,GAAG;AAChC,qBAAiB,OAAOA,OAAK;AAC7B,QAAI,iBAAiB,SAAS,EAC5B,MAAK,eAAe,OAAO,MAAM;;;;CAMzC,MAAM,QAAW,QAAgC;AAC/C,MAAI,CAAC,KAAK,YACR,OAAM,KAAK;EAGb,MAAM,QAAQ,KAAK,MAAM,IAAIA,OAAK;AAClC,MAAI,OAAO,UAAU,WACnB,QAAO,MAAM;EAGf,MAAM,iBAAiB,KAAK,QAAQ,IAAIA,OAAK;AAC7C,MAAI,eACF,QAAO;AAGT,MAAI,KAAK,UAAU,IAAIA,OAAK,CAC1B,OAAM,IAAI,MAAM,+BAA+B;EAGjD,MAAM,cAAc,KAAK,QAAQ,IAAIA,OAAK;AAC1C,MAAI,gBAAgB,QAAW;AAC7B,OAAI,OAAO,YAAY,CACrB,QAAO,KAAK,QAAQ,YAA4B;GAElD,MAAM,WAAW,KAAK,iBAAiBA,OAAK;AAC5C,YAAS,QAAQ;AACjB,YAAS,QAAQ;AACjB,YAAS,WAAW;AACpB,QAAK,gBAAgB,YAAYA,OAAK;AACtC,QAAK,gBAAgBA,QAAM,WAAW;AACtC,UAAO,SAAS;;AAGlB,OAAK,UAAU,IAAIA,OAAK;EAExB,MAAM,UAAU,KAAK,UAAUA,OAAK;AACpC,OAAK,QAAQ,IAAIA,QAAM,QAA4B;AAEnD,MAAI;AACF,UAAO,MAAM;YACL;AACR,QAAK,UAAU,OAAOA,OAAK;AAC3B,QAAK,QAAQ,OAAOA,OAAK;;;CAI7B,MAAc,UAAa,QAAgC;EACzD,MAAM,QAAQ,KAAK,iBAAiBA,OAAK;AAGzC,MAAI,EADiB,MAAM,UAAU,cAClB;AACjB,SAAM,QAAQ;AACd,QAAK,gBAAgB,aAAaA,OAAK;AACvC,QAAK,gBAAgBA,QAAM,YAAY;;EAGzC,MAAM,eAAe,MAAM,KAAK,YAAYA,OAAK,KAAK;EAEtD,MAAMC,MAA2B;GAC/B,UAAU,OAAO,MAAM,SAAS,KAAK,GAAG;GACxC,kBAAkB;AAChB,SAAK,qBAAqBD,OAAK;;GAEjC,OAAO;GACP,IAAI,OAAO;AACT,QAAI,CAAC,MAAM,KACT,OAAM,OAAO,IAAI,eAAe;AAElC,WAAO,MAAM;;GAEhB;EAED,MAAM,UAAUA,OAAK;EAKrB,MAAM,YAAY,YAAY;AAC5B,OAAIA,OAAK,QAAQ,OAAO,KAAKA,OAAK,KAAK,CAAC,SAAS,EAC/C,QAAO,QAAQ,KAAK,aAAa;OAEjC,QAAO,QAAQ,IAAI;;AAIvB,MAAI;GACF,MAAM,QAAQ,MAAM,KAAK,uBAAuBA,QAAM,UAAU;AAChE,SAAM,QAAQ;AACd,SAAM,QAAQ;AACd,SAAM,WAAW;AACjB,SAAM,QAAQ;AACd,QAAK,gBAAgB,YAAYA,OAAK;AACtC,QAAK,gBAAgBA,QAAM,WAAW;AAEtC,OAAI,MAAM,mBAAmB;AAC3B,UAAM,oBAAoB;AAC1B,SAAK,mBAAmB,OAAOA,OAAK;AACpC,SAAK,qBAAqBA,OAAK;cACtB,MAAM,YAAY;AAC3B,SAAK,mBAAmB,OAAOA,OAAK;AACpC,SAAK,qBAAqBA,OAAK;;AAGjC,UAAO;WACA,KAAK;AACZ,SAAM,QAAQ;AACd,SAAM,QAAQ,eAAe,QAAQ,MAAM,IAAI,MAAM,OAAO,IAAI,CAAC;AACjE,SAAM,QAAQ;AACd,SAAM,WAAW;AACjB,QAAK,gBAAgB,UAAUA,OAAK;AACpC,QAAK,mBAAmBA,OAAK;AAE7B,OAAI,MAAM,mBAAmB;AAC3B,UAAM,oBAAoB;AAC1B,SAAK,mBAAmB,OAAOA,OAAK;AACpC,SAAK,qBAAqBA,OAAK;;AAGjC,SAAM,MAAM;;;CAIhB,MAAc,uBACZ,QACA,WACY;EACZ,IAAI,OAAO;AAEX,OAAK,IAAI,IAAI,KAAK,WAAW,SAAS,GAAG,KAAK,GAAG,KAAK;GACpD,MAAM,MAAM,KAAK,WAAW;AAC5B,OAAI,KAAK,aAAa;IACpB,MAAM,cAAc;AACpB,WAAO,IAAI,YAAY,KAAK,KAAK,aAAaA,QAAM,KAAK;;;AAI7D,SAAO,MAAM;;CAGf,MAAM,YACJ,MACA,WACkC;AAClC,MAAI,CAAC,KAAM,QAAO,EAAE;EAEpB,MAAME,SAAkC,EAAE;EAC1C,MAAMC,SAAO,aAAa,KAAK;AAE/B,OAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,KAAK,CAC3C,KAAI,OAAO,IAAI,CACb,QAAO,OAAO,MAAM,KAAK,QAAQ,IAAI;WAC5B,gBAAgB,IAAI,CAC7B,QAAO,OAAO,IAAI,eAAe,IAAI,MAAM,KAAK;WACvC,qBAAsB,KAAgB;GAC/C,MAAM,cAAc;AAEpB,WAAQ,YAAY,MAApB;IACE,KAAK;AACH,YAAO,OAAO,YAAY,IAAI,IAAIA,OAAK;AACvC;IACF,KAAK;AACH,YAAO,OAAO,YAAY,IAAI,KAAKA,OAAK;AACxC;IACF,KAAK;AACH,YAAO,OAAO,YAAY,IAAI,QAAQA,OAAK;AAC3C;;;AAKR,SAAO;;CAGT,WAAc,QAAwC;AACpD,SAAO,IAAI,eAAeH,QAAM,KAAK;;CAGvC,OACE,QACA,UACA,SACsB;AAGtB,SAAO,IAAI,iBAFE,KAAK,WAAWA,OAAK,EAEA,UADvB,SAAS,QAAQ,GAAG,MAAM,MAAM,GACI;;CAGjD,WAAc,QAA0B;EACtC,MAAM,QAAQ,KAAK,MAAM,IAAIA,OAAK;AAClC,MAAI,CAAC,MAAO;AAEZ,MAAI,MAAM,UAAU,OAAQ;AAE5B,MAAI,MAAM,UAAU,aAAa;AAC/B,SAAM,oBAAoB;AAC1B;;AAGF,OAAK,qBAAqBA,OAAK;;CAGjC,YAAe,QAAoB,OAAgB;EACjD,MAAM,QAAQ,KAAK,MAAM,IAAIA,OAAK;AAClC,MAAI,CAAC,SAAS,MAAM,UAAU,OAC5B,OAAM,IAAI,MAAM,oBAAoB;AAEtC,MAAI,MAAM,UAAU,YAAY,MAAM,MACpC,OAAM,MAAM;AAGd,MAAI,MAAM,UAAU,aAAa;AAC/B,SAAM,aAAa,EAAE,OAAO;AAC5B;;AAGF,QAAM,aAAa,EAAE,OAAO;AAC5B,OAAK,qBAAqBA,OAAK;;CAGjC,eAAkB,QAAoB,IAA0B;EAC9D,MAAM,QAAQ,KAAK,MAAM,IAAIA,OAAK;AAClC,MAAI,CAAC,SAAS,MAAM,UAAU,OAC5B,OAAM,IAAI,MAAM,oBAAoB;AAEtC,MAAI,MAAM,UAAU,YAAY,MAAM,MACpC,OAAM,MAAM;AAGd,MAAI,MAAM,UAAU,aAAa;AAC/B,SAAM,aAAa,EAAE,IAAI;AACzB;;AAGF,QAAM,aAAa,EAAE,IAAI;AACzB,OAAK,qBAAqBA,OAAK;;CAGjC,MAAc,uBAA0B,QAAmC;EACzE,MAAM,QAAQ,KAAK,MAAM,IAAIA,OAAK;AAClC,MAAI,CAAC,MAAO;AACZ,MAAI,MAAM,UAAU,OAAQ;EAE5B,MAAM,gBAAgB,MAAM;EAC5B,MAAM,aAAa,MAAM;AACzB,QAAM,aAAa;AAEnB,OAAK,IAAI,IAAI,MAAM,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK;GACnD,MAAM,UAAU,MAAM,SAAS;AAC/B,OAAI,QAAS,OAAM,SAAS;;AAE9B,QAAM,WAAW,EAAE;AAEnB,QAAM,QAAQ;AACd,QAAM,QAAQ;AACd,QAAM,QAAQ;AACd,QAAM,oBAAoB;AAC1B,OAAK,QAAQ,OAAOA,OAAK;AACzB,OAAK,UAAU,OAAOA,OAAK;AAC3B,OAAK,gBAAgB,aAAaA,OAAK;AACvC,OAAK,gBAAgBA,QAAM,YAAY;AAEvC,MAAI,YAAY;AACd,OAAI,WAAW,WACb,OAAM,QAAQ,WAAW;OAEzB,OAAM,QAAQ,WAAW,GAAG,cAAmB;AAEjD,SAAM,QAAQ;AACd,SAAM,WAAW;AACjB,QAAK,gBAAgB,YAAYA,OAAK;AACtC,QAAK,gBAAgBA,QAAM,WAAW;AACtC;;AAGF,QAAM,KAAK,QAAQA,OAAK;;CAG1B,MAAM,QAAW,QAAmC;EAClD,MAAM,QAAQ,KAAK,MAAM,IAAIA,OAAK;AAClC,MAAI,CAAC,MAAO;AAEZ,OAAK,IAAI,IAAI,MAAM,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK;GACnD,MAAM,UAAU,MAAM,SAAS;AAC/B,OAAI,QAAS,OAAM,SAAS;;AAG9B,OAAK,MAAM,OAAOA,OAAK;;CAGzB,MAAM,UAAyB;AAC7B,OAAK,MAAM,OAAO,KAAK,WACrB,KAAI,IAAI,QACN,OAAM,IAAI,QAAQ,KAAK;EAI3B,MAAM,QAAQ,MAAM,KAAK,KAAK,MAAM,MAAM,CAAC;AAC3C,OAAK,MAAMA,UAAQ,MACjB,OAAM,KAAK,QAAQA,OAA2B;;CAIlD,MAAM,QAAuB;AAC3B,MAAI,KAAK,aACP,OAAM,KAAK;;CAIf,cAAc,SAA4D;AACxE,SAAO,IAAI,qBAAqB,MAAM,QAAQ;;;AAIlD,IAAM,uBAAN,MAAM,qBAAsD;CAC1D,AAAQ,WAAyC,EAAE;CACnD,AAAQ,SAAS;CACjB,AAAiB;CACjB,AAAiB;CACjB,AAAQ;CACR,AAAS;CAET,YACE,AAASD,OACT,SAIA;EALS;AAMT,OAAK,SAAS,SAAS;AACvB,OAAK,SAAS,SAAS;EACvB,MAAM,UAAU,SAAS;AACzB,OAAK,WAAW,SAAS,SACrB,CAAC,GAAG,SAAS,GAAG,MAAM,KAAK,GAC3B,MAAM;;CAGZ,IAAI,QAAiB;AACnB,SAAO,KAAK;;CAGd,IAAI,OAA6B;AAC/B,MAAI,CAAC,KAAK,MACR,MAAK,wBAAQ,IAAI,KAAK;AAExB,SAAO,KAAK;;CAGd,MAAM,KAAK,SAKwC;AACjD,MAAI,KAAK,OACP,OAAM,IAAI,MAAM,6BAA6B;AAG/C,MAAI,UAAU,SAAS;GACrB,MAAM,EAAE,cAAM,OAAO,MAAM,aAAa;GACxC,IAAIK,cAAuB;AAC3B,OAAIC,OAAK,OAAO;IACd,MAAM,QAAQ,YAAYA,OAAK,QAAQ;AACvC,QAAI;AACF,mBAAc,MAAMA,OAAK,MAAM,MAAM;aAC9B,KAAK;AACZ,WAAM,IAAI,WACR,+BAA+B,MAAM,IACrC,cACA,OACA,IACD;;;GAIL,MAAM,WAAW,IAAI,qBAAqB,KAAK,OAAO;IACpD,QAAQ;IACR,MAAM,KAAK;IACX,OAAO;IACR,CAAC;AAEF,OAAI;AACF,WAAO,MAAM,SAAS,iBAAiB,QAAQ;aACvC;AACR,UAAM,SAAS,OAAO;;SAEnB;GACL,MAAM,WAAW,IAAI,qBAAqB,KAAK,OAAO;IACpD,QAAQ;IACR,MAAM,KAAK;IACZ,CAAC;AAEF,OAAI;AACF,WAAO,MAAM,SAAS,eAAe,QAAQ;aACrC;AACR,UAAM,SAAS,OAAO;;;;CAK5B,MAAc,iBAAiB,SAKV;EACnB,MAAM,EAAE,cAAM,MAAM,aAAa;EAGjC,MAAM,WADgB,UAAU,UAAU,KAAK,MAAMA,OAAK,MAAM,UAAU,KAAK,IAE3E;GAAC,GAAI,YAAY,EAAE;GAAG,GAAG,KAAK;GAAU,GAAIA,OAAK,QAAQ,EAAE;GAAE,GAC7D,KAAK;EAET,MAAM,eAAe,MAAM,KAAK,MAAM,YAAYA,OAAK,MAAM,QAAQ;EAErE,MAAM,UAAUA,OAAK;EAKrB,MAAM,SAAS,YAA8B;AAC3C,OAAIA,OAAK,QAAQ,OAAO,KAAKA,OAAK,KAAK,CAAC,SAAS,EAC/C,QAAO,QAAQ,MAAM,aAAa;OAElC,QAAO,QAAQ,KAAK;;AAIxB,SAAO,KAAK,oBAAoBA,QAAM,OAAO;;CAG/C,MAAc,eAAe,SAAwD;EACnF,MAAM,EAAE,IAAI,WAAW;EACvB,MAAM,eAAe,QAAQ,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AACzD,SAAO,KAAK,oBAAoB,IAAI,OAAO;;CAG7C,MAAc,oBACZ,QACA,QACkB;EAClB,IAAI,OAAO;AAEX,OAAK,IAAI,IAAI,KAAK,MAAM,WAAW,SAAS,GAAG,KAAK,GAAG,KAAK;GAC1D,MAAM,MAAM,KAAK,MAAM,WAAW;AAClC,OAAI,KAAK,UAAU;IACjB,MAAM,cAAc;AACpB,WAAO,IAAI,SAAS,KAAK,KAAK,aAAa,QAAQ,KAAK;;;AAI5D,SAAO,MAAM;;CAGf,QAAQ,IAAoC;AAC1C,OAAK,SAAS,KAAK,GAAG;;CAGxB,MAAM,QAAuB;AAC3B,MAAI,KAAK,OAAQ;AAEjB,OAAK,SAAS;AAEd,OAAK,IAAI,IAAI,KAAK,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK;GAClD,MAAM,UAAU,KAAK,SAAS;AAC9B,OAAI,QAAS,OAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BlC,SAAgB,YAAY,SAAyC;AACnE,QAAO,IAAI,UAAU,QAAQ;;;;;ACrzB/B,MAAa,UAAU"}
|
|
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","phase: \"tag\" | \"flow-input\"","label: string","cause: unknown","tags","result: T[]","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","result: Record<string, unknown>","tags","parsedInput: unknown","flow"],"sources":["../src/symbols.ts","../src/errors.ts","../src/tag.ts","../src/atom.ts","../src/flow.ts","../src/preset.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\")\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\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 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 }\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 return 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 }) as unknown as Lite.Tag<T, boolean>\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 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<unknown>[]\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<unknown>[]\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<unknown>[]\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 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\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<unknown>[]\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<unknown>[]\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<unknown>[]\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<unknown>[]\n}): Lite.Flow<TOutput, TInput>\n\nexport function flow<\n TOutput,\n const D extends Record<string, Lite.Atom<unknown> | Lite.ControllerDep<unknown> | { 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<unknown>[]\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> | { 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<unknown>[]\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> | { 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<unknown>[]\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 } from \"./types\"\n\n/**\n * Creates a preset value for an Atom, overriding its factory within a scope.\n *\n * @param atom - 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 = await createScope({\n * presets: [preset(dbAtom, mockDatabase)]\n * })\n * ```\n */\nexport function preset<T>(\n atom: Lite.Atom<T>,\n value: T | Lite.Atom<T>\n): Lite.Preset<T> {\n return {\n [presetSymbol]: true,\n atom,\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.atom, 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 { 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<unknown>[]\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<unknown>>,\n>(config: {\n deps: D\n factory: (ctx: Lite.ResolveContext, deps: Lite.InferDeps<D>) => MaybePromise<T>\n tags?: Lite.Tagged<unknown>[]\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<unknown>[]\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 { ParseError } from \"./errors\"\n\ntype ListenerEvent = 'resolving' | 'resolved' | '*'\n\nclass DataStoreImpl implements Lite.DataStore {\n private readonly map = new Map<symbol, unknown>()\n\n get<T>(tag: Lite.Tag<T, boolean>): T | undefined {\n return this.map.get(tag.key) as T | undefined\n }\n\n set<T>(tag: Lite.Tag<T, boolean>, value: T): void {\n this.map.set(tag.key, value)\n }\n\n has<T, H extends boolean>(tag: Lite.Tag<T, H>): boolean {\n return this.map.has(tag.key)\n }\n\n delete<T, H extends boolean>(tag: Lite.Tag<T, H>): boolean {\n return this.map.delete(tag.key)\n }\n\n clear(): void {\n this.map.clear()\n }\n\n getOrSet<T>(tag: Lite.Tag<T, true>): T\n getOrSet<T>(tag: Lite.Tag<T, true>, value: T): T\n getOrSet<T>(tag: Lite.Tag<T, false>, value: T): T\n getOrSet<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?: Lite.DataStore\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>, unknown | Lite.Atom<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 readonly extensions: Lite.Extension[]\n readonly tags: Lite.Tagged<unknown>[]\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.atom, p.value)\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 }\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 const entry = this.getOrCreateEntry(atom)\n const listeners = entry.listeners.get(event)!\n listeners.add(listener)\n return () => {\n listeners.delete(listener)\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)\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 DataStoreImpl()\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 value = await this.applyResolveExtensions(atom, 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 atom: Lite.Atom<T>,\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, atom, this) as () => Promise<T>\n }\n }\n\n return next()\n }\n\n async resolveDeps(\n deps: Record<string, Lite.Dependency> | undefined,\n tagSource?: Lite.Tagged<unknown>[]\n ): Promise<Record<string, unknown>> {\n if (!deps) return {}\n\n const result: Record<string, unknown> = {}\n const tags = tagSource ?? this.tags\n\n for (const [key, dep] of Object.entries(deps)) {\n if (isAtom(dep)) {\n result[key] = await this.resolve(dep)\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 } 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 result[key] = tagExecutor.tag.get(tags)\n break\n case \"optional\":\n result[key] = tagExecutor.tag.find(tags)\n break\n case \"all\":\n result[key] = tagExecutor.tag.collect(tags)\n break\n }\n }\n }\n\n return result\n }\n\n controller<T>(atom: Lite.Atom<T>): Lite.Controller<T> {\n return new ControllerImpl(atom, this)\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 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 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 }\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 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 return new ExecutionContextImpl(this, options)\n }\n}\n\nclass ExecutionContextImpl implements Lite.ExecutionContext {\n private cleanups: (() => MaybePromise<void>)[] = []\n private closed = false\n private readonly _input: unknown\n private readonly baseTags: Lite.Tagged<unknown>[]\n private _data: Map<symbol, unknown> | 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 }\n ) {\n this.parent = options?.parent\n this._input = options?.input\n const ctxTags = options?.tags\n this.baseTags = ctxTags?.length\n ? [...ctxTags, ...scope.tags]\n : scope.tags\n }\n\n get input(): unknown {\n return this._input\n }\n\n get data(): Map<symbol, unknown> {\n if (!this._data) {\n this._data = new Map()\n }\n return this._data\n }\n\n async exec(options: {\n flow: Lite.Flow<unknown, unknown>\n input?: unknown\n name?: string\n tags?: Lite.Tagged<unknown>[]\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, name: execName } = options\n let parsedInput: unknown = input\n if (flow.parse) {\n const label = execName ?? flow.name ?? \"anonymous\"\n try {\n parsedInput = await flow.parse(input)\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 tags: this.baseTags,\n input: parsedInput\n })\n\n try {\n return await childCtx.execFlowInternal(options)\n } finally {\n await childCtx.close()\n }\n } else {\n const childCtx = new ExecutionContextImpl(this.scope, {\n parent: this,\n tags: this.baseTags\n })\n\n try {\n return await childCtx.execFnInternal(options)\n } finally {\n await childCtx.close()\n }\n }\n }\n\n private async execFlowInternal(options: {\n flow: Lite.Flow<unknown, unknown>\n input?: unknown\n name?: string\n tags?: Lite.Tagged<unknown>[]\n }): Promise<unknown> {\n const { flow, tags: execTags } = options\n\n const hasExtraTags = (execTags?.length ?? 0) > 0 || (flow.tags?.length ?? 0) > 0\n const allTags = hasExtraTags\n ? [...(execTags ?? []), ...this.baseTags, ...(flow.tags ?? [])]\n : this.baseTags\n\n const resolvedDeps = await this.scope.resolveDeps(flow.deps, allTags)\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 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: () => MaybePromise<void>): void {\n this.cleanups.push(fn)\n }\n\n async close(): 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()\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} from \"./symbols\"\nexport { tag, tags, isTag, isTagged, isTagExecutor } from \"./tag\"\nexport { atom, isAtom, controller, isControllerDep } from \"./atom\"\nexport { flow, isFlow, typed } from \"./flow\"\nexport { preset, isPreset } from \"./preset\"\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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"}
|