@pumped-fn/lite 1.2.2 → 1.3.1

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 CHANGED
@@ -1,5 +1,69 @@
1
1
  # @pumped-fn/lite
2
2
 
3
+ ## 1.3.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 3208cfe: Improve README documentation clarity and reduce size by 19%
8
+
9
+ **Enhanced API behavior documentation:**
10
+
11
+ - `ctx.cleanup()`: Clarified lifecycle - runs on every invalidation (before re-resolution) and release, LIFO order
12
+ - `ctx.data`: Clarified lifecycle - persists across invalidations, cleared on release, per-atom isolation
13
+ - `controller(atom)` as dep: Explained key difference - receives unresolved controller vs auto-resolved value
14
+ - `ctx.invalidate()`: Explained scheduling behavior - runs after factory completes, not interrupting
15
+ - `ctrl.get()`: Documented stale reads during resolving state
16
+ - `scope.flush()`: Added to API Reference (was undocumented)
17
+
18
+ **Trimmed content:**
19
+
20
+ - Removed duplicate Core Concepts diagram
21
+ - Condensed Flow section
22
+ - Condensed Extensions section
23
+ - Consolidated Lifecycle diagrams
24
+ - Removed rarely-used Direct Tag Methods section
25
+
26
+ ## 1.3.0
27
+
28
+ ### Minor Changes
29
+
30
+ - 058f955: Add `getOrSet` method to DataStore and fix generic signatures for `has`/`delete`
31
+
32
+ **New: `getOrSet` method**
33
+
34
+ Eliminates repetitive initialization boilerplate:
35
+
36
+ ```typescript
37
+ // Before (verbose)
38
+ let cache = ctx.data.get(cacheTag);
39
+ if (!cache) {
40
+ cache = new Map();
41
+ ctx.data.set(cacheTag, cache);
42
+ }
43
+
44
+ // After (concise)
45
+ const cache = ctx.data.getOrSet(cacheTag, new Map());
46
+ ```
47
+
48
+ For tags with defaults, no second argument needed:
49
+
50
+ ```typescript
51
+ const countTag = tag({ label: "count", default: 0 });
52
+ const count = ctx.data.getOrSet(countTag); // number, now stored
53
+ ```
54
+
55
+ **Fixed: `has`/`delete` signatures**
56
+
57
+ Changed from non-generic to generic signatures to accept any `Tag<T, H>`:
58
+
59
+ ```typescript
60
+ // Before: rejected Tag<string, false> due to contravariance
61
+ has(tag: Tag<unknown, boolean>): boolean
62
+
63
+ // After: accepts any tag
64
+ has<T, H extends boolean>(tag: Tag<T, H>): boolean
65
+ ```
66
+
3
67
  ## 1.2.2
4
68
 
5
69
  ### Patch Changes
package/README.md CHANGED
@@ -64,17 +64,6 @@ await scope.dispose()
64
64
 
65
65
  ## Core Concepts
66
66
 
67
- ```mermaid
68
- graph TB
69
- subgraph Scope["Scope (long-lived execution boundary)"]
70
- A1["Atom (effect)"] --- A2["Atom (effect)"]
71
- A2 --- A3["Atom (effect)"]
72
- A1 --> EC
73
- A3 --> EC
74
- EC["ExecutionContext<br/>(short-lived operation with input, tags, cleanup)"]
75
- end
76
- ```
77
-
78
67
  | Concept | Purpose |
79
68
  |---------|---------|
80
69
  | **Scope** | Long-lived boundary that manages atom lifecycles |
@@ -110,6 +99,8 @@ const dbAtom = atom({
110
99
  })
111
100
  ```
112
101
 
102
+ **`ctx.cleanup()` lifecycle:** Runs on every `invalidate()` (before re-resolution) and on `release()`. Cleanups execute in LIFO order. For resources that should survive invalidation, use `ctx.data` instead.
103
+
113
104
  ### Atom with Dependencies
114
105
 
115
106
  ```typescript
@@ -135,6 +126,8 @@ const configAtom = atom({
135
126
  })
136
127
  ```
137
128
 
129
+ **`ctx.invalidate()` behavior:** Schedules re-resolution after the current factory completes — does not interrupt execution. Use `scope.flush()` in tests to wait for pending invalidations.
130
+
138
131
  ### Per-Atom Private Storage
139
132
 
140
133
  Use `ctx.data` to store data that survives invalidation:
@@ -172,39 +165,27 @@ const counterAtom = atom({
172
165
  })
173
166
  ```
