@rotorsoft/act 0.0.2
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/LICENSE +21 -0
- package/README.md +166 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/act.d.ts +24 -0
- package/dist/act.d.ts.map +1 -0
- package/dist/act.js +136 -0
- package/dist/act.js.map +1 -0
- package/dist/adapters/InMemoryStore.d.ts +24 -0
- package/dist/adapters/InMemoryStore.d.ts.map +1 -0
- package/dist/adapters/InMemoryStore.js +125 -0
- package/dist/adapters/InMemoryStore.js.map +1 -0
- package/dist/builder.d.ts +30 -0
- package/dist/builder.d.ts.map +1 -0
- package/dist/builder.js +97 -0
- package/dist/builder.js.map +1 -0
- package/dist/config.d.ts +93 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +41 -0
- package/dist/config.js.map +1 -0
- package/dist/event-sourcing.d.ts +5 -0
- package/dist/event-sourcing.d.ts.map +1 -0
- package/dist/event-sourcing.js +101 -0
- package/dist/event-sourcing.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/ports.d.ts +17 -0
- package/dist/ports.d.ts.map +1 -0
- package/dist/ports.js +56 -0
- package/dist/ports.js.map +1 -0
- package/dist/types/action.d.ts +57 -0
- package/dist/types/action.d.ts.map +1 -0
- package/dist/types/action.js +2 -0
- package/dist/types/action.js.map +1 -0
- package/dist/types/errors.d.ts +41 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +44 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +17 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/ports.d.ts +16 -0
- package/dist/types/ports.d.ts.map +1 -0
- package/dist/types/ports.js +2 -0
- package/dist/types/ports.js.map +1 -0
- package/dist/types/reaction.d.ts +30 -0
- package/dist/types/reaction.d.ts.map +1 -0
- package/dist/types/reaction.js +2 -0
- package/dist/types/reaction.js.map +1 -0
- package/dist/types/registry.d.ts +23 -0
- package/dist/types/registry.d.ts.map +1 -0
- package/dist/types/registry.js +2 -0
- package/dist/types/registry.js.map +1 -0
- package/dist/types/schemas.d.ts +1046 -0
- package/dist/types/schemas.d.ts.map +1 -0
- package/dist/types/schemas.js +82 -0
- package/dist/types/schemas.js.map +1 -0
- package/dist/utils.d.ts +17 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +73 -0
- package/dist/utils.js.map +1 -0
- package/package.json +32 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021 Roger Torres
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# @rotorsoft/act [](https://www.npmjs.com/package/@rotorsoft/act)
|
|
2
|
+
|
|
3
|
+
[Act](../../README.md) core library
|
|
4
|
+
|
|
5
|
+
## Event Store
|
|
6
|
+
|
|
7
|
+
The event store in this architecture serves as the single source of truth for system state, persisting all changes as immutable events. It acts as both a storage mechanism and a queryable event history, enabling efficient replayability, debugging, and distributed event-driven processing.
|
|
8
|
+
|
|
9
|
+
### Append-Only, Immutable Event Log
|
|
10
|
+
|
|
11
|
+
Unlike traditional databases that update records in place, the event store follows an append-only model, meaning:
|
|
12
|
+
|
|
13
|
+
- All state changes are recorded as new events, never modifying past data.
|
|
14
|
+
- Events are immutable, ensuring a complete historical record of all changes.
|
|
15
|
+
- Each event is time-stamped and versioned, allowing precise state reconstruction at any point in time.
|
|
16
|
+
|
|
17
|
+
This immutability is critical for auditability, debugging, and ensuring consistent state reconstruction across distributed systems.
|
|
18
|
+
|
|
19
|
+
### Event Streams for State Aggregation
|
|
20
|
+
|
|
21
|
+
Events are not stored in a single, monolithic table but are instead grouped into event streams, each representing a unique entity or domain process.
|
|
22
|
+
|
|
23
|
+
- Each entity instance (e.g., a user, order, or transaction) has its own stream.
|
|
24
|
+
- Events within a stream maintain a strict order, ensuring that state is replayed correctly.
|
|
25
|
+
- Streams can be dynamically created and partitioned, allowing for horizontal scalability.
|
|
26
|
+
|
|
27
|
+
For example, an Order aggregate might have a stream containing:
|
|
28
|
+
|
|
29
|
+
1. OrderCreated
|
|
30
|
+
2. OrderItemAdded
|
|
31
|
+
3. OrderItemRemoved
|
|
32
|
+
4. OrderShipped
|
|
33
|
+
|
|
34
|
+
A consumer reconstructing the order’s state would replay these events in order, rather than relying on a snapshot-based approach.
|
|
35
|
+
|
|
36
|
+
### Optimistic Concurrency and Versioning
|
|
37
|
+
|
|
38
|
+
Each event stream supports optimistic concurrency control by maintaining a version number per stream.
|
|
39
|
+
|
|
40
|
+
- When appending an event, the system verifies that the stream’s version matches the expected version.
|
|
41
|
+
- If another process has written an event in the meantime, the append operation is rejected to prevent race conditions.
|
|
42
|
+
- Consumers can retry with the latest stream state, preventing lost updates.
|
|
43
|
+
|
|
44
|
+
This ensures strong consistency in distributed systems without requiring heavyweight locks.
|
|
45
|
+
|
|
46
|
+
### Querying
|
|
47
|
+
|
|
48
|
+
Events in the store can be retrieved via two primary methods:
|
|
49
|
+
|
|
50
|
+
- Stream-based retrieval (load): Fetching all events for a given stream in order.
|
|
51
|
+
- Query: Provides multiple ways to filter and sort events, enabling efficient state reconstruction.
|
|
52
|
+
|
|
53
|
+
This enables both on-demand querying for state reconstruction and real-time processing for event-driven architectures.
|
|
54
|
+
|
|
55
|
+
### Snapshots for Efficient State Reconstruction
|
|
56
|
+
|
|
57
|
+
Replaying all events from the beginning for every request can be inefficient. To optimize state reconstruction:
|
|
58
|
+
|
|
59
|
+
- Snapshots are periodically stored, capturing the computed state of an entity.
|
|
60
|
+
- When retrieving an entity’s state, the system first loads the latest snapshot and replays only newer events.
|
|
61
|
+
- This reduces query time while maintaining full event traceability.
|
|
62
|
+
|
|
63
|
+
For example, instead of replaying 1,000 events for an account balance, the system might load a snapshot with the latest balance and only apply the last few transactions.
|
|
64
|
+
|
|
65
|
+
### Event Storage Backend
|
|
66
|
+
|
|
67
|
+
The event store can be implemented using different storage solutions, depending on system requirements:
|
|
68
|
+
|
|
69
|
+
- Relational Databases (PostgreSQL, MySQL): Storing events in an append-only table with indexing for fast retrieval.
|
|
70
|
+
- NoSQL Databases (Cassandra, DynamoDB, MongoDB): Using key-value or document stores to manage streams efficiently.
|
|
71
|
+
- Event-Specific Databases (EventStoreDB, Kafka, Pulsar): Purpose-built for high-performance event sourcing with built-in subscriptions and replication.
|
|
72
|
+
|
|
73
|
+
### Indexing and Retrieval Optimization
|
|
74
|
+
|
|
75
|
+
To ensure high performance when querying events:
|
|
76
|
+
|
|
77
|
+
- Events are indexed by stream ID and timestamp for fast lookups.
|
|
78
|
+
- Materialized views can be used for common queries (e.g., the latest event per stream).
|
|
79
|
+
- Partitioning strategies help distribute event streams across multiple nodes, improving scalability.
|
|
80
|
+
|
|
81
|
+
### Retention and Archival
|
|
82
|
+
|
|
83
|
+
Since event data grows indefinitely, a retention policy is needed:
|
|
84
|
+
|
|
85
|
+
- Active event streams remain in fast storage for quick access.
|
|
86
|
+
- Older events are archived in cold storage while keeping snapshots for quick recovery.
|
|
87
|
+
- Event compression techniques can be used to reduce storage overhead without losing historical data.
|
|
88
|
+
|
|
89
|
+
## Event-Driven Processing with Stream Leasing and Correlation
|
|
90
|
+
|
|
91
|
+
This architecture is designed to handle event-driven workflows efficiently while ensuring ordered and non-duplicated event processing. Instead of a queueing system, it dynamically processes events from an event store and correlates them with specific event streams. The approach improves scalability, fault tolerance, and event visibility while maintaining strong guarantees for event processing.
|
|
92
|
+
|
|
93
|
+
### Event-Centric Processing Instead of Queues
|
|
94
|
+
|
|
95
|
+
Rather than storing messages in a queue and tracking explicit positions, this architecture treats the event store as the single source of truth. Events are written once and can be consumed by multiple independent consumers. This decoupling allows:
|
|
96
|
+
|
|
97
|
+
- Independent consumers that can process the same event stream in different ways.
|
|
98
|
+
- Efficient event querying without maintaining redundant queue states.
|
|
99
|
+
- Flexible event correlation, where consumers can derive dependencies dynamically rather than following a strict order.
|
|
100
|
+
|
|
101
|
+
### Stream Leasing for Ordered Event Processing
|
|
102
|
+
|
|
103
|
+
Each consumer does not simply fetch and process events immediately; instead, events are fetched by the application and pushed to consumers by leasing the events of each correlated stream. Leasing prevents multiple consumers from processing the same event concurrently, ensuring:
|
|
104
|
+
|
|
105
|
+
- Per-stream ordering, where events related to a specific stream are processed sequentially.
|
|
106
|
+
- Temporary ownership of events, allowing retries if a lease expires before acknowledgment.
|
|
107
|
+
- Backpressure control, as only a limited number of leases can be active at a time, preventing overwhelming consumers.
|
|
108
|
+
|
|
109
|
+
If a lease expires due to failure or unresponsiveness, the event can be re-leased to another consumer, ensuring no event is permanently lost.
|
|
110
|
+
|
|
111
|
+
### Event Correlation and Dynamic Stream Resolution
|
|
112
|
+
|
|
113
|
+
A key challenge in event-driven systems is understanding which stream an event belongs to and how it should be processed. Instead of hardcoding event routing logic, this system enables:
|
|
114
|
+
|
|
115
|
+
- Dynamic correlation, where events are linked to streams based on resolver functions.
|
|
116
|
+
- Multi-stream dependency tracking, allowing one event to trigger multiple related processes.
|
|
117
|
+
- Implicit event grouping, ensuring that related events are processed in the correct sequence.
|
|
118
|
+
|
|
119
|
+
For example, if an event pertains to a transaction across multiple users, the system can determine which user streams should handle it dynamically.
|
|
120
|
+
|
|
121
|
+
### Parallel Execution with Retry and Blocking Strategies
|
|
122
|
+
|
|
123
|
+
While events are processed in an ordered fashion within a stream, multiple streams can be processed concurrently. The architecture includes:
|
|
124
|
+
|
|
125
|
+
- Parallel event handling, improving throughput by distributing processing load.
|
|
126
|
+
- Retry mechanisms with exponential backoff, ensuring transient failures do not cause data loss.
|
|
127
|
+
- Blocking strategies, where streams with consistent failures can be temporarily halted to prevent cascading errors.
|
|
128
|
+
|
|
129
|
+
A stream is only blocked after exhausting a configurable number of retries, reducing the risk of infinite failure loops.
|
|
130
|
+
|
|
131
|
+
### Draining and Acknowledgment for Fault Tolerance
|
|
132
|
+
|
|
133
|
+
Once an event has been successfully processed, it is acknowledged to release its lease.
|
|
134
|
+
This design ensures:
|
|
135
|
+
|
|
136
|
+
- Consumers only process new work, reducing idle resource usage.
|
|
137
|
+
- Failure recovery without manual intervention, as failed events can be re-leased automatically.
|
|
138
|
+
- Clear event lifecycle management, with visibility into pending, processing, and completed events.
|
|
139
|
+
|
|
140
|
+
### Persistent Event Store with Optimized Querying
|
|
141
|
+
|
|
142
|
+
Since events are stored persistently rather than transiently queued, the system must efficiently query and retrieve relevant events. The event store supports:
|
|
143
|
+
|
|
144
|
+
- Efficient filtering, allowing consumers to retrieve only the events relevant to them.
|
|
145
|
+
- Indexing strategies for fast lookups, optimizing performance for high-volume event processing.
|
|
146
|
+
- Retention policies, ensuring historical event data is accessible for audits without overloading the system.
|
|
147
|
+
|
|
148
|
+
### Real-Time Notifications and Asynchronous Processing
|
|
149
|
+
|
|
150
|
+
To reduce polling overhead, the system can utilize real-time event notifications via database triggers or a pub-sub mechanism. This allows consumers to:
|
|
151
|
+
|
|
152
|
+
- React to new events immediately, improving responsiveness.
|
|
153
|
+
- Reduce unnecessary database queries, optimizing system performance.
|
|
154
|
+
- Enable distributed event processing, where multiple instances can coordinate workload distribution.
|
|
155
|
+
|
|
156
|
+
### Scalable Consumer Management
|
|
157
|
+
|
|
158
|
+
As the system scales, multiple consumer instances may need to process events in parallel. The architecture ensures that:
|
|
159
|
+
|
|
160
|
+
- Each consumer instance handles an exclusive subset of events, avoiding conflicts.
|
|
161
|
+
- Leases distribute events evenly across consumers, preventing hotspots.
|
|
162
|
+
- Idle consumers are dynamically assigned new workloads, ensuring efficient resource utilization.
|
|
163
|
+
|
|
164
|
+
## Summary
|
|
165
|
+
|
|
166
|
+
This architecture balances event-driven flexibility, strong ordering guarantees, and dynamic stream resolution while minimizing processing overhead. By using event leasing, correlation-based processing, parallel execution, and retry mechanisms, it provides a robust and scalable foundation for handling real-time data flows in distributed systems.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.full.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/dom-events.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@22.13.5/node_modules/@types/node/index.d.ts","../../../node_modules/.pnpm/pino-std-serializers@7.0.0/node_modules/pino-std-serializers/index.d.ts","../../../node_modules/.pnpm/sonic-boom@4.2.0/node_modules/sonic-boom/types/index.d.ts","../../../node_modules/.pnpm/pino@9.6.0/node_modules/pino/pino.d.ts","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/helpers/typeAliases.d.ts","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/helpers/util.d.ts","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/ZodError.d.ts","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/locales/en.d.ts","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/errors.d.ts","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/helpers/parseUtil.d.ts","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/helpers/enumUtil.d.ts","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/helpers/errorUtil.d.ts","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/helpers/partialUtil.d.ts","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/standard-schema.d.ts","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/types.d.ts","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/external.d.ts","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/index.d.ts","../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/index.d.ts","../src/types/schemas.ts","../src/types/action.ts","../src/types/errors.ts","../src/types/reaction.ts","../src/types/ports.ts","../src/types/registry.ts","../src/types/index.ts","../../../node_modules/.pnpm/dotenv@16.4.7/node_modules/dotenv/lib/main.d.ts","../src/config.ts","../src/utils.ts","../src/adapters/InMemoryStore.ts","../src/ports.ts","../src/event-sourcing.ts","../src/act.ts","../src/builder.ts","../src/index.ts","../../../node_modules/.pnpm/@vitest+pretty-format@3.0.7/node_modules/@vitest/pretty-format/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@3.0.7/node_modules/@vitest/utils/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@3.0.7/node_modules/@vitest/utils/dist/helpers.d.ts","../../../node_modules/.pnpm/tinyrainbow@2.0.0/node_modules/tinyrainbow/dist/index-8b61d5bc.d.ts","../../../node_modules/.pnpm/tinyrainbow@2.0.0/node_modules/tinyrainbow/dist/node.d.ts","../../../node_modules/.pnpm/@vitest+utils@3.0.7/node_modules/@vitest/utils/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@3.0.7/node_modules/@vitest/runner/dist/tasks-CAp19cBR.d.ts","../../../node_modules/.pnpm/@vitest+utils@3.0.7/node_modules/@vitest/utils/dist/types-6R1G1gkS.d.ts","../../../node_modules/.pnpm/@vitest+utils@3.0.7/node_modules/@vitest/utils/dist/diff.d.ts","../../../node_modules/.pnpm/@vitest+runner@3.0.7/node_modules/@vitest/runner/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@3.0.7/node_modules/@vitest/utils/dist/error.d.ts","../../../node_modules/.pnpm/@vitest+runner@3.0.7/node_modules/@vitest/runner/dist/index.d.ts","../../../node_modules/.pnpm/vitest@3.0.7_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vitest/dist/chunks/environment.d8YfPkTm.d.ts","../../../node_modules/.pnpm/@types+estree@1.0.6/node_modules/@types/estree/index.d.ts","../../../node_modules/.pnpm/rollup@4.34.8/node_modules/rollup/dist/rollup.d.ts","../../../node_modules/.pnpm/rollup@4.34.8/node_modules/rollup/dist/parseAst.d.ts","../../../node_modules/.pnpm/vite@6.2.0_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vite/types/hmrPayload.d.ts","../../../node_modules/.pnpm/vite@6.2.0_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vite/types/customEvent.d.ts","../../../node_modules/.pnpm/vite@6.2.0_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vite/types/hot.d.ts","../../../node_modules/.pnpm/vite@6.2.0_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vite/dist/node/moduleRunnerTransport.d-CXw_Ws6P.d.ts","../../../node_modules/.pnpm/vite@6.2.0_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vite/dist/node/module-runner.d.ts","../../../node_modules/.pnpm/esbuild@0.25.0/node_modules/esbuild/lib/main.d.ts","../../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/source-map.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/previous-map.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/input.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/css-syntax-error.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/declaration.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/root.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/warning.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/lazy-result.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/no-work-result.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/processor.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/result.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/document.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/rule.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/node.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/comment.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/container.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/at-rule.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/list.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/postcss.d.ts","../../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/postcss.d.mts","../../../node_modules/.pnpm/vite@6.2.0_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vite/types/internal/lightningcssOptions.d.ts","../../../node_modules/.pnpm/vite@6.2.0_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vite/types/internal/cssPreprocessorOptions.d.ts","../../../node_modules/.pnpm/vite@6.2.0_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vite/types/importGlob.d.ts","../../../node_modules/.pnpm/vite@6.2.0_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vite/types/metadata.d.ts","../../../node_modules/.pnpm/vite@6.2.0_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vite/dist/node/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@3.0.7/node_modules/@vitest/utils/dist/source-map.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@3.0.7/node_modules/@vitest/snapshot/dist/environment-Ddx0EDtY.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@3.0.7/node_modules/@vitest/snapshot/dist/rawSnapshot-DOKg5unn.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@3.0.7/node_modules/@vitest/snapshot/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@3.0.7/node_modules/@vitest/snapshot/dist/environment.d.ts","../../../node_modules/.pnpm/vitest@3.0.7_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vitest/dist/chunks/config.BRtC-JeT.d.ts","../../../node_modules/.pnpm/vite-node@3.0.7_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vite-node/dist/trace-mapping.d-DLVdEqOp.d.ts","../../../node_modules/.pnpm/vite-node@3.0.7_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vite-node/dist/index-LQxw79Gm.d.ts","../../../node_modules/.pnpm/vite-node@3.0.7_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vite-node/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@3.0.7/node_modules/@vitest/runner/dist/utils.d.ts","../../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../../node_modules/.pnpm/vitest@3.0.7_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vitest/dist/chunks/benchmark.CFFwLv-O.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@3.0.7/node_modules/@vitest/snapshot/dist/manager.d.ts","../../../node_modules/.pnpm/vitest@3.0.7_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vitest/dist/chunks/reporters.QZ837uWx.d.ts","../../../node_modules/.pnpm/vitest@3.0.7_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vitest/dist/chunks/worker.DaAIyCKm.d.ts","../../../node_modules/.pnpm/vitest@3.0.7_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vitest/dist/chunks/worker.B2JXutr8.d.ts","../../../node_modules/.pnpm/@vitest+expect@3.0.7/node_modules/@vitest/expect/dist/chai.d.cts","../../../node_modules/.pnpm/@vitest+spy@3.0.7/node_modules/@vitest/spy/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+expect@3.0.7/node_modules/@vitest/expect/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+expect@3.0.7/node_modules/@vitest/expect/index.d.ts","../../../node_modules/.pnpm/vitest@3.0.7_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vitest/dist/chunks/global.CnI8_G5V.d.ts","../../../node_modules/.pnpm/vitest@3.0.7_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vitest/dist/chunks/vite.vM3UZq1q.d.ts","../../../node_modules/.pnpm/@vitest+mocker@3.0.7_vite@6.2.0_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0_/node_modules/@vitest/mocker/dist/types-DZOqTgiN.d.ts","../../../node_modules/.pnpm/@vitest+mocker@3.0.7_vite@6.2.0_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0_/node_modules/@vitest/mocker/dist/index.d.ts","../../../node_modules/.pnpm/vitest@3.0.7_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vitest/dist/chunks/mocker.cRtM890J.d.ts","../../../node_modules/.pnpm/vitest@3.0.7_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vitest/dist/chunks/suite.qtkXWc6R.d.ts","../../../node_modules/.pnpm/expect-type@1.1.0/node_modules/expect-type/dist/utils.d.ts","../../../node_modules/.pnpm/expect-type@1.1.0/node_modules/expect-type/dist/overloads.d.ts","../../../node_modules/.pnpm/expect-type@1.1.0/node_modules/expect-type/dist/branding.d.ts","../../../node_modules/.pnpm/expect-type@1.1.0/node_modules/expect-type/dist/messages.d.ts","../../../node_modules/.pnpm/expect-type@1.1.0/node_modules/expect-type/dist/index.d.ts","../../../node_modules/.pnpm/vitest@3.0.7_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vitest/dist/index.d.ts","../../../node_modules/.pnpm/vitest@3.0.7_@types+node@22.13.5_tsx@4.19.3_yaml@2.7.0/node_modules/vitest/globals.d.ts"],"fileIdsList":[[88,131,136,143,201,205,210,211],[88,131,201,205,208],[88,131,205,212],[88,131,144,198,205,206,208],[88,131,136,201,205,208,210],[88,131,205,207,208,210,212,213],[88,131,184,205,207,209],[88,131,198,199],[88,131,200],[88,131,199,200,201,202,203,204],[88,131,200,202],[88,131,198,200,202],[88,131,198],[88,131,198,205,207],[88,131],[88,128,131],[88,130,131],[131],[88,131,136,166],[88,131,132,137,143,144,151,163,174],[88,131,132,133,143,151],[83,84,85,88,131],[88,131,134,175],[88,131,135,136,144,152],[88,131,136,163,171],[88,131,137,139,143,151],[88,130,131,138],[88,131,139,140],[88,131,143],[88,131,141,143],[88,130,131,143],[88,131,143,144,145,163,174],[88,131,143,144,145,158,163,166],[88,126,131,179],[88,126,131,139,143,146,151,163,174],[88,131,143,144,146,147,151,163,171,174],[88,131,146,148,163,171,174],[86,87,88,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180],[88,131,143,149],[88,131,150,174],[88,131,139,143,151,163],[88,131,152],[88,131,153],[88,130,131,154],[88,128,129,130,131,132,133,134,135,136,137,138,139,140,141,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180],[88,131,156],[88,131,157],[88,131,143,158,159],[88,131,158,160,175,177],[88,131,143,163,164,165,166],[88,131,163,165],[88,131,163,164],[88,131,166],[88,131,167],[88,128,131,163],[88,131,143,169,170],[88,131,169,170],[88,131,136,151,163,171],[88,131,172],[88,131,151,173],[88,131,146,157,174],[88,131,136,175],[88,131,163,176],[88,131,150,177],[88,131,178],[88,131,136,143,145,154,163,174,177,179],[88,131,163,180],[88,131,219,220,223,279],[88,131,280],[88,131,284],[88,131,220,221,223,224,225],[88,131,220],[88,131,220,221,223],[88,131,220,221],[88,131,263],[88,131,215,263,264],[88,131,215,263],[88,131,215,222],[88,131,216],[88,131,215,216,217,219],[88,131,215],[88,131,174,181],[88,131,288,289],[88,131,288,289,290,291],[88,131,288,290],[88,131,288],[88,131,146,181],[88,131,143,179,182,183],[88,131,252],[88,131,250,252],[88,131,241,249,250,251,253],[88,131,239],[88,131,242,247,252,255],[88,131,238,255],[88,131,242,243,246,247,248,255],[88,131,242,243,244,246,247,255],[88,131,239,240,241,242,243,247,248,249,251,252,253,255],[88,131,255],[88,131,237,239,240,241,242,243,244,246,247,248,249,250,251,252,253,254],[88,131,237,255],[88,131,242,244,245,247,248,255],[88,131,246,255],[88,131,247,248,252,255],[88,131,240,250],[88,131,229,260,261],[88,131,228,229],[88,131,143,181],[88,131,218],[88,98,102,131,174],[88,98,131,163,174],[88,93,131],[88,95,98,131,171,174],[88,131,151,171],[88,131,181],[88,93,131,181],[88,95,98,131,151,174],[88,90,91,94,97,131,143,163,174],[88,98,105,131],[88,90,96,131],[88,98,119,120,131],[88,94,98,131,166,174,181],[88,119,131,181],[88,92,93,131,181],[88,98,131],[88,92,93,94,95,96,97,98,99,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,120,121,122,123,124,125,131],[88,98,113,131],[88,98,105,106,131],[88,96,98,106,107,131],[88,97,131],[88,90,93,98,131],[88,98,102,106,107,131],[88,102,131],[88,96,98,101,131,174],[88,90,95,98,105,131],[88,131,163],[88,93,98,119,131,179,181],[88,131,268],[88,131,268,269],[88,131,143,144,146,147,148,151,163,171,174,180,181,229,230,231,232,234,235,236,256,257,258,259,260,261],[88,131,231,232,233,234],[88,131,231],[88,131,232],[88,131,229,261],[88,131,226,271,272,282],[88,131,215,223,226,265,266,282],[88,131,215,226,227,265,273,281,282],[88,131,285],[88,131,144,163,215,220,223,226,227,261,262,265,267,270,273,274,278,282,283],[88,131,226,271,272,273,282],[88,131,261,275],[88,131,179,276],[88,131,226,227,265,267,270,282],[88,131,144,163,179,215,220,223,226,227,261,262,265,266,267,270,271,272,273,274,275,276,277,278,279,281,282,283,285,286,287,292],[88,131,293],[88,131,197],[88,131,185,186,197],[88,131,187,188],[88,131,185,186,187,189,190,195],[88,131,186,187],[88,131,196],[88,131,187],[88,131,185,186,187,190,191,192,193,194]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"e12a46ce14b817d4c9e6b2b478956452330bf00c9801b79de46f7a1815b5bd40","impliedFormat":1},{"version":"4fd3f3422b2d2a3dfd5cdd0f387b3a8ec45f006c6ea896a4cb41264c2100bb2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"bab26767638ab3557de12c900f0b91f710c7dc40ee9793d5a27d32c04f0bf646","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"61d6a2092f48af66dbfb220e31eea8b10bc02b6932d6e529005fd2d7b3281290","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"bde31fd423cd93b0eff97197a3f66df7c93e8c0c335cbeb113b7ff1ac35c23f4","impliedFormat":1},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"030e350db2525514580ed054f712ffb22d273e6bc7eddc1bb7eda1e0ba5d395e","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"13af9e8fb6757946c48117315866177b95e554d1e773577bb6ca6e40083b6d73","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"d2bc987ae352271d0d615a420dcf98cc886aa16b87fb2b569358c1fe0ca0773d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4f0539c58717cbc8b73acb29f9e992ab5ff20adba5f9b57130691c7f9b186a4d","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"76103716ba397bbb61f9fa9c9090dca59f39f9047cb1352b2179c5d8e7f4e8d0","impliedFormat":1},{"version":"53eac70430b30089a3a1959d8306b0f9cfaf0de75224b68ef25243e0b5ad1ca3","affectsGlobalScope":true,"impliedFormat":1},{"version":"4314c7a11517e221f7296b46547dbc4df047115b182f544d072bdccffa57fc72","impliedFormat":1},{"version":"115971d64632ea4742b5b115fb64ed04bcaae2c3c342f13d9ba7e3f9ee39c4e7","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"86956cc2eb9dd371d6fab493d326a574afedebf76eef3fa7833b8e0d9b52d6f1","affectsGlobalScope":true,"impliedFormat":1},{"version":"19d5f8d3930e9f99aa2c36258bf95abbe5adf7e889e6181872d1cdba7c9a7dd5","impliedFormat":1},{"version":"e6f5a38687bebe43a4cef426b69d34373ef68be9a6b1538ec0a371e69f309354","impliedFormat":1},{"version":"a6bf63d17324010ca1fbf0389cab83f93389bb0b9a01dc8a346d092f65b3605f","impliedFormat":1},{"version":"e009777bef4b023a999b2e5b9a136ff2cde37dc3f77c744a02840f05b18be8ff","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"88bc59b32d0d5b4e5d9632ac38edea23454057e643684c3c0b94511296f2998c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ff5a53a58e756d2661b73ba60ffe274231a4432d21f7a2d0d9e4f6aa99f4283","impliedFormat":1},{"version":"1e289f30a48126935a5d408a91129a13a59c9b0f8c007a816f9f16ef821e144e","impliedFormat":1},{"version":"2ea254f944dfe131df1264d1fb96e4b1f7d110195b21f1f5dbb68fdd394e5518","impliedFormat":1},{"version":"5135bdd72cc05a8192bd2e92f0914d7fc43ee077d1293dc622a049b7035a0afb","impliedFormat":1},{"version":"4f80de3a11c0d2f1329a72e92c7416b2f7eab14f67e92cac63bb4e8d01c6edc8","impliedFormat":1},{"version":"6d386bc0d7f3afa1d401afc3e00ed6b09205a354a9795196caed937494a713e6","impliedFormat":1},{"version":"b11cb909327c874a4e81bfb390bf0d231e5bf9439052689ab80ba8afa50da17b","affectsGlobalScope":true,"impliedFormat":1},{"version":"23459c1915878a7c1e86e8bdb9c187cddd3aea105b8b1dfce512f093c969bc7e","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"1dc73f8854e5c4506131c4d95b3a6c24d0c80336d3758e95110f4c7b5cb16397","affectsGlobalScope":true,"impliedFormat":1},{"version":"5f6f1d54779d0b9ed152b0516b0958cd34889764c1190434bbf18e7a8bb884cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"c6b4e0a02545304935ecbf7de7a8e056a31bb50939b5b321c9d50a405b5a0bba","impliedFormat":1},{"version":"fab29e6d649aa074a6b91e3bdf2bff484934a46067f6ee97a30fcd9762ae2213","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"e1120271ebbc9952fdc7b2dd3e145560e52e06956345e6fdf91d70ca4886464f","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"f7b1df115dbd1b8522cba4f404a9f4fdcd5169e2137129187ffeee9d287e4fd1","impliedFormat":1},{"version":"b52d379b4939681f3781d1cfd5b2c3cbb35e7e76f2425172e165782f8a08228c","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"745c4240220559bd340c8aeb6e3c5270a709d3565e934dc22a69c304703956bc","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"993985beef40c7d113f6dd8f0ba26eed63028b691fbfeb6a5b63f26408dd2c6d","affectsGlobalScope":true,"impliedFormat":1},{"version":"bef91efa0baea5d0e0f0f27b574a8bc100ce62a6d7e70220a0d58af6acab5e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"282fd2a1268a25345b830497b4b7bf5037a5e04f6a9c44c840cb605e19fea841","impliedFormat":1},{"version":"5360a27d3ebca11b224d7d3e38e3e2c63f8290cb1fcf6c3610401898f8e68bc3","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"7d6ff413e198d25639f9f01f16673e7df4e4bd2875a42455afd4ecc02ef156da","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb094bb347d7df3380299eb69836c2c8758626ecf45917577707c03cf816b6f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"f689c4237b70ae6be5f0e4180e8833f34ace40529d1acc0676ab8fb8f70457d7","impliedFormat":1},{"version":"b02784111b3fc9c38590cd4339ff8718f9329a6f4d3fd66e9744a1dcd1d7e191","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"52a8e7e8a1454b6d1b5ad428efae3870ffc56f2c02d923467f2940c454aa9aec","affectsGlobalScope":true,"impliedFormat":1},{"version":"78dc0513cc4f1642906b74dda42146bcbd9df7401717d6e89ea6d72d12ecb539","impliedFormat":1},{"version":"ad90122e1cb599b3bc06a11710eb5489101be678f2920f2322b0ac3e195af78d","impliedFormat":1},{"version":"4fe80f12b1d5189384a219095c2eabadbb389c2d3703aae7c5376dbaa56061df","impliedFormat":1},{"version":"9eb1d2dceae65d1c82fc6be7e9b6b19cf3ca93c364678611107362b6ad4d2d41","impliedFormat":1},{"version":"cf1dc1d2914dd0f9462bc04c394084304dff5196cce7b725029c792e4e622a5b","impliedFormat":1},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"b542939a35357458e62f8229c2d7578ae888d63d3ab837395d7bb8a3064c205e","impliedFormat":1},{"version":"3a5af4fba7b27b815bb40f52715aedebaa4b371da3e5a664e7e0798c9b638825","impliedFormat":1},{"version":"8485b6da53ec35637d072e516631d25dae53984500de70a6989058f24354666f","impliedFormat":1},{"version":"ebe80346928736532e4a822154eb77f57ef3389dbe2b3ba4e571366a15448ef2","impliedFormat":1},{"version":"49c632082dc8a916353288d3d8b2dc82b3471794249a381d090d960c8ceac908","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"71addb585c2db7b8e53dc1b0bcfa58c6c67c6e4fa2b968942046749d66f82e7e","impliedFormat":1},{"version":"c76b0c5727302341d0bdfa2cc2cee4b19ff185b554edb6e8543f0661d8487116","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"e703cfacb9965c4d4155346c65a0091ecded90ea98874ed6b3f36286577c4dde","impliedFormat":1},{"version":"f5ef066942e4f0bd98200aa6a6694b831e73200c9b3ade77ad0aa2409e8fe1b1","impliedFormat":1},{"version":"b9e99cd94f4166a245f5158f7286c05406e2a4c694619bceb7a4f3519d1d768e","impliedFormat":1},{"version":"5568d7c32e5cf5f35e092649f4e5e168c3114c800b1d7545b7ae5e0415704802","impliedFormat":1},{"version":"6286c77f09d5a78eabf722cfbdb91914919c1709e02965586c0fced9019db132","signature":"80bc7ab936abaeffbc0f7d459afdf90dd3e7b65733a43be4322a7b35289190ea"},{"version":"ae531ef4639da06c8a4bea0ec9ca080b2dd5794dfa5a83b9254002a5f8141583","signature":"5fa5e5054d520d24acc672ff7476f2f727e8fcc7d4089ed3fe9736cea6af2952"},{"version":"95b1d1f3910bfe2990616798c2ca02df7dbb2a42caa1747d3bcbbaf53d05bb71","signature":"9df84ac083a7244640fb68fc922a10020c479dc109be1810e6dc6b24194ff58d"},{"version":"267bb06f3ef94b27352fdb52cdc4cb54cf275ae939001720edcc174bb50ee88e","signature":"c562536d88d8ce3fc4f973febc4e7203b88a09f10079ecbacb3510f66d7ba2d6"},{"version":"6a1f90e5fcf0d1f190256bdc26171e491999c44216e07a1a746a837e82fb97b4","signature":"7776cb87ae4059f78910b9e59f3f5a9a2cd53a98b06bf33ed4d7b125b0f7330e"},{"version":"3c291249d694691439c240210b532af25879ec9791f0c63d6393e04081364d36","signature":"efd20b1b6afec79414184abd75b410e2ce8520537452af680119ae5aec09a034"},{"version":"2026aceed8b85b37ac5f03b68811de259c1c220e7f5ad5fc1d4e7903d8834e11","signature":"a8dd0ec64674674c140786a845094f3cf5e3aced198de5e0ecf2b36e1eb0330a"},{"version":"f634e4c7d5cdba8e092d98098033b311c8ef304038d815c63ffdb9f78f3f7bb7","impliedFormat":1},{"version":"b152d1d37e05c5aefc5985614d6e12266c17b09c937871d33b745c5733fda6c1","signature":"bb695545e7afc876988a81584cbf079dadbabfe83851c84939925aea89b36da0"},{"version":"b8abac3385f2c8d9998626e170e5e91d4ebc7fb9a721c31d49bc2e8ac1ce1a86","signature":"c842a6eb936b98c6244b56c5cdbd5de1d02eb5f0775a51bd61d549a1c96903e7"},{"version":"0d1e53d481d4d1ed4ca1598aee73f61072a75757ceb5bd2b21ff1351d56dc1d7","signature":"7235035988e380aa70e2c10bcc44447f6a25cf36c586c5c1f191609a46946c59"},{"version":"ed14751de17cfb920f512aaa909a10e7e99fc71c5f1d15e31601c82b53a50993","signature":"a13229a52166dd46b1c191555be13a6e88cf30b74326cef4cbabc86c16a04ce9"},{"version":"e76789d23c1ef7e2de97b5cce11ccc00204a6e7038ca9fd300922357183f41dd","signature":"1ace3b6d19458cbdb1ef30a1fa7ade320fef6a177185deab175138da8c9484b8"},{"version":"dd26d158accb6b88597d8fd8c833bd91bad368b2ef06a90f568a6757abc2c3e9","signature":"62f168a5120a228db4107a3ba435bd8f3b27caf799ebacc03126f92cae49a255"},{"version":"e7d807ee78a592ddb2090d680eddf4661a592886f50348f0822d100886785074","signature":"300a382a7f0359ebef36e6a3c068d9d452b0d8ce5293067342a09e8722c0b00b"},{"version":"08fe05da019d457528448891ebf2e1135859f8422db070fec92c17770d92e91e","signature":"116e67e2d0e195a105a29ba2e36d6b8ee66746f8c1788ae29ccf9d6f56d7e787"},{"version":"e50a264056a32b459417ac9f51d31ba73c672e73a6ed82b098192cd432d3d4ad","impliedFormat":99},{"version":"369ba5259e66ca8c7d35e3234f7a2a0863a770fdb8266505747c65cf346a0804","impliedFormat":99},{"version":"64d984f55025daf604f670b7dfd090ea765f2098aee871174ef2ee3e94479098","impliedFormat":99},{"version":"f9b028d3c3891dd817e24d53102132b8f696269309605e6ed4f0db2c113bbd82","impliedFormat":99},{"version":"fb7c8d90e52e2884509166f96f3d591020c7b7977ab473b746954b0c8d100960","impliedFormat":99},{"version":"9651cce552b774dd47aa930bcf57f78595dbfce277d32be829861129c37ba25e","impliedFormat":99},{"version":"7ccbe015bea4da32bd5e69a883c7f4ce50b6ae1c74de3ef57f10f2fefdfc82ea","impliedFormat":99},{"version":"02c8f6aff21cf65dd98a2d08f36be5f1eb859a94c242ec5999ba07510d9d4ed9","impliedFormat":99},{"version":"b57c462049b5a994dea96a0ddf45a9d2e1b807d0755a05be787b6551de3a5d3e","impliedFormat":99},{"version":"59ebc58c2b8286e9bb42d102e5c16b66c56f54d025b7114ec3b116e9b575782c","impliedFormat":99},{"version":"73e973b4a988435ff67545bce945b15974f55a34d5209a605af8a0bf0046dd7c","impliedFormat":99},{"version":"5d0e44deee096e8456c6ac7e701e5e44037f1929a46f5efbb7b844013e6f3054","impliedFormat":99},{"version":"0622a4b34384dda296d3321e63790bcaa5bb76e60ba3f311ce38667c171f7169","impliedFormat":99},{"version":"785b9d575b49124ce01b46f5b9402157c7611e6532effa562ac6aebec0074dfc","impliedFormat":1},{"version":"1caec58c119ec3e32e181256dd8fa6dd12b081aa2399a5fcf4cccc5c6578fab2","affectsGlobalScope":true,"impliedFormat":1},{"version":"a660aa95476042d3fdcc1343cf6bb8fdf24772d31712b1db321c5a4dcc325434","impliedFormat":1},{"version":"02b1133807234b1a7d9bf9b1419ee19444dd8c26b101bc268aa8181591241f1f","impliedFormat":1},{"version":"6222e987b58abfe92597e1273ad7233626285bc2d78409d4a7b113d81a83496b","impliedFormat":1},{"version":"cbe726263ae9a7bf32352380f7e8ab66ee25b3457137e316929269c19e18a2be","impliedFormat":1},{"version":"0a25f947e7937ee5e01a21eb10d49de3b467eba752d3b42ea442e9e773f254ef","impliedFormat":99},{"version":"f11151a83668f94c1e763e39d89c0022ceb74618f1bfcf67596044acbe306094","impliedFormat":99},{"version":"b8caba62c0d2ef625f31cbb4fde09d851251af2551086ccf068611b0a69efd81","affectsGlobalScope":true,"impliedFormat":1},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","impliedFormat":1},{"version":"33f3718dababfc26dfd9832c150149ea4e934f255130f8c118a59ae69e5ed441","impliedFormat":1},{"version":"e61df3640a38d535fd4bc9f4a53aef17c296b58dc4b6394fd576b808dd2fe5e6","impliedFormat":1},{"version":"459920181700cec8cbdf2a5faca127f3f17fd8dd9d9e577ed3f5f3af5d12a2e4","impliedFormat":1},{"version":"4719c209b9c00b579553859407a7e5dcfaa1c472994bd62aa5dd3cc0757eb077","impliedFormat":1},{"version":"7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","impliedFormat":1},{"version":"70790a7f0040993ca66ab8a07a059a0f8256e7bb57d968ae945f696cbff4ac7a","impliedFormat":1},{"version":"d1b9a81e99a0050ca7f2d98d7eedc6cda768f0eb9fa90b602e7107433e64c04c","impliedFormat":1},{"version":"a022503e75d6953d0e82c2c564508a5c7f8556fad5d7f971372d2d40479e4034","impliedFormat":1},{"version":"b215c4f0096f108020f666ffcc1f072c81e9f2f95464e894a5d5f34c5ea2a8b1","impliedFormat":1},{"version":"644491cde678bd462bb922c1d0cfab8f17d626b195ccb7f008612dc31f445d2d","impliedFormat":1},{"version":"dfe54dab1fa4961a6bcfba68c4ca955f8b5bbeb5f2ab3c915aa7adaa2eabc03a","impliedFormat":1},{"version":"1bb61aa2f08ab4506d41dbe16c5f3f5010f014bbf46fa3d715c0cbe3b00f4e1c","impliedFormat":1},{"version":"47865c5e695a382a916b1eedda1b6523145426e48a2eae4647e96b3b5e52024f","impliedFormat":1},{"version":"e42820cd611b15910c204cd133f692dcd602532b39317d4f2a19389b27e6f03d","impliedFormat":1},{"version":"331b8f71bfae1df25d564f5ea9ee65a0d847c4a94baa45925b6f38c55c7039bf","impliedFormat":1},{"version":"2a771d907aebf9391ac1f50e4ad37952943515eeea0dcc7e78aa08f508294668","impliedFormat":1},{"version":"0146fd6262c3fd3da51cb0254bb6b9a4e42931eb2f56329edd4c199cb9aaf804","impliedFormat":1},{"version":"183f480885db5caa5a8acb833c2be04f98056bdcc5fb29e969ff86e07efe57ab","impliedFormat":99},{"version":"4ec16d7a4e366c06a4573d299e15fe6207fc080f41beac5da06f4af33ea9761e","impliedFormat":1},{"version":"7870becb94cbc11d2d01b77c4422589adcba4d8e59f726246d40cd0d129784d8","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"8f07f2b6514744ac96e51d7cb8518c0f4de319471237ea10cf688b8d0e9d0225","impliedFormat":1},{"version":"08971f8379717d46a8a990ce9a7eed3af3e47e22c3d45c3a046054b7a2fffe7a","impliedFormat":99},{"version":"ce0c4a761774090ecb47021b107d8d9efc6b690c1ed16ec6879f211c13639a5e","impliedFormat":99},{"version":"e01ea380015ed698c3c0e2ccd0db72f3fc3ef1abc4519f122aa1c1a8d419a505","impliedFormat":99},{"version":"c7fde5a6ee862d639bac41c6849b44f7f8c7d959ccaacb6d549ce6a69af281cb","impliedFormat":99},{"version":"f7d64c3a7bb5c0b5c43811309afc1639251a582719ed3fc4afef507dac704d69","impliedFormat":99},{"version":"e3225dc0bec183183509d290f641786245e6652bc3dce755f7ef404060693c35","impliedFormat":99},{"version":"9b0b839bbfa7d4cb31e394c083b3a198b69143b10fcd11d7b77064a485a6c238","impliedFormat":99},{"version":"e6233e1c976265e85aa8ad76c3881febe6264cb06ae3136f0257e1eab4a6cc5a","impliedFormat":99},{"version":"989c2bc4011a6ad3a1b56884f42016096488f42508d85d0d504d031293d5a19f","impliedFormat":99},{"version":"5a42a2f306140fbc74555fd0ceed65539173ba5aad84b73ae52bbbb1378a8426","impliedFormat":99},{"version":"31071c944173aadf3a684a15878e0a60c70f45679a37480801b7c7cb73c2f677","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"65aadb657a741460bdefe6241510546ebbcea42205335668c364c41a75bc22cb","impliedFormat":99},{"version":"38a61c9035359bce6f4183e56080b27bcf6a42c6e7fd2ec1d63c11887f4a2fb8","impliedFormat":99},{"version":"b5e58a9a3f232bfe54012aead8ad25282139f5f2078dda84e1294370fd0cc468","impliedFormat":99},{"version":"f93b65b5ec723e530fff0b378d564008742d43719a64f93a3222ec4117662d33","impliedFormat":99},{"version":"8f51e279763ad35ff8a7bc5055c06234afdb373a3c183baf5c7f7784af77c9c1","impliedFormat":99},{"version":"48c411efce1848d1ed55de41d7deb93cbf7c04080912fd87aa517ed25ef42639","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b946e90aa10b722b2a557ca4038d768c15f1b15c048a45650e20a5d80ba5056","impliedFormat":99},{"version":"50f77391e45d7e48ace79c388f9816edebf27f69909c5705aac909e25638d398","affectsGlobalScope":true,"impliedFormat":99},{"version":"fe2d63fcfdde197391b6b70daf7be8c02a60afa90754a5f4a04bdc367f62793d","impliedFormat":99},{"version":"a5b102c88eb46be4def5c291a78141b70b03b7df482fae7dc669970785b08a9b","affectsGlobalScope":true,"impliedFormat":99},{"version":"ce8c0951f2342077ac2bb0c1721831252917d244cb3617619d1beff4c86f2a4d","impliedFormat":99},{"version":"cbdc781d2429935c9c42acd680f2a53a9f633e8de03290ec6ea818e4f7bff19a","impliedFormat":99},{"version":"9f6d9f5dd710922f82f69abf9a324e28122b5f31ae6f6ce78427716db30a377e","impliedFormat":99},{"version":"ac2414a284bdecfd6ab7b87578744ab056cd04dd574b17853cd76830ef5b72f2","impliedFormat":99},{"version":"6cb1ea843f1bcb7d970f67b93b49f4e04d9aa167bd5a7e9d96b5641ec6708de5","impliedFormat":99},{"version":"2330087dfe056bbfd0f5590a99d1912ce6b4b6a65cca94466cdd142d55503e84","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"4c8ca51077f382498f47074cf304d654aba5d362416d4f809dfdd5d4f6b3aaca","impliedFormat":1},{"version":"bcc1a744205fcd40c6c5c5fac042307fac6f9d6055a4f4e9b96f80599b9cd4cc","impliedFormat":1},{"version":"8f75304c9264c51bcae60b7f9570c21c7e9aed5c51833d19bd3e06ae5fc37684","impliedFormat":99},{"version":"381d27c35f5a5bf6c09dd238ec26fef30a03d12ea84589c621ebc208d7dc8378","affectsGlobalScope":true,"impliedFormat":99}],"root":[[199,205],[207,214]],"options":{"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":7,"noImplicitAny":true,"outDir":"./","preserveConstEnums":true,"rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":99,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[212,1],[209,2],[213,3],[207,4],[211,5],[214,6],[210,7],[200,8],[201,9],[205,10],[203,11],[202,9],[204,12],[199,13],[208,14],[228,15],[128,16],[129,16],[130,17],[88,18],[131,19],[132,20],[133,21],[83,15],[86,22],[84,15],[85,15],[134,23],[135,24],[136,25],[137,26],[138,27],[139,28],[140,28],[142,29],[141,30],[143,31],[144,32],[145,33],[127,34],[87,15],[146,35],[147,36],[148,37],[181,38],[149,39],[150,40],[151,41],[152,42],[153,43],[154,44],[155,45],[156,46],[157,47],[158,48],[159,48],[160,49],[161,15],[162,15],[163,50],[165,51],[164,52],[166,53],[167,54],[168,55],[169,56],[170,57],[171,58],[172,59],[173,60],[174,61],[175,62],[176,63],[177,64],[178,65],[179,66],[180,67],[278,15],[280,68],[281,69],[285,70],[284,15],[215,15],[226,71],[221,72],[224,73],[271,74],[263,15],[266,75],[265,76],[274,76],[264,77],[279,15],[223,78],[225,78],[217,79],[220,80],[262,79],[222,81],[216,15],[89,15],[206,82],[236,15],[290,83],[292,84],[291,85],[289,86],[288,15],[182,87],[184,88],[253,89],[251,90],[252,91],[240,92],[241,90],[248,93],[239,94],[244,95],[254,15],[245,96],[250,97],[256,98],[255,99],[238,100],[246,101],[247,102],[242,103],[249,89],[243,104],[230,105],[229,106],[183,107],[237,15],[272,15],[218,15],[219,108],[80,15],[81,15],[15,15],[13,15],[14,15],[19,15],[18,15],[2,15],[20,15],[21,15],[22,15],[23,15],[24,15],[25,15],[26,15],[27,15],[3,15],[28,15],[29,15],[4,15],[30,15],[34,15],[31,15],[32,15],[33,15],[35,15],[36,15],[37,15],[5,15],[38,15],[39,15],[40,15],[41,15],[6,15],[45,15],[42,15],[43,15],[44,15],[46,15],[7,15],[47,15],[52,15],[53,15],[48,15],[49,15],[50,15],[51,15],[8,15],[57,15],[54,15],[55,15],[56,15],[58,15],[9,15],[59,15],[60,15],[61,15],[63,15],[62,15],[64,15],[65,15],[10,15],[66,15],[67,15],[68,15],[11,15],[69,15],[70,15],[71,15],[72,15],[73,15],[1,15],[74,15],[75,15],[12,15],[78,15],[77,15],[82,15],[76,15],[79,15],[17,15],[16,15],[105,109],[115,110],[104,109],[125,111],[96,112],[95,113],[124,114],[118,115],[123,116],[98,117],[112,118],[97,119],[121,120],[93,121],[92,114],[122,122],[94,123],[99,124],[100,15],[103,124],[90,15],[126,125],[116,126],[107,127],[108,128],[110,129],[106,130],[109,131],[119,114],[101,132],[102,133],[111,134],[91,135],[114,126],[113,124],[117,15],[120,136],[269,137],[270,138],[268,15],[261,139],[235,140],[234,141],[232,141],[231,15],[233,142],[259,15],[258,15],[257,15],[260,143],[273,144],[267,145],[227,15],[282,146],[286,147],[275,148],[287,149],[283,150],[277,151],[276,152],[293,153],[294,154],[198,155],[187,156],[189,157],[196,158],[191,15],[192,15],[190,159],[193,155],[185,15],[186,15],[197,160],[188,161],[194,15],[195,162]],"latestChangedDtsFile":"./index.d.ts","version":"5.7.3"}
|
package/dist/act.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Committed, Lease, Query, Registry, Schema, SchemaRegister, Schemas, Snapshot, StateFactory, Target } from "./types";
|
|
2
|
+
type SnapshotArgs = Snapshot<Schemas, Schema>;
|
|
3
|
+
export declare class Act<E extends Schemas, A extends Schemas, S extends SchemaRegister<A>> {
|
|
4
|
+
readonly registry: Registry<E, A, S>;
|
|
5
|
+
readonly drainLimit: number;
|
|
6
|
+
private _emitter;
|
|
7
|
+
emit(event: "committed", args: SnapshotArgs): boolean;
|
|
8
|
+
emit(event: "drained", args: Lease[]): boolean;
|
|
9
|
+
on(event: "committed", listener: (args: SnapshotArgs) => void): this;
|
|
10
|
+
on(event: "drained", listener: (args: Lease[]) => void): this;
|
|
11
|
+
constructor(registry: Registry<E, A, S>, drainLimit: number);
|
|
12
|
+
do<K extends keyof A>(action: K, target: Target, payload: Readonly<A[K]>, reactingTo?: Committed<E, keyof E>, skipValidation?: boolean): Promise<Snapshot<E, S[K]>>;
|
|
13
|
+
load<EX extends Schemas, AX extends Schemas, SX extends Schema>(factory: StateFactory<EX, AX, SX>, stream: string, callback?: (snapshot: Snapshot<EX, SX>) => void): Promise<Snapshot<EX, SX>>;
|
|
14
|
+
query(query: Query, callback?: (event: Committed<E, keyof E>) => void): Promise<{
|
|
15
|
+
first?: Committed<E, keyof E>;
|
|
16
|
+
last?: Committed<E, keyof E>;
|
|
17
|
+
count: number;
|
|
18
|
+
}>;
|
|
19
|
+
private handle;
|
|
20
|
+
private drainLocked;
|
|
21
|
+
drain(): Promise<number>;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=act.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"act.d.ts","sourceRoot":"","sources":["../src/act.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EACT,KAAK,EACL,KAAK,EAEL,QAAQ,EACR,MAAM,EACN,cAAc,EACd,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,MAAM,EACP,MAAM,SAAS,CAAC;AAGjB,KAAK,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAE9C,qBAAa,GAAG,CACd,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC;aAkBT,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAC3B,UAAU,EAAE,MAAM;IAjBpC,OAAO,CAAC,QAAQ,CAAsB;IAEtC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO;IACrD,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO;IAK9C,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IACpE,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,IAAI;gBAO3C,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC3B,UAAU,EAAE,MAAM;IAG9B,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EACxB,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvB,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAClC,cAAc,UAAQ;IAclB,IAAI,CAAC,EAAE,SAAS,OAAO,EAAE,EAAE,SAAS,OAAO,EAAE,EAAE,SAAS,MAAM,EAClE,OAAO,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EACjC,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,GAC9C,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAItB,KAAK,CACT,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,IAAI,GAChD,OAAO,CAAC;QACT,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;YAWY,MAAM;IAgCpB,OAAO,CAAC,WAAW,CAAS;IACtB,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;CAqG/B"}
|
package/dist/act.js
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { randomUUID } from "crypto";
|
|
2
|
+
import EventEmitter from "events";
|
|
3
|
+
import * as es from "./event-sourcing";
|
|
4
|
+
import { logger, store } from "./ports";
|
|
5
|
+
import { ValidationError } from "./types/errors";
|
|
6
|
+
export class Act {
|
|
7
|
+
registry;
|
|
8
|
+
drainLimit;
|
|
9
|
+
_emitter = new EventEmitter();
|
|
10
|
+
emit(event, args) {
|
|
11
|
+
return this._emitter.emit(event, args);
|
|
12
|
+
}
|
|
13
|
+
on(event, listener) {
|
|
14
|
+
this._emitter.on(event, listener);
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
constructor(registry, drainLimit) {
|
|
18
|
+
this.registry = registry;
|
|
19
|
+
this.drainLimit = drainLimit;
|
|
20
|
+
}
|
|
21
|
+
async do(action, target, payload, reactingTo, skipValidation = false) {
|
|
22
|
+
const snapshot = await es.action(this.registry.actions[action], action, target, payload, reactingTo, skipValidation);
|
|
23
|
+
this.emit("committed", snapshot);
|
|
24
|
+
return snapshot;
|
|
25
|
+
}
|
|
26
|
+
async load(factory, stream, callback) {
|
|
27
|
+
return await es.load(factory(), stream, callback);
|
|
28
|
+
}
|
|
29
|
+
async query(query, callback) {
|
|
30
|
+
let first = undefined, last = undefined;
|
|
31
|
+
const count = await store().query((e) => {
|
|
32
|
+
!first && (first = e);
|
|
33
|
+
last = e;
|
|
34
|
+
callback && callback(e);
|
|
35
|
+
}, query);
|
|
36
|
+
return { first, last, count };
|
|
37
|
+
}
|
|
38
|
+
async handle(lease, reactions) {
|
|
39
|
+
const stream = lease.stream;
|
|
40
|
+
lease.retry > 0 &&
|
|
41
|
+
logger.error(`Retrying ${stream}@${lease.at} (${lease.retry}).`);
|
|
42
|
+
for (const reaction of reactions) {
|
|
43
|
+
const { event, handler, options } = reaction;
|
|
44
|
+
try {
|
|
45
|
+
await handler(event, lease.stream); // the actual reaction
|
|
46
|
+
lease.at = event.id;
|
|
47
|
+
lease.count = (lease.count || 0) + 1;
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
lease.error = error;
|
|
51
|
+
if (error instanceof ValidationError)
|
|
52
|
+
logger.error({ stream, error }, error.message);
|
|
53
|
+
else
|
|
54
|
+
logger.error(error);
|
|
55
|
+
if (lease.retry < options.maxRetries)
|
|
56
|
+
lease.retry++;
|
|
57
|
+
else if (options.blockOnError) {
|
|
58
|
+
lease.block = true;
|
|
59
|
+
logger.error(`Blocked ${stream} after ${lease.retry} retries.`);
|
|
60
|
+
}
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return lease;
|
|
65
|
+
}
|
|
66
|
+
drainLocked = false;
|
|
67
|
+
async drain() {
|
|
68
|
+
if (this.drainLocked)
|
|
69
|
+
return 0;
|
|
70
|
+
this.drainLocked = true;
|
|
71
|
+
const drained = [];
|
|
72
|
+
const { streams, events } = await store().fetch(this.drainLimit);
|
|
73
|
+
if (events.length) {
|
|
74
|
+
logger.trace(events
|
|
75
|
+
.map(({ id, stream, name }) => ({ id, stream, name }))
|
|
76
|
+
.reduce((a, { id, stream, name }) => ({ ...a, [id]: { [stream]: name } }), {}), "⚡️ fetch");
|
|
77
|
+
// correlate events to streams by reaction resolvers
|
|
78
|
+
const resolved = new Set(streams);
|
|
79
|
+
const correlated = new Map();
|
|
80
|
+
for (const event of events)
|
|
81
|
+
for (const reaction of this.registry.events[event.name].reactions.values()) {
|
|
82
|
+
const stream = typeof reaction.resolver === "string"
|
|
83
|
+
? reaction.resolver
|
|
84
|
+
: reaction.resolver(event);
|
|
85
|
+
if (stream) {
|
|
86
|
+
resolved.add(stream);
|
|
87
|
+
(correlated.get(stream) || correlated.set(stream, []).get(stream)).push({ ...reaction, event: event });
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// lease fetched & resolved streams to the position of the last fetched event
|
|
91
|
+
const last = events.at(-1).id;
|
|
92
|
+
const leases = [...resolved.values()].map((stream) => ({
|
|
93
|
+
by: randomUUID(),
|
|
94
|
+
stream,
|
|
95
|
+
at: last,
|
|
96
|
+
retry: 0,
|
|
97
|
+
block: false,
|
|
98
|
+
}));
|
|
99
|
+
const leased = await store().lease(leases);
|
|
100
|
+
logger.trace(leased
|
|
101
|
+
.map(({ stream, at, retry }) => ({ stream, at, retry }))
|
|
102
|
+
.reduce((a, { stream, at, retry }) => ({ ...a, [stream]: { at, retry } }), {}), "⚡️ lease");
|
|
103
|
+
const handling = leased
|
|
104
|
+
.map((lease) => ({ lease, reactions: correlated.get(lease.stream) }))
|
|
105
|
+
.filter(({ reactions }) => reactions);
|
|
106
|
+
if (handling.length) {
|
|
107
|
+
await Promise.allSettled(handling.map(({ lease, reactions }) => this.handle(lease, reactions))).then((promise) => {
|
|
108
|
+
promise.forEach((result) => {
|
|
109
|
+
if (result.status === "rejected")
|
|
110
|
+
logger.error(result.reason);
|
|
111
|
+
else if (result.value.count)
|
|
112
|
+
drained.push(result.value);
|
|
113
|
+
});
|
|
114
|
+
}, (error) => logger.error(error));
|
|
115
|
+
drained.length && this.emit("drained", drained);
|
|
116
|
+
}
|
|
117
|
+
// acknowledge leases
|
|
118
|
+
await store().ack(leased);
|
|
119
|
+
logger.trace(leased
|
|
120
|
+
.map(({ stream, at, retry, block, count: handled }) => ({
|
|
121
|
+
stream,
|
|
122
|
+
at,
|
|
123
|
+
retry,
|
|
124
|
+
block,
|
|
125
|
+
handled,
|
|
126
|
+
}))
|
|
127
|
+
.reduce((a, { stream, at, retry, block, handled }) => ({
|
|
128
|
+
...a,
|
|
129
|
+
[stream]: { at, retry, block, handled },
|
|
130
|
+
}), {}), "⚡️ ack");
|
|
131
|
+
}
|
|
132
|
+
this.drainLocked = false;
|
|
133
|
+
return drained.length;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=act.js.map
|
package/dist/act.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"act.js","sourceRoot":"","sources":["../src/act.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Committed, EventMeta, Lease, Message, Query, Schemas, Store } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* @category Adapters
|
|
4
|
+
* @remarks In-memory event store
|
|
5
|
+
*/
|
|
6
|
+
export declare class InMemoryStore implements Store {
|
|
7
|
+
private _events;
|
|
8
|
+
private _streams;
|
|
9
|
+
dispose(): Promise<void>;
|
|
10
|
+
seed(): Promise<void>;
|
|
11
|
+
drop(): Promise<void>;
|
|
12
|
+
query<E extends Schemas>(callback: (event: Committed<E, keyof E>) => void, query?: Query): Promise<number>;
|
|
13
|
+
commit<E extends Schemas>(stream: string, msgs: Message<E, keyof E>[], meta: EventMeta, expectedVersion?: number): Promise<Committed<E, keyof E>[]>;
|
|
14
|
+
/**
|
|
15
|
+
* Fetches new events from stream watermarks
|
|
16
|
+
*/
|
|
17
|
+
fetch<E extends Schemas>(limit: number): Promise<{
|
|
18
|
+
streams: string[];
|
|
19
|
+
events: Committed<E, keyof E>[];
|
|
20
|
+
}>;
|
|
21
|
+
lease(leases: Lease[]): Promise<Lease[]>;
|
|
22
|
+
ack(leases: Lease[]): Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=InMemoryStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InMemoryStore.d.ts","sourceRoot":"","sources":["../../src/adapters/InMemoryStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,KAAK,EACL,OAAO,EACP,KAAK,EACL,OAAO,EACP,KAAK,EACN,MAAM,UAAU,CAAC;AA6BlB;;;GAGG;AACH,qBAAa,aAAc,YAAW,KAAK;IAEzC,OAAO,CAAC,OAAO,CAA2C;IAE1D,OAAO,CAAC,QAAQ,CAA0C;IAEpD,OAAO;IAKP,IAAI;IAIJ,IAAI;IAKJ,KAAK,CAAC,CAAC,SAAS,OAAO,EAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,IAAI,EAChD,KAAK,CAAC,EAAE,KAAK;IA8BT,MAAM,CAAC,CAAC,SAAS,OAAO,EAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAC3B,IAAI,EAAE,SAAS,EACf,eAAe,CAAC,EAAE,MAAM;IA4B1B;;OAEG;IACG,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,MAAM;;;;IAkBtC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE;IAcrB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAI1B"}
|