@awesome-ecs/abstract 0.24.0 → 0.25.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.
@@ -1,3 +1,3 @@
1
1
  import { a as IEntity, c as IEntityProxy, d as TypedEntityProxy, i as EntityUid, l as IEntityProxyRepository, o as IEntityModel, r as EntityTypeUid, s as EntityProxy, u as RequiredProxies } from "../identity-component-uU0yDR-y.cjs";
2
- import { a as IEntityUpdateQueue, c as EntityEventSubscriptionFilter, d as IEntityEvent, f as IEntityEventsDispatcher, i as IEntityUpdate, l as EntityEventSubscriptionOptions, m as IEventData, n as IEntityRepository, o as IEntitySnapshot, p as IEntityEventsManager, r as EntityUpdateType, s as IEntitySnapshotProvider, t as IEntityScheduler, u as EntityEventUid } from "../index-qSeVF9hf.cjs";
3
- export { EntityEventSubscriptionFilter, EntityEventSubscriptionOptions, EntityEventUid, EntityProxy, EntityTypeUid, EntityUid, EntityUpdateType, IEntity, IEntityEvent, IEntityEventsDispatcher, IEntityEventsManager, IEntityModel, IEntityProxy, IEntityProxyRepository, IEntityRepository, IEntityScheduler, IEntitySnapshot, IEntitySnapshotProvider, IEntityUpdate, IEntityUpdateQueue, IEventData, RequiredProxies, TypedEntityProxy };
2
+ import { a as IEntityUpdate, c as IEntitySnapshotProvider, d as EntityEventUid, f as IEntityEvent, h as IEventData, i as EntityUpdateType, l as EntityEventSubscriptionFilter, m as IEntityEventsManager, n as IEntityScheduler, o as IEntityUpdateQueue, p as IEntityEventsDispatcher, r as IEntityRepository, s as IEntitySnapshot, t as EntitySchedule, u as EntityEventSubscriptionOptions } from "../index-CY3I0Xdn.cjs";
3
+ export { EntityEventSubscriptionFilter, EntityEventSubscriptionOptions, EntityEventUid, EntityProxy, EntitySchedule, EntityTypeUid, EntityUid, EntityUpdateType, IEntity, IEntityEvent, IEntityEventsDispatcher, IEntityEventsManager, IEntityModel, IEntityProxy, IEntityProxyRepository, IEntityRepository, IEntityScheduler, IEntitySnapshot, IEntitySnapshotProvider, IEntityUpdate, IEntityUpdateQueue, IEventData, RequiredProxies, TypedEntityProxy };
@@ -1,3 +1,3 @@
1
1
  import { a as IEntity, c as IEntityProxy, d as TypedEntityProxy, i as EntityUid, l as IEntityProxyRepository, o as IEntityModel, r as EntityTypeUid, s as EntityProxy, u as RequiredProxies } from "../identity-component-CgzvgBVh.mjs";
2
- import { a as IEntityUpdateQueue, c as EntityEventSubscriptionFilter, d as IEntityEvent, f as IEntityEventsDispatcher, i as IEntityUpdate, l as EntityEventSubscriptionOptions, m as IEventData, n as IEntityRepository, o as IEntitySnapshot, p as IEntityEventsManager, r as EntityUpdateType, s as IEntitySnapshotProvider, t as IEntityScheduler, u as EntityEventUid } from "../index-CfEs8NEA.mjs";
3
- export { EntityEventSubscriptionFilter, EntityEventSubscriptionOptions, EntityEventUid, EntityProxy, EntityTypeUid, EntityUid, EntityUpdateType, IEntity, IEntityEvent, IEntityEventsDispatcher, IEntityEventsManager, IEntityModel, IEntityProxy, IEntityProxyRepository, IEntityRepository, IEntityScheduler, IEntitySnapshot, IEntitySnapshotProvider, IEntityUpdate, IEntityUpdateQueue, IEventData, RequiredProxies, TypedEntityProxy };
2
+ import { a as IEntityUpdate, c as IEntitySnapshotProvider, d as EntityEventUid, f as IEntityEvent, h as IEventData, i as EntityUpdateType, l as EntityEventSubscriptionFilter, m as IEntityEventsManager, n as IEntityScheduler, o as IEntityUpdateQueue, p as IEntityEventsDispatcher, r as IEntityRepository, s as IEntitySnapshot, t as EntitySchedule, u as EntityEventSubscriptionOptions } from "../index-CT8ci9Cn.mjs";
3
+ export { EntityEventSubscriptionFilter, EntityEventSubscriptionOptions, EntityEventUid, EntityProxy, EntitySchedule, EntityTypeUid, EntityUid, EntityUpdateType, IEntity, IEntityEvent, IEntityEventsDispatcher, IEntityEventsManager, IEntityModel, IEntityProxy, IEntityProxyRepository, IEntityRepository, IEntityScheduler, IEntitySnapshot, IEntitySnapshotProvider, IEntityUpdate, IEntityUpdateQueue, IEventData, RequiredProxies, TypedEntityProxy };
@@ -0,0 +1,19 @@
1
+
2
+ //#region src/factories/pipeline-factory.ts
3
+ /**
4
+ * Built-in metric categories for classifying pipeline and middleware performance entries.
5
+ *
6
+ * - `module` — System module pipelines (initialize, update, render, sync phases).
7
+ * - `runtime` — Runtime orchestration pipeline and its middleware.
8
+ * - `system` — Individual system middleware within a module pipeline.
9
+ */
10
+ let PipelineCategory = /* @__PURE__ */ function(PipelineCategory) {
11
+ PipelineCategory["module"] = "module";
12
+ PipelineCategory["runtime"] = "runtime";
13
+ PipelineCategory["system"] = "system";
14
+ return PipelineCategory;
15
+ }({});
16
+
17
+ //#endregion
18
+ exports.PipelineCategory = PipelineCategory;
19
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../src/factories/pipeline-factory.ts"],"sourcesContent":["import { IPipelineContext } from '../pipelines';\nimport { IPipeline } from '../pipelines/pipeline';\n\n/**\n * Category identifier for grouping performance metrics.\n * Typed as string to allow extension beyond the built-in {@link PipelineCategory} values.\n */\nexport type PipelineCategoryName = string;\n\n/**\n * Built-in metric categories for classifying pipeline and middleware performance entries.\n *\n * - `module` — System module pipelines (initialize, update, render, sync phases).\n * - `runtime` — Runtime orchestration pipeline and its middleware.\n * - `system` — Individual system middleware within a module pipeline.\n */\nexport enum PipelineCategory {\n module = 'module',\n runtime = 'runtime',\n system = 'system'\n}\n\n/**\n * Options for identifying and categorizing performance metrics on pipelines.\n */\nexport type PipelineMetricOptions = {\n /** Display name for the pipeline in performance metrics. */\n pipelineName: string;\n /** Category assigned to pipeline-level metric entries. */\n pipelineCategory: PipelineCategoryName;\n /** Category assigned to per-middleware metric entries within this pipeline. */\n middlewareCategory: PipelineCategoryName;\n};\n\n/**\n * Creates pipeline instances for various contexts.\n * Abstracts pipeline creation to support different implementations.\n * Used by the system to instantiate pipelines without coupling to specific implementations.\n */\nexport interface IPipelineFactory {\n /**\n * Creates a new pipeline for the specified context type.\n * @template TContext - The context type for the pipeline. Must extend IPipelineContext.\n * @param options - Optional performance metric options (name, category) for the pipeline.\n * @returns A new pipeline instance ready for middleware registration.\n */\n createPipeline<TContext extends IPipelineContext>(\n options?: PipelineMetricOptions\n ): IPipeline<TContext>;\n}\n"],"mappings":";;;;;;;;;AAgBA,IAAY,8DAAL;AACL;AACA;AACA"}
@@ -1,6 +1,6 @@
1
1
  import { a as IEntity } from "../identity-component-uU0yDR-y.cjs";
