@awesome-ecs/abstract 0.31.0 → 0.32.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.
Files changed (37) hide show
  1. package/dist/components/index.cjs.map +1 -1
  2. package/dist/components/index.d.cts +2 -2
  3. package/dist/components/index.d.mts +2 -2
  4. package/dist/components/index.mjs.map +1 -1
  5. package/dist/entities/index.cjs.map +1 -1
  6. package/dist/entities/index.d.cts +3 -3
  7. package/dist/entities/index.d.mts +3 -3
  8. package/dist/entities/index.mjs.map +1 -1
  9. package/dist/factories/index.cjs +1 -1
  10. package/dist/factories/index.cjs.map +1 -1
  11. package/dist/factories/index.d.cts +1 -1
  12. package/dist/factories/index.d.mts +1 -1
  13. package/dist/factories/index.mjs +1 -1
  14. package/dist/factories/index.mjs.map +1 -1
  15. package/dist/{index-zohK7ftH.d.cts → index-B1OYkMOx.d.cts} +197 -350
  16. package/dist/{index-BguFn1Xj.d.cts → index-BGLTfuj8.d.cts} +24 -4
  17. package/dist/{identity-component-CuWHf7jX.d.mts → index-C0jDrUBA.d.cts} +81 -70
  18. package/dist/{index-kNcUiDBd.d.mts → index-C1hRAjM-.d.mts} +24 -4
  19. package/dist/index-CeqaKmWR.d.mts +218 -0
  20. package/dist/{index-DZlhICMZ.d.mts → index-D3rS2RFG.d.mts} +197 -350
  21. package/dist/index-DMTkNY1e.d.cts +218 -0
  22. package/dist/{identity-component-DLDaOTyK.d.cts → index-b5BtWAvO.d.mts} +81 -70
  23. package/dist/pipelines/index.d.cts +1 -1
  24. package/dist/pipelines/index.d.mts +1 -1
  25. package/dist/systems/index.cjs +9 -4
  26. package/dist/systems/index.cjs.map +1 -1
  27. package/dist/systems/index.d.cts +2 -2
  28. package/dist/systems/index.d.mts +2 -2
  29. package/dist/systems/index.mjs +9 -4
  30. package/dist/systems/index.mjs.map +1 -1
  31. package/dist/types-Bbmnq4ni.d.cts +74 -0
  32. package/dist/types-C1ojaDL4.d.mts +74 -0
  33. package/dist/utils/index.cjs.map +1 -1
  34. package/dist/utils/index.d.cts +3 -3
  35. package/dist/utils/index.d.mts +3 -3
  36. package/dist/utils/index.mjs.map +1 -1
  37. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../../src/components/identity-component.ts"],"sourcesContent":["import { EntityTypeUid, IEntityModel } from '../entities/entity';\r\nimport { Immutable } from '../utils/types';\r\nimport { IComponent } from './component';\r\n\r\n/**\r\n * The `BasicComponentType` enum defines the types of basic components available.\r\n */\r\nexport enum BasicComponentType {\r\n identity = 'identity'\r\n}\r\n\r\n/**\r\n * The mandatory metadata component for every entity.\r\n * Contains core information that defines what an entity is and when it was last updated.\r\n * This component is immutable after creation and uniquely identifies each entity.\r\n *\r\n * @template TModel - The entity model type containing initialization data.\r\n */\r\nexport interface IdentityComponent<TModel extends IEntityModel> extends IComponent {\r\n /**\r\n * The entity type classification.\r\n * Categorizes entities into logical types, allowing systems to selectively operate on specific entity categories.\r\n */\r\n readonly entityType: EntityTypeUid;\r\n\r\n /**\r\n * The initialization model for this entity.\r\n * Provides the minimal data structure used when the entity was first created.\r\n * Serves as a reference point for the entity's initial configuration.\r\n *\r\n * @type {Immutable<TModel>}\r\n */\r\n readonly model: Immutable<TModel>;\r\n\r\n /**\r\n * The timestamp of the entity's last system update.\r\n * Useful for calculating elapsed time (delta time) between consecutive updates.\r\n * Helps systems make time-aware decisions.\r\n *\r\n * @type {Date | undefined}\r\n */\r\n readonly lastUpdated?: Date;\r\n}\r\n"],"mappings":";;;;;AAOA,IAAY,qBAAL,yBAAA,oBAAA;AACL,oBAAA,cAAA;;KACD"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../src/components/identity-component.ts"],"sourcesContent":["import { EntityTypeUid, IEntityModel } from '../entities/entity';\r\nimport { Immutable } from '../utils/types';\r\nimport { IComponent } from './component';\r\n\r\n/**\r\n * The `BasicComponentType` enum defines the types of basic components available.\r\n */\r\nexport enum BasicComponentType {\r\n identity = 'identity'\r\n}\r\n\r\n/**\r\n * The mandatory metadata component for every entity.\r\n * Contains core information that defines what an entity is and when it was last updated.\r\n * This component is immutable after creation and uniquely identifies each entity.\r\n *\r\n * @template TModel - The entity model type containing initialization data.\r\n */\r\nexport interface IdentityComponent<TModel extends IEntityModel> extends IComponent {\r\n /**\r\n * The entity type classification.\r\n * Categorizes entities into logical types, allowing systems to selectively operate on specific entity categories.\r\n */\r\n readonly entityType: EntityTypeUid;\r\n\r\n /**\r\n * The initialization model for this entity.\r\n * Provides the minimal data structure used when the entity was first created.\r\n * Serves as a reference point for the entity's initial configuration.\r\n *\r\n * @type {Immutable<TModel>}\r\n */\r\n readonly model: Immutable<TModel>;\r\n\r\n /**\r\n * The timestamp of the entity's last system update.\r\n * Useful for calculating elapsed time (delta time) between consecutive updates.\r\n * Helps systems make time-aware decisions.\r\n *\r\n * @type {Date | undefined}\r\n */\r\n readonly lastUpdated?: Date;\r\n}\r\n"],"mappings":";;;;;AAOA,IAAY,qBAAL,yBAAA,oBAAA;CACL,mBAAA,cAAA;;AACF,EAAA,CAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- import { S as IComponent, n as IdentityComponent, t as BasicComponentType, x as ComponentTypeUid } from "../identity-component-DLDaOTyK.cjs";
