@bluelibs/runner 4.2.2 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AI.md CHANGED
@@ -100,6 +100,9 @@ const internal = event({
100
100
  id: "app.events.internal",
101
101
  tags: [globals.tags.excludeFromGlobalHooks],
102
102
  });
103
+
104
+ // Performance: runtime event emission cycle detection
105
+ // run(app, { runtimeCycleDetection: true }) // To prevent deadlocks from happening.
103
106
  ```
104
107
 
105
108
  ### Multiple Events per Hook
@@ -598,6 +601,20 @@ export const cResource = resource({
598
601
 
599
602
  ## Validation (optional and library‑agnostic)
600
603
 
604
+ ## Event Cycle Safety
605
+
606
+ To prevent event‑driven deadlocks, the runner detects cycles during emission:
607
+
608
+ - A cycle occurs when an event emits another event that eventually re‑emits the original event within the same emission chain (for example: `e1 -> e2 -> e1`).
609
+ - When a cycle is detected, an `EventCycleError` is thrown with a readable chain to help debugging.
610
+ - A hook re‑emitting the same event it currently handles is allowed only when the emission originates from the same hook instance (useful for idempotent/no‑op retries); other cases are blocked.
611
+
612
+ Guidance:
613
+
614
+ - Prefer one‑way flows; avoid mutual cross‑emits between hooks.
615
+ - Use `event.stopPropagation()` to short‑circuit handlers when appropriate.
616
+ - Use tags (for example, `globals.tags.excludeFromGlobalHooks`) to scope listeners and avoid unintended re‑entry via global hooks.
617
+
601
618
  Interface any library can implement:
602
619
 
603
620
  ```ts
package/dist/errors.d.ts CHANGED
@@ -73,3 +73,18 @@ export declare class StoreAlreadyInitializedError extends RuntimeError {
73
73
  export declare class ValidationError extends RuntimeError {
74
74
  constructor(type: string, id: string, originalError: Error | string);
75
75
  }
76
+ /**
77
+ * Error thrown when an event emission cycle is detected
78
+ */
79
+ export declare class EventCycleError extends RuntimeError {
80
+ constructor(path: Array<{
81
+ id: string;
82
+ source: string;
83
+ }>);
84
+ }
85
+ /**
86
+ * Error thrown when a compile-time event emission cycle is detected
87
+ */
88
+ export declare class EventEmissionCycleError extends RuntimeError {
89
+ constructor(cycles: string[]);
90
+ }
package/dist/errors.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ValidationError = exports.StoreAlreadyInitializedError = exports.LockedError = exports.TagNotFoundError = exports.MiddlewareNotRegisteredError = exports.ResourceNotFoundError = exports.EventNotFoundError = exports.CircularDependenciesError = exports.ContextError = exports.UnknownItemTypeError = exports.DependencyNotFoundError = exports.DuplicateRegistrationError = exports.RuntimeError = void 0;
3
+ exports.EventEmissionCycleError = exports.EventCycleError = exports.ValidationError = exports.StoreAlreadyInitializedError = exports.LockedError = exports.TagNotFoundError = exports.MiddlewareNotRegisteredError = exports.ResourceNotFoundError = exports.EventNotFoundError = exports.CircularDependenciesError = exports.ContextError = exports.UnknownItemTypeError = exports.DependencyNotFoundError = exports.DuplicateRegistrationError = exports.RuntimeError = void 0;
4
4
  /**
5
5
  * Base error class for all BlueLibs Runner errors
6
6
  */
@@ -143,4 +143,26 @@ class ValidationError extends RuntimeError {
143
143
  }
144
144
  }
145
145
  exports.ValidationError = ValidationError;