2
- import { l as IPipelineContext, o as IPipeline } from "../index-DZvjMjYZ.cjs";
3
- import { n as ISystemsRuntimeContext, o as ISystemsModuleBuilder, u as ISystemContext } from "../index-J5AU4JAU.cjs";
2
+ import { l as IPipelineContext, o as IPipeline } from "../index-cF9FviwN.cjs";
3
+ import { n as ISystemsRuntimeContext, o as ISystemsModuleBuilder, u as ISystemContext } from "../index-CR3yK5HE.cjs";
4
4
 
5
5
  //#region src/factories/context-factory.d.ts
6
6
  interface IContextFactory {
@@ -13,6 +13,31 @@ interface IContextFactory {
13
13
  }
14
14
  //#endregion
15
15
  //#region src/factories/pipeline-factory.d.ts
16
+ /**
17
+ * Category identifier for grouping performance metrics.
18
+ * Typed as string to allow extension beyond the built-in {@link PipelineCategory} values.
19
+ */
20
+ type PipelineCategoryName = string;
21
+ /**
22
+ * Built-in metric categories for classifying pipeline and middleware performance entries.
23
+ *
24
+ * - `module` — System module pipelines (initialize, update, render, sync phases).
25
+ * - `runtime` — Runtime orchestration pipeline and its middleware.
26
+ * - `system` — Individual system middleware within a module pipeline.
27
+ */
28
+ declare enum PipelineCategory {
29
+ module = "module",
30
+ runtime = "runtime",
31
+ system = "system"
32
+ }
33
+ /**
34
+ * Options for identifying and categorizing performance metrics on pipelines.
35
+ */
36
+ type PipelineMetricOptions = {
37
+ /** Display name for the pipeline in performance metrics. */pipelineName: string; /** Category assigned to pipeline-level metric entries. */
38
+ pipelineCategory: PipelineCategoryName; /** Category assigned to per-middleware metric entries within this pipeline. */
39
+ middlewareCategory: PipelineCategoryName;
40
+ };
16
41
  /**
17
42
  * Creates pipeline instances for various contexts.
18
43
  * Abstracts pipeline creation to support different implementations.
@@ -22,10 +47,10 @@ interface IPipelineFactory {
22
47
  /**
23
48
  * Creates a new pipeline for the specified context type.
24
49
  * @template TContext - The context type for the pipeline. Must extend IPipelineContext.
25
- * @param name - Optional name for the pipeline (useful for debugging).
50
+ * @param options - Optional performance metric options (name, category) for the pipeline.
26
51
  * @returns A new pipeline instance ready for middleware registration.
27
52
  */
28
- createPipeline<TContext extends IPipelineContext>(name?: string): IPipeline<TContext>;
53
+ createPipeline<TContext extends IPipelineContext>(options?: PipelineMetricOptions): IPipeline<TContext>;
29
54
  }
30
55
  //#endregion
31
56
  //#region src/factories/runtime-factory.d.ts