2
- export { BasicComponentType, ComponentTypeUid, IComponent, IdentityComponent };
1
+ import { _ as ConfigRecord, f as ComponentTypeUid, g as ConfigOption, h as ConfigCustomControlOptions, m as IComponentWithConfig, n as IdentityComponent, p as IComponent, t as BasicComponentType } from "../index-C0jDrUBA.cjs";
2
+ export { BasicComponentType, ComponentTypeUid, ConfigCustomControlOptions, ConfigOption, ConfigRecord, IComponent, IComponentWithConfig, IdentityComponent };
@@ -1,2 +1,2 @@
1
- import { S as IComponent, n as IdentityComponent, t as BasicComponentType, x as ComponentTypeUid } from "../identity-component-CuWHf7jX.mjs";
2
- export { BasicComponentType, ComponentTypeUid, IComponent, IdentityComponent };
1
+ import { _ as ConfigRecord, f as ComponentTypeUid, g as ConfigOption, h as ConfigCustomControlOptions, m as IComponentWithConfig, n as IdentityComponent, p as IComponent, t as BasicComponentType } from "../index-b5BtWAvO.mjs";
2
+ export { BasicComponentType, ComponentTypeUid, ConfigCustomControlOptions, ConfigOption, ConfigRecord, IComponent, IComponentWithConfig, IdentityComponent };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/components/identity-component.ts"],"sourcesContent":["import { EntityTypeUid, IEntityModel } from '../entities/entity';\r\nimport { Immutable } from '../utils/types';\r\nimport { IComponent } from './component';\r\n\r\n/**\r\n * The `BasicComponentType` enum defines the types of basic components available.\r\n */\r\nexport enum BasicComponentType {\r\n identity = 'identity'\r\n}\r\n\r\n/**\r\n * The mandatory metadata component for every entity.\r\n * Contains core information that defines what an entity is and when it was last updated.\r\n * This component is immutable after creation and uniquely identifies each entity.\r\n *\r\n * @template TModel - The entity model type containing initialization data.\r\n */\r\nexport interface IdentityComponent<TModel extends IEntityModel> extends IComponent {\r\n /**\r\n * The entity type classification.\r\n * Categorizes entities into logical types, allowing systems to selectively operate on specific entity categories.\r\n */\r\n readonly entityType: EntityTypeUid;\r\n\r\n /**\r\n * The initialization model for this entity.\r\n * Provides the minimal data structure used when the entity was first created.\r\n * Serves as a reference point for the entity's initial configuration.\r\n *\r\n * @type {Immutable<TModel>}\r\n */\r\n readonly model: Immutable<TModel>;\r\n\r\n /**\r\n * The timestamp of the entity's last system update.\r\n * Useful for calculating elapsed time (delta time) between consecutive updates.\r\n * Helps systems make time-aware decisions.\r\n *\r\n * @type {Date | undefined}\r\n */\r\n readonly lastUpdated?: Date;\r\n}\r\n"],"mappings":";;;;AAOA,IAAY,qBAAL,yBAAA,oBAAA;AACL,oBAAA,cAAA;;KACD"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/components/identity-component.ts"],"sourcesContent":["import { EntityTypeUid, IEntityModel } from '../entities/entity';\r\nimport { Immutable } from '../utils/types';\r\nimport { IComponent } from './component';\r\n\r\n/**\r\n * The `BasicComponentType` enum defines the types of basic components available.\r\n */\r\nexport enum BasicComponentType {\r\n identity = 'identity'\r\n}\r\n\r\n/**\r\n * The mandatory metadata component for every entity.\r\n * Contains core information that defines what an entity is and when it was last updated.\r\n * This component is immutable after creation and uniquely identifies each entity.\r\n *\r\n * @template TModel - The entity model type containing initialization data.\r\n */\r\nexport interface IdentityComponent<TModel extends IEntityModel> extends IComponent {\r\n /**\r\n * The entity type classification.\r\n * Categorizes entities into logical types, allowing systems to selectively operate on specific entity categories.\r\n */\r\n readonly entityType: EntityTypeUid;\r\n\r\n /**\r\n * The initialization model for this entity.\r\n * Provides the minimal data structure used when the entity was first created.\r\n * Serves as a reference point for the entity's initial configuration.\r\n *\r\n * @type {Immutable<TModel>}\r\n */\r\n readonly model: Immutable<TModel>;\r\n\r\n /**\r\n * The timestamp of the entity's last system update.\r\n * Useful for calculating elapsed time (delta time) between consecutive updates.\r\n * Helps systems make time-aware decisions.\r\n *\r\n * @type {Date | undefined}\r\n */\r\n readonly lastUpdated?: Date;\r\n}\r\n"],"mappings":";;;;AAOA,IAAY,qBAAL,yBAAA,oBAAA;CACL,mBAAA,cAAA;;AACF,EAAA,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../../src/entities/entity-queue.ts","../../src/entities/entity-scheduler.ts"],"sourcesContent":["import { IEntityModel } from './entity';\r\nimport { IEntityProxy } from './entity-proxies';\r\nimport { IEntitySnapshot } from './entity-snapshot';\r\n\r\n/**\r\n * Specifies the action to be performed on an entity.\r\n * Updates are categorized to enable different processing paths in the runtime.\r\n */\r\nexport enum EntityUpdateType {\r\n /**\r\n * Indicates the entity should be updated with new data.\r\n */\r\n update = 'update',\r\n /**\r\n * Indicates the entity should be removed from the system.\r\n */\r\n remove = 'remove'\r\n}\r\n\r\n/**\r\n * Represents a queued entity state change or removal.\r\n * Updates flow through the system to be processed by entity update handlers.\r\n */\r\nexport interface IEntityUpdate {\r\n /**\r\n * The type of operation: update or remove.\r\n */\r\n readonly type: EntityUpdateType;\r\n\r\n /**\r\n * The entity being affected by this update.\r\n */\r\n readonly entity: IEntityProxy;\r\n\r\n /**\r\n * Optional model data for initialization or reconfiguration.\r\n */\r\n readonly model?: IEntityModel;\r\n\r\n /**\r\n * Optional serialized state to apply to the entity.\r\n */\r\n readonly snapshot?: IEntitySnapshot;\r\n}\r\n\r\n/**\r\n * Queue interface for managing pending entity updates.\r\n * Different implementations may use different prioritization strategies (e.g., priority queues, FIFO, ordered by entity type).\r\n * Updates are consumed by the runtime and dispatched to appropriate entity systems.\r\n */\r\nexport interface IEntityUpdateQueue {\r\n /**\r\n * The current number of updates in the queue.\r\n */\r\n readonly size: number;\r\n\r\n /**\r\n * Adds an update to the queue for processing.\r\n * @param change - The update to queue.\r\n */\r\n enqueue(change: IEntityUpdate): void;\r\n\r\n /**\r\n * Removes and returns the next update from the queue.\r\n * The specific update returned depends on the queue's prioritization strategy.\r\n * @returns The next queued update.\r\n */\r\n dequeue(): IEntityUpdate;\r\n\r\n /**\r\n * Views the next update without removing it.\r\n * Useful for inspection before dequeuing.\r\n * @returns The next update in the queue.\r\n */\r\n peek(): IEntityUpdate;\r\n\r\n /**\r\n * Returns a read-only snapshot of all queued updates without removing them.\r\n * Useful for inspection/debugging UIs.\r\n * @returns An array of all currently queued updates.\r\n */\r\n items(): ReadonlyArray<IEntityUpdate>;\r\n\r\n /**\r\n * Removes all updates from the queue.\r\n */\r\n clear(): void;\r\n}\r\n","import { EntityTypeUid } from './entity';\r\nimport { IEntityProxy } from './entity-proxies';\r\n\r\n/**\r\n * Describes a scheduled entity update, including the target entity and optional interval.\r\n */\r\nexport type EntitySchedule = {\r\n readonly proxy: IEntityProxy;\r\n readonly intervalMs?: number;\r\n};\r\n\r\n/**\r\n * Controls which scheduling modes are paused.\r\n */\r\nexport enum SchedulerPauseType {\r\n /** Pause both interval timers and frame subscriptions. */\r\n full = 'full',\r\n /** Pause only frame subscriptions. Interval timers continue firing. */\r\n perFrame = 'perFrame',\r\n /** Pause only interval timers. Frame subscriptions continue. */\r\n intervals = 'intervals'\r\n}\r\n\r\n/**\r\n * Manages time-based scheduling of entity updates.\r\n *\r\n * Entities can be scheduled with an interval (timer-driven) or without one (per-frame).\r\n * The runtime pulls pending entities each tick via the {@link pending} iterator,\r\n * which yields both per-frame subscriptions and interval entities whose timer has fired.\r\n */\r\nexport interface IEntityScheduler {\r\n /**\r\n * Returns all currently scheduled entities with their configuration.\r\n * Useful for inspection and debugging.\r\n */\r\n readonly schedules: ReadonlyArray<EntitySchedule>;\r\n\r\n /**\r\n * Yields entities pending processing this tick: per-frame subscriptions\r\n * followed by interval entities whose timer has fired since the last drain.\r\n * Iterating drains the due interval buckets; a second iteration without\r\n * timer advancement yields only per-frame subscriptions.\r\n */\r\n readonly pending: IterableIterator<IEntityProxy>;\r\n\r\n /**\r\n * The set of entities scheduled for per-frame updates (no interval).\r\n */\r\n readonly frameSubscriptions: ReadonlySet<IEntityProxy>;\r\n\r\n /**\r\n * Entity types currently excluded from {@link pending} iteration.\r\n */\r\n readonly skippedEntityTypes: ReadonlySet<EntityTypeUid>;\r\n\r\n /**\r\n * The number of entities currently awaiting processing:\r\n * per-frame subscriptions (if not paused) plus interval entities whose timer has fired.\r\n */\r\n readonly pendingCount: number;\r\n\r\n /**\r\n * Whether the scheduler is currently paused in any mode.\r\n */\r\n readonly isPaused: boolean;\r\n\r\n /**\r\n * Registers an entity for updates.\r\n * @param entityProxy - The entity to schedule.\r\n * @param intervalMs - Update frequency in milliseconds. If omitted, the entity is scheduled per-frame.\r\n */\r\n schedule(entityProxy: IEntityProxy, intervalMs?: number): void;\r\n\r\n /**\r\n * Unregisters an entity from the scheduler.\r\n * @param entityProxy - The entity to unschedule.\r\n */\r\n remove(entityProxy: IEntityProxy): void;\r\n\r\n /**\r\n * Checks if an entity is currently scheduled for updates.\r\n * @param entityProxy - The entity to check.\r\n * @returns True if the entity is scheduled, false otherwise.\r\n */\r\n has(entityProxy: IEntityProxy): boolean;\r\n\r\n /**\r\n * Removes all schedules and clears all timers.\r\n */\r\n clear(): void;\r\n\r\n /**\r\n * Excludes an entity type from {@link pending} iteration.\r\n * Entities remain registered; only yielding is suppressed.\r\n */\r\n skipEntityType(entityType: EntityTypeUid): void;\r\n\r\n /**\r\n * Re-includes a previously skipped entity type in {@link pending} iteration.\r\n */\r\n unskipEntityType(entityType: EntityTypeUid): void;\r\n\r\n /**\r\n * Pauses the scheduler.\r\n * @param type - Which scheduling modes to pause. Defaults to {@link SchedulerPauseType.full}.\r\n */\r\n pause(type?: SchedulerPauseType): void;\r\n\r\n /**\r\n * Resumes the scheduler from any paused state.\r\n */\r\n resume(): void;\r\n}\r\n"],"mappings":";;;;;;AAQA,IAAY,mBAAL,yBAAA,kBAAA;;;;AAIL,kBAAA,YAAA;;;;AAIA,kBAAA,YAAA;;KACD;;;;;;ACHD,IAAY,qBAAL,yBAAA,oBAAA;;AAEL,oBAAA,UAAA;;AAEA,oBAAA,cAAA;;AAEA,oBAAA,eAAA;;KACD"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../src/entities/entity-queue.ts","../../src/entities/entity-scheduler.ts"],"sourcesContent":["import { IEntityModel } from './entity';\r\nimport { IEntityConfigSnapshot } from './entity-config';\r\nimport { IEntityProxy } from './entity-proxies';\r\nimport { IEntitySnapshot } from './entity-snapshot';\r\n\r\n/**\r\n * Specifies the action to be performed on an entity.\r\n * Updates are categorized to enable different processing paths in the runtime.\r\n */\r\nexport enum EntityUpdateType {\r\n /**\r\n * Indicates the entity should be updated with new data.\r\n */\r\n update = 'update',\r\n /**\r\n * Indicates the entity should be removed from the system.\r\n */\r\n remove = 'remove'\r\n}\r\n\r\n/**\r\n * Represents a queued entity state change or removal.\r\n * Updates flow through the system to be processed by entity update handlers.\r\n */\r\nexport interface IEntityUpdate {\r\n /**\r\n * The type of operation: update or remove.\r\n */\r\n readonly type: EntityUpdateType;\r\n\r\n /**\r\n * The entity being affected by this update.\r\n */\r\n readonly entity: IEntityProxy;\r\n\r\n /**\r\n * Optional model data for initialization or reconfiguration.\r\n */\r\n readonly model?: IEntityModel;\r\n\r\n /**\r\n * Optional serialized state to apply to the entity.\r\n */\r\n readonly snapshot?: IEntitySnapshot;\r\n\r\n /**\r\n * Optional config-only component state to apply to the entity.\r\n * When present on an update, the runtime applies it after `snapshot` and\r\n * includes the config system phase in the same tick.\r\n */\r\n readonly config?: IEntityConfigSnapshot;\r\n}\r\n\r\n/**\r\n * Queue interface for managing pending entity updates.\r\n * Different implementations may use different prioritization strategies (e.g., priority queues, FIFO, ordered by entity type).\r\n * Updates are consumed by the runtime and dispatched to appropriate entity systems.\r\n */\r\nexport interface IEntityUpdateQueue {\r\n /**\r\n * The current number of updates in the queue.\r\n */\r\n readonly size: number;\r\n\r\n /**\r\n * Adds an update to the queue for processing.\r\n * @param change - The update to queue.\r\n */\r\n enqueue(change: IEntityUpdate): void;\r\n\r\n /**\r\n * Removes and returns the next update from the queue.\r\n * The specific update returned depends on the queue's prioritization strategy.\r\n * @returns The next queued update.\r\n */\r\n dequeue(): IEntityUpdate;\r\n\r\n /**\r\n * Views the next update without removing it.\r\n * Useful for inspection before dequeuing.\r\n * @returns The next update in the queue.\r\n */\r\n peek(): IEntityUpdate;\r\n\r\n /**\r\n * Returns a read-only snapshot of all queued updates without removing them.\r\n * Useful for inspection/debugging UIs.\r\n * @returns An array of all currently queued updates.\r\n */\r\n items(): ReadonlyArray<IEntityUpdate>;\r\n\r\n /**\r\n * Removes all updates from the queue.\r\n */\r\n clear(): void;\r\n}\r\n","import { EntityTypeUid } from './entity';\r\nimport { IEntityProxy } from './entity-proxies';\r\n\r\n/**\r\n * Describes a scheduled entity update, including the target entity and optional interval.\r\n */\r\nexport type EntitySchedule = {\r\n readonly proxy: IEntityProxy;\r\n readonly intervalMs?: number;\r\n};\r\n\r\n/**\r\n * Controls which scheduling modes are paused.\r\n */\r\nexport enum SchedulerPauseType {\r\n /** Pause both interval timers and frame subscriptions. */\r\n full = 'full',\r\n /** Pause only frame subscriptions. Interval timers continue firing. */\r\n perFrame = 'perFrame',\r\n /** Pause only interval timers. Frame subscriptions continue. */\r\n intervals = 'intervals'\r\n}\r\n\r\n/**\r\n * Manages time-based scheduling of entity updates.\r\n *\r\n * Entities can be scheduled with an interval (timer-driven) or without one (per-frame).\r\n * The runtime pulls pending entities each tick via the {@link pending} iterator,\r\n * which yields both per-frame subscriptions and interval entities whose timer has fired.\r\n */\r\nexport interface IEntityScheduler {\r\n /**\r\n * Returns all currently scheduled entities with their configuration.\r\n * Useful for inspection and debugging.\r\n */\r\n readonly schedules: ReadonlyArray<EntitySchedule>;\r\n\r\n /**\r\n * Yields entities pending processing this tick: per-frame subscriptions\r\n * followed by interval entities whose timer has fired since the last drain.\r\n * Iterating drains the due interval buckets; a second iteration without\r\n * timer advancement yields only per-frame subscriptions.\r\n */\r\n readonly pending: IterableIterator<IEntityProxy>;\r\n\r\n /**\r\n * The set of entities scheduled for per-frame updates (no interval).\r\n */\r\n readonly frameSubscriptions: ReadonlySet<IEntityProxy>;\r\n\r\n /**\r\n * Entity types currently excluded from {@link pending} iteration.\r\n */\r\n readonly skippedEntityTypes: ReadonlySet<EntityTypeUid>;\r\n\r\n /**\r\n * The number of entities currently awaiting processing:\r\n * per-frame subscriptions (if not paused) plus interval entities whose timer has fired.\r\n */\r\n readonly pendingCount: number;\r\n\r\n /**\r\n * Whether the scheduler is currently paused in any mode.\r\n */\r\n readonly isPaused: boolean;\r\n\r\n /**\r\n * Registers or replaces an entity schedule.\r\n * @param entityProxy - The entity to schedule.\r\n * @param intervalMs - Update frequency in milliseconds. If omitted, the entity is scheduled per-frame.\r\n */\r\n schedule(entityProxy: IEntityProxy, intervalMs?: number): void;\r\n\r\n /**\r\n * Unregisters an entity from the scheduler.\r\n * @param entityProxy - The entity to unschedule.\r\n */\r\n remove(entityProxy: IEntityProxy): void;\r\n\r\n /**\r\n * Checks if an entity is currently scheduled for updates.\r\n * @param entityProxy - The entity to check.\r\n * @returns True if the entity is scheduled, false otherwise.\r\n */\r\n has(entityProxy: IEntityProxy): boolean;\r\n\r\n /**\r\n * Removes all schedules and clears all timers.\r\n */\r\n clear(): void;\r\n\r\n /**\r\n * Excludes an entity type from {@link pending} iteration.\r\n * Entities remain registered; only yielding is suppressed.\r\n */\r\n skipEntityType(entityType: EntityTypeUid): void;\r\n\r\n /**\r\n * Re-includes a previously skipped entity type in {@link pending} iteration.\r\n */\r\n unskipEntityType(entityType: EntityTypeUid): void;\r\n\r\n /**\r\n * Pauses the scheduler.\r\n * @param type - Which scheduling modes to pause. Defaults to {@link SchedulerPauseType.full}.\r\n */\r\n pause(type?: SchedulerPauseType): void;\r\n\r\n /**\r\n * Resumes the scheduler from any paused state.\r\n */\r\n resume(): void;\r\n}\r\n"],"mappings":";;;;;;AASA,IAAY,mBAAL,yBAAA,kBAAA;;;;CAIL,iBAAA,YAAA;;;;CAIA,iBAAA,YAAA;;AACF,EAAA,CAAA,CAAA;;;;;;ACJA,IAAY,qBAAL,yBAAA,oBAAA;;CAEL,mBAAA,UAAA;;CAEA,mBAAA,cAAA;;CAEA,mBAAA,eAAA;;AACF,EAAA,CAAA,CAAA"}
@@ -1,3 +1,3 @@
1
- import { _ as IEntityProxy, b as TypedEntityProxy, f as EntityTypeUid, g as EntityProxy, h as IEntityModel, m as IEntity, p as EntityUid, v as IEntityProxyRepository, y as RequiredProxies } from "../identity-component-DLDaOTyK.cjs";
2
- import { _ as IEntityContextCache, a as EntityUpdateType, c as IEntitySnapshot, d as EntityEventSubscriptionOptions, f as EntityEventUid, g as IEventData, h as IEntityEventsManager, i as IEntityRepository, l as IEntitySnapshotProvider, m as IEntityEventsDispatcher, n as IEntityScheduler, o as IEntityUpdate, p as IEntityEvent, r as SchedulerPauseType, s as IEntityUpdateQueue, t as EntitySchedule, u as EntityEventSubscriptionFilter } from "../index-BguFn1Xj.cjs";
3
- export { EntityEventSubscriptionFilter, EntityEventSubscriptionOptions, EntityEventUid, EntityProxy, EntitySchedule, EntityTypeUid, EntityUid, EntityUpdateType, IEntity, IEntityContextCache, IEntityEvent, IEntityEventsDispatcher, IEntityEventsManager, IEntityModel, IEntityProxy, IEntityProxyRepository, IEntityRepository, IEntityScheduler, IEntitySnapshot, IEntitySnapshotProvider, IEntityUpdate, IEntityUpdateQueue, IEventData, RequiredProxies, SchedulerPauseType, TypedEntityProxy };
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 "../index-C0jDrUBA.cjs";
2
+ import { _ as IEntityContextCache, a as EntityUpdateType, c as IEntitySnapshot, d as EntityEventSubscriptionOptions, f as EntityEventUid, g as IEventData, h as IEntityEventsManager, i as IEntityRepository, l as IEntitySnapshotProvider, m as IEntityEventsDispatcher, n as IEntityScheduler, o as IEntityUpdate, p as IEntityEvent, r as SchedulerPauseType, s as IEntityUpdateQueue, t as EntitySchedule, u as EntityEventSubscriptionFilter, v as IEntityConfigSnapshot } from "../index-BGLTfuj8.cjs";
3
+ export { EntityEventSubscriptionFilter, EntityEventSubscriptionOptions, EntityEventUid, EntityProxy, EntitySchedule, EntityTypeUid, EntityUid, EntityUpdateType, IEntity, IEntityConfigSnapshot, IEntityContextCache, IEntityEvent, IEntityEventsDispatcher, IEntityEventsManager, IEntityModel, IEntityProxy, IEntityProxyRepository, IEntityRepository, IEntityScheduler, IEntitySnapshot, IEntitySnapshotProvider, IEntityUpdate, IEntityUpdateQueue, IEventData, RequiredProxies, SchedulerPauseType, TypedEntityProxy };
@@ -1,3 +1,3 @@
1
- import { _ as IEntityProxy, b as TypedEntityProxy, f as EntityTypeUid, g as EntityProxy, h as IEntityModel, m as IEntity, p as EntityUid, v as IEntityProxyRepository, y as RequiredProxies } from "../identity-component-CuWHf7jX.mjs";
2
- import { _ as IEntityContextCache, a as EntityUpdateType, c as IEntitySnapshot, d as EntityEventSubscriptionOptions, f as EntityEventUid, g as IEventData, h as IEntityEventsManager, i as IEntityRepository, l as IEntitySnapshotProvider, m as IEntityEventsDispatcher, n as IEntityScheduler, o as IEntityUpdate, p as IEntityEvent, r as SchedulerPauseType, s as IEntityUpdateQueue, t as EntitySchedule, u as EntityEventSubscriptionFilter } from "../index-kNcUiDBd.mjs";
3
- export { EntityEventSubscriptionFilter, EntityEventSubscriptionOptions, EntityEventUid, EntityProxy, EntitySchedule, EntityTypeUid, EntityUid, EntityUpdateType, IEntity, IEntityContextCache, IEntityEvent, IEntityEventsDispatcher, IEntityEventsManager, IEntityModel, IEntityProxy, IEntityProxyRepository, IEntityRepository, IEntityScheduler, IEntitySnapshot, IEntitySnapshotProvider, IEntityUpdate, IEntityUpdateQueue, IEventData, RequiredProxies, SchedulerPauseType, TypedEntityProxy };
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 "../index-b5BtWAvO.mjs";
2
+ import { _ as IEntityContextCache, a as EntityUpdateType, c as IEntitySnapshot, d as EntityEventSubscriptionOptions, f as EntityEventUid, g as IEventData, h as IEntityEventsManager, i as IEntityRepository, l as IEntitySnapshotProvider, m as IEntityEventsDispatcher, n as IEntityScheduler, o as IEntityUpdate, p as IEntityEvent, r as SchedulerPauseType, s as IEntityUpdateQueue, t as EntitySchedule, u as EntityEventSubscriptionFilter, v as IEntityConfigSnapshot } from "../index-C1hRAjM-.mjs";
3
+ export { EntityEventSubscriptionFilter, EntityEventSubscriptionOptions, EntityEventUid, EntityProxy, EntitySchedule, EntityTypeUid, EntityUid, EntityUpdateType, IEntity, IEntityConfigSnapshot, IEntityContextCache, IEntityEvent, IEntityEventsDispatcher, IEntityEventsManager, IEntityModel, IEntityProxy, IEntityProxyRepository, IEntityRepository, IEntityScheduler, IEntitySnapshot, IEntitySnapshotProvider, IEntityUpdate, IEntityUpdateQueue, IEventData, RequiredProxies, SchedulerPauseType, TypedEntityProxy };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/entities/entity-queue.ts","../../src/entities/entity-scheduler.ts"],"sourcesContent":["import { IEntityModel } from './entity';\r\nimport { IEntityProxy } from './entity-proxies';\r\nimport { IEntitySnapshot } from './entity-snapshot';\r\n\r\n/**\r\n * Specifies the action to be performed on an entity.\r\n * Updates are categorized to enable different processing paths in the runtime.\r\n */\r\nexport enum EntityUpdateType {\r\n /**\r\n * Indicates the entity should be updated with new data.\r\n */\r\n update = 'update',\r\n /**\r\n * Indicates the entity should be removed from the system.\r\n */\r\n remove = 'remove'\r\n}\r\n\r\n/**\r\n * Represents a queued entity state change or removal.\r\n * Updates flow through the system to be processed by entity update handlers.\r\n */\r\nexport interface IEntityUpdate {\r\n /**\r\n * The type of operation: update or remove.\r\n */\r\n readonly type: EntityUpdateType;\r\n\r\n /**\r\n * The entity being affected by this update.\r\n */\r\n readonly entity: IEntityProxy;\r\n\r\n /**\r\n * Optional model data for initialization or reconfiguration.\r\n */\r\n readonly model?: IEntityModel;\r\n\r\n /**\r\n * Optional serialized state to apply to the entity.\r\n */\r\n readonly snapshot?: IEntitySnapshot;\r\n}\r\n\r\n/**\r\n * Queue interface for managing pending entity updates.\r\n * Different implementations may use different prioritization strategies (e.g., priority queues, FIFO, ordered by entity type).\r\n * Updates are consumed by the runtime and dispatched to appropriate entity systems.\r\n */\r\nexport interface IEntityUpdateQueue {\r\n /**\r\n * The current number of updates in the queue.\r\n */\r\n readonly size: number;\r\n\r\n /**\r\n * Adds an update to the queue for processing.\r\n * @param change - The update to queue.\r\n */\r\n enqueue(change: IEntityUpdate): void;\r\n\r\n /**\r\n * Removes and returns the next update from the queue.\r\n * The specific update returned depends on the queue's prioritization strategy.\r\n * @returns The next queued update.\r\n */\r\n dequeue(): IEntityUpdate;\r\n\r\n /**\r\n * Views the next update without removing it.\r\n * Useful for inspection before dequeuing.\r\n * @returns The next update in the queue.\r\n */\r\n peek(): IEntityUpdate;\r\n\r\n /**\r\n * Returns a read-only snapshot of all queued updates without removing them.\r\n * Useful for inspection/debugging UIs.\r\n * @returns An array of all currently queued updates.\r\n */\r\n items(): ReadonlyArray<IEntityUpdate>;\r\n\r\n /**\r\n * Removes all updates from the queue.\r\n */\r\n clear(): void;\r\n}\r\n","import { EntityTypeUid } from './entity';\r\nimport { IEntityProxy } from './entity-proxies';\r\n\r\n/**\r\n * Describes a scheduled entity update, including the target entity and optional interval.\r\n */\r\nexport type EntitySchedule = {\r\n readonly proxy: IEntityProxy;\r\n readonly intervalMs?: number;\r\n};\r\n\r\n/**\r\n * Controls which scheduling modes are paused.\r\n */\r\nexport enum SchedulerPauseType {\r\n /** Pause both interval timers and frame subscriptions. */\r\n full = 'full',\r\n /** Pause only frame subscriptions. Interval timers continue firing. */\r\n perFrame = 'perFrame',\r\n /** Pause only interval timers. Frame subscriptions continue. */\r\n intervals = 'intervals'\r\n}\r\n\r\n/**\r\n * Manages time-based scheduling of entity updates.\r\n *\r\n * Entities can be scheduled with an interval (timer-driven) or without one (per-frame).\r\n * The runtime pulls pending entities each tick via the {@link pending} iterator,\r\n * which yields both per-frame subscriptions and interval entities whose timer has fired.\r\n */\r\nexport interface IEntityScheduler {\r\n /**\r\n * Returns all currently scheduled entities with their configuration.\r\n * Useful for inspection and debugging.\r\n */\r\n readonly schedules: ReadonlyArray<EntitySchedule>;\r\n\r\n /**\r\n * Yields entities pending processing this tick: per-frame subscriptions\r\n * followed by interval entities whose timer has fired since the last drain.\r\n * Iterating drains the due interval buckets; a second iteration without\r\n * timer advancement yields only per-frame subscriptions.\r\n */\r\n readonly pending: IterableIterator<IEntityProxy>;\r\n\r\n /**\r\n * The set of entities scheduled for per-frame updates (no interval).\r\n */\r\n readonly frameSubscriptions: ReadonlySet<IEntityProxy>;\r\n\r\n /**\r\n * Entity types currently excluded from {@link pending} iteration.\r\n */\r\n readonly skippedEntityTypes: ReadonlySet<EntityTypeUid>;\r\n\r\n /**\r\n * The number of entities currently awaiting processing:\r\n * per-frame subscriptions (if not paused) plus interval entities whose timer has fired.\r\n */\r\n readonly pendingCount: number;\r\n\r\n /**\r\n * Whether the scheduler is currently paused in any mode.\r\n */\r\n readonly isPaused: boolean;\r\n\r\n /**\r\n * Registers an entity for updates.\r\n * @param entityProxy - The entity to schedule.\r\n * @param intervalMs - Update frequency in milliseconds. If omitted, the entity is scheduled per-frame.\r\n */\r\n schedule(entityProxy: IEntityProxy, intervalMs?: number): void;\r\n\r\n /**\r\n * Unregisters an entity from the scheduler.\r\n * @param entityProxy - The entity to unschedule.\r\n */\r\n remove(entityProxy: IEntityProxy): void;\r\n\r\n /**\r\n * Checks if an entity is currently scheduled for updates.\r\n * @param entityProxy - The entity to check.\r\n * @returns True if the entity is scheduled, false otherwise.\r\n */\r\n has(entityProxy: IEntityProxy): boolean;\r\n\r\n /**\r\n * Removes all schedules and clears all timers.\r\n */\r\n clear(): void;\r\n\r\n /**\r\n * Excludes an entity type from {@link pending} iteration.\r\n * Entities remain registered; only yielding is suppressed.\r\n */\r\n skipEntityType(entityType: EntityTypeUid): void;\r\n\r\n /**\r\n * Re-includes a previously skipped entity type in {@link pending} iteration.\r\n */\r\n unskipEntityType(entityType: EntityTypeUid): void;\r\n\r\n /**\r\n * Pauses the scheduler.\r\n * @param type - Which scheduling modes to pause. Defaults to {@link SchedulerPauseType.full}.\r\n */\r\n pause(type?: SchedulerPauseType): void;\r\n\r\n /**\r\n * Resumes the scheduler from any paused state.\r\n */\r\n resume(): void;\r\n}\r\n"],"mappings":";;;;;AAQA,IAAY,mBAAL,yBAAA,kBAAA;;;;AAIL,kBAAA,YAAA;;;;AAIA,kBAAA,YAAA;;KACD;;;;;;ACHD,IAAY,qBAAL,yBAAA,oBAAA;;AAEL,oBAAA,UAAA;;AAEA,oBAAA,cAAA;;AAEA,oBAAA,eAAA;;KACD"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/entities/entity-queue.ts","../../src/entities/entity-scheduler.ts"],"sourcesContent":["import { IEntityModel } from './entity';\r\nimport { IEntityConfigSnapshot } from './entity-config';\r\nimport { IEntityProxy } from './entity-proxies';\r\nimport { IEntitySnapshot } from './entity-snapshot';\r\n\r\n/**\r\n * Specifies the action to be performed on an entity.\r\n * Updates are categorized to enable different processing paths in the runtime.\r\n */\r\nexport enum EntityUpdateType {\r\n /**\r\n * Indicates the entity should be updated with new data.\r\n */\r\n update = 'update',\r\n /**\r\n * Indicates the entity should be removed from the system.\r\n */\r\n remove = 'remove'\r\n}\r\n\r\n/**\r\n * Represents a queued entity state change or removal.\r\n * Updates flow through the system to be processed by entity update handlers.\r\n */\r\nexport interface IEntityUpdate {\r\n /**\r\n * The type of operation: update or remove.\r\n */\r\n readonly type: EntityUpdateType;\r\n\r\n /**\r\n * The entity being affected by this update.\r\n */\r\n readonly entity: IEntityProxy;\r\n\r\n /**\r\n * Optional model data for initialization or reconfiguration.\r\n */\r\n readonly model?: IEntityModel;\r\n\r\n /**\r\n * Optional serialized state to apply to the entity.\r\n */\r\n readonly snapshot?: IEntitySnapshot;\r\n\r\n /**\r\n * Optional config-only component state to apply to the entity.\r\n * When present on an update, the runtime applies it after `snapshot` and\r\n * includes the config system phase in the same tick.\r\n */\r\n readonly config?: IEntityConfigSnapshot;\r\n}\r\n\r\n/**\r\n * Queue interface for managing pending entity updates.\r\n * Different implementations may use different prioritization strategies (e.g., priority queues, FIFO, ordered by entity type).\r\n * Updates are consumed by the runtime and dispatched to appropriate entity systems.\r\n */\r\nexport interface IEntityUpdateQueue {\r\n /**\r\n * The current number of updates in the queue.\r\n */\r\n readonly size: number;\r\n\r\n /**\r\n * Adds an update to the queue for processing.\r\n * @param change - The update to queue.\r\n */\r\n enqueue(change: IEntityUpdate): void;\r\n\r\n /**\r\n * Removes and returns the next update from the queue.\r\n * The specific update returned depends on the queue's prioritization strategy.\r\n * @returns The next queued update.\r\n */\r\n dequeue(): IEntityUpdate;\r\n\r\n /**\r\n * Views the next update without removing it.\r\n * Useful for inspection before dequeuing.\r\n * @returns The next update in the queue.\r\n */\r\n peek(): IEntityUpdate;\r\n\r\n /**\r\n * Returns a read-only snapshot of all queued updates without removing them.\r\n * Useful for inspection/debugging UIs.\r\n * @returns An array of all currently queued updates.\r\n */\r\n items(): ReadonlyArray<IEntityUpdate>;\r\n\r\n /**\r\n * Removes all updates from the queue.\r\n */\r\n clear(): void;\r\n}\r\n","import { EntityTypeUid } from './entity';\r\nimport { IEntityProxy } from './entity-proxies';\r\n\r\n/**\r\n * Describes a scheduled entity update, including the target entity and optional interval.\r\n */\r\nexport type EntitySchedule = {\r\n readonly proxy: IEntityProxy;\r\n readonly intervalMs?: number;\r\n};\r\n\r\n/**\r\n * Controls which scheduling modes are paused.\r\n */\r\nexport enum SchedulerPauseType {\r\n /** Pause both interval timers and frame subscriptions. */\r\n full = 'full',\r\n /** Pause only frame subscriptions. Interval timers continue firing. */\r\n perFrame = 'perFrame',\r\n /** Pause only interval timers. Frame subscriptions continue. */\r\n intervals = 'intervals'\r\n}\r\n\r\n/**\r\n * Manages time-based scheduling of entity updates.\r\n *\r\n * Entities can be scheduled with an interval (timer-driven) or without one (per-frame).\r\n * The runtime pulls pending entities each tick via the {@link pending} iterator,\r\n * which yields both per-frame subscriptions and interval entities whose timer has fired.\r\n */\r\nexport interface IEntityScheduler {\r\n /**\r\n * Returns all currently scheduled entities with their configuration.\r\n * Useful for inspection and debugging.\r\n */\r\n readonly schedules: ReadonlyArray<EntitySchedule>;\r\n\r\n /**\r\n * Yields entities pending processing this tick: per-frame subscriptions\r\n * followed by interval entities whose timer has fired since the last drain.\r\n * Iterating drains the due interval buckets; a second iteration without\r\n * timer advancement yields only per-frame subscriptions.\r\n */\r\n readonly pending: IterableIterator<IEntityProxy>;\r\n\r\n /**\r\n * The set of entities scheduled for per-frame updates (no interval).\r\n */\r\n readonly frameSubscriptions: ReadonlySet<IEntityProxy>;\r\n\r\n /**\r\n * Entity types currently excluded from {@link pending} iteration.\r\n */\r\n readonly skippedEntityTypes: ReadonlySet<EntityTypeUid>;\r\n\r\n /**\r\n * The number of entities currently awaiting processing:\r\n * per-frame subscriptions (if not paused) plus interval entities whose timer has fired.\r\n */\r\n readonly pendingCount: number;\r\n\r\n /**\r\n * Whether the scheduler is currently paused in any mode.\r\n */\r\n readonly isPaused: boolean;\r\n\r\n /**\r\n * Registers or replaces an entity schedule.\r\n * @param entityProxy - The entity to schedule.\r\n * @param intervalMs - Update frequency in milliseconds. If omitted, the entity is scheduled per-frame.\r\n */\r\n schedule(entityProxy: IEntityProxy, intervalMs?: number): void;\r\n\r\n /**\r\n * Unregisters an entity from the scheduler.\r\n * @param entityProxy - The entity to unschedule.\r\n */\r\n remove(entityProxy: IEntityProxy): void;\r\n\r\n /**\r\n * Checks if an entity is currently scheduled for updates.\r\n * @param entityProxy - The entity to check.\r\n * @returns True if the entity is scheduled, false otherwise.\r\n */\r\n has(entityProxy: IEntityProxy): boolean;\r\n\r\n /**\r\n * Removes all schedules and clears all timers.\r\n */\r\n clear(): void;\r\n\r\n /**\r\n * Excludes an entity type from {@link pending} iteration.\r\n * Entities remain registered; only yielding is suppressed.\r\n */\r\n skipEntityType(entityType: EntityTypeUid): void;\r\n\r\n /**\r\n * Re-includes a previously skipped entity type in {@link pending} iteration.\r\n */\r\n unskipEntityType(entityType: EntityTypeUid): void;\r\n\r\n /**\r\n * Pauses the scheduler.\r\n * @param type - Which scheduling modes to pause. Defaults to {@link SchedulerPauseType.full}.\r\n */\r\n pause(type?: SchedulerPauseType): void;\r\n\r\n /**\r\n * Resumes the scheduler from any paused state.\r\n */\r\n resume(): void;\r\n}\r\n"],"mappings":";;;;;AASA,IAAY,mBAAL,yBAAA,kBAAA;;;;CAIL,iBAAA,YAAA;;;;CAIA,iBAAA,YAAA;;AACF,EAAA,CAAA,CAAA;;;;;;ACJA,IAAY,qBAAL,yBAAA,oBAAA;;CAEL,mBAAA,UAAA;;CAEA,mBAAA,cAAA;;CAEA,mBAAA,eAAA;;AACF,EAAA,CAAA,CAAA"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  /**
4
4
  * Built-in metric categories for classifying pipeline and middleware performance entries.
5
5
  *
6
- * - `module` — System module pipelines (initialize, update, render, sync phases).
6
+ * - `module` — System module pipelines (initialize, config, update, render, sync phases).
7
7
  * - `runtime` — Runtime orchestration pipeline and its middleware.
8
8
  * - `system` — Individual system middleware within a module pipeline.
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../../src/factories/pipeline-factory.ts"],"sourcesContent":["import { IPipelineContext } from '../pipelines';\r\nimport { IPipeline } from '../pipelines/pipeline';\r\n\r\n/**\r\n * Category identifier for grouping performance metrics.\r\n * Typed as string to allow extension beyond the built-in {@link PipelineCategory} values.\r\n */\r\nexport type PipelineCategoryName = string;\r\n\r\n/**\r\n * Built-in metric categories for classifying pipeline and middleware performance entries.\r\n *\r\n * - `module` — System module pipelines (initialize, update, render, sync phases).\r\n * - `runtime` — Runtime orchestration pipeline and its middleware.\r\n * - `system` — Individual system middleware within a module pipeline.\r\n */\r\nexport enum PipelineCategory {\r\n module = 'module',\r\n runtime = 'runtime',\r\n system = 'system'\r\n}\r\n\r\n/**\r\n * Options for identifying and categorizing performance metrics on pipelines.\r\n */\r\nexport type PipelineOptions = {\r\n /** Display name for the pipeline in performance metrics. */\r\n pipelineName: string;\r\n /** Category assigned to pipeline-level metric entries. */\r\n pipelineCategory: PipelineCategoryName;\r\n /** Category assigned to per-middleware metric entries within this pipeline. */\r\n middlewareCategory: PipelineCategoryName;\r\n};\r\n\r\n/**\r\n * Creates pipeline instances for various contexts.\r\n * Abstracts pipeline creation to support different implementations.\r\n * Used by the system to instantiate pipelines without coupling to specific implementations.\r\n */\r\nexport interface IPipelineFactory {\r\n /**\r\n * Creates a new pipeline for the specified context type.\r\n * @template TContext - The context type for the pipeline. Must extend IPipelineContext.\r\n * @param options - Optional performance metric options (name, category) for the pipeline.\r\n * @returns A new pipeline instance ready for middleware registration.\r\n */\r\n createPipeline<TContext extends IPipelineContext>(options?: PipelineOptions): IPipeline<TContext>;\r\n}\r\n"],"mappings":";;;;;;;;;AAgBA,IAAY,mBAAL,yBAAA,kBAAA;AACL,kBAAA,YAAA;AACA,kBAAA,aAAA;AACA,kBAAA,YAAA;;KACD"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../src/factories/pipeline-factory.ts"],"sourcesContent":["import { IPipelineContext } from '../pipelines';\r\nimport { IPipeline } from '../pipelines/pipeline';\r\n\r\n/**\r\n * Category identifier for grouping performance metrics.\r\n * Typed as string to allow extension beyond the built-in {@link PipelineCategory} values.\r\n */\r\nexport type PipelineCategoryName = string;\r\n\r\n/**\r\n * Built-in metric categories for classifying pipeline and middleware performance entries.\r\n *\r\n * - `module` — System module pipelines (initialize, config, update, render, sync phases).\r\n * - `runtime` — Runtime orchestration pipeline and its middleware.\r\n * - `system` — Individual system middleware within a module pipeline.\r\n */\r\nexport enum PipelineCategory {\r\n module = 'module',\r\n runtime = 'runtime',\r\n system = 'system'\r\n}\r\n\r\n/**\r\n * Options for identifying and categorizing performance metrics on pipelines.\r\n */\r\nexport type PipelineOptions = {\r\n /** Display name for the pipeline in performance metrics. */\r\n pipelineName: string;\r\n /** Category assigned to pipeline-level metric entries. */\r\n pipelineCategory: PipelineCategoryName;\r\n /** Category assigned to per-middleware metric entries within this pipeline. */\r\n middlewareCategory: PipelineCategoryName;\r\n};\r\n\r\n/**\r\n * Creates pipeline instances for various contexts.\r\n * Abstracts pipeline creation to support different implementations.\r\n * Used by the system to instantiate pipelines without coupling to specific implementations.\r\n */\r\nexport interface IPipelineFactory {\r\n /**\r\n * Creates a new pipeline for the specified context type.\r\n * @template TContext - The context type for the pipeline. Must extend IPipelineContext.\r\n * @param options - Optional performance metric options (name, category) for the pipeline.\r\n * @returns A new pipeline instance ready for middleware registration.\r\n */\r\n createPipeline<TContext extends IPipelineContext>(options?: PipelineOptions): IPipeline<TContext>;\r\n}\r\n"],"mappings":";;;;;;;;;AAgBA,IAAY,mBAAL,yBAAA,kBAAA;CACL,iBAAA,YAAA;CACA,iBAAA,aAAA;CACA,iBAAA,YAAA;;AACF,EAAA,CAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- import { d as IPipelineFactory, f as PipelineCategory, h as IContextFactory, m as PipelineOptions, n as IRuntimeFactory, p as PipelineCategoryName, t as ISystemsFactory } from "../index-zohK7ftH.cjs";
1
+ import { d as IPipelineFactory, f as PipelineCategory, h as IContextFactory, m as PipelineOptions, n as IRuntimeFactory, p as PipelineCategoryName, t as ISystemsFactory } from "../index-B1OYkMOx.cjs";
2
2
  export { IContextFactory, IPipelineFactory, IRuntimeFactory, ISystemsFactory, PipelineCategory, PipelineCategoryName, PipelineOptions };