146
+ /**
147
+ * Error thrown when an event emission cycle is detected
148
+ */
149
+ class EventCycleError extends RuntimeError {
150
+ constructor(path) {
151
+ const chain = path.map((p) => `${p.id}←${p.source}`).join(" -> ");
152
+ super(`Event emission cycle detected:\n ${chain}\n\nBreak the cycle by changing hook logic (avoid mutual emits) or gate with conditions/tags.`);
153
+ this.name = "EventCycleError";
154
+ }
155
+ }
156
+ exports.EventCycleError = EventCycleError;
157
+ /**
158
+ * Error thrown when a compile-time event emission cycle is detected
159
+ */
160
+ class EventEmissionCycleError extends RuntimeError {
161
+ constructor(cycles) {
162
+ const list = cycles.map((c) => ` • ${c}`).join("\n");
163
+ super(`Event emission cycles detected between hooks and events:\n${list}\n\nThis was detected at compile time (dry-run). Break the cycle by avoiding mutual emits between hooks or scoping hooks using tags.`);
164
+ this.name = "EventEmissionCycleError";
165
+ }
166
+ }
167
+ exports.EventEmissionCycleError = EventEmissionCycleError;
146
168
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,12 @@ export declare class EventManager {
32
32
  private globalListenersCacheValid;
33
33
  private emissionInterceptors;
34
34
  private hookInterceptors;
35
+ private readonly emissionStack;
36
+ private readonly currentHookIdContext;
37
+ private readonly runtimeCycleDetection;
38
+ constructor(options?: {
39
+ runtimeCycleDetection?: boolean;
40
+ });
35
41
  /**
36
42
  * Gets the current lock status of the EventManager
37
43
  */
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EventManager = void 0;
4
4
  const errors_1 = require("../errors");
5
5
  const globalTags_1 = require("../globals/globalTags");
6
+ const node_async_hooks_1 = require("node:async_hooks");
6
7
  /**
7
8
  * Default options for event handlers
8
9
  */
@@ -22,8 +23,17 @@ class EventManager {
22
23
  // Interceptors storage
23
24
  emissionInterceptors = [];
24
25
  hookInterceptors = [];
26
+ // Tracks the current emission chain to detect cycles
27
+ emissionStack = new node_async_hooks_1.AsyncLocalStorage();
28
+ // Tracks currently executing hook id (if any)
29
+ currentHookIdContext = new node_async_hooks_1.AsyncLocalStorage();
25
30
  // Locking mechanism to prevent modifications after initialization
26
31
  #isLocked = false;
32
+ // Feature flags
33
+ runtimeCycleDetection;
34
+ constructor(options) {
35
+ this.runtimeCycleDetection = options?.runtimeCycleDetection ?? true;
36
+ }
27
37
  // ==================== PUBLIC API ====================
28
38
  /**
29
39
  * Gets the current lock status of the EventManager
@@ -55,51 +65,93 @@ class EventManager {
55
65
  throw new errors_1.ValidationError("Event payload", eventDefinition.id, error instanceof Error ? error : new Error(String(error)));
56
66
  }
57
67
  }
58
- const allListeners = this.getCachedMergedListeners(eventDefinition.id);
59
- let propagationStopped = false;
60
- const event = {
61
- id: eventDefinition.id,
62
- data,
63
- timestamp: new Date(),
64
- source,
65
- meta: eventDefinition.meta || {},
66
- stopPropagation: () => {
67
- propagationStopped = true;
68
- },
69
- isPropagationStopped: () => propagationStopped,
70
- tags: eventDefinition.tags,
71
- };
72
- // Create the base emission function
73
- const baseEmit = async (eventToEmit) => {
74
- if (allListeners.length === 0) {
75
- return;
76
- }
77
- const excludeFromGlobal = this.isExcludedFromGlobal(eventToEmit);
78
- for (const listener of allListeners) {
79
- if (propagationStopped) {
80
- break;
68
+ const frame = { id: eventDefinition.id, source };
69
+ const processEmission = async () => {
70
+ // Determine whether this emission should be excluded from global listeners
71
+ /* istanbul ignore next */
72
+ const pseudoForExclude = {
73
+ id: eventDefinition.id,
74
+ data,
75
+ timestamp: new Date(),
76
+ source,
77
+ meta: eventDefinition.meta || {},
78
+ stopPropagation: () => { },
79
+ isPropagationStopped: () => false,
80
+ tags: eventDefinition.tags,
81
+ };
82
+ const excludeFromGlobal = this.isExcludedFromGlobal(pseudoForExclude);
83
+ // Choose listeners: if globals are excluded, only use event-specific listeners
84
+ const allListeners = excludeFromGlobal
85
+ ? this.listeners.get(eventDefinition.id) || []
86
+ : this.getCachedMergedListeners(eventDefinition.id);
87
+ let propagationStopped = false;
88
+ const event = {
89
+ id: eventDefinition.id,
90
+ data,
91
+ timestamp: new Date(),
92
+ source,
93
+ meta: eventDefinition.meta || {},
94
+ stopPropagation: () => {
95
+ propagationStopped = true;
96
+ },
97
+ isPropagationStopped: () => propagationStopped,
98
+ tags: eventDefinition.tags,
99
+ };
100
+ // Create the base emission function
101
+ const baseEmit = async (eventToEmit) => {
102
+ if (allListeners.length === 0) {
103
+ return;
81
104
  }
82
- // If this event is marked to be excluded from global listeners,
83
- // we only allow non-global (event-specific) listeners to run.
84
- // Global listeners are mixed into `allListeners` but flagged.
85
- if (excludeFromGlobal && listener.isGlobal) {
86
- continue;
87
- }
88
- if (!listener.filter || listener.filter(eventToEmit)) {
89
- await listener.handler(eventToEmit);
105
+ const excludeFromGlobal = this.isExcludedFromGlobal(eventToEmit);
106
+ for (const listener of allListeners) {
107
+ if (propagationStopped) {
108
+ break;
109
+ }
110
+ // Skip handlers that identify themselves as the source of this event
111
+ // (prevents a listener from re-invoking itself).
112
+ if (listener.id && listener.id === eventToEmit.source) {
113
+ continue;
114
+ }
115
+ if (!listener.filter || listener.filter(eventToEmit)) {
116
+ await listener.handler(eventToEmit);
117
+ }
90
118
  }
119
+ };
120
+ // Apply emission interceptors (last added runs first)
121
+ let emitWithInterceptors = baseEmit;
122
+ // Reverse the interceptors so the last added runs first
123
+ const reversedInterceptors = [...this.emissionInterceptors].reverse();
124
+ for (const interceptor of reversedInterceptors) {
125
+ const nextFunction = emitWithInterceptors;
126
+ emitWithInterceptors = async (eventToEmit) => interceptor(nextFunction, eventToEmit);
91
127
  }
128
+ // Execute the emission with interceptors
129
+ await emitWithInterceptors(event);
92
130
  };
93
- // Apply emission interceptors (last added runs first)
94
- let emitWithInterceptors = baseEmit;
95
- // Reverse the interceptors so the last added runs first
96
- const reversedInterceptors = [...this.emissionInterceptors].reverse();
97
- for (const interceptor of reversedInterceptors) {
98
- const nextFunction = emitWithInterceptors;
99
- emitWithInterceptors = async (eventToEmit) => interceptor(nextFunction, eventToEmit);
131
+ if (this.runtimeCycleDetection) {
132
+ // Detect re-entrant event cycles: same event id appearing in the current chain
133
+ const currentStack = this.emissionStack.getStore();
134
+ if (currentStack) {
135
+ const cycleStart = currentStack.findIndex((f) => f.id === frame.id);
136
+ if (cycleStart !== -1) {
137
+ const top = currentStack[currentStack.length - 1];
138
+ const currentHookId = this.currentHookIdContext.getStore();
139
+ const safeReEmitBySameHook = top.id === frame.id && currentHookId && currentHookId === source;
140
+ if (!safeReEmitBySameHook) {
141
+ throw new errors_1.EventCycleError([
142
+ ...currentStack.slice(cycleStart),
143
+ frame,
144
+ ]);
145
+ }
146
+ }
147
+ }
148
+ const nextStack = currentStack ? [...currentStack, frame] : [frame];
149
+ await this.emissionStack.run(nextStack, processEmission);
150
+ }
151
+ else {
152
+ // Fast path without AsyncLocalStorage context tracking
153
+ await processEmission();
100
154
  }
101
- // Execute the emission with interceptors
102
- await emitWithInterceptors(event);
103
155
  }
104
156
  /**
105
157
  * Registers an event listener for specific event(s).
@@ -114,7 +166,8 @@ class EventManager {
114
166
  const newListener = {
115
167
  handler,
116
168
  order: options.order || 0,
117
- // filter: options.filter,
169
+ filter: options.filter,
170
+ id: options.id,
118
171
  isGlobal: false,
119
172
  };
120
173
  if (Array.isArray(event)) {
@@ -145,6 +198,7 @@ class EventManager {
145
198
  handler,
146
199
  order: options.order || 0,
147
200
  filter: options.filter,
201
+ id: options.id,
148
202
  isGlobal: true,
149
203
  };
150
204
  this.insertListener(this.globalListeners, newListener);
@@ -157,11 +211,30 @@ class EventManager {
157
211
  * @returns true if listeners exist, false otherwise
158
212
  */
159
213
  hasListeners(eventDefinition) {
160
- const eventListeners = this.listeners.get(eventDefinition.id);
161
- if (!eventListeners) {
214
+ const eventListeners = this.listeners.get(eventDefinition.id) || [];
215
+ if (eventListeners.length > 0) {
216
+ return true;
217
+ }
218
+ if (this.globalListeners.length === 0) {
162
219
  return false;
163
220
  }
164
- return eventListeners.length > 0 || this.globalListeners.length > 0;
221
+ // If the event definition carries the tag that excludes it from global
222
+ // listeners, report no listeners (since globals would be skipped at emit).
223
+ /* istanbul ignore next */
224
+ const pseudoEmission = {
225
+ id: eventDefinition.id,
226
+ data: undefined,
227
+ timestamp: new Date(),
228
+ source: "",
229
+ meta: eventDefinition.meta || {},
230
+ stopPropagation: () => { },
231
+ isPropagationStopped: () => false,
232
+ tags: eventDefinition.tags,
233
+ };
234
+ if (this.isExcludedFromGlobal(pseudoEmission)) {
235
+ return false;
236
+ }
237
+ return true;
165
238
  }
166
239
  /**
167
240
  * Adds an interceptor for all event emissions
@@ -213,8 +286,13 @@ class EventManager {
213
286
  const nextFunction = executeWithInterceptors;
214
287
  executeWithInterceptors = async (hookToExecute, eventForHook) => interceptor(nextFunction, hookToExecute, eventForHook);
215
288
  }
216
- // Execute the hook with interceptors
217
- return await executeWithInterceptors(hook, event);
289
+ // Execute the hook with interceptors within current hook context
290
+ if (this.runtimeCycleDetection) {
291
+ return await this.currentHookIdContext.run(hook.id, async () => await executeWithInterceptors(hook, event));
292
+ }
293
+ else {
294
+ return await executeWithInterceptors(hook, event);
295
+ }
218
296
  }
219
297
  // ==================== PRIVATE METHODS ====================
220
298
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"EventManager.js","sourceRoot":"","sources":["../../src/models/EventManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventManager.js","sourceRoot":"","sources":["../../src/models/EventManager.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,7 @@ export declare class Store {
41
41
  setTaskRunner(taskRunner: TaskRunner): void;
42
42
  private setupRootResource;
43
43
  validateDependencyGraph(): void;
44
+ validateEventEmissionGraph(): void;
44
45
  initializeStore(root: IResource<any, any, any, any, any>, config: any): void;
45
46
  dispose(): Promise<void>;
46
47
  processOverrides(): void;
@@ -157,6 +157,13 @@ class Store {
157
157
  throw new errors_1.CircularDependenciesError(circularDependencies.cycles);
158
158
  }
159
159
  }
160
+ validateEventEmissionGraph() {
161
+ const eventNodes = this.registry.buildEventEmissionGraph();
162
+ const circular = (0, findCircularDependencies_1.findCircularDependencies)(eventNodes);
163
+ if (circular.cycles.length > 0) {
164
+ throw new errors_1.EventEmissionCycleError(circular.cycles);
165
+ }
166
+ }
160
167
  initializeStore(root, config) {
161
168
  if (this.#isInitialized) {
162
169
  throw new errors_1.StoreAlreadyInitializedError();
@@ -1 +1 @@
1
- {"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/models/Store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/models/Store.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { IResource, ITask, IResourceWithConfig, RegisterableItems, ITaskMiddleware, IResourceMiddleware, IEvent, ITag, IHook } from "../defs";
2
- import { IDependentNode } from "./utils/findCircularDependencies";
3
2
  import { TaskStoreElementType, TaskMiddlewareStoreElementType, ResourceMiddlewareStoreElementType, ResourceStoreElementType, EventStoreElementType, HookStoreElementType } from "../defs";
4
3
  import { StoreValidator } from "./StoreValidator";
5
4
  import { Store } from "./Store";
5
+ import { IDependentNode } from "./utils/findCircularDependencies";
6
6
  type StoringMode = "normal" | "override";
7
7
  export declare class StoreRegistry {
8
8
  protected readonly store: Store;
@@ -27,6 +27,11 @@ export declare class StoreRegistry {
27
27
  storeResource<C>(item: IResource<any, any, any>, overrideMode?: StoringMode): IResource<any, any, any, any, any, import("../defs").TagType[], import("../defs").ResourceMiddlewareAttachmentType[]>;
28
28
  storeTask<C>(item: ITask<any, any, {}>, storingMode?: StoringMode): void;
29
29
  getDependentNodes(): IDependentNode[];
30
+ /**
31
+ * Builds a directed graph of event emissions based on hooks listening to events
32
+ * and their dependencies on events (emission capability). Ignores wildcard hooks by default.
33
+ */
34
+ buildEventEmissionGraph(): IDependentNode[];
30
35
  private setupBlankNodes;
31
36
  getTasksWithTag(tag: string | ITag): ITask<any, any, any, any, import("../defs").TagType[], import("../defs").TaskMiddlewareAttachmentType[]>[];
32
37
  getResourcesWithTag(tag: string | ITag): IResource<any, any, {}, any, any, import("../defs").TagType[], import("../defs").ResourceMiddlewareAttachmentType[]>[];
@@ -247,6 +247,54 @@ class StoreRegistry {
247
247
  }
248
248
  return depenedants;
249
249
  }
250
+ /**
251
+ * Builds a directed graph of event emissions based on hooks listening to events
252
+ * and their dependencies on events (emission capability). Ignores wildcard hooks by default.
253
+ */
254
+ buildEventEmissionGraph() {
255
+ const nodes = new Map();
256
+ // Create nodes for all events
257
+ for (const e of this.events.values()) {
258
+ nodes.set(e.event.id, { id: e.event.id, dependencies: {} });
259
+ }
260
+ // For each hook, if it listens to concrete event(s) and depends on events, add edges listenedEvent -> depEvent
261
+ for (const h of this.hooks.values()) {
262
+ const listened = [];
263
+ const on = h.hook.on;
264
+ if (on === "*")
265
+ continue; // avoid over-reporting for global hooks
266
+ if (Array.isArray(on))
267
+ listened.push(...on.map((e) => e.id));
268
+ else
269
+ listened.push(on.id);
270
+ // Collect event dependencies from the hook
271
+ const depEvents = [];
272
+ const deps = h.hook.dependencies;
273
+ if (deps) {
274
+ for (const value of Object.values(deps)) {
275
+ const candidate = utils.isOptional(value) ? value.inner : value;
276
+ if (candidate && utils.isEvent(candidate)) {
277
+ depEvents.push(candidate.id);
278
+ }
279
+ }
280
+ }
281
+ // Add edges
282
+ for (const srcId of listened) {
283
+ const srcNode = nodes.get(srcId);
284
+ if (!srcNode)
285
+ continue; // skip unknown/unregistered events
286
+ for (const dstId of depEvents) {
287
+ if (srcId === dstId)
288
+ continue; // ignore trivial self edge
289
+ const dstNode = nodes.get(dstId);
290
+ if (dstNode) {
291
+ srcNode.dependencies[dstId] = dstNode;
292
+ }
293
+ }
294
+ }
295
+ }
296
+ return Array.from(nodes.values());
297
+ }
250
298
  setupBlankNodes(nodeMap, depenedants) {
251
299
  for (const task of this.tasks.values()) {
252
300
  const node = {
@@ -1 +1 @@
1
- {"version":3,"file":"StoreRegistry.js","sourceRoot":"","sources":["../../src/models/StoreRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StoreRegistry.js","sourceRoot":"","sources":["../../src/models/StoreRegistry.ts"],"names":[],"mappings":"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"}
package/dist/run.js CHANGED
@@ -21,9 +21,11 @@ const RunResult_1 = require("./models/RunResult");
21
21
  */
22
22
  async function run(resourceOrResourceWithConfig, // For optional config
23
23
  options) {
24
- const { debug = undefined, logs = {}, errorBoundary = true, shutdownHooks = true, dryRun = false, onUnhandledError: onUnhandledErrorOpt, } = options || {};
24
+ const { debug = undefined, logs = {}, errorBoundary = true, shutdownHooks = true, dryRun = false, onUnhandledError: onUnhandledErrorOpt, runtimeCycleDetection = true, } = options || {};
25
25
  const { printThreshold = process.env.NODE_ENV === "test" ? null : "info", printStrategy = "pretty", bufferLogs = false, } = logs;
26
- const eventManager = new EventManager_1.EventManager();
26
+ const eventManager = new EventManager_1.EventManager({
27
+ runtimeCycleDetection,
28
+ });
27
29
  let { resource, config } = extractResourceAndConfig(resourceOrResourceWithConfig);
28
30
  // ensure for logger, that it can be used only after: computeAllDependencies() has executed
29
31
  const logger = new Logger_1.Logger({
@@ -68,6 +70,8 @@ options) {
68
70
  // the overrides that were registered now will override the other registered resources
69
71
  await store.processOverrides();
70
72
  store.validateDependencyGraph();
73
+ // Compile-time event emission cycle detection (cheap, graph-based)
74
+ store.validateEventEmissionGraph();
71
75
  if (dryRun) {
72
76
  await logger.debug("Dry run mode. Skipping initialization...");
73
77
  return new RunResult_1.RunResult(store.root.value, logger, store, eventManager, taskRunner, disposeAll);
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":";;AA8BA,kBAoJC;AAlLD,oDAAiD;AAEjD,sEAAmE;AACnE,wDAAqD;AACrD,yDAAsD;AACtD,0CAAuC;AAGvC,4CAAyC;AACzC,qCAAgD;AAChD,qDAA0D;AAC1D,iDAGwB;AACxB,4DAIiC;AACjC,kDAA+C;AAG/C;;;;;;GAMG;AACI,KAAK,UAAU,GAAG,CACvB,4BAGgD,EAAE,sBAAsB;AACxE,OAAoB;IAEpB,MAAM,EACJ,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,EAAE,EACT,aAAa,GAAG,IAAI,EACpB,aAAa,GAAG,IAAI,EACpB,MAAM,GAAG,KAAK,EACd,gBAAgB,EAAE,mBAAmB,GACtC,GAAG,OAAO,IAAI,EAAE,CAAC;IAElB,MAAM,EACJ,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAChE,aAAa,GAAG,QAAQ,EACxB,UAAU,GAAG,KAAK,GACnB,GAAG,IAAI,CAAC;IAET,MAAM,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;IACxC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,wBAAwB,CACjD,4BAA4B,CAC7B,CAAC;IAEF,2FAA2F;IAC3F,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC;QACxB,cAAc;QACd,aAAa;QACb,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,gBAAgB,GACpB,mBAAmB,IAAI,IAAA,4CAA2B,EAAC,MAAM,CAAC,CAAC;IAE7D,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC/D,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAEhC,yEAAyE;IACzE,IAAI,uBAAiD,CAAC;IACtD,IAAI,aAAa,EAAE,CAAC;QAClB,uBAAuB,GAAG,IAAA,6CAA8B,EACtD,IAAA,wCAAuB,EAAC,gBAAgB,CAAC,CAC1C,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,yCAAmB,CACvC,KAAK,EACL,YAAY,EACZ,UAAU,EACV,MAAM,CACP,CAAC;IAEF,mFAAmF;IACnF,IAAI,cAAwC,CAAC;IAE7C,6DAA6D;IAC7D,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,IAAI,CAAC;YACH,IAAI,uBAAuB,EAAE,CAAC;gBAC5B,uBAAuB,EAAE,CAAC;gBAC1B,uBAAuB,GAAG,SAAS,CAAC;YACtC,CAAC;YACD,IAAI,cAAc,EAAE,CAAC;gBACnB,cAAc,EAAE,CAAC;gBACjB,cAAc,GAAG,SAAS,CAAC;YAC7B,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,gBAAgB,CAAC,qBAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,+FAA+F;QAC/F,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAExC,sFAAsF;QACtF,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAE/B,KAAK,CAAC,uBAAuB,EAAE,CAAC;QAEhC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC/D,OAAO,IAAI,qBAAS,CAClB,KAAK,CAAC,IAAI,CAAC,KAAK,EAChB,MAAM,EACN,KAAK,EACL,YAAY,EACZ,UAAU,EACV,UAAU,CACX,CAAC;QACJ,CAAC;QAED,2BAA2B;QAC3B,MAAM,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC5D,MAAM,SAAS,CAAC,eAAe,EAAE,CAAC;QAClC,MAAM,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACpE,MAAM,SAAS,CAAC,sBAAsB,EAAE,CAAC;QACzC,6DAA6D;QAC7D,MAAM,MAAM,CAAC,KAAK,CAChB,0DAA0D,CAC3D,CAAC;QAEF,mFAAmF;QACnF,iCAAiC;QAEjC,0CAA0C;QAC1C,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;QAEjC,0CAA0C;QAC1C,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,YAAY,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAEpB,MAAM,YAAY,CAAC,IAAI,CACrB,2BAAY,CAAC,KAAK,EAClB;YACE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ;SAC1B,EACD,QAAQ,CACT,CAAC;QAEF,MAAM,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAE/D,IAAI,aAAa,EAAE,CAAC;YAClB,cAAc,GAAG,IAAA,mCAAoB,EAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,IAAI,qBAAS,CAClB,KAAK,CAAC,IAAI,CAAC,KAAK,EAChB,MAAM,EACN,KAAK,EACL,YAAY,EACZ,UAAU,EACV,UAAU,CACX,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,iCAAiC;QACjC,MAAM,UAAU,EAAE,CAAC;QACnB,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,qDAAqD;AAErD,SAAS,wBAAwB,CAC/B,4BAGgD;IAEhD,IAAI,QAAuC,CAAC;IAC5C,IAAI,MAAW,CAAC;IAChB,IAAI,IAAA,6BAAoB,EAAC,4BAA4B,CAAC,EAAE,CAAC;QACvD,QAAQ,GAAG,4BAA4B,CAAC,QAAQ,CAAC;QACjD,MAAM,GAAG,4BAA4B,CAAC,MAAM,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,4BAA6D,CAAC;QACzE,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,9 @@ export type RunOptions = {
6
6
  * Defaults to undefined. If true, we introduce logging to the console.
7
7
  */
8
8
  debug?: DebugFriendlyConfig;
9
+ /**
10
+ * Configure logging settings.
11
+ */
9
12
  logs?: {
10
13
  /**
11
14
  * Defaults to info. Use null to disable logging.
@@ -35,10 +38,18 @@ export type RunOptions = {
35
38
  */
36
39
  onUnhandledError?: OnUnhandledError;
37
40
  /**
41
+ * Defaults to false.
42
+ *
38
43
  * Dry run mode. When true, the runner will setup the system, ensure there are no errors, but will not start the system.
39
44
  * Your resources will not be initialized, and no events will be emitted. This is useful for testing and debugging.
40
45
  *
41
46
  * Note: this cannot catch init() errors that happen within resources.
42
47
  */
43
48
  dryRun?: boolean;
49
+ /**
50
+ * Defaults to true.
51
+ * When set, forces runtime cycle detection for event emissions. Disable if you're sure
52
+ * you don't have event deadlocks to improve event emission performance.
53
+ */
54
+ runtimeCycleDetection?: boolean;
44
55
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bluelibs/runner",
3
- "version": "4.2.2",
3
+ "version": "4.3.0",
4
4
  "description": "BlueLibs Runner",
5
5
  "main": "dist/index.js",
6
6
  "repository": {