174
167
 
175
- ## Flows
176
-
177
- Flows are templates for short-lived operations.
178
-
179
- ```mermaid
180
- sequenceDiagram
181
- participant Client
182
- participant Context as ExecutionContext
183
- participant Flow
184
- participant Atoms
185
-
186
- Client->>Context: exec({ flow, input })
187
- Context->>Atoms: resolve dependencies
188
- Atoms-->>Context: deps
189
- Context->>Flow: factory(ctx, deps)
190
- Flow-->>Context: result
191
- Context-->>Client: result
192
- Client->>Context: close()
193
- ```
194
-
195
- ### Basic Flow
168
+ Use `getOrSet()` to initialize and retrieve in one call:
196
169
 
197
170
  ```typescript
198
- const createUserFlow = flow({
199
- deps: { repo: userRepoAtom },
200
- factory: async (ctx, { repo }) => {
201
- const input = ctx.input as CreateUserInput
202
- return repo.create(input)
171
+ const cacheTag = tag<Map<string, Result>>({ label: 'cache' })
172
+
173
+ const cachedAtom = atom({
174
+ factory: (ctx) => {
175
+ const cache = ctx.data.getOrSet(cacheTag, new Map())
176
+ return fetchWithCache(cache)
203
177
  }
204
178
  })
205
179
  ```
206
180
 
207
- ### Flow with Parse Validation
181
+ **`ctx.data` lifecycle:**
182
+ - **Persists** across `invalidate()` cycles
183
+ - **Cleared** on `release()` or `scope.dispose()`
184
+ - Each atom has independent storage (same tag, different atoms = separate data)
185
+
186
+ ## Flows
187
+
188
+ Flows are templates for short-lived operations with input validation.
208
189
 
209
190
  ```typescript
210
191
  const createUserFlow = flow({
@@ -212,51 +193,24 @@ const createUserFlow = flow({
212
193
  parse: (raw) => {
213
194
  const obj = raw as Record<string, unknown>
214
195
  if (typeof obj.name !== 'string') throw new Error('name required')
215
- if (typeof obj.email !== 'string') throw new Error('email required')
216
- return { name: obj.name, email: obj.email }
196
+ return { name: obj.name }
217
197
  },
218
198
  deps: { repo: userRepoAtom },
219
199
  factory: async (ctx, { repo }) => {
220
- // ctx.input is typed as { name: string; email: string }
221
- return repo.create(ctx.input)
200
+ return repo.create(ctx.input) // ctx.input typed from parse
222
201
  }
223
202
  })
224
- ```
225
-
226
- Parse runs before the factory, and `ctx.input` type is inferred from the parse return type. On validation failure, throws `ParseError` with phase `'flow-input'`.
227
203
 
228
- ### Executing Flows
229
-
230
- ```typescript
204
+ // Execute
231
205
  const context = scope.createContext()
232
206
  const user = await context.exec({
233
207
  flow: createUserFlow,
234
- input: { name: 'Alice', email: 'alice@example.com' }
208
+ input: { name: 'Alice' }
235
209
  })
236
210
  await context.close()
237
211
  ```
238
212
 
239
- ### Flow with Tags
240
-
241
- ```typescript
242
- const requestIdTag = tag<string>({ label: 'requestId' })
243
-
244
- const loggingFlow = flow({
245
- deps: { requestId: tags.required(requestIdTag) },
246
- factory: (ctx, { requestId }) => {
247
- console.log(`[${requestId}] Processing request`)
248
- return processRequest(ctx.input)
249
- }
250
- })
251
-
252
- // Pass tags at execution time
253
- const context = scope.createContext()
254
- await context.exec({
255
- flow: loggingFlow,
256
- input: data,
257
- tags: [requestIdTag('req-abc-123')]
258
- })
259
- ```
213
+ Parse runs before factory. On failure, throws `ParseError`.
260
214
 
261
215
  ## Controllers
262
216
 
@@ -286,6 +240,8 @@ await ctrl.resolve() // resolve and wait
286
240
  ctrl.invalidate() // trigger re-resolution
287
241
  ```
288
242
 
243
+ **Stale reads:** During `'resolving'` state, `ctrl.get()` returns the previous value. This enables optimistic UI patterns.
244
+
289
245
  ### Subscribing to Changes
290
246
 
291
247
  ```typescript