@@ -60,10 +85,11 @@ interface ISystemsFactory {
60
85
  /**
61
86
  * Creates a new builder for constructing a systems module.
62
87
  * @template TEntity - The entity type for which systems are being built.
88
+ * @param name - The System Builder's name.
63
89
  * @returns A new systems module builder instance.
64
90
  */
65
- createSystemsModuleBuilder<TEntity extends IEntity>(): ISystemsModuleBuilder<TEntity>;
91
+ createSystemsModuleBuilder<TEntity extends IEntity>(name: string): ISystemsModuleBuilder<TEntity>;
66
92
  }
67
93
  //#endregion
68
- export { IContextFactory, IPipelineFactory, IRuntimeFactory, ISystemsFactory };
94
+ export { IContextFactory, IPipelineFactory, IRuntimeFactory, ISystemsFactory, PipelineCategory, PipelineCategoryName, PipelineMetricOptions };
69
95
  //# sourceMappingURL=index.d.cts.map
@@ -1,6 +1,6 @@
1
1
  import { a as IEntity } from "../identity-component-CgzvgBVh.mjs";
2
- import { l as IPipelineContext, o as IPipeline } from "../index-D4jK3qG1.mjs";
3
- import { n as ISystemsRuntimeContext, o as ISystemsModuleBuilder, u as ISystemContext } from "../index-DULE7rVz.mjs";
2
+ import { l as IPipelineContext, o as IPipeline } from "../index-CyoGuBNw.mjs";
3
+ import { n as ISystemsRuntimeContext, o as ISystemsModuleBuilder, u as ISystemContext } from "../index-ei6_lV4I.mjs";
4
4
 
5
5
  //#region src/factories/context-factory.d.ts
6
6
  interface IContextFactory {
@@ -13,6 +13,31 @@ interface IContextFactory {
13
13
  }
14
14
  //#endregion
15
15
  //#region src/factories/pipeline-factory.d.ts
16
+ /**
17
+ * Category identifier for grouping performance metrics.
18
+ * Typed as string to allow extension beyond the built-in {@link PipelineCategory} values.
19
+ */
20
+ type PipelineCategoryName = string;
21
+ /**
22
+ * Built-in metric categories for classifying pipeline and middleware performance entries.
23
+ *
24
+ * - `module` — System module pipelines (initialize, update, render, sync phases).
25
+ * - `runtime` — Runtime orchestration pipeline and its middleware.
26
+ * - `system` — Individual system middleware within a module pipeline.
27
+ */
28
+ declare enum PipelineCategory {
29
+ module = "module",
30
+ runtime = "runtime",
31
+ system = "system"
32
+ }
33
+ /**
34
+ * Options for identifying and categorizing performance metrics on pipelines.
35
+ */
36
+ type PipelineMetricOptions = {
37
+ /** Display name for the pipeline in performance metrics. */pipelineName: string; /** Category assigned to pipeline-level metric entries. */
38
+ pipelineCategory: PipelineCategoryName; /** Category assigned to per-middleware metric entries within this pipeline. */
39
+ middlewareCategory: PipelineCategoryName;
40
+ };
16
41
  /**
17
42
  * Creates pipeline instances for various contexts.
18
43
  * Abstracts pipeline creation to support different implementations.
@@ -22,10 +47,10 @@ interface IPipelineFactory {
22
47
  /**
23
48
  * Creates a new pipeline for the specified context type.
24
49
  * @template TContext - The context type for the pipeline. Must extend IPipelineContext.
25
- * @param name - Optional name for the pipeline (useful for debugging).
50
+ * @param options - Optional performance metric options (name, category) for the pipeline.
26
51
  * @returns A new pipeline instance ready for middleware registration.
27
52
  */
28
- createPipeline<TContext extends IPipelineContext>(name?: string): IPipeline<TContext>;
53
+ createPipeline<TContext extends IPipelineContext>(options?: PipelineMetricOptions): IPipeline<TContext>;
29
54
  }
30
55
  //#endregion
31
56
  //#region src/factories/runtime-factory.d.ts
@@ -60,10 +85,11 @@ interface ISystemsFactory {
60
85
  /**
61
86
  * Creates a new builder for constructing a systems module.
62
87
  * @template TEntity - The entity type for which systems are being built.
88
+ * @param name - The System Builder's name.
63
89
  * @returns A new systems module builder instance.
64
90
  */
65
- createSystemsModuleBuilder<TEntity extends IEntity>(): ISystemsModuleBuilder<TEntity>;
91
+ createSystemsModuleBuilder<TEntity extends IEntity>(name: string): ISystemsModuleBuilder<TEntity>;
66
92
  }
67
93
  //#endregion