@@ -1,2 +1,2 @@
1
- import { d as IPipelineFactory, f as PipelineCategory, h as IContextFactory, m as PipelineOptions, n as IRuntimeFactory, p as PipelineCategoryName, t as ISystemsFactory } from "../index-DZlhICMZ.mjs";
1
+ import { d as IPipelineFactory, f as PipelineCategory, h as IContextFactory, m as PipelineOptions, n as IRuntimeFactory, p as PipelineCategoryName, t as ISystemsFactory } from "../index-D3rS2RFG.mjs";
2
2
  export { IContextFactory, IPipelineFactory, IRuntimeFactory, ISystemsFactory, PipelineCategory, PipelineCategoryName, PipelineOptions };
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Built-in metric categories for classifying pipeline and middleware performance entries.
4
4
  *
5
- * - `module` — System module pipelines (initialize, update, render, sync phases).
5
+ * - `module` — System module pipelines (initialize, config, update, render, sync phases).
6
6
  * - `runtime` — Runtime orchestration pipeline and its middleware.
7
7
  * - `system` — Individual system middleware within a module pipeline.
8
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/factories/pipeline-factory.ts"],"sourcesContent":["import { IPipelineContext } from '../pipelines';\r\nimport { IPipeline } from '../pipelines/pipeline';\r\n\r\n/**\r\n * Category identifier for grouping performance metrics.\r\n * Typed as string to allow extension beyond the built-in {@link PipelineCategory} values.\r\n */\r\nexport type PipelineCategoryName = string;\r\n\r\n/**\r\n * Built-in metric categories for classifying pipeline and middleware performance entries.\r\n *\r\n * - `module` — System module pipelines (initialize, update, render, sync phases).\r\n * - `runtime` — Runtime orchestration pipeline and its middleware.\r\n * - `system` — Individual system middleware within a module pipeline.\r\n */\r\nexport enum PipelineCategory {\r\n module = 'module',\r\n runtime = 'runtime',\r\n system = 'system'\r\n}\r\n\r\n/**\r\n * Options for identifying and categorizing performance metrics on pipelines.\r\n */\r\nexport type PipelineOptions = {\r\n /** Display name for the pipeline in performance metrics. */\r\n pipelineName: string;\r\n /** Category assigned to pipeline-level metric entries. */\r\n pipelineCategory: PipelineCategoryName;\r\n /** Category assigned to per-middleware metric entries within this pipeline. */\r\n middlewareCategory: PipelineCategoryName;\r\n};\r\n\r\n/**\r\n * Creates pipeline instances for various contexts.\r\n * Abstracts pipeline creation to support different implementations.\r\n * Used by the system to instantiate pipelines without coupling to specific implementations.\r\n */\r\nexport interface IPipelineFactory {\r\n /**\r\n * Creates a new pipeline for the specified context type.\r\n * @template TContext - The context type for the pipeline. Must extend IPipelineContext.\r\n * @param options - Optional performance metric options (name, category) for the pipeline.\r\n * @returns A new pipeline instance ready for middleware registration.\r\n */\r\n createPipeline<TContext extends IPipelineContext>(options?: PipelineOptions): IPipeline<TContext>;\r\n}\r\n"],"mappings":";;;;;;;;AAgBA,IAAY,mBAAL,yBAAA,kBAAA;AACL,kBAAA,YAAA;AACA,kBAAA,aAAA;AACA,kBAAA,YAAA;;KACD"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/factories/pipeline-factory.ts"],"sourcesContent":["import { IPipelineContext } from '../pipelines';\r\nimport { IPipeline } from '../pipelines/pipeline';\r\n\r\n/**\r\n * Category identifier for grouping performance metrics.\r\n * Typed as string to allow extension beyond the built-in {@link PipelineCategory} values.\r\n */\r\nexport type PipelineCategoryName = string;\r\n\r\n/**\r\n * Built-in metric categories for classifying pipeline and middleware performance entries.\r\n *\r\n * - `module` — System module pipelines (initialize, config, update, render, sync phases).\r\n * - `runtime` — Runtime orchestration pipeline and its middleware.\r\n * - `system` — Individual system middleware within a module pipeline.\r\n */\r\nexport enum PipelineCategory {\r\n module = 'module',\r\n runtime = 'runtime',\r\n system = 'system'\r\n}\r\n\r\n/**\r\n * Options for identifying and categorizing performance metrics on pipelines.\r\n */\r\nexport type PipelineOptions = {\r\n /** Display name for the pipeline in performance metrics. */\r\n pipelineName: string;\r\n /** Category assigned to pipeline-level metric entries. */\r\n pipelineCategory: PipelineCategoryName;\r\n /** Category assigned to per-middleware metric entries within this pipeline. */\r\n middlewareCategory: PipelineCategoryName;\r\n};\r\n\r\n/**\r\n * Creates pipeline instances for various contexts.\r\n * Abstracts pipeline creation to support different implementations.\r\n * Used by the system to instantiate pipelines without coupling to specific implementations.\r\n */\r\nexport interface IPipelineFactory {\r\n /**\r\n * Creates a new pipeline for the specified context type.\r\n * @template TContext - The context type for the pipeline. Must extend IPipelineContext.\r\n * @param options - Optional performance metric options (name, category) for the pipeline.\r\n * @returns A new pipeline instance ready for middleware registration.\r\n */\r\n createPipeline<TContext extends IPipelineContext>(options?: PipelineOptions): IPipeline<TContext>;\r\n}\r\n"],"mappings":";;;;;;;;AAgBA,IAAY,mBAAL,yBAAA,kBAAA;CACL,iBAAA,YAAA;CACA,iBAAA,aAAA;CACA,iBAAA,YAAA;;AACF,EAAA,CAAA,CAAA"}