@@ -296,18 +252,29 @@ ctrl.on('*', () => console.log('State:', ctrl.state))
296
252
 
297
253
  ### Controller as Dependency
298
254
 
299
- Use `controller()` to receive a Controller instead of the resolved value:
255
+ Use `controller()` when you need reactive access to an atom's state, not just its value.
256
+
257
+ **Key difference:**
258
+ - Regular dep `{ x: atom }` — auto-resolved, you receive the value
259
+ - Controller dep `{ x: controller(atom) }` — **unresolved**, you receive a reactive handle
300
260
 
301
261
  ```typescript
302
262
  const appAtom = atom({
303
263
  deps: { config: controller(configAtom) },
304
- factory: (ctx, { config }) => {
305
- config.on('resolved', () => ctx.invalidate())
264
+ factory: async (ctx, { config }) => {
265
+ await config.resolve() // Must resolve manually
266
+
267
+ // Subscribe to upstream changes
268
+ const unsub = config.on('resolved', () => ctx.invalidate())
269
+ ctx.cleanup(unsub)
270
+
306
271
  return new App(config.get())
307
272
  }
308
273
  })
309
274
  ```
310
275
 
276
+ **When to use:** React to upstream invalidations, conditional/lazy resolution, access atom state.
277
+
311
278
  ### Fine-Grained Reactivity
312
279
 
313
280
  Use `select()` to subscribe only when a derived value changes:
@@ -402,21 +369,6 @@ flowchart LR
402
369
 
403
370
  All three tag levels are available during flow execution.
404
371
 
405
- ### Direct Tag Methods
406
-
407
- ```typescript
408
- const tags = [tenantIdTag('tenant-123'), userRolesTag(['admin'])]
409
-
410
- // Get (throws if not found for tags without default)
411
- const tenantId = tenantIdTag.get(tags)
412
-
413
- // Find (returns undefined if not found)
414
- const roles = userRolesTag.find(tags)
415
-
416
- // Collect all matching values
417
- const allRoles = userRolesTag.collect(tags)
418
- ```
419
-
420
372
  ## Presets
421
373
 
422
374
  Presets inject or redirect atom values, useful for testing.