68
- export { IContextFactory, IPipelineFactory, IRuntimeFactory, ISystemsFactory };
94
+ export { IContextFactory, IPipelineFactory, IRuntimeFactory, ISystemsFactory, PipelineCategory, PipelineCategoryName, PipelineMetricOptions };
69
95
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1,18 @@
1
- export { };
1
+ //#region src/factories/pipeline-factory.ts
2
+ /**
3
+ * Built-in metric categories for classifying pipeline and middleware performance entries.
4
+ *
5
+ * - `module` — System module pipelines (initialize, update, render, sync phases).
6
+ * - `runtime` — Runtime orchestration pipeline and its middleware.
7
+ * - `system` — Individual system middleware within a module pipeline.
8
+ */
9
+ let PipelineCategory = /* @__PURE__ */ function(PipelineCategory) {
10
+ PipelineCategory["module"] = "module";
11
+ PipelineCategory["runtime"] = "runtime";
12
+ PipelineCategory["system"] = "system";
13
+ return PipelineCategory;
14
+ }({});
15
+
16
+ //#endregion
17
+ export { PipelineCategory };
18
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/factories/pipeline-factory.ts"],"sourcesContent":["import { IPipelineContext } from '../pipelines';\nimport { IPipeline } from '../pipelines/pipeline';\n\n/**\n * Category identifier for grouping performance metrics.\n * Typed as string to allow extension beyond the built-in {@link PipelineCategory} values.\n */\nexport type PipelineCategoryName = string;\n\n/**\n * Built-in metric categories for classifying pipeline and middleware performance entries.\n *\n * - `module` — System module pipelines (initialize, update, render, sync phases).\n * - `runtime` — Runtime orchestration pipeline and its middleware.\n * - `system` — Individual system middleware within a module pipeline.\n */\nexport enum PipelineCategory {\n module = 'module',\n runtime = 'runtime',\n system = 'system'\n}\n\n/**\n * Options for identifying and categorizing performance metrics on pipelines.\n */\nexport type PipelineMetricOptions = {\n /** Display name for the pipeline in performance metrics. */\n pipelineName: string;\n /** Category assigned to pipeline-level metric entries. */\n pipelineCategory: PipelineCategoryName;\n /** Category assigned to per-middleware metric entries within this pipeline. */\n middlewareCategory: PipelineCategoryName;\n};\n\n/**\n * Creates pipeline instances for various contexts.\n * Abstracts pipeline creation to support different implementations.\n * Used by the system to instantiate pipelines without coupling to specific implementations.\n */\nexport interface IPipelineFactory {\n /**\n * Creates a new pipeline for the specified context type.\n * @template TContext - The context type for the pipeline. Must extend IPipelineContext.\n * @param options - Optional performance metric options (name, category) for the pipeline.\n * @returns A new pipeline instance ready for middleware registration.\n */\n createPipeline<TContext extends IPipelineContext>(\n options?: PipelineMetricOptions\n ): IPipeline<TContext>;\n}\n"],"mappings":";;;;;;;;AAgBA,IAAY,8DAAL;AACL;AACA;AACA"}
@@ -1,8 +1,8 @@
1
1
  import { a as IEntity, c as IEntityProxy, l as IEntityProxyRepository, o as IEntityModel, r as EntityTypeUid, s as EntityProxy } from "./identity-component-uU0yDR-y.cjs";
2
2
  import { n as Immutable } from "./types-DLOd2zXO.cjs";
3
- import { d as IEntityEvent, i as IEntityUpdate, l as EntityEventSubscriptionOptions, m as IEventData, o as IEntitySnapshot, u as EntityEventUid } from "./index-qSeVF9hf.cjs";
4
- import { i as ILogger, n as PerformanceTimeEntry, s as IJsonSerializer } from "./index-eECJUE_O.cjs";
5
- import { c as IMiddleware, l as IPipelineContext, o as IPipeline } from "./index-DZvjMjYZ.cjs";
3
+ import { a as IEntityUpdate, d as EntityEventUid, f as IEntityEvent, h as IEventData, s as IEntitySnapshot, u as EntityEventSubscriptionOptions } from "./index-CY3I0Xdn.cjs";
4
+ import { a as ILogger, c as IJsonSerializer, r as PerformanceTimeEntry } from "./index-CmTRwW4W.cjs";
5
+ import { c as IMiddleware, l as IPipelineContext, o as IPipeline } from "./index-cF9FviwN.cjs";
6
6
 
7
7
  //#region src/systems/pipeline/system-context-events.d.ts
8
8
  /**
@@ -356,6 +356,10 @@ type ISystemMiddleware<TEntity extends IEntity> = IMiddleware<ISystemContext<TEn
356
356
  * @template TEntity - The entity type for which systems are being added.
357
357
  */
