@pumped-fn/core-next 0.5.90 → 0.5.93

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,99 @@
1
1
  # @pumped-fn/core-next
2
2
 
3
+ ## 0.5.93
4
+
5
+ ### Patch Changes
6
+
7
+ - 7c00672: ## Breaking Changes
8
+
9
+ ### File Consolidation (21 → 11 files)
10
+
11
+ - `tag-types.ts` + `tag-executors.ts` + `tags/merge.ts` → `tag.ts`
12
+ - `promises.ts` + `ssch.ts` → `primitives.ts`
13
+ - `flow-execution.ts` → merged into `flow.ts`
14
+ - `extension.ts` → merged into `helpers.ts`
15
+ - `internal/` directory → inlined into main modules
16
+
17
+ ### API Changes
18
+
19
+ **ctx.exec()**: Changed from positional params to config object
20
+
21
+ ```typescript
22
+ // Before
23
+ ctx.exec(myFlow, input);
24
+
25
+ // After
26
+ ctx.exec({ flow: myFlow, input });
27
+ ```
28
+
29
+ **Promised**: Removed 9 methods, simplified to core functionality
30
+
31
+ - Removed: `switch`, `switchError`, `fulfilled`, `rejected`, `firstFulfilled`, `findFulfilled`, `mapFulfilled`, `assertAllFulfilled`
32
+ - Kept: `map`, `mapError`, `partition`
33
+
34
+ **Extension.ExecutionOperation**: Flattened structure
35
+
36
+ - Removed nested `target` object
37
+ - Added flat `mode` field: `"sequential" | "parallel" | "parallel-settled"`
38
+ - Check `operation.flow` instead of `operation.target.type === "flow"`
39
+
40
+ **Tag**: Removed `injectTo` alias and `partial` method
41
+
42
+ **FlowDefinition**: Removed builder pattern (`.handler()` chaining)
43
+
44
+ See `packages/next/MIGRATION.md` for detailed migration guide.
45
+
46
+ ## 0.5.92
47
+
48
+ ### Patch Changes
49
+
50
+ - 9bb928b: Add ExecutionContext lifecycle management
51
+
52
+ **New Features:**
53
+
54
+ - `ExecutionContext.state` property with states: `'active'` | `'closing'` | `'closed'`
55
+ - `ExecutionContext.closed` convenience boolean for quick state checks
56
+ - `ExecutionContext.close(options?)` method with graceful (default) and abort modes
57
+ - `ExecutionContext.onStateChange(callback)` subscription returning cleanup function
58
+ - `ExecutionContextClosedError` thrown when operations attempted on closed context
59
+ - `ContextLifecycleOperation` extension hook for observing context lifecycle events
60
+
61
+ **Graceful mode (default):**
62
+
63
+ - Waits for all in-flight executions to complete
64
+ - Cascades close to child contexts
65
+ - Returns single promise for idempotent calls
66
+
67
+ **Abort mode:**
68
+
69
+ - Signals abort to in-flight executions via `AbortController`
70
+ - Collects errors into `AggregateError` if any operations fail
71
+ - Useful for timeout or cancellation scenarios
72
+
73
+ **Extension Integration:**
74
+
75
+ - Extensions receive `context-lifecycle` operations with phases: `create`, `closing`, `closed`
76
+ - Enables middleware patterns: tracing, logging, metrics collection
77
+
78
+ **Bug Fixes:**
79
+
80
+ - Fixed 33 unhandled promise rejections in test suite
81
+ - Added vitest setup file for unhandled rejection detection
82
+
83
+ ## 0.5.91
84
+
85
+ ### Patch Changes
86
+
87
+ - ec181f8: Fix tag resolution to use execution context instead of scope
88
+
89
+ - Tags in flow dependencies now correctly resolve from execution context, not scope
90
+ - Added `executionContext` parameter to `scope.resolve()` for context-specific resolution
91
+ - Added type-safe `hasTagStore()` type guard replacing `any` casts
92
+ - Added error cleanup for `contextResolvedValue` on resolution failure
93
+ - Optimized constructor to skip cache operations for execution context accessors
94
+ - Added memory profiling tests validating ~5KB per context overhead
95
+ - Added comprehensive test coverage for concurrent and nested context scenarios
96
+
3
97
  ## 0.5.90
4
98
 
5
99
  ### Patch Changes