@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.
Files changed (64) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +166 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/act.d.ts +24 -0
  5. package/dist/act.d.ts.map +1 -0
  6. package/dist/act.js +136 -0
  7. package/dist/act.js.map +1 -0
  8. package/dist/adapters/InMemoryStore.d.ts +24 -0
  9. package/dist/adapters/InMemoryStore.d.ts.map +1 -0
  10. package/dist/adapters/InMemoryStore.js +125 -0
  11. package/dist/adapters/InMemoryStore.js.map +1 -0
  12. package/dist/builder.d.ts +30 -0
  13. package/dist/builder.d.ts.map +1 -0
  14. package/dist/builder.js +97 -0
  15. package/dist/builder.js.map +1 -0
  16. package/dist/config.d.ts +93 -0
  17. package/dist/config.d.ts.map +1 -0
  18. package/dist/config.js +41 -0
  19. package/dist/config.js.map +1 -0
  20. package/dist/event-sourcing.d.ts +5 -0
  21. package/dist/event-sourcing.d.ts.map +1 -0
  22. package/dist/event-sourcing.js +101 -0
  23. package/dist/event-sourcing.js.map +1 -0
  24. package/dist/index.d.ts +9 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +27 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/ports.d.ts +17 -0
  29. package/dist/ports.d.ts.map +1 -0
  30. package/dist/ports.js +56 -0
  31. package/dist/ports.js.map +1 -0
  32. package/dist/types/action.d.ts +57 -0
  33. package/dist/types/action.d.ts.map +1 -0
  34. package/dist/types/action.js +2 -0
  35. package/dist/types/action.js.map +1 -0
  36. package/dist/types/errors.d.ts +41 -0
  37. package/dist/types/errors.d.ts.map +1 -0
  38. package/dist/types/errors.js +44 -0
  39. package/dist/types/errors.js.map +1 -0
  40. package/dist/types/index.d.ts +11 -0
  41. package/dist/types/index.d.ts.map +1 -0
  42. package/dist/types/index.js +17 -0
  43. package/dist/types/index.js.map +1 -0
  44. package/dist/types/ports.d.ts +16 -0
  45. package/dist/types/ports.d.ts.map +1 -0
  46. package/dist/types/ports.js +2 -0
  47. package/dist/types/ports.js.map +1 -0
  48. package/dist/types/reaction.d.ts +30 -0
  49. package/dist/types/reaction.d.ts.map +1 -0
  50. package/dist/types/reaction.js +2 -0
  51. package/dist/types/reaction.js.map +1 -0
  52. package/dist/types/registry.d.ts +23 -0
  53. package/dist/types/registry.d.ts.map +1 -0
  54. package/dist/types/registry.js +2 -0
  55. package/dist/types/registry.js.map +1 -0
  56. package/dist/types/schemas.d.ts +1046 -0
  57. package/dist/types/schemas.d.ts.map +1 -0
  58. package/dist/types/schemas.js +82 -0
  59. package/dist/types/schemas.js.map +1 -0
  60. package/dist/utils.d.ts +17 -0
  61. package/dist/utils.d.ts.map +1 -0
  62. package/dist/utils.js +73 -0
  63. package/dist/utils.js.map +1 -0
  64. 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 [![NPM Version](https://img.shields.io/npm/v/@rotorsoft/act.svg)](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
@@ -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"}