@@ -451,45 +403,11 @@ const scope = createScope({
451
403
 
452
404
  ## Extensions
453
405
 
454
- Extensions provide cross-cutting behavior via AOP-style hooks.
455
-
456
- ```mermaid
457
- sequenceDiagram
458
- participant App
459
- participant Ext1 as Extension 1
460
- participant Ext2 as Extension 2
461
- participant Core as Core Logic
462
-
463
- App->>Ext1: resolve(atom)
464
- Ext1->>Ext1: before logic
465
- Ext1->>Ext2: next()
466
- Ext2->>Ext2: before logic
467
- Ext2->>Core: next()
468
- Core-->>Ext2: value
469
- Ext2->>Ext2: after logic
470
- Ext2-->>Ext1: value
471
- Ext1->>Ext1: after logic
472
- Ext1-->>App: value
473
- ```
474
-
475
- ### Extension Interface
476
-
477
- ```typescript
478
- interface Extension {
479
- readonly name: string
480
- init?(scope: Scope): MaybePromise<void>
481
- wrapResolve?<T>(next: () => Promise<T>, atom: Atom<T>, scope: Scope): Promise<T>
482
- wrapExec?<T>(next: () => Promise<T>, target: Flow | Function, ctx: ExecutionContext): Promise<T>
483
- dispose?(scope: Scope): MaybePromise<void>
484
- }
485
- ```
486
-
487
- ### Example: Timing Extension
406
+ Extensions wrap atom resolution and flow execution (AOP-style middleware).
488
407
 
489
408
  ```typescript
490
409
  const timingExtension: Lite.Extension = {
491
410
  name: 'timing',
492
-
493
411
  wrapResolve: async (next, atom, scope) => {
494
412
  const start = performance.now()
495
413
  const result = await next()
@@ -501,9 +419,9 @@ const timingExtension: Lite.Extension = {
501
419
  const scope = createScope({ extensions: [timingExtension] })
502
420
  ```
503
421
 
504
- ## Lifecycle
422
+ Interface: `{ name, init?, wrapResolve?, wrapExec?, dispose? }`
505
423
 
506
- ### Effect Lifecycle
424
+ ## Lifecycle
507
425
 
508
426
  ```mermaid
509
427
  stateDiagram-v2
@@ -517,54 +435,11 @@ stateDiagram-v2
517
435
  failed --> idle: release()
518
436
  ```
519
437
 
520
- ### Resolution Flow
521
-
522
- ```mermaid
523
- sequenceDiagram
524
- participant App
525
- participant Scope
526
- participant Atom
527
- participant Factory
528
-
529
- App->>Scope: resolve(atom)
530
- Scope->>Atom: check state
531
-
532
- alt idle
533
- Scope->>Atom: state = resolving
534
- Scope->>Factory: factory(ctx, deps)
535
- Factory-->>Scope: value
536
- Scope->>Atom: state = resolved
537
- else resolved
538
- Atom-->>App: cached value
539
- end
540
-
541
- Atom-->>App: value
542
- ```
543
-
544
- ### Invalidation Flow
545
-
546
- ```mermaid
547
- sequenceDiagram
548
- participant App
549
- participant Controller
550
- participant Scope
551
- participant Queue
552
- participant Factory
553
-
554
- App->>Controller: invalidate()
555
- Controller->>Scope: queue invalidation
556
- Scope->>Queue: add atom
557
-
558
- Note over Queue: queueMicrotask (batched)
559
-
560
- Queue->>Scope: flush
561
- Scope->>Scope: run cleanups (LIFO)
562
- Scope->>Scope: state = resolving
563
- Scope->>Factory: factory(ctx, deps)
564
- Factory-->>Scope: new value
565
- Scope->>Scope: state = resolved
566
- Scope->>Scope: notify listeners
567
- ```
438
+ **Invalidation sequence:**
439
+ 1. `invalidate()` → queued (microtask batched)
440
+ 2. Cleanups run (LIFO)
441
+ 3. State = resolving → factory()
442
+ 4. State = resolved → listeners notified
568
443
 
569
444
  ## API Reference
570
445
 
@@ -591,6 +466,7 @@ sequenceDiagram
591
466
  | `scope.dispose()` | Dispose scope (release all atoms, cleanup extensions) |
592
467
  | `scope.createContext(options?)` | Create ExecutionContext for flows |
593
468
  | `scope.on(event, atom, listener)` | Subscribe to atom state changes |
469
+ | `scope.flush()` | Wait for pending invalidation queue to process |
594
470
 
595
471
  ### Controller Methods
596
472
 
@@ -645,37 +521,6 @@ const myController: Lite.Controller<Config> = scope.controller(myAtom)
645
521
  const myTag: Lite.Tag<string> = tag({ label: 'myTag' })
646
522
  ```
647
523
 
648
- ## Comparison with @pumped-fn/core-next
649
-
650
- | Feature | @pumped-fn/lite | @pumped-fn/core-next |
651
- |---------|-----------------|----------------------|
652
- | Atoms/Executors | `atom()` | `provide()`, `derive()` |
653
- | Flows | `flow()` | `flow()` |
654
- | Tags | `tag()`, `tags.*` | `tag()`, `tags.*` |
655
- | Extensions | Simple 4-hook interface | Full lifecycle hooks |
656
- | Schema validation | No | StandardSchema |
657
- | Journaling | No | Yes |
658
- | Multi-executor pools | No | `multi()` |
659
- | Enhanced Promise | No | `Promised` class |
660
- | Error classes | Simple Error | Rich hierarchy |
661
- | Controller reactivity | ✅ Built-in | No |
662
- | Self-invalidation | ✅ Built-in | No |
663
- | Fine-grained select() | ✅ Built-in | No |
664
- | Tag/Flow parse functions | ✅ Built-in | No |
665
- | Bundle size | <17KB | ~75KB |
666
-
667
- **Choose `@pumped-fn/lite` when:**
668
- - Bundle size matters
669
- - You need built-in reactivity (Controller pattern)
670
- - You want a minimal API surface
671
- - Schema validation can be done manually
672
-
673
- **Choose `@pumped-fn/core-next` when:**
674
- - You need StandardSchema validation
675
- - You need multi-executor pools
676
- - You need journaling/debugging features
677
- - You need rich error context
678
-
679
524
  ## Design Principles
680
525
 
681
526
  1. **Minimal API** - Every export is expensive to learn
package/dist/index.cjs CHANGED
@@ -323,6 +323,12 @@ var DataStoreImpl = class {
323
323
  clear() {
324
324
  this.map.clear();
325
325
  }
326
+ getOrSet(tag$1, defaultValue) {
327
+ if (this.map.has(tag$1.key)) return this.map.get(tag$1.key);
328
+ const value = tag$1.hasDefault ? tag$1.defaultValue : defaultValue;
329
+ this.map.set(tag$1.key, value);
330
+ return value;
331
+ }
326
332
  };
327
333
  var SelectHandleImpl = class {
328
334
  listeners = /* @__PURE__ */ new Set();
package/dist/index.d.cts CHANGED
@@ -49,9 +49,11 @@ declare namespace Lite {
49
49
  interface DataStore {
50
50
  get<T, H extends boolean>(tag: Tag<T, H>): H extends true ? T : T | undefined;
51
51
  set<T>(tag: Tag<T, boolean>, value: T): void;
52
- has(tag: Tag<unknown, boolean>): boolean;
53
- delete(tag: Tag<unknown, boolean>): boolean;
52
+ has<T, H extends boolean>(tag: Tag<T, H>): boolean;
53
+ delete<T, H extends boolean>(tag: Tag<T, H>): boolean;
54
54
  clear(): void;
55
+ getOrSet<T>(tag: Tag<T, true>): T;
56
+ getOrSet<T>(tag: Tag<T, false>, defaultValue: T): T;
55
57
  }
56
58
  interface ResolveContext {
57
59
  cleanup(fn: () => MaybePromise<void>): void;
@@ -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/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/scope.ts","../src/errors.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -49,9 +49,11 @@ declare namespace Lite {
49
49
  interface DataStore {
50
50
  get<T, H extends boolean>(tag: Tag<T, H>): H extends true ? T : T | undefined;
51
51
  set<T>(tag: Tag<T, boolean>, value: T): void;
52
- has(tag: Tag<unknown, boolean>): boolean;
53
- delete(tag: Tag<unknown, boolean>): boolean;
52
+ has<T, H extends boolean>(tag: Tag<T, H>): boolean;
53
+ delete<T, H extends boolean>(tag: Tag<T, H>): boolean;
54
54
  clear(): void;
55
+ getOrSet<T>(tag: Tag<T, true>): T;
56
+ getOrSet<T>(tag: Tag<T, false>, defaultValue: T): T;
55
57
  }
56
58
  interface ResolveContext {
57
59
  cleanup(fn: () => MaybePromise<void>): void;
@@ -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/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/scope.ts","../src/errors.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -322,6 +322,12 @@ var DataStoreImpl = class {
322
322
  clear() {
323
323
  this.map.clear();
324
324
  }
325
+ getOrSet(tag$1, defaultValue) {
326
+ if (this.map.has(tag$1.key)) return this.map.get(tag$1.key);
327
+ const value = tag$1.hasDefault ? tag$1.defaultValue : defaultValue;
328
+ this.map.set(tag$1.key, value);
329
+ return value;
330
+ }
325
331
  };
326
332
  var SelectHandleImpl = class {
327
333
  listeners = /* @__PURE__ */ new Set();
@@ -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","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","flow","parsedInput: unknown"],"sources":["../src/symbols.ts","../src/errors.ts","../src/tag.ts","../src/atom.ts","../src/flow.ts","../src/preset.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 * @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 TOutput,\n TInput,\n D extends Record<string, Lite.Dependency>,\n> {\n name?: string\n parse?: ((raw: unknown) => MaybePromise<TInput>) | Lite.Typed<TInput>\n deps?: D\n factory: Lite.FlowFactory<TOutput, TInput, 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, unknown>\n\nexport function flow<TOutput, TInput>(config: {\n name?: string\n parse: (raw: unknown) => MaybePromise<TInput>\n deps?: undefined\n factory: (ctx: Lite.ExecutionContext<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<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, unknown>\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<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<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 { 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, H extends boolean>(tag: Lite.Tag<T, H>): H extends true ? T : T | undefined {\n if (this.map.has(tag.key)) {\n return this.map.get(tag.key) as T\n }\n if (tag.hasDefault) {\n return tag.defaultValue as T\n }\n return undefined as H extends true ? T : 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(tag: Lite.Tag<unknown, boolean>): boolean {\n return this.map.has(tag.key)\n }\n\n delete(tag: Lite.Tag<unknown, boolean>): boolean {\n return this.map.delete(tag.key)\n }\n\n clear(): void {\n this.map.clear()\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 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 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 }\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 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\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 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 _input: unknown = undefined\n private readonly baseTags: Lite.Tagged<unknown>[]\n\n constructor(\n readonly scope: ScopeImpl,\n options?: Lite.CreateContextOptions\n ) {\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 async exec<T>(options: Lite.ExecFlowOptions<T> | Lite.ExecFnOptions<T>): Promise<T> {\n if (this.closed) {\n throw new Error(\"ExecutionContext is closed\")\n }\n\n if (\"flow\" in options) {\n return this.execFlow(options)\n } else {\n return this.execFn(options)\n }\n }\n\n private async execFlow<T>(options: Lite.ExecFlowOptions<T>): Promise<T> {\n const { flow, input, tags: execTags, name: execName } = 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 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 this._input = parsedInput\n\n const factory = flow.factory as unknown as (\n ctx: Lite.ExecutionContext,\n deps?: Record<string, unknown>\n ) => MaybePromise<T>\n\n const doExec = async (): Promise<T> => {\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 execFn<T>(options: Lite.ExecFnOptions<T>): Promise<T> {\n const { fn, params } = options\n const doExec = () => Promise.resolve(fn(...params))\n return this.applyExecExtensions(fn, doExec)\n }\n\n private async applyExecExtensions<T>(\n target: Lite.Flow<T, unknown> | ((...args: unknown[]) => MaybePromise<T>),\n doExec: () => Promise<T>\n ): Promise<T> {\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<T>\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 { createScope } from \"./scope\"\nexport { ParseError } from \"./errors\"\n\nexport const VERSION = \"0.0.1\"\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["atomSymbol: unique symbol","flowSymbol: unique symbol","tagSymbol: unique symbol","taggedSymbol: unique symbol","controllerDepSymbol: unique symbol","presetSymbol: unique symbol","controllerSymbol: unique symbol","tagExecutorSymbol: unique symbol","typedSymbol: unique symbol","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","flow","parsedInput: unknown"],"sources":["../src/symbols.ts","../src/errors.ts","../src/tag.ts","../src/atom.ts","../src/flow.ts","../src/preset.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 * @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 TOutput,\n TInput,\n D extends Record<string, Lite.Dependency>,\n> {\n name?: string\n parse?: ((raw: unknown) => MaybePromise<TInput>) | Lite.Typed<TInput>\n deps?: D\n factory: Lite.FlowFactory<TOutput, TInput, 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, unknown>\n\nexport function flow<TOutput, TInput>(config: {\n name?: string\n parse: (raw: unknown) => MaybePromise<TInput>\n deps?: undefined\n factory: (ctx: Lite.ExecutionContext<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<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, unknown>\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<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<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 { 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, H extends boolean>(tag: Lite.Tag<T, H>): H extends true ? T : T | undefined {\n if (this.map.has(tag.key)) {\n return this.map.get(tag.key) as T\n }\n if (tag.hasDefault) {\n return tag.defaultValue as T\n }\n return undefined as H extends true ? T : 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, false>, defaultValue: T): T\n getOrSet<T>(tag: Lite.Tag<T, boolean>, defaultValue?: T): T {\n if (this.map.has(tag.key)) {\n return this.map.get(tag.key) as T\n }\n const value = tag.hasDefault ? (tag.defaultValue as T) : (defaultValue as T)\n this.map.set(tag.key, value)\n return value\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 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 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 }\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 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\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 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 _input: unknown = undefined\n private readonly baseTags: Lite.Tagged<unknown>[]\n\n constructor(\n readonly scope: ScopeImpl,\n options?: Lite.CreateContextOptions\n ) {\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 async exec<T>(options: Lite.ExecFlowOptions<T> | Lite.ExecFnOptions<T>): Promise<T> {\n if (this.closed) {\n throw new Error(\"ExecutionContext is closed\")\n }\n\n if (\"flow\" in options) {\n return this.execFlow(options)\n } else {\n return this.execFn(options)\n }\n }\n\n private async execFlow<T>(options: Lite.ExecFlowOptions<T>): Promise<T> {\n const { flow, input, tags: execTags, name: execName } = 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 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 this._input = parsedInput\n\n const factory = flow.factory as unknown as (\n ctx: Lite.ExecutionContext,\n deps?: Record<string, unknown>\n ) => MaybePromise<T>\n\n const doExec = async (): Promise<T> => {\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 execFn<T>(options: Lite.ExecFnOptions<T>): Promise<T> {\n const { fn, params } = options\n const doExec = () => Promise.resolve(fn(...params))\n return this.applyExecExtensions(fn, doExec)\n }\n\n private async applyExecExtensions<T>(\n target: Lite.Flow<T, unknown> | ((...args: unknown[]) => MaybePromise<T>),\n doExec: () => Promise<T>\n ): Promise<T> {\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<T>\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 { 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;;;;ACR7E,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;;;;;ACtCzD,IAAM,gBAAN,MAA8C;CAC5C,AAAiB,sBAAM,IAAI,KAAsB;CAEjD,IAA0B,OAAyD;AACjF,MAAI,KAAK,IAAI,IAAIE,MAAI,IAAI,CACvB,QAAO,KAAK,IAAI,IAAIA,MAAI,IAAI;AAE9B,MAAIA,MAAI,WACN,QAAOA,MAAI;;CAKf,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;;CAKlB,SAAY,OAA2B,cAAqB;AAC1D,MAAI,KAAK,IAAI,IAAIA,MAAI,IAAI,CACvB,QAAO,KAAK,IAAI,IAAIA,MAAI,IAAI;EAE9B,MAAM,QAAQA,MAAI,aAAcA,MAAI,eAAsB;AAC1D,OAAK,IAAI,IAAIA,MAAI,KAAK,MAAM;AAC5B,SAAO;;;AAeX,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,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;;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,MAAc,uBAA0B,QAAmC;EACzE,MAAM,QAAQ,KAAK,MAAM,IAAIA,OAAK;AAClC,MAAI,CAAC,MAAO;AACZ,MAAI,MAAM,UAAU,OAAQ;EAE5B,MAAM,gBAAgB,MAAM;AAE5B,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,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,MAA4D;CAC1D,AAAQ,WAAyC,EAAE;CACnD,AAAQ,SAAS;CACjB,AAAQ,SAAkB;CAC1B,AAAiB;CAEjB,YACE,AAASD,OACT,SACA;EAFS;EAGT,MAAM,UAAU,SAAS;AACzB,OAAK,WAAW,SAAS,SACrB,CAAC,GAAG,SAAS,GAAG,MAAM,KAAK,GAC3B,MAAM;;CAGZ,IAAI,QAAiB;AACnB,SAAO,KAAK;;CAGd,MAAM,KAAQ,SAAsE;AAClF,MAAI,KAAK,OACP,OAAM,IAAI,MAAM,6BAA6B;AAG/C,MAAI,UAAU,QACZ,QAAO,KAAK,SAAS,QAAQ;MAE7B,QAAO,KAAK,OAAO,QAAQ;;CAI/B,MAAc,SAAY,SAA8C;EACtE,MAAM,EAAE,cAAM,OAAO,MAAM,UAAU,MAAM,aAAa;EAGxD,MAAM,WADgB,UAAU,UAAU,KAAK,MAAMK,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,IAAIC,cAAuB;AAC3B,MAAID,OAAK,OAAO;GACd,MAAM,QAAQ,YAAYA,OAAK,QAAQ;AACvC,OAAI;AACF,kBAAc,MAAMA,OAAK,MAAM,MAAM;YAC9B,KAAK;AACZ,UAAM,IAAI,WACR,+BAA+B,MAAM,IACrC,cACA,OACA,IACD;;;AAIL,OAAK,SAAS;EAEd,MAAM,UAAUA,OAAK;EAKrB,MAAM,SAAS,YAAwB;AACrC,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,AAAQ,OAAU,SAA4C;EAC5D,MAAM,EAAE,IAAI,WAAW;EACvB,MAAM,eAAe,QAAQ,QAAQ,GAAG,GAAG,OAAO,CAAC;AACnD,SAAO,KAAK,oBAAoB,IAAI,OAAO;;CAG7C,MAAc,oBACZ,QACA,QACY;EACZ,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;;;;;ACntB/B,MAAa,UAAU"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pumped-fn/lite",
3
- "version": "1.2.2",
3
+ "version": "1.3.1",
4
4
  "description": "Lightweight dependency injection with minimal reactivity",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",