358
358
  interface ISystemsModuleBuilder<TEntity extends IEntity> {
359
+ /**
360
+ * The Module Builder's name.
361
+ */
362
+ readonly name: string;
359
363
  /**
360
364
  * The pipelines being built.
361
365
  * Accessible during and after construction.
@@ -512,4 +516,4 @@ interface ISystemsRuntimeContext<TEntity extends IEntity> extends IPipelineConte
512
516
  type ISystemsRuntimeMiddleware<TEntity extends IEntity> = IMiddleware<ISystemsRuntimeContext<TEntity>>;
513
517
  //#endregion
514
518
  export { ISystemsModuleRepository as a, ISystemsModule as c, ISystemContextSnapshot as d, ISystemContextScheduler as f, ISystemContextEvents as h, ISystemContextEntity as i, SystemType as l, ISystemContextProxies as m, ISystemsRuntimeContext as n, ISystemsModuleBuilder as o, ISystemContextRepository as p, ISystemsRuntime as r, ISystemMiddleware as s, ISystemsRuntimeMiddleware as t, ISystemContext as u };
515
- //# sourceMappingURL=index-J5AU4JAU.d.cts.map
519
+ //# sourceMappingURL=index-CR3yK5HE.d.cts.map
@@ -299,11 +299,22 @@ interface IEntityRepository {
299
299
  }
300
300
  //#endregion
301
301
  //#region src/entities/entity-scheduler.d.ts
302
+ /**
303
+ * Describes a scheduled entity update, including the target entity and optional interval.
304
+ */
305
+ type EntitySchedule = {
306
+ readonly proxy: IEntityProxy;
307
+ readonly intervalMs?: number;
308
+ };
302
309
  /**
303
310
  * Manages time-based scheduling of entity updates.
304
311
  * Entities are registered with intervals and receive updates at the specified cadence, or on the next frame (engine-dependent).
305
312
  */
306
313
  interface IEntityScheduler {
314
+ /**
315
+ * Returns all currently scheduled entities with their configuration.
316
+ */
317
+ readonly schedules: ReadonlyArray<EntitySchedule>;
307
318
  /**
308
319
  * Registers an entity for periodic updates.
309
320
  * @param entityProxy - The entity to schedule.
@@ -324,5 +335,5 @@ interface IEntityScheduler {
324
335
  has(entityProxy: IEntityProxy): boolean;
325
336
  }
326
337
  //#endregion
327
- export { IEntityUpdateQueue as a, EntityEventSubscriptionFilter as c, IEntityEvent as d, IEntityEventsDispatcher as f, IEntityUpdate as i, EntityEventSubscriptionOptions as l, IEventData as m, IEntityRepository as n, IEntitySnapshot as o, IEntityEventsManager as p, EntityUpdateType as r, IEntitySnapshotProvider as s, IEntityScheduler as t, EntityEventUid as u };
328
- //# sourceMappingURL=index-CfEs8NEA.d.mts.map
338
+ export { IEntityUpdate as a, IEntitySnapshotProvider as c, EntityEventUid as d, IEntityEvent as f, IEventData as h, EntityUpdateType as i, EntityEventSubscriptionFilter as l, IEntityEventsManager as m, IEntityScheduler as n, IEntityUpdateQueue as o, IEntityEventsDispatcher as p, IEntityRepository as r, IEntitySnapshot as s, EntitySchedule as t, EntityEventSubscriptionOptions as u };
339
+ //# sourceMappingURL=index-CT8ci9Cn.d.mts.map
@@ -299,11 +299,22 @@ interface IEntityRepository {
299
299
  }
300
300
  //#endregion
301
301
  //#region src/entities/entity-scheduler.d.ts
302
+ /**
303
+ * Describes a scheduled entity update, including the target entity and optional interval.
304
+ */
305
+ type EntitySchedule = {
306
+ readonly proxy: IEntityProxy;
307
+ readonly intervalMs?: number;
308
+ };
302
309
  /**
303
310
  * Manages time-based scheduling of entity updates.
304
311
  * Entities are registered with intervals and receive updates at the specified cadence, or on the next frame (engine-dependent).
305
312
  */
306
313
  interface IEntityScheduler {
314
+ /**
315
+ * Returns all currently scheduled entities with their configuration.
316
+ */
317
+ readonly schedules: ReadonlyArray<EntitySchedule>;
307
318
  /**
308
319
  * Registers an entity for periodic updates.
309
320
  * @param entityProxy - The entity to schedule.
@@ -324,5 +335,5 @@ interface IEntityScheduler {
324
335
  has(entityProxy: IEntityProxy): boolean;
325
336
  }
326
337
  //#endregion
327
- export { IEntityUpdateQueue as a, EntityEventSubscriptionFilter as c, IEntityEvent as d, IEntityEventsDispatcher as f, IEntityUpdate as i, EntityEventSubscriptionOptions as l, IEventData as m, IEntityRepository as n, IEntitySnapshot as o, IEntityEventsManager as p, EntityUpdateType as r, IEntitySnapshotProvider as s, IEntityScheduler as t, EntityEventUid as u };
328
- //# sourceMappingURL=index-qSeVF9hf.d.cts.map
338
+ export { IEntityUpdate as a, IEntitySnapshotProvider as c, EntityEventUid as d, IEntityEvent as f, IEventData as h, EntityUpdateType as i, EntityEventSubscriptionFilter as l, IEntityEventsManager as m, IEntityScheduler as n, IEntityUpdateQueue as o, IEntityEventsDispatcher as p, IEntityRepository as r, IEntitySnapshot as s, EntitySchedule as t, EntityEventSubscriptionOptions as u };
339
+ //# sourceMappingURL=index-CY3I0Xdn.d.cts.map
@@ -102,6 +102,14 @@ interface ILoggerOptions {
102
102
  * Unique identifier for a timer instance.
103
103
  */
104
104
  type PerformanceTimerUid = number;
105
+ /**
106
+ * Options for identifying and categorizing performance metrics.
107
+ * Used by pipeline factories and performance decorators.
108
+ */
109
+ type PerformanceMetricOptions = {
110
+ name?: string;
111
+ category?: string;
112
+ };
105
113
  /**
106
114
  * Record of a completed timer measurement.
107
115
  * Captures timing information for performance analysis and profiling.
@@ -111,6 +119,10 @@ interface PerformanceTimeEntry {
111
119
  * The name identifying this timer.
112
120
  */
113
121
  name: string;
122
+ /**
123
+ * The category of this metric (e.g. 'module', 'runtime', 'system').
124
+ */
125
+ category?: string;
114
126
  /**
115
127
  * Timestamp in milliseconds when the timer started.
116
128
  */
@@ -133,9 +145,10 @@ interface IPerformanceTimer {
133
145
  /**
134
146
  * Starts a new timer.
135
147
  * @param name - Label for this timer (used in results).
148
+ * @param category - Optional category for grouping metrics.
136
149
  * @returns A unique identifier for this timer instance.
137
150
  */
138
- startTimer(name: string): PerformanceTimerUid;
151
+ startTimer(name: string, category?: string): PerformanceTimerUid;
139
152
  /**
140
153
  * Stops a timer and returns the recorded metrics.
141
154
  * @param timerUid - The timer identifier returned by startTimer.
@@ -144,5 +157,5 @@ interface IPerformanceTimer {
144
157
  endTimer(timerUid: PerformanceTimerUid): PerformanceTimeEntry;
145
158
  }
146
159
  //#endregion
147
- export { ILoggerOptions as a, ILogger as i, PerformanceTimeEntry as n, LogLevel as o, PerformanceTimerUid as r, IJsonSerializer as s, IPerformanceTimer as t };
148
- //# sourceMappingURL=index-BWmhFdFg.d.mts.map
160
+ export { ILogger as a, IJsonSerializer as c, PerformanceTimerUid as i, PerformanceMetricOptions as n, ILoggerOptions as o, PerformanceTimeEntry as r, LogLevel as s, IPerformanceTimer as t };
161
+ //# sourceMappingURL=index-CmTRwW4W.d.cts.map
@@ -1,5 +1,5 @@
1
1
  import { n as Immutable } from "./types-CnDtpKsY.mjs";
2
- import { n as PerformanceTimeEntry } from "./index-BWmhFdFg.mjs";
2
+ import { r as PerformanceTimeEntry } from "./index-Iqc9jR5E.mjs";
3
3
 
4
4
  //#region src/pipelines/pipeline-context.d.ts
5
5
  /**
@@ -221,4 +221,4 @@ interface IPipelineRunner<TContext extends IPipelineContext> {
221
221
  }
222
222
  //#endregion
223
223
  export { IParentMiddleware as a, IMiddleware as c, IParentContext as i, IPipelineContext as l, INestedContext as n, IPipeline as o, INestedMiddleware as r, IMiddlewareRunner as s, IPipelineRunner as t, PipelineRuntime as u };
224
- //# sourceMappingURL=index-D4jK3qG1.d.mts.map
224
+ //# sourceMappingURL=index-CyoGuBNw.d.mts.map
@@ -102,6 +102,14 @@ interface ILoggerOptions {
102
102
  * Unique identifier for a timer instance.
103
103
  */
104
104
  type PerformanceTimerUid = number;
105
+ /**
106
+ * Options for identifying and categorizing performance metrics.
107
+ * Used by pipeline factories and performance decorators.
108
+ */
109
+ type PerformanceMetricOptions = {
110
+ name?: string;
111
+ category?: string;
112
+ };
105
113
  /**
106
114
  * Record of a completed timer measurement.
107
115
  * Captures timing information for performance analysis and profiling.
@@ -111,6 +119,10 @@ interface PerformanceTimeEntry {
111
119
  * The name identifying this timer.
112
120
  */
113
121
  name: string;
122
+ /**
123
+ * The category of this metric (e.g. 'module', 'runtime', 'system').
124
+ */
125
+ category?: string;
114
126
  /**
115
127
  * Timestamp in milliseconds when the timer started.
116
128
  */
@@ -133,9 +145,10 @@ interface IPerformanceTimer {
133
145
  /**
134
146
  * Starts a new timer.
135
147
  * @param name - Label for this timer (used in results).
148
+ * @param category - Optional category for grouping metrics.
136
149
  * @returns A unique identifier for this timer instance.
137
150
  */
138
- startTimer(name: string): PerformanceTimerUid;
151
+ startTimer(name: string, category?: string): PerformanceTimerUid;
139
152
  /**
140
153
  * Stops a timer and returns the recorded metrics.
141
154
  * @param timerUid - The timer identifier returned by startTimer.
@@ -144,5 +157,5 @@ interface IPerformanceTimer {
144
157
  endTimer(timerUid: PerformanceTimerUid): PerformanceTimeEntry;
145
158
  }
146
159
  //#endregion
147
- export { ILoggerOptions as a, ILogger as i, PerformanceTimeEntry as n, LogLevel as o, PerformanceTimerUid as r, IJsonSerializer as s, IPerformanceTimer as t };
148
- //# sourceMappingURL=index-eECJUE_O.d.cts.map
160
+ export { ILogger as a, IJsonSerializer as c, PerformanceTimerUid as i, PerformanceMetricOptions as n, ILoggerOptions as o, PerformanceTimeEntry as r, LogLevel as s, IPerformanceTimer as t };
161
+ //# sourceMappingURL=index-Iqc9jR5E.d.mts.map
@@ -1,5 +1,5 @@
1
1
  import { n as Immutable } from "./types-DLOd2zXO.cjs";
2
- import { n as PerformanceTimeEntry } from "./index-eECJUE_O.cjs";
2
+ import { r as PerformanceTimeEntry } from "./index-CmTRwW4W.cjs";
3
3
 
4
4
  //#region src/pipelines/pipeline-context.d.ts
5
5
  /**
@@ -221,4 +221,4 @@ interface IPipelineRunner<TContext extends IPipelineContext> {
221
221
  }
222
222
  //#endregion
223
223
  export { IParentMiddleware as a, IMiddleware as c, IParentContext as i, IPipelineContext as l, INestedContext as n, IPipeline as o, INestedMiddleware as r, IMiddlewareRunner as s, IPipelineRunner as t, PipelineRuntime as u };
224
- //# sourceMappingURL=index-DZvjMjYZ.d.cts.map
224
+ //# sourceMappingURL=index-cF9FviwN.d.cts.map
@@ -1,8 +1,8 @@
1
1
  import { a as IEntity, c as IEntityProxy, l as IEntityProxyRepository, o as IEntityModel, r as EntityTypeUid, s as EntityProxy } from "./identity-component-CgzvgBVh.mjs";
2
2
  import { n as Immutable } from "./types-CnDtpKsY.mjs";
3
- import { d as IEntityEvent, i as IEntityUpdate, l as EntityEventSubscriptionOptions, m as IEventData, o as IEntitySnapshot, u as EntityEventUid } from "./index-CfEs8NEA.mjs";
4
- import { i as ILogger, n as PerformanceTimeEntry, s as IJsonSerializer } from "./index-BWmhFdFg.mjs";
5
- import { c as IMiddleware, l as IPipelineContext, o as IPipeline } from "./index-D4jK3qG1.mjs";
3
+ import { a as IEntityUpdate, d as EntityEventUid, f as IEntityEvent, h as IEventData, s as IEntitySnapshot, u as EntityEventSubscriptionOptions } from "./index-CT8ci9Cn.mjs";
4
+ import { a as ILogger, c as IJsonSerializer, r as PerformanceTimeEntry } from "./index-Iqc9jR5E.mjs";
5
+ import { c as IMiddleware, l as IPipelineContext, o as IPipeline } from "./index-CyoGuBNw.mjs";
6
6
 
7
7
  //#region src/systems/pipeline/system-context-events.d.ts
8
8
  /**
@@ -356,6 +356,10 @@ type ISystemMiddleware<TEntity extends IEntity> = IMiddleware<ISystemContext<TEn
356
356
  * @template TEntity - The entity type for which systems are being added.
357
357
  */
358
358
  interface ISystemsModuleBuilder<TEntity extends IEntity> {
359
+ /**
360
+ * The Module Builder's name.
361
+ */
362
+ readonly name: string;
359
363
  /**
360
364
  * The pipelines being built.
361
365
  * Accessible during and after construction.
@@ -512,4 +516,4 @@ interface ISystemsRuntimeContext<TEntity extends IEntity> extends IPipelineConte
512
516
  type ISystemsRuntimeMiddleware<TEntity extends IEntity> = IMiddleware<ISystemsRuntimeContext<TEntity>>;
513
517
  //#endregion
514
518
  export { ISystemsModuleRepository as a, ISystemsModule as c, ISystemContextSnapshot as d, ISystemContextScheduler as f, ISystemContextEvents as h, ISystemContextEntity as i, SystemType as l, ISystemContextProxies as m, ISystemsRuntimeContext as n, ISystemsModuleBuilder as o, ISystemContextRepository as p, ISystemsRuntime as r, ISystemMiddleware as s, ISystemsRuntimeMiddleware as t, ISystemContext as u };
515
- //# sourceMappingURL=index-DULE7rVz.d.mts.map
519
+ //# sourceMappingURL=index-ei6_lV4I.d.mts.map
@@ -1,2 +1,2 @@
1
- import { a as IParentMiddleware, c as IMiddleware, i as IParentContext, l as IPipelineContext, n as INestedContext, o as IPipeline, r as INestedMiddleware, s as IMiddlewareRunner, t as IPipelineRunner, u as PipelineRuntime } from "../index-DZvjMjYZ.cjs";
1
+ import { a as IParentMiddleware, c as IMiddleware, i as IParentContext, l as IPipelineContext, n as INestedContext, o as IPipeline, r as INestedMiddleware, s as IMiddlewareRunner, t as IPipelineRunner, u as PipelineRuntime } from "../index-cF9FviwN.cjs";
2
2
  export { IMiddleware, IMiddlewareRunner, INestedContext, INestedMiddleware, IParentContext, IParentMiddleware, IPipeline, IPipelineContext, IPipelineRunner, PipelineRuntime };
@@ -1,2 +1,2 @@
1
- import { a as IParentMiddleware, c as IMiddleware, i as IParentContext, l as IPipelineContext, n as INestedContext, o as IPipeline, r as INestedMiddleware, s as IMiddlewareRunner, t as IPipelineRunner, u as PipelineRuntime } from "../index-D4jK3qG1.mjs";
1
+ import { a as IParentMiddleware, c as IMiddleware, i as IParentContext, l as IPipelineContext, n as INestedContext, o as IPipeline, r as INestedMiddleware, s as IMiddlewareRunner, t as IPipelineRunner, u as PipelineRuntime } from "../index-CyoGuBNw.mjs";
2
2
  export { IMiddleware, IMiddlewareRunner, INestedContext, INestedMiddleware, IParentContext, IParentMiddleware, IPipeline, IPipelineContext, IPipelineRunner, PipelineRuntime };
@@ -1,2 +1,2 @@
1
- import { a as ISystemsModuleRepository, c as ISystemsModule, d as ISystemContextSnapshot, f as ISystemContextScheduler, h as ISystemContextEvents, i as ISystemContextEntity, l as SystemType, m as ISystemContextProxies, n as ISystemsRuntimeContext, o as ISystemsModuleBuilder, p as ISystemContextRepository, r as ISystemsRuntime, s as ISystemMiddleware, t as ISystemsRuntimeMiddleware, u as ISystemContext } from "../index-J5AU4JAU.cjs";
1
+ import { a as ISystemsModuleRepository, c as ISystemsModule, d as ISystemContextSnapshot, f as ISystemContextScheduler, h as ISystemContextEvents, i as ISystemContextEntity, l as SystemType, m as ISystemContextProxies, n as ISystemsRuntimeContext, o as ISystemsModuleBuilder, p as ISystemContextRepository, r as ISystemsRuntime, s as ISystemMiddleware, t as ISystemsRuntimeMiddleware, u as ISystemContext } from "../index-CR3yK5HE.cjs";
2
2
  export { ISystemContext, ISystemContextEntity, ISystemContextEvents, ISystemContextProxies, ISystemContextRepository, ISystemContextScheduler, ISystemContextSnapshot, ISystemMiddleware, ISystemsModule, ISystemsModuleBuilder, ISystemsModuleRepository, ISystemsRuntime, ISystemsRuntimeContext, ISystemsRuntimeMiddleware, SystemType };
@@ -1,2 +1,2 @@
1
- import { a as ISystemsModuleRepository, c as ISystemsModule, d as ISystemContextSnapshot, f as ISystemContextScheduler, h as ISystemContextEvents, i as ISystemContextEntity, l as SystemType, m as ISystemContextProxies, n as ISystemsRuntimeContext, o as ISystemsModuleBuilder, p as ISystemContextRepository, r as ISystemsRuntime, s as ISystemMiddleware, t as ISystemsRuntimeMiddleware, u as ISystemContext } from "../index-DULE7rVz.mjs";
1
+ import { a as ISystemsModuleRepository, c as ISystemsModule, d as ISystemContextSnapshot, f as ISystemContextScheduler, h as ISystemContextEvents, i as ISystemContextEntity, l as SystemType, m as ISystemContextProxies, n as ISystemsRuntimeContext, o as ISystemsModuleBuilder, p as ISystemContextRepository, r as ISystemsRuntime, s as ISystemMiddleware, t as ISystemsRuntimeMiddleware, u as ISystemContext } from "../index-ei6_lV4I.mjs";
2
2
  export { ISystemContext, ISystemContextEntity, ISystemContextEvents, ISystemContextProxies, ISystemContextRepository, ISystemContextScheduler, ISystemContextSnapshot, ISystemMiddleware, ISystemsModule, ISystemsModuleBuilder, ISystemsModuleRepository, ISystemsRuntime, ISystemsRuntimeContext, ISystemsRuntimeMiddleware, SystemType };
@@ -1,3 +1,3 @@
1
1
  import { a as ImmutableObject, c as Mutable, i as ImmutableMap, l as MutableDeep, n as Immutable, o as ImmutableObjectDeep, r as ImmutableArray, s as ImmutableSet, t as BooleanProps } from "../types-DLOd2zXO.cjs";
2
- import { a as ILoggerOptions, i as ILogger, n as PerformanceTimeEntry, o as LogLevel, r as PerformanceTimerUid, s as IJsonSerializer, t as IPerformanceTimer } from "../index-eECJUE_O.cjs";
3
- export { BooleanProps, IJsonSerializer, ILogger, ILoggerOptions, IPerformanceTimer, Immutable, ImmutableArray, ImmutableMap, ImmutableObject, ImmutableObjectDeep, ImmutableSet, LogLevel, Mutable, MutableDeep, PerformanceTimeEntry, PerformanceTimerUid };
2
+ import { a as ILogger, c as IJsonSerializer, i as PerformanceTimerUid, n as PerformanceMetricOptions, o as ILoggerOptions, r as PerformanceTimeEntry, s as LogLevel, t as IPerformanceTimer } from "../index-CmTRwW4W.cjs";
3
+ export { BooleanProps, IJsonSerializer, ILogger, ILoggerOptions, IPerformanceTimer, Immutable, ImmutableArray, ImmutableMap, ImmutableObject, ImmutableObjectDeep, ImmutableSet, LogLevel, Mutable, MutableDeep, PerformanceMetricOptions, PerformanceTimeEntry, PerformanceTimerUid };
@@ -1,3 +1,3 @@
1
1
  import { a as ImmutableObject, c as Mutable, i as ImmutableMap, l as MutableDeep, n as Immutable, o as ImmutableObjectDeep, r as ImmutableArray, s as ImmutableSet, t as BooleanProps } from "../types-CnDtpKsY.mjs";
2
- import { a as ILoggerOptions, i as ILogger, n as PerformanceTimeEntry, o as LogLevel, r as PerformanceTimerUid, s as IJsonSerializer, t as IPerformanceTimer } from "../index-BWmhFdFg.mjs";
3
- export { BooleanProps, IJsonSerializer, ILogger, ILoggerOptions, IPerformanceTimer, Immutable, ImmutableArray, ImmutableMap, ImmutableObject, ImmutableObjectDeep, ImmutableSet, LogLevel, Mutable, MutableDeep, PerformanceTimeEntry, PerformanceTimerUid };
2
+ import { a as ILogger, c as IJsonSerializer, i as PerformanceTimerUid, n as PerformanceMetricOptions, o as ILoggerOptions, r as PerformanceTimeEntry, s as LogLevel, t as IPerformanceTimer } from "../index-Iqc9jR5E.mjs";
3
+ export { BooleanProps, IJsonSerializer, ILogger, ILoggerOptions, IPerformanceTimer, Immutable, ImmutableArray, ImmutableMap, ImmutableObject, ImmutableObjectDeep, ImmutableSet, LogLevel, Mutable, MutableDeep, PerformanceMetricOptions, PerformanceTimeEntry, PerformanceTimerUid };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awesome-ecs/abstract",
3
- "version": "0.24.0",
3
+ "version": "0.25.0",
4
4
  "description": "A comprehensive Entity-Component-System (ECS) Architecture implementation. Abstract components.",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -97,5 +97,5 @@
97
97
  "url": "https://github.com/privatebytes/awesome-ecs/issues"
98
98
  },
99
99
  "homepage": "https://github.com/privatebytes/awesome-ecs#readme",
100
- "gitHead": "1146c6993998eaf82e765a7822d6cde176857a89"
100
+ "gitHead": "07371a6f49d462052187b4e28a178a6970d18aff"
101
101
  }