@sharpee/world-model 0.9.60-beta → 0.9.61-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist-npm/capabilities/action-interceptor.d.ts +169 -0
- package/dist-npm/capabilities/action-interceptor.d.ts.map +1 -0
- package/dist-npm/capabilities/action-interceptor.js +15 -0
- package/dist-npm/capabilities/action-interceptor.js.map +1 -0
- package/{dist → dist-npm}/capabilities/index.d.ts +3 -0
- package/{dist → dist-npm}/capabilities/index.d.ts.map +1 -1
- package/{dist → dist-npm}/capabilities/index.js +17 -1
- package/{dist → dist-npm}/capabilities/index.js.map +1 -1
- package/dist-npm/capabilities/interceptor-helpers.d.ts +74 -0
- package/dist-npm/capabilities/interceptor-helpers.d.ts.map +1 -0
- package/dist-npm/capabilities/interceptor-helpers.js +111 -0
- package/dist-npm/capabilities/interceptor-helpers.js.map +1 -0
- package/dist-npm/capabilities/interceptor-registry.d.ts +125 -0
- package/dist-npm/capabilities/interceptor-registry.d.ts.map +1 -0
- package/dist-npm/capabilities/interceptor-registry.js +176 -0
- package/dist-npm/capabilities/interceptor-registry.js.map +1 -0
- package/{dist → dist-npm}/traits/room/roomTrait.d.ts +14 -0
- package/dist-npm/traits/room/roomTrait.d.ts.map +1 -0
- package/{dist → dist-npm}/traits/room/roomTrait.js.map +1 -1
- package/{dist → dist-npm}/traits/trait.d.ts +2 -0
- package/{dist → dist-npm}/traits/trait.d.ts.map +1 -1
- package/{dist → dist-npm}/traits/trait.js.map +1 -1
- package/package.json +22 -21
- package/dist/traits/portable/portableTrait.d.ts +0 -26
- package/dist/traits/portable/portableTrait.d.ts.map +0 -1
- package/dist/traits/portable/portableTrait.js +0 -35
- package/dist/traits/portable/portableTrait.js.map +0 -1
- package/dist/traits/room/roomTrait.d.ts.map +0 -1
- /package/{dist → dist-npm}/behaviors/attack.d.ts +0 -0
- /package/{dist → dist-npm}/behaviors/attack.d.ts.map +0 -0
- /package/{dist → dist-npm}/behaviors/attack.js +0 -0
- /package/{dist → dist-npm}/behaviors/attack.js.map +0 -0
- /package/{dist → dist-npm}/behaviors/behavior.d.ts +0 -0
- /package/{dist → dist-npm}/behaviors/behavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/behaviors/behavior.js +0 -0
- /package/{dist → dist-npm}/behaviors/behavior.js.map +0 -0
- /package/{dist → dist-npm}/behaviors/index.d.ts +0 -0
- /package/{dist → dist-npm}/behaviors/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/behaviors/index.js +0 -0
- /package/{dist → dist-npm}/behaviors/index.js.map +0 -0
- /package/{dist → dist-npm}/capabilities/capability-behavior.d.ts +0 -0
- /package/{dist → dist-npm}/capabilities/capability-behavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/capabilities/capability-behavior.js +0 -0
- /package/{dist → dist-npm}/capabilities/capability-behavior.js.map +0 -0
- /package/{dist → dist-npm}/capabilities/capability-defaults.d.ts +0 -0
- /package/{dist → dist-npm}/capabilities/capability-defaults.d.ts.map +0 -0
- /package/{dist → dist-npm}/capabilities/capability-defaults.js +0 -0
- /package/{dist → dist-npm}/capabilities/capability-defaults.js.map +0 -0
- /package/{dist → dist-npm}/capabilities/capability-helpers.d.ts +0 -0
- /package/{dist → dist-npm}/capabilities/capability-helpers.d.ts.map +0 -0
- /package/{dist → dist-npm}/capabilities/capability-helpers.js +0 -0
- /package/{dist → dist-npm}/capabilities/capability-helpers.js.map +0 -0
- /package/{dist → dist-npm}/capabilities/capability-registry.d.ts +0 -0
- /package/{dist → dist-npm}/capabilities/capability-registry.d.ts.map +0 -0
- /package/{dist → dist-npm}/capabilities/capability-registry.js +0 -0
- /package/{dist → dist-npm}/capabilities/capability-registry.js.map +0 -0
- /package/{dist → dist-npm}/capabilities/entity-builder.d.ts +0 -0
- /package/{dist → dist-npm}/capabilities/entity-builder.d.ts.map +0 -0
- /package/{dist → dist-npm}/capabilities/entity-builder.js +0 -0
- /package/{dist → dist-npm}/capabilities/entity-builder.js.map +0 -0
- /package/{dist → dist-npm}/capabilities/types.d.ts +0 -0
- /package/{dist → dist-npm}/capabilities/types.d.ts.map +0 -0
- /package/{dist → dist-npm}/capabilities/types.js +0 -0
- /package/{dist → dist-npm}/capabilities/types.js.map +0 -0
- /package/{dist → dist-npm}/commands/command-types.d.ts +0 -0
- /package/{dist → dist-npm}/commands/command-types.d.ts.map +0 -0
- /package/{dist → dist-npm}/commands/command-types.js +0 -0
- /package/{dist → dist-npm}/commands/command-types.js.map +0 -0
- /package/{dist → dist-npm}/commands/index.d.ts +0 -0
- /package/{dist → dist-npm}/commands/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/commands/index.js +0 -0
- /package/{dist → dist-npm}/commands/index.js.map +0 -0
- /package/{dist → dist-npm}/commands/parsed-command.d.ts +0 -0
- /package/{dist → dist-npm}/commands/parsed-command.d.ts.map +0 -0
- /package/{dist → dist-npm}/commands/parsed-command.js +0 -0
- /package/{dist → dist-npm}/commands/parsed-command.js.map +0 -0
- /package/{dist → dist-npm}/commands/validated-command.d.ts +0 -0
- /package/{dist → dist-npm}/commands/validated-command.d.ts.map +0 -0
- /package/{dist → dist-npm}/commands/validated-command.js +0 -0
- /package/{dist → dist-npm}/commands/validated-command.js.map +0 -0
- /package/{dist → dist-npm}/constants/action-failures.d.ts +0 -0
- /package/{dist → dist-npm}/constants/action-failures.d.ts.map +0 -0
- /package/{dist → dist-npm}/constants/action-failures.js +0 -0
- /package/{dist → dist-npm}/constants/action-failures.js.map +0 -0
- /package/{dist → dist-npm}/constants/directions.d.ts +0 -0
- /package/{dist → dist-npm}/constants/directions.d.ts.map +0 -0
- /package/{dist → dist-npm}/constants/directions.js +0 -0
- /package/{dist → dist-npm}/constants/directions.js.map +0 -0
- /package/{dist → dist-npm}/constants/if-events.d.ts +0 -0
- /package/{dist → dist-npm}/constants/if-events.d.ts.map +0 -0
- /package/{dist → dist-npm}/constants/if-events.js +0 -0
- /package/{dist → dist-npm}/constants/if-events.js.map +0 -0
- /package/{dist → dist-npm}/constants/index.d.ts +0 -0
- /package/{dist → dist-npm}/constants/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/constants/index.js +0 -0
- /package/{dist → dist-npm}/constants/index.js.map +0 -0
- /package/{dist → dist-npm}/entities/entity-store.d.ts +0 -0
- /package/{dist → dist-npm}/entities/entity-store.d.ts.map +0 -0
- /package/{dist → dist-npm}/entities/entity-store.js +0 -0
- /package/{dist → dist-npm}/entities/entity-store.js.map +0 -0
- /package/{dist → dist-npm}/entities/entity-types.d.ts +0 -0
- /package/{dist → dist-npm}/entities/entity-types.d.ts.map +0 -0
- /package/{dist → dist-npm}/entities/entity-types.js +0 -0
- /package/{dist → dist-npm}/entities/entity-types.js.map +0 -0
- /package/{dist → dist-npm}/entities/if-entity.d.ts +0 -0
- /package/{dist → dist-npm}/entities/if-entity.d.ts.map +0 -0
- /package/{dist → dist-npm}/entities/if-entity.js +0 -0
- /package/{dist → dist-npm}/entities/if-entity.js.map +0 -0
- /package/{dist → dist-npm}/entities/index.d.ts +0 -0
- /package/{dist → dist-npm}/entities/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/entities/index.js +0 -0
- /package/{dist → dist-npm}/entities/index.js.map +0 -0
- /package/{dist → dist-npm}/events/types.d.ts +0 -0
- /package/{dist → dist-npm}/events/types.d.ts.map +0 -0
- /package/{dist → dist-npm}/events/types.js +0 -0
- /package/{dist → dist-npm}/events/types.js.map +0 -0
- /package/{dist → dist-npm}/examples/event-handler-registration.d.ts +0 -0
- /package/{dist → dist-npm}/examples/event-handler-registration.d.ts.map +0 -0
- /package/{dist → dist-npm}/examples/event-handler-registration.js +0 -0
- /package/{dist → dist-npm}/examples/event-handler-registration.js.map +0 -0
- /package/{dist → dist-npm}/extensions/base-extension.d.ts +0 -0
- /package/{dist → dist-npm}/extensions/base-extension.d.ts.map +0 -0
- /package/{dist → dist-npm}/extensions/base-extension.js +0 -0
- /package/{dist → dist-npm}/extensions/base-extension.js.map +0 -0
- /package/{dist → dist-npm}/extensions/index.d.ts +0 -0
- /package/{dist → dist-npm}/extensions/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/extensions/index.js +0 -0
- /package/{dist → dist-npm}/extensions/index.js.map +0 -0
- /package/{dist → dist-npm}/extensions/loader.d.ts +0 -0
- /package/{dist → dist-npm}/extensions/loader.d.ts.map +0 -0
- /package/{dist → dist-npm}/extensions/loader.js +0 -0
- /package/{dist → dist-npm}/extensions/loader.js.map +0 -0
- /package/{dist → dist-npm}/extensions/manager.d.ts +0 -0
- /package/{dist → dist-npm}/extensions/manager.d.ts.map +0 -0
- /package/{dist → dist-npm}/extensions/manager.js +0 -0
- /package/{dist → dist-npm}/extensions/manager.js.map +0 -0
- /package/{dist → dist-npm}/extensions/registry.d.ts +0 -0
- /package/{dist → dist-npm}/extensions/registry.d.ts.map +0 -0
- /package/{dist → dist-npm}/extensions/registry.js +0 -0
- /package/{dist → dist-npm}/extensions/registry.js.map +0 -0
- /package/{dist → dist-npm}/extensions/types.d.ts +0 -0
- /package/{dist → dist-npm}/extensions/types.d.ts.map +0 -0
- /package/{dist → dist-npm}/extensions/types.js +0 -0
- /package/{dist → dist-npm}/extensions/types.js.map +0 -0
- /package/{dist → dist-npm}/index.d.ts +0 -0
- /package/{dist → dist-npm}/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/index.js +0 -0
- /package/{dist → dist-npm}/index.js.map +0 -0
- /package/{dist → dist-npm}/interfaces/command-executor.d.ts +0 -0
- /package/{dist → dist-npm}/interfaces/command-executor.d.ts.map +0 -0
- /package/{dist → dist-npm}/interfaces/command-executor.js +0 -0
- /package/{dist → dist-npm}/interfaces/command-executor.js.map +0 -0
- /package/{dist → dist-npm}/interfaces/command-processor.d.ts +0 -0
- /package/{dist → dist-npm}/interfaces/command-processor.d.ts.map +0 -0
- /package/{dist → dist-npm}/interfaces/command-processor.js +0 -0
- /package/{dist → dist-npm}/interfaces/command-processor.js.map +0 -0
- /package/{dist → dist-npm}/interfaces/command-validator.d.ts +0 -0
- /package/{dist → dist-npm}/interfaces/command-validator.d.ts.map +0 -0
- /package/{dist → dist-npm}/interfaces/command-validator.js +0 -0
- /package/{dist → dist-npm}/interfaces/command-validator.js.map +0 -0
- /package/{dist → dist-npm}/interfaces/index.d.ts +0 -0
- /package/{dist → dist-npm}/interfaces/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/interfaces/index.js +0 -0
- /package/{dist → dist-npm}/interfaces/index.js.map +0 -0
- /package/{dist → dist-npm}/interfaces/language-provider.d.ts +0 -0
- /package/{dist → dist-npm}/interfaces/language-provider.d.ts.map +0 -0
- /package/{dist → dist-npm}/interfaces/language-provider.js +0 -0
- /package/{dist → dist-npm}/interfaces/language-provider.js.map +0 -0
- /package/{dist → dist-npm}/interfaces/parser.d.ts +0 -0
- /package/{dist → dist-npm}/interfaces/parser.d.ts.map +0 -0
- /package/{dist → dist-npm}/interfaces/parser.js +0 -0
- /package/{dist → dist-npm}/interfaces/parser.js.map +0 -0
- /package/{dist → dist-npm}/scope/index.d.ts +0 -0
- /package/{dist → dist-npm}/scope/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/scope/index.js +0 -0
- /package/{dist → dist-npm}/scope/index.js.map +0 -0
- /package/{dist → dist-npm}/scope/scope-evaluator.d.ts +0 -0
- /package/{dist → dist-npm}/scope/scope-evaluator.d.ts.map +0 -0
- /package/{dist → dist-npm}/scope/scope-evaluator.js +0 -0
- /package/{dist → dist-npm}/scope/scope-evaluator.js.map +0 -0
- /package/{dist → dist-npm}/scope/scope-registry.d.ts +0 -0
- /package/{dist → dist-npm}/scope/scope-registry.d.ts.map +0 -0
- /package/{dist → dist-npm}/scope/scope-registry.js +0 -0
- /package/{dist → dist-npm}/scope/scope-registry.js.map +0 -0
- /package/{dist → dist-npm}/scope/scope-rule.d.ts +0 -0
- /package/{dist → dist-npm}/scope/scope-rule.d.ts.map +0 -0
- /package/{dist → dist-npm}/scope/scope-rule.js +0 -0
- /package/{dist → dist-npm}/scope/scope-rule.js.map +0 -0
- /package/{dist → dist-npm}/services/ScopeService.d.ts +0 -0
- /package/{dist → dist-npm}/services/ScopeService.d.ts.map +0 -0
- /package/{dist → dist-npm}/services/ScopeService.js +0 -0
- /package/{dist → dist-npm}/services/ScopeService.js.map +0 -0
- /package/{dist → dist-npm}/services/index.d.ts +0 -0
- /package/{dist → dist-npm}/services/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/services/index.js +0 -0
- /package/{dist → dist-npm}/services/index.js.map +0 -0
- /package/{dist → dist-npm}/test-structure.d.ts +0 -0
- /package/{dist → dist-npm}/test-structure.d.ts.map +0 -0
- /package/{dist → dist-npm}/test-structure.js +0 -0
- /package/{dist → dist-npm}/test-structure.js.map +0 -0
- /package/{dist → dist-npm}/traits/actor/actorBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/actor/actorBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/actor/actorBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/actor/actorBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/actor/actorTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/actor/actorTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/actor/actorTrait.js +0 -0
- /package/{dist → dist-npm}/traits/actor/actorTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/actor/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/actor/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/actor/index.js +0 -0
- /package/{dist → dist-npm}/traits/actor/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/all-traits.d.ts +0 -0
- /package/{dist → dist-npm}/traits/all-traits.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/all-traits.js +0 -0
- /package/{dist → dist-npm}/traits/all-traits.js.map +0 -0
- /package/{dist → dist-npm}/traits/attached/attachedTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/attached/attachedTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/attached/attachedTrait.js +0 -0
- /package/{dist → dist-npm}/traits/attached/attachedTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/attached/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/attached/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/attached/index.js +0 -0
- /package/{dist → dist-npm}/traits/attached/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/breakable/breakableBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/breakable/breakableBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/breakable/breakableBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/breakable/breakableBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/breakable/breakableTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/breakable/breakableTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/breakable/breakableTrait.js +0 -0
- /package/{dist → dist-npm}/traits/breakable/breakableTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/breakable/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/breakable/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/breakable/index.js +0 -0
- /package/{dist → dist-npm}/traits/breakable/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/button/buttonTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/button/buttonTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/button/buttonTrait.js +0 -0
- /package/{dist → dist-npm}/traits/button/buttonTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/button/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/button/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/button/index.js +0 -0
- /package/{dist → dist-npm}/traits/button/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/climbable/climbableBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/climbable/climbableBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/climbable/climbableBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/climbable/climbableBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/climbable/climbableTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/climbable/climbableTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/climbable/climbableTrait.js +0 -0
- /package/{dist → dist-npm}/traits/climbable/climbableTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/climbable/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/climbable/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/climbable/index.js +0 -0
- /package/{dist → dist-npm}/traits/climbable/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/clothing/clothingTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/clothing/clothingTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/clothing/clothingTrait.js +0 -0
- /package/{dist → dist-npm}/traits/clothing/clothingTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/clothing/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/clothing/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/clothing/index.js +0 -0
- /package/{dist → dist-npm}/traits/clothing/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/combatant/combatantBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/combatant/combatantBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/combatant/combatantBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/combatant/combatantBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/combatant/combatantTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/combatant/combatantTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/combatant/combatantTrait.js +0 -0
- /package/{dist → dist-npm}/traits/combatant/combatantTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/combatant/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/combatant/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/combatant/index.js +0 -0
- /package/{dist → dist-npm}/traits/combatant/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/container/container-utils.d.ts +0 -0
- /package/{dist → dist-npm}/traits/container/container-utils.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/container/container-utils.js +0 -0
- /package/{dist → dist-npm}/traits/container/container-utils.js.map +0 -0
- /package/{dist → dist-npm}/traits/container/containerBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/container/containerBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/container/containerBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/container/containerBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/container/containerTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/container/containerTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/container/containerTrait.js +0 -0
- /package/{dist → dist-npm}/traits/container/containerTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/container/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/container/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/container/index.js +0 -0
- /package/{dist → dist-npm}/traits/container/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/destructible/destructibleBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/destructible/destructibleBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/destructible/destructibleBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/destructible/destructibleBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/destructible/destructibleTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/destructible/destructibleTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/destructible/destructibleTrait.js +0 -0
- /package/{dist → dist-npm}/traits/destructible/destructibleTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/destructible/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/destructible/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/destructible/index.js +0 -0
- /package/{dist → dist-npm}/traits/destructible/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/door/doorBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/door/doorBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/door/doorBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/door/doorBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/door/doorTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/door/doorTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/door/doorTrait.js +0 -0
- /package/{dist → dist-npm}/traits/door/doorTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/door/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/door/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/door/index.js +0 -0
- /package/{dist → dist-npm}/traits/door/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/edible/edibleBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/edible/edibleBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/edible/edibleBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/edible/edibleBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/edible/edibleTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/edible/edibleTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/edible/edibleTrait.js +0 -0
- /package/{dist → dist-npm}/traits/edible/edibleTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/edible/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/edible/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/edible/index.js +0 -0
- /package/{dist → dist-npm}/traits/edible/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/enterable/enterableTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/enterable/enterableTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/enterable/enterableTrait.js +0 -0
- /package/{dist → dist-npm}/traits/enterable/enterableTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/enterable/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/enterable/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/enterable/index.js +0 -0
- /package/{dist → dist-npm}/traits/enterable/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/equipped/equippedTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/equipped/equippedTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/equipped/equippedTrait.js +0 -0
- /package/{dist → dist-npm}/traits/equipped/equippedTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/equipped/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/equipped/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/equipped/index.js +0 -0
- /package/{dist → dist-npm}/traits/equipped/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/exit/exitBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/exit/exitBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/exit/exitBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/exit/exitBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/exit/exitTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/exit/exitTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/exit/exitTrait.js +0 -0
- /package/{dist → dist-npm}/traits/exit/exitTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/exit/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/exit/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/exit/index.js +0 -0
- /package/{dist → dist-npm}/traits/exit/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/identity/identityBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/identity/identityBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/identity/identityBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/identity/identityBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/identity/identityTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/identity/identityTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/identity/identityTrait.js +0 -0
- /package/{dist → dist-npm}/traits/identity/identityTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/identity/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/identity/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/identity/index.js +0 -0
- /package/{dist → dist-npm}/traits/identity/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/implementations.d.ts +0 -0
- /package/{dist → dist-npm}/traits/implementations.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/implementations.js +0 -0
- /package/{dist → dist-npm}/traits/implementations.js.map +0 -0
- /package/{dist → dist-npm}/traits/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/index.js +0 -0
- /package/{dist → dist-npm}/traits/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/light-source/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/light-source/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/light-source/index.js +0 -0
- /package/{dist → dist-npm}/traits/light-source/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/light-source/lightSourceBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/light-source/lightSourceBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/light-source/lightSourceBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/light-source/lightSourceBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/light-source/lightSourceTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/light-source/lightSourceTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/light-source/lightSourceTrait.js +0 -0
- /package/{dist → dist-npm}/traits/light-source/lightSourceTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/lockable/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/lockable/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/lockable/index.js +0 -0
- /package/{dist → dist-npm}/traits/lockable/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/lockable/lockableBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/lockable/lockableBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/lockable/lockableBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/lockable/lockableBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/lockable/lockableTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/lockable/lockableTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/lockable/lockableTrait.js +0 -0
- /package/{dist → dist-npm}/traits/lockable/lockableTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/moveable-scenery/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/moveable-scenery/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/moveable-scenery/index.js +0 -0
- /package/{dist → dist-npm}/traits/moveable-scenery/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/moveable-scenery/moveableSceneryTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/moveable-scenery/moveableSceneryTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/moveable-scenery/moveableSceneryTrait.js +0 -0
- /package/{dist → dist-npm}/traits/moveable-scenery/moveableSceneryTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/npc/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/npc/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/npc/index.js +0 -0
- /package/{dist → dist-npm}/traits/npc/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/npc/npcTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/npc/npcTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/npc/npcTrait.js +0 -0
- /package/{dist → dist-npm}/traits/npc/npcTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/openable/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/openable/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/openable/index.js +0 -0
- /package/{dist → dist-npm}/traits/openable/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/openable/openableBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/openable/openableBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/openable/openableBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/openable/openableBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/openable/openableTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/openable/openableTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/openable/openableTrait.js +0 -0
- /package/{dist → dist-npm}/traits/openable/openableTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/pullable/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/pullable/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/pullable/index.js +0 -0
- /package/{dist → dist-npm}/traits/pullable/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/pullable/pullableTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/pullable/pullableTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/pullable/pullableTrait.js +0 -0
- /package/{dist → dist-npm}/traits/pullable/pullableTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/pushable/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/pushable/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/pushable/index.js +0 -0
- /package/{dist → dist-npm}/traits/pushable/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/pushable/pushableTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/pushable/pushableTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/pushable/pushableTrait.js +0 -0
- /package/{dist → dist-npm}/traits/pushable/pushableTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/readable/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/readable/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/readable/index.js +0 -0
- /package/{dist → dist-npm}/traits/readable/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/readable/readableBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/readable/readableBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/readable/readableBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/readable/readableBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/readable/readableTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/readable/readableTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/readable/readableTrait.js +0 -0
- /package/{dist → dist-npm}/traits/readable/readableTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/register-all.d.ts +0 -0
- /package/{dist → dist-npm}/traits/register-all.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/register-all.js +0 -0
- /package/{dist → dist-npm}/traits/register-all.js.map +0 -0
- /package/{dist → dist-npm}/traits/room/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/room/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/room/index.js +0 -0
- /package/{dist → dist-npm}/traits/room/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/room/roomBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/room/roomBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/room/roomBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/room/roomBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/room/roomTrait.js +0 -0
- /package/{dist → dist-npm}/traits/scenery/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/scenery/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/scenery/index.js +0 -0
- /package/{dist → dist-npm}/traits/scenery/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/scenery/sceneryBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/scenery/sceneryBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/scenery/sceneryBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/scenery/sceneryBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/scenery/sceneryTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/scenery/sceneryTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/scenery/sceneryTrait.js +0 -0
- /package/{dist → dist-npm}/traits/scenery/sceneryTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/supporter/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/supporter/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/supporter/index.js +0 -0
- /package/{dist → dist-npm}/traits/supporter/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/supporter/supporterBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/supporter/supporterBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/supporter/supporterBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/supporter/supporterBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/supporter/supporterTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/supporter/supporterTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/supporter/supporterTrait.js +0 -0
- /package/{dist → dist-npm}/traits/supporter/supporterTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/switchable/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/switchable/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/switchable/index.js +0 -0
- /package/{dist → dist-npm}/traits/switchable/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/switchable/switchableBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/switchable/switchableBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/switchable/switchableBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/switchable/switchableBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/switchable/switchableTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/switchable/switchableTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/switchable/switchableTrait.js +0 -0
- /package/{dist → dist-npm}/traits/switchable/switchableTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/trait-types.d.ts +0 -0
- /package/{dist → dist-npm}/traits/trait-types.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/trait-types.js +0 -0
- /package/{dist → dist-npm}/traits/trait-types.js.map +0 -0
- /package/{dist → dist-npm}/traits/trait.js +0 -0
- /package/{dist → dist-npm}/traits/vehicle/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/vehicle/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/vehicle/index.js +0 -0
- /package/{dist → dist-npm}/traits/vehicle/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/vehicle/vehicleBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/vehicle/vehicleBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/vehicle/vehicleBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/vehicle/vehicleBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/vehicle/vehicleTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/vehicle/vehicleTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/vehicle/vehicleTrait.js +0 -0
- /package/{dist → dist-npm}/traits/vehicle/vehicleTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/weapon/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/weapon/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/weapon/index.js +0 -0
- /package/{dist → dist-npm}/traits/weapon/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/weapon/weaponBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/weapon/weaponBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/weapon/weaponBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/weapon/weaponBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/weapon/weaponTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/weapon/weaponTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/weapon/weaponTrait.js +0 -0
- /package/{dist → dist-npm}/traits/weapon/weaponTrait.js.map +0 -0
- /package/{dist → dist-npm}/traits/wearable/index.d.ts +0 -0
- /package/{dist → dist-npm}/traits/wearable/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/wearable/index.js +0 -0
- /package/{dist → dist-npm}/traits/wearable/index.js.map +0 -0
- /package/{dist → dist-npm}/traits/wearable/wearableBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/traits/wearable/wearableBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/wearable/wearableBehavior.js +0 -0
- /package/{dist → dist-npm}/traits/wearable/wearableBehavior.js.map +0 -0
- /package/{dist → dist-npm}/traits/wearable/wearableTrait.d.ts +0 -0
- /package/{dist → dist-npm}/traits/wearable/wearableTrait.d.ts.map +0 -0
- /package/{dist → dist-npm}/traits/wearable/wearableTrait.js +0 -0
- /package/{dist → dist-npm}/traits/wearable/wearableTrait.js.map +0 -0
- /package/{dist → dist-npm}/utils/event-utils.d.ts +0 -0
- /package/{dist → dist-npm}/utils/event-utils.d.ts.map +0 -0
- /package/{dist → dist-npm}/utils/event-utils.js +0 -0
- /package/{dist → dist-npm}/utils/event-utils.js.map +0 -0
- /package/{dist → dist-npm}/world/AuthorModel.d.ts +0 -0
- /package/{dist → dist-npm}/world/AuthorModel.d.ts.map +0 -0
- /package/{dist → dist-npm}/world/AuthorModel.js +0 -0
- /package/{dist → dist-npm}/world/AuthorModel.js.map +0 -0
- /package/{dist → dist-npm}/world/SharedDataStore.d.ts +0 -0
- /package/{dist → dist-npm}/world/SharedDataStore.d.ts.map +0 -0
- /package/{dist → dist-npm}/world/SharedDataStore.js +0 -0
- /package/{dist → dist-npm}/world/SharedDataStore.js.map +0 -0
- /package/{dist → dist-npm}/world/SpatialIndex.d.ts +0 -0
- /package/{dist → dist-npm}/world/SpatialIndex.d.ts.map +0 -0
- /package/{dist → dist-npm}/world/SpatialIndex.js +0 -0
- /package/{dist → dist-npm}/world/SpatialIndex.js.map +0 -0
- /package/{dist → dist-npm}/world/VisibilityBehavior.d.ts +0 -0
- /package/{dist → dist-npm}/world/VisibilityBehavior.d.ts.map +0 -0
- /package/{dist → dist-npm}/world/VisibilityBehavior.js +0 -0
- /package/{dist → dist-npm}/world/VisibilityBehavior.js.map +0 -0
- /package/{dist → dist-npm}/world/WorldModel.d.ts +0 -0
- /package/{dist → dist-npm}/world/WorldModel.d.ts.map +0 -0
- /package/{dist → dist-npm}/world/WorldModel.js +0 -0
- /package/{dist → dist-npm}/world/WorldModel.js.map +0 -0
- /package/{dist → dist-npm}/world/capabilities.d.ts +0 -0
- /package/{dist → dist-npm}/world/capabilities.d.ts.map +0 -0
- /package/{dist → dist-npm}/world/capabilities.js +0 -0
- /package/{dist → dist-npm}/world/capabilities.js.map +0 -0
- /package/{dist → dist-npm}/world/index.d.ts +0 -0
- /package/{dist → dist-npm}/world/index.d.ts.map +0 -0
- /package/{dist → dist-npm}/world/index.js +0 -0
- /package/{dist → dist-npm}/world/index.js.map +0 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 David Cornelson
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action Interceptor interface (ADR-118)
|
|
3
|
+
*
|
|
4
|
+
* Interceptors allow entities to hook into stdlib action phases
|
|
5
|
+
* without replacing standard logic. This is the "Before/After" pattern
|
|
6
|
+
* from Inform 6/7, complementing the full delegation pattern in
|
|
7
|
+
* capability behaviors.
|
|
8
|
+
*
|
|
9
|
+
* Key difference from CapabilityBehavior:
|
|
10
|
+
* - CapabilityBehavior: Full delegation, trait owns ALL logic (LOWER, RAISE)
|
|
11
|
+
* - ActionInterceptor: Hooks into phases, action owns core logic (ENTER, PUT)
|
|
12
|
+
*/
|
|
13
|
+
import { IFEntity } from '../entities';
|
|
14
|
+
import { WorldModel } from '../world';
|
|
15
|
+
import { CapabilityEffect } from './types';
|
|
16
|
+
/**
|
|
17
|
+
* Shared data object for passing data between interceptor phases.
|
|
18
|
+
* Mirrors CapabilitySharedData pattern from capability-behavior.ts.
|
|
19
|
+
*
|
|
20
|
+
* Interceptors can store data here during earlier phases (e.g., postValidate)
|
|
21
|
+
* and access it in later phases (e.g., postExecute, postReport).
|
|
22
|
+
*/
|
|
23
|
+
export type InterceptorSharedData = Record<string, unknown>;
|
|
24
|
+
/**
|
|
25
|
+
* Result from interceptor validation hooks.
|
|
26
|
+
* Returning null means "continue with standard logic".
|
|
27
|
+
* Returning a result blocks or modifies the action.
|
|
28
|
+
*/
|
|
29
|
+
export interface InterceptorResult {
|
|
30
|
+
/** Whether the action can proceed */
|
|
31
|
+
valid: boolean;
|
|
32
|
+
/** Error code if validation failed (for message lookup) */
|
|
33
|
+
error?: string;
|
|
34
|
+
/** Additional context for error messages */
|
|
35
|
+
params?: Record<string, unknown>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Action interceptor interface.
|
|
39
|
+
*
|
|
40
|
+
* Interceptors hook into stdlib action phases to customize behavior
|
|
41
|
+
* without reimplementing standard logic. All hooks are optional.
|
|
42
|
+
*
|
|
43
|
+
* Phase order:
|
|
44
|
+
* 1. preValidate - Before standard validation
|
|
45
|
+
* 2. (standard validation runs)
|
|
46
|
+
* 3. postValidate - After standard validation passes
|
|
47
|
+
* 4. (standard execute runs)
|
|
48
|
+
* 5. postExecute - After standard execution
|
|
49
|
+
* 6. (standard report runs)
|
|
50
|
+
* 7. postReport - Additional effects after standard report
|
|
51
|
+
*
|
|
52
|
+
* If validation fails at any point:
|
|
53
|
+
* - onBlocked - Called instead of execute/report phases
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* // Boat puncture interceptor - checks for sharp objects when entering
|
|
58
|
+
* const InflatableEnteringInterceptor: ActionInterceptor = {
|
|
59
|
+
* postValidate(entity, world, actorId, sharedData) {
|
|
60
|
+
* const inventory = world.getContents(actorId);
|
|
61
|
+
* const sharpObject = inventory.find(item => item.puncturesBoat);
|
|
62
|
+
* if (sharpObject) {
|
|
63
|
+
* sharedData.willPuncture = true;
|
|
64
|
+
* sharedData.punctureItem = sharpObject.name;
|
|
65
|
+
* }
|
|
66
|
+
* return null; // Allow entering to proceed
|
|
67
|
+
* },
|
|
68
|
+
*
|
|
69
|
+
* postExecute(entity, world, actorId, sharedData) {
|
|
70
|
+
* if (!sharedData.willPuncture) return;
|
|
71
|
+
* // Deflate the boat, eject player
|
|
72
|
+
* const trait = entity.get(InflatableTrait);
|
|
73
|
+
* trait.isInflated = false;
|
|
74
|
+
* world.moveEntity(actorId, world.getLocation(entity.id));
|
|
75
|
+
* },
|
|
76
|
+
*
|
|
77
|
+
* postReport(entity, world, actorId, sharedData) {
|
|
78
|
+
* if (!sharedData.willPuncture) return [];
|
|
79
|
+
* return [createEffect('dungeo.boat.punctured', { item: sharedData.punctureItem })];
|
|
80
|
+
* }
|
|
81
|
+
* };
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
export interface ActionInterceptor {
|
|
85
|
+
/**
|
|
86
|
+
* Called BEFORE standard validation.
|
|
87
|
+
*
|
|
88
|
+
* Use this to block actions early based on entity-specific conditions.
|
|
89
|
+
* Return an InterceptorResult to block the action.
|
|
90
|
+
* Return null to continue with standard validation.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* // Troll blocks entering the Troll Room
|
|
94
|
+
* preValidate(entity, world, actorId, sharedData) {
|
|
95
|
+
* if (trollIsAlive(world)) {
|
|
96
|
+
* return { valid: false, error: 'dungeo.troll.blocks_path' };
|
|
97
|
+
* }
|
|
98
|
+
* return null;
|
|
99
|
+
* }
|
|
100
|
+
*/
|
|
101
|
+
preValidate?(entity: IFEntity, world: WorldModel, actorId: string, sharedData: InterceptorSharedData): InterceptorResult | null;
|
|
102
|
+
/**
|
|
103
|
+
* Called AFTER standard validation passes.
|
|
104
|
+
*
|
|
105
|
+
* Use this to add entity-specific conditions that should block
|
|
106
|
+
* an otherwise valid action, or to set up data for postExecute.
|
|
107
|
+
* Return an InterceptorResult to block the action.
|
|
108
|
+
* Return null to continue with execution.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* // Check if player is carrying something that will puncture the boat
|
|
112
|
+
* postValidate(entity, world, actorId, sharedData) {
|
|
113
|
+
* const sharp = findSharpObject(world, actorId);
|
|
114
|
+
* if (sharp) {
|
|
115
|
+
* sharedData.willPuncture = true;
|
|
116
|
+
* sharedData.punctureItem = sharp.name;
|
|
117
|
+
* }
|
|
118
|
+
* return null; // Still allow entering
|
|
119
|
+
* }
|
|
120
|
+
*/
|
|
121
|
+
postValidate?(entity: IFEntity, world: WorldModel, actorId: string, sharedData: InterceptorSharedData): InterceptorResult | null;
|
|
122
|
+
/**
|
|
123
|
+
* Called AFTER standard execution completes.
|
|
124
|
+
*
|
|
125
|
+
* Use this to perform additional mutations based on the action.
|
|
126
|
+
* Cannot prevent the action (use postValidate for that).
|
|
127
|
+
* Access data stored in sharedData during validation phases.
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* // Glacier melts when torch is thrown at it
|
|
131
|
+
* postExecute(entity, world, actorId, sharedData) {
|
|
132
|
+
* if (!sharedData.willMelt) return;
|
|
133
|
+
* meltGlacier(world, entity.id);
|
|
134
|
+
* openPassage(world, 'glacier-passage');
|
|
135
|
+
* }
|
|
136
|
+
*/
|
|
137
|
+
postExecute?(entity: IFEntity, world: WorldModel, actorId: string, sharedData: InterceptorSharedData): void;
|
|
138
|
+
/**
|
|
139
|
+
* Called AFTER standard report.
|
|
140
|
+
*
|
|
141
|
+
* Return additional effects to emit after the standard effects.
|
|
142
|
+
* Return empty array if no additional effects needed.
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* // Add glacier melting message
|
|
146
|
+
* postReport(entity, world, actorId, sharedData) {
|
|
147
|
+
* if (!sharedData.melted) return [];
|
|
148
|
+
* return [createEffect('dungeo.glacier.melted', { messageId: 'dungeo.glacier.melts' })];
|
|
149
|
+
* }
|
|
150
|
+
*/
|
|
151
|
+
postReport?(entity: IFEntity, world: WorldModel, actorId: string, sharedData: InterceptorSharedData): CapabilityEffect[];
|
|
152
|
+
/**
|
|
153
|
+
* Called when action is blocked (validation failed).
|
|
154
|
+
*
|
|
155
|
+
* Use this to provide custom blocked handling for this entity.
|
|
156
|
+
* Return effects to emit, or null to use standard blocked handling.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* // Custom message when troll blocks entry
|
|
160
|
+
* onBlocked(entity, world, actorId, error, sharedData) {
|
|
161
|
+
* if (error === 'dungeo.troll.blocks_path') {
|
|
162
|
+
* return [createEffect('game.message', { messageId: 'dungeo.troll.snarls' })];
|
|
163
|
+
* }
|
|
164
|
+
* return null; // Use standard blocked handling
|
|
165
|
+
* }
|
|
166
|
+
*/
|
|
167
|
+
onBlocked?(entity: IFEntity, world: WorldModel, actorId: string, error: string, sharedData: InterceptorSharedData): CapabilityEffect[] | null;
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=action-interceptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-interceptor.d.ts","sourceRoot":"","sources":["../../src/capabilities/action-interceptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,qCAAqC;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,CACV,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,qBAAqB,GAChC,iBAAiB,GAAG,IAAI,CAAC;IAE5B;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAAC,CACX,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,qBAAqB,GAChC,iBAAiB,GAAG,IAAI,CAAC;IAE5B;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,CACV,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,qBAAqB,GAChC,IAAI,CAAC;IAER;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,CACT,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,qBAAqB,GAChC,gBAAgB,EAAE,CAAC;IAEtB;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,CACR,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,qBAAqB,GAChC,gBAAgB,EAAE,GAAG,IAAI,CAAC;CAC9B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Action Interceptor interface (ADR-118)
|
|
4
|
+
*
|
|
5
|
+
* Interceptors allow entities to hook into stdlib action phases
|
|
6
|
+
* without replacing standard logic. This is the "Before/After" pattern
|
|
7
|
+
* from Inform 6/7, complementing the full delegation pattern in
|
|
8
|
+
* capability behaviors.
|
|
9
|
+
*
|
|
10
|
+
* Key difference from CapabilityBehavior:
|
|
11
|
+
* - CapabilityBehavior: Full delegation, trait owns ALL logic (LOWER, RAISE)
|
|
12
|
+
* - ActionInterceptor: Hooks into phases, action owns core logic (ENTER, PUT)
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
//# sourceMappingURL=action-interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-interceptor.js","sourceRoot":"","sources":["../../src/capabilities/action-interceptor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -10,4 +10,7 @@ export { TraitBehaviorBinding, BehaviorRegistrationOptions, registerCapabilityBe
|
|
|
10
10
|
export { CapabilityResolution, CapabilityMode, CapabilityConfig, defineCapabilityDefaults, getCapabilityConfig, hasCapabilityDefaults, clearCapabilityDefaults, getAllCapabilityDefaults } from './capability-defaults';
|
|
11
11
|
export { findTraitWithCapability, hasCapability, getEntityCapabilities, traitHasCapability, getCapableTraits } from './capability-helpers';
|
|
12
12
|
export { EntityBuilder, buildEntity } from './entity-builder';
|
|
13
|
+
export { ActionInterceptor, InterceptorSharedData, InterceptorResult } from './action-interceptor';
|
|
14
|
+
export { TraitInterceptorBinding, InterceptorRegistrationOptions, InterceptorLookupResult, registerActionInterceptor, getInterceptorForAction, getInterceptorBinding, hasActionInterceptor, unregisterActionInterceptor, clearInterceptorRegistry, getAllInterceptorBindings } from './interceptor-registry';
|
|
15
|
+
export { findTraitWithInterceptor, hasInterceptor, getEntityInterceptors, traitHasInterceptor, getInterceptorTraits } from './interceptor-helpers';
|
|
13
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,YAAY,EACb,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGjF,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,aAAa,EACb,WAAW,EACZ,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,YAAY,EACb,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGjF,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,aAAa,EACb,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAW1B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,uBAAuB,CAAC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* (action IDs they respond to) and behaviors implement the logic.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.buildEntity = exports.EntityBuilder = exports.getCapableTraits = exports.traitHasCapability = exports.getEntityCapabilities = exports.hasCapability = exports.findTraitWithCapability = exports.getAllCapabilityDefaults = exports.clearCapabilityDefaults = exports.hasCapabilityDefaults = exports.getCapabilityConfig = exports.defineCapabilityDefaults = exports.getAllCapabilityBindings = exports.clearCapabilityRegistry = exports.unregisterCapabilityBehavior = exports.hasCapabilityBehavior = exports.getBehaviorBinding = exports.getBehaviorForCapability = exports.registerCapabilityBehavior = exports.createEffect = void 0;
|
|
9
|
+
exports.getInterceptorTraits = exports.traitHasInterceptor = exports.getEntityInterceptors = exports.hasInterceptor = exports.findTraitWithInterceptor = exports.getAllInterceptorBindings = exports.clearInterceptorRegistry = exports.unregisterActionInterceptor = exports.hasActionInterceptor = exports.getInterceptorBinding = exports.getInterceptorForAction = exports.registerActionInterceptor = exports.buildEntity = exports.EntityBuilder = exports.getCapableTraits = exports.traitHasCapability = exports.getEntityCapabilities = exports.hasCapability = exports.findTraitWithCapability = exports.getAllCapabilityDefaults = exports.clearCapabilityDefaults = exports.hasCapabilityDefaults = exports.getCapabilityConfig = exports.defineCapabilityDefaults = exports.getAllCapabilityBindings = exports.clearCapabilityRegistry = exports.unregisterCapabilityBehavior = exports.hasCapabilityBehavior = exports.getBehaviorBinding = exports.getBehaviorForCapability = exports.registerCapabilityBehavior = exports.createEffect = void 0;
|
|
10
10
|
// Types
|
|
11
11
|
var types_1 = require("./types");
|
|
12
12
|
Object.defineProperty(exports, "createEffect", { enumerable: true, get: function () { return types_1.createEffect; } });
|
|
@@ -37,4 +37,20 @@ Object.defineProperty(exports, "getCapableTraits", { enumerable: true, get: func
|
|
|
37
37
|
var entity_builder_1 = require("./entity-builder");
|
|
38
38
|
Object.defineProperty(exports, "EntityBuilder", { enumerable: true, get: function () { return entity_builder_1.EntityBuilder; } });
|
|
39
39
|
Object.defineProperty(exports, "buildEntity", { enumerable: true, get: function () { return entity_builder_1.buildEntity; } });
|
|
40
|
+
// Interceptor registry
|
|
41
|
+
var interceptor_registry_1 = require("./interceptor-registry");
|
|
42
|
+
Object.defineProperty(exports, "registerActionInterceptor", { enumerable: true, get: function () { return interceptor_registry_1.registerActionInterceptor; } });
|
|
43
|
+
Object.defineProperty(exports, "getInterceptorForAction", { enumerable: true, get: function () { return interceptor_registry_1.getInterceptorForAction; } });
|
|
44
|
+
Object.defineProperty(exports, "getInterceptorBinding", { enumerable: true, get: function () { return interceptor_registry_1.getInterceptorBinding; } });
|
|
45
|
+
Object.defineProperty(exports, "hasActionInterceptor", { enumerable: true, get: function () { return interceptor_registry_1.hasActionInterceptor; } });
|
|
46
|
+
Object.defineProperty(exports, "unregisterActionInterceptor", { enumerable: true, get: function () { return interceptor_registry_1.unregisterActionInterceptor; } });
|
|
47
|
+
Object.defineProperty(exports, "clearInterceptorRegistry", { enumerable: true, get: function () { return interceptor_registry_1.clearInterceptorRegistry; } });
|
|
48
|
+
Object.defineProperty(exports, "getAllInterceptorBindings", { enumerable: true, get: function () { return interceptor_registry_1.getAllInterceptorBindings; } });
|
|
49
|
+
// Interceptor helpers
|
|
50
|
+
var interceptor_helpers_1 = require("./interceptor-helpers");
|
|
51
|
+
Object.defineProperty(exports, "findTraitWithInterceptor", { enumerable: true, get: function () { return interceptor_helpers_1.findTraitWithInterceptor; } });
|
|
52
|
+
Object.defineProperty(exports, "hasInterceptor", { enumerable: true, get: function () { return interceptor_helpers_1.hasInterceptor; } });
|
|
53
|
+
Object.defineProperty(exports, "getEntityInterceptors", { enumerable: true, get: function () { return interceptor_helpers_1.getEntityInterceptors; } });
|
|
54
|
+
Object.defineProperty(exports, "traitHasInterceptor", { enumerable: true, get: function () { return interceptor_helpers_1.traitHasInterceptor; } });
|
|
55
|
+
Object.defineProperty(exports, "getInterceptorTraits", { enumerable: true, get: function () { return interceptor_helpers_1.getInterceptorTraits; } });
|
|
40
56
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,QAAQ;AACR,iCAIiB;AADf,qGAAA,YAAY,OAAA;AAMd,WAAW;AACX,6DAU+B;AAP7B,iIAAA,0BAA0B,OAAA;AAC1B,+HAAA,wBAAwB,OAAA;AACxB,yHAAA,kBAAkB,OAAA;AAClB,4HAAA,qBAAqB,OAAA;AACrB,mIAAA,4BAA4B,OAAA;AAC5B,8HAAA,uBAAuB,OAAA;AACvB,+HAAA,wBAAwB,OAAA;AAG1B,6BAA6B;AAC7B,6DAS+B;AAL7B,+HAAA,wBAAwB,OAAA;AACxB,0HAAA,mBAAmB,OAAA;AACnB,4HAAA,qBAAqB,OAAA;AACrB,8HAAA,uBAAuB,OAAA;AACvB,+HAAA,wBAAwB,OAAA;AAG1B,UAAU;AACV,2DAM8B;AAL5B,6HAAA,uBAAuB,OAAA;AACvB,mHAAA,aAAa,OAAA;AACb,2HAAA,qBAAqB,OAAA;AACrB,wHAAA,kBAAkB,OAAA;AAClB,sHAAA,gBAAgB,OAAA;AAGlB,iBAAiB;AACjB,mDAG0B;AAFxB,+GAAA,aAAa,OAAA;AACb,6GAAA,WAAW,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,QAAQ;AACR,iCAIiB;AADf,qGAAA,YAAY,OAAA;AAMd,WAAW;AACX,6DAU+B;AAP7B,iIAAA,0BAA0B,OAAA;AAC1B,+HAAA,wBAAwB,OAAA;AACxB,yHAAA,kBAAkB,OAAA;AAClB,4HAAA,qBAAqB,OAAA;AACrB,mIAAA,4BAA4B,OAAA;AAC5B,8HAAA,uBAAuB,OAAA;AACvB,+HAAA,wBAAwB,OAAA;AAG1B,6BAA6B;AAC7B,6DAS+B;AAL7B,+HAAA,wBAAwB,OAAA;AACxB,0HAAA,mBAAmB,OAAA;AACnB,4HAAA,qBAAqB,OAAA;AACrB,8HAAA,uBAAuB,OAAA;AACvB,+HAAA,wBAAwB,OAAA;AAG1B,UAAU;AACV,2DAM8B;AAL5B,6HAAA,uBAAuB,OAAA;AACvB,mHAAA,aAAa,OAAA;AACb,2HAAA,qBAAqB,OAAA;AACrB,wHAAA,kBAAkB,OAAA;AAClB,sHAAA,gBAAgB,OAAA;AAGlB,iBAAiB;AACjB,mDAG0B;AAFxB,+GAAA,aAAa,OAAA;AACb,6GAAA,WAAW,OAAA;AAkBb,uBAAuB;AACvB,+DAWgC;AAP9B,iIAAA,yBAAyB,OAAA;AACzB,+HAAA,uBAAuB,OAAA;AACvB,6HAAA,qBAAqB,OAAA;AACrB,4HAAA,oBAAoB,OAAA;AACpB,mIAAA,2BAA2B,OAAA;AAC3B,gIAAA,wBAAwB,OAAA;AACxB,iIAAA,yBAAyB,OAAA;AAG3B,sBAAsB;AACtB,6DAM+B;AAL7B,+HAAA,wBAAwB,OAAA;AACxB,qHAAA,cAAc,OAAA;AACd,4HAAA,qBAAqB,OAAA;AACrB,0HAAA,mBAAmB,OAAA;AACnB,2HAAA,oBAAoB,OAAA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interceptor Helpers (ADR-118)
|
|
3
|
+
*
|
|
4
|
+
* Helper functions for working with trait interceptors.
|
|
5
|
+
* Mirrors capability-helpers.ts pattern but for interceptors.
|
|
6
|
+
*/
|
|
7
|
+
import { ITrait } from '../traits/trait';
|
|
8
|
+
import { IFEntity } from '../entities';
|
|
9
|
+
/**
|
|
10
|
+
* Find a trait on the entity that has an interceptor registered for the given action.
|
|
11
|
+
*
|
|
12
|
+
* Note: This checks both the static `interceptors` declaration on the trait class
|
|
13
|
+
* AND the registry. Use this when you need the trait instance.
|
|
14
|
+
*
|
|
15
|
+
* @param entity - The entity to search
|
|
16
|
+
* @param actionId - The action ID to find
|
|
17
|
+
* @returns The trait that has an interceptor registered, or undefined
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const trait = findTraitWithInterceptor(boat, 'if.action.entering');
|
|
22
|
+
* if (trait) {
|
|
23
|
+
* // Entity has an interceptor for entering
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare function findTraitWithInterceptor(entity: IFEntity, actionId: string): ITrait | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Check if an entity has any trait declaring an interceptor for an action.
|
|
30
|
+
*
|
|
31
|
+
* @param entity - The entity to check
|
|
32
|
+
* @param actionId - The action ID to check for
|
|
33
|
+
* @returns True if entity has a trait with this interceptor
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* if (hasInterceptor(entity, 'if.action.entering')) {
|
|
38
|
+
* // Entity can intercept entering actions
|
|
39
|
+
* }
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare function hasInterceptor(entity: IFEntity, actionId: string): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Get all interceptor action IDs declared by an entity's traits.
|
|
45
|
+
*
|
|
46
|
+
* @param entity - The entity to inspect
|
|
47
|
+
* @returns Array of action IDs the entity intercepts
|
|
48
|
+
*/
|
|
49
|
+
export declare function getEntityInterceptors(entity: IFEntity): string[];
|
|
50
|
+
/**
|
|
51
|
+
* Type guard to check if a trait declares a specific interceptor.
|
|
52
|
+
*
|
|
53
|
+
* @param trait - The trait to check
|
|
54
|
+
* @param actionId - The action ID to check for
|
|
55
|
+
* @param traitType - Optional: specific trait class to narrow to
|
|
56
|
+
* @returns True if trait has the interceptor (and is of specified type)
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* if (traitHasInterceptor(trait, 'if.action.entering', InflatableTrait)) {
|
|
61
|
+
* // trait is narrowed to InflatableTrait
|
|
62
|
+
* console.log(trait.isInflated);
|
|
63
|
+
* }
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export declare function traitHasInterceptor<T extends ITrait>(trait: ITrait, actionId: string, traitType?: new (...args: unknown[]) => T): trait is T;
|
|
67
|
+
/**
|
|
68
|
+
* Find all traits on an entity that have interceptors.
|
|
69
|
+
*
|
|
70
|
+
* @param entity - The entity to inspect
|
|
71
|
+
* @returns Array of traits that declare at least one interceptor
|
|
72
|
+
*/
|
|
73
|
+
export declare function getInterceptorTraits(entity: IFEntity): ITrait[];
|
|
74
|
+
//# sourceMappingURL=interceptor-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interceptor-helpers.d.ts","sourceRoot":"","sources":["../../src/capabilities/interceptor-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAqB,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,QAAQ,EAChB,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,SAAS,CASpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,CAWhE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAClD,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,GACxC,KAAK,IAAI,CAAC,CAQZ;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,CAK/D"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Interceptor Helpers (ADR-118)
|
|
4
|
+
*
|
|
5
|
+
* Helper functions for working with trait interceptors.
|
|
6
|
+
* Mirrors capability-helpers.ts pattern but for interceptors.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.findTraitWithInterceptor = findTraitWithInterceptor;
|
|
10
|
+
exports.hasInterceptor = hasInterceptor;
|
|
11
|
+
exports.getEntityInterceptors = getEntityInterceptors;
|
|
12
|
+
exports.traitHasInterceptor = traitHasInterceptor;
|
|
13
|
+
exports.getInterceptorTraits = getInterceptorTraits;
|
|
14
|
+
/**
|
|
15
|
+
* Find a trait on the entity that has an interceptor registered for the given action.
|
|
16
|
+
*
|
|
17
|
+
* Note: This checks both the static `interceptors` declaration on the trait class
|
|
18
|
+
* AND the registry. Use this when you need the trait instance.
|
|
19
|
+
*
|
|
20
|
+
* @param entity - The entity to search
|
|
21
|
+
* @param actionId - The action ID to find
|
|
22
|
+
* @returns The trait that has an interceptor registered, or undefined
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* const trait = findTraitWithInterceptor(boat, 'if.action.entering');
|
|
27
|
+
* if (trait) {
|
|
28
|
+
* // Entity has an interceptor for entering
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
function findTraitWithInterceptor(entity, actionId) {
|
|
33
|
+
for (const trait of entity.traits.values()) {
|
|
34
|
+
// First check static declaration (if available)
|
|
35
|
+
const traitClass = trait.constructor;
|
|
36
|
+
if (traitClass.interceptors?.includes(actionId)) {
|
|
37
|
+
return trait;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Check if an entity has any trait declaring an interceptor for an action.
|
|
44
|
+
*
|
|
45
|
+
* @param entity - The entity to check
|
|
46
|
+
* @param actionId - The action ID to check for
|
|
47
|
+
* @returns True if entity has a trait with this interceptor
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* if (hasInterceptor(entity, 'if.action.entering')) {
|
|
52
|
+
* // Entity can intercept entering actions
|
|
53
|
+
* }
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
function hasInterceptor(entity, actionId) {
|
|
57
|
+
return findTraitWithInterceptor(entity, actionId) !== undefined;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get all interceptor action IDs declared by an entity's traits.
|
|
61
|
+
*
|
|
62
|
+
* @param entity - The entity to inspect
|
|
63
|
+
* @returns Array of action IDs the entity intercepts
|
|
64
|
+
*/
|
|
65
|
+
function getEntityInterceptors(entity) {
|
|
66
|
+
const interceptors = [];
|
|
67
|
+
for (const trait of entity.traits.values()) {
|
|
68
|
+
const traitClass = trait.constructor;
|
|
69
|
+
if (traitClass.interceptors) {
|
|
70
|
+
interceptors.push(...traitClass.interceptors);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return interceptors;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Type guard to check if a trait declares a specific interceptor.
|
|
77
|
+
*
|
|
78
|
+
* @param trait - The trait to check
|
|
79
|
+
* @param actionId - The action ID to check for
|
|
80
|
+
* @param traitType - Optional: specific trait class to narrow to
|
|
81
|
+
* @returns True if trait has the interceptor (and is of specified type)
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* if (traitHasInterceptor(trait, 'if.action.entering', InflatableTrait)) {
|
|
86
|
+
* // trait is narrowed to InflatableTrait
|
|
87
|
+
* console.log(trait.isInflated);
|
|
88
|
+
* }
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
function traitHasInterceptor(trait, actionId, traitType) {
|
|
92
|
+
const traitClass = trait.constructor;
|
|
93
|
+
const hasAction = traitClass.interceptors?.includes(actionId) ?? false;
|
|
94
|
+
if (traitType) {
|
|
95
|
+
return hasAction && trait instanceof traitType;
|
|
96
|
+
}
|
|
97
|
+
return hasAction;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Find all traits on an entity that have interceptors.
|
|
101
|
+
*
|
|
102
|
+
* @param entity - The entity to inspect
|
|
103
|
+
* @returns Array of traits that declare at least one interceptor
|
|
104
|
+
*/
|
|
105
|
+
function getInterceptorTraits(entity) {
|
|
106
|
+
return Array.from(entity.traits.values()).filter(trait => {
|
|
107
|
+
const traitClass = trait.constructor;
|
|
108
|
+
return traitClass.interceptors && traitClass.interceptors.length > 0;
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=interceptor-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interceptor-helpers.js","sourceRoot":"","sources":["../../src/capabilities/interceptor-helpers.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAuBH,4DAYC;AAgBD,wCAEC;AAQD,sDAWC;AAkBD,kDAYC;AAQD,oDAKC;AA9GD;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,wBAAwB,CACtC,MAAgB,EAChB,QAAgB;IAEhB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC3C,gDAAgD;QAChD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAgC,CAAC;QAC1D,IAAI,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,cAAc,CAAC,MAAgB,EAAE,QAAgB;IAC/D,OAAO,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,SAAS,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,MAAgB;IACpD,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,WAAgC,CAAC;QAC1D,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,mBAAmB,CACjC,KAAa,EACb,QAAgB,EAChB,SAAyC;IAEzC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAgC,CAAC;IAC1D,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;IAEvE,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,IAAI,KAAK,YAAY,SAAS,CAAC;IACjD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,MAAgB;IACnD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QACvD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAgC,CAAC;QAC1D,OAAO,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interceptor Registry (ADR-118)
|
|
3
|
+
*
|
|
4
|
+
* Registry for trait-interceptor bindings. Stories register interceptors
|
|
5
|
+
* for their traits, and stdlib actions look them up at runtime.
|
|
6
|
+
*
|
|
7
|
+
* Mirrors capability-registry.ts pattern but for interceptors instead
|
|
8
|
+
* of full-delegation behaviors.
|
|
9
|
+
*/
|
|
10
|
+
import { ITrait } from '../traits/trait';
|
|
11
|
+
import { ActionInterceptor } from './action-interceptor';
|
|
12
|
+
/**
|
|
13
|
+
* Options for registering an action interceptor.
|
|
14
|
+
*/
|
|
15
|
+
export interface InterceptorRegistrationOptions {
|
|
16
|
+
/** Priority for resolution (higher = checked first). Default: 0 */
|
|
17
|
+
priority?: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Binding between a trait type, action, and interceptor.
|
|
21
|
+
*/
|
|
22
|
+
export interface TraitInterceptorBinding {
|
|
23
|
+
/** Trait type identifier */
|
|
24
|
+
traitType: string;
|
|
25
|
+
/** Action ID this interceptor handles */
|
|
26
|
+
actionId: string;
|
|
27
|
+
/** The interceptor that handles this trait+action */
|
|
28
|
+
interceptor: ActionInterceptor;
|
|
29
|
+
/** Priority for resolution (higher = checked first) */
|
|
30
|
+
priority: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Register an interceptor for a trait+action combination.
|
|
34
|
+
*
|
|
35
|
+
* Stories call this to register their interceptors during initialization.
|
|
36
|
+
* Each trait+action pair can only have one interceptor registered.
|
|
37
|
+
*
|
|
38
|
+
* @param traitType - The trait type identifier (e.g., 'dungeo.trait.inflatable')
|
|
39
|
+
* @param actionId - The action ID (e.g., 'if.action.entering')
|
|
40
|
+
* @param interceptor - The interceptor implementation
|
|
41
|
+
* @param options - Optional configuration (priority)
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* // Register boat puncture interceptor
|
|
46
|
+
* registerActionInterceptor(
|
|
47
|
+
* InflatableTrait.type,
|
|
48
|
+
* 'if.action.entering',
|
|
49
|
+
* InflatableEnteringInterceptor
|
|
50
|
+
* );
|
|
51
|
+
*
|
|
52
|
+
* // With priority
|
|
53
|
+
* registerActionInterceptor(
|
|
54
|
+
* TrollGuardianTrait.type,
|
|
55
|
+
* 'if.action.going',
|
|
56
|
+
* TrollGoingInterceptor,
|
|
57
|
+
* { priority: 100 }
|
|
58
|
+
* );
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare function registerActionInterceptor(traitType: string, actionId: string, interceptor: ActionInterceptor, options?: InterceptorRegistrationOptions): void;
|
|
62
|
+
/**
|
|
63
|
+
* Result from looking up an interceptor for an entity+action.
|
|
64
|
+
*/
|
|
65
|
+
export interface InterceptorLookupResult {
|
|
66
|
+
/** The interceptor */
|
|
67
|
+
interceptor: ActionInterceptor;
|
|
68
|
+
/** The trait that declared this interceptor */
|
|
69
|
+
trait: ITrait;
|
|
70
|
+
/** The binding metadata */
|
|
71
|
+
binding: TraitInterceptorBinding;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get interceptor for an entity and action.
|
|
75
|
+
*
|
|
76
|
+
* Finds a trait on the entity that has an interceptor registered for
|
|
77
|
+
* the given action. Looks up by trait type string in the registry.
|
|
78
|
+
*
|
|
79
|
+
* @param entity - The entity to check
|
|
80
|
+
* @param actionId - The action ID
|
|
81
|
+
* @returns The interceptor and trait, or undefined if not found
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* const result = getInterceptorForAction(boat, 'if.action.entering');
|
|
86
|
+
* if (result) {
|
|
87
|
+
* const { interceptor, trait, binding } = result;
|
|
88
|
+
* // Call interceptor hooks during action execution
|
|
89
|
+
* }
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export declare function getInterceptorForAction(entity: {
|
|
93
|
+
traits: Map<string, ITrait>;
|
|
94
|
+
}, actionId: string): InterceptorLookupResult | undefined;
|
|
95
|
+
/**
|
|
96
|
+
* Get the interceptor binding for a trait type and action.
|
|
97
|
+
*
|
|
98
|
+
* @param traitType - The trait type identifier
|
|
99
|
+
* @param actionId - The action ID
|
|
100
|
+
* @returns The binding, or undefined if not registered
|
|
101
|
+
*/
|
|
102
|
+
export declare function getInterceptorBinding(traitType: string, actionId: string): TraitInterceptorBinding | undefined;
|
|
103
|
+
/**
|
|
104
|
+
* Check if an interceptor is registered for a trait+action.
|
|
105
|
+
*
|
|
106
|
+
* @param traitType - The trait type identifier
|
|
107
|
+
* @param actionId - The action ID
|
|
108
|
+
*/
|
|
109
|
+
export declare function hasActionInterceptor(traitType: string, actionId: string): boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Unregister an interceptor (primarily for testing).
|
|
112
|
+
*
|
|
113
|
+
* @param traitType - The trait type identifier
|
|
114
|
+
* @param actionId - The action ID
|
|
115
|
+
*/
|
|
116
|
+
export declare function unregisterActionInterceptor(traitType: string, actionId: string): void;
|
|
117
|
+
/**
|
|
118
|
+
* Clear all registered interceptors (for testing).
|
|
119
|
+
*/
|
|
120
|
+
export declare function clearInterceptorRegistry(): void;
|
|
121
|
+
/**
|
|
122
|
+
* Get all registered interceptor bindings (for debugging/introspection).
|
|
123
|
+
*/
|
|
124
|
+
export declare function getAllInterceptorBindings(): Map<string, TraitInterceptorBinding>;
|
|
125
|
+
//# sourceMappingURL=interceptor-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interceptor-registry.d.ts","sourceRoot":"","sources":["../../src/capabilities/interceptor-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAqB,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,WAAW,EAAE,iBAAiB,CAAC;IAC/B,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAuCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,iBAAiB,EAC9B,OAAO,CAAC,EAAE,8BAA8B,GACvC,IAAI,CAeN;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,sBAAsB;IACtB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,OAAO,EAAE,uBAAuB,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EACvC,QAAQ,EAAE,MAAM,GACf,uBAAuB,GAAG,SAAS,CA4BrC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,uBAAuB,GAAG,SAAS,CAErC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEjF;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAErF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAEhF"}
|