@sharpee/world-model 0.9.60-beta → 0.9.62-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/annotations/index.d.ts +2 -0
- package/dist-npm/annotations/index.d.ts.map +1 -0
- package/dist-npm/annotations/index.js +18 -0
- package/dist-npm/annotations/index.js.map +1 -0
- package/dist-npm/annotations/types.d.ts +35 -0
- package/dist-npm/annotations/types.d.ts.map +1 -0
- package/dist-npm/annotations/types.js +9 -0
- package/dist-npm/annotations/types.js.map +1 -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}/entities/if-entity.d.ts +55 -0
- package/dist-npm/entities/if-entity.d.ts.map +1 -0
- package/{dist → dist-npm}/entities/if-entity.js +123 -0
- package/dist-npm/entities/if-entity.js.map +1 -0
- package/{dist → dist-npm}/index.d.ts +1 -0
- package/{dist → dist-npm}/index.d.ts.map +1 -1
- package/{dist → dist-npm}/index.js +2 -0
- package/{dist → dist-npm}/index.js.map +1 -1
- 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/{dist → dist-npm}/world/WorldModel.d.ts +31 -0
- package/dist-npm/world/WorldModel.d.ts.map +1 -0
- package/{dist → dist-npm}/world/WorldModel.js +57 -0
- package/dist-npm/world/WorldModel.js.map +1 -0
- package/package.json +22 -21
- package/dist/entities/if-entity.d.ts.map +0 -1
- package/dist/entities/if-entity.js.map +0 -1
- 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/world/WorldModel.d.ts.map +0 -1
- package/dist/world/WorldModel.js.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/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}/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/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
|
@@ -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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Interceptor Registry (ADR-118)
|
|
4
|
+
*
|
|
5
|
+
* Registry for trait-interceptor bindings. Stories register interceptors
|
|
6
|
+
* for their traits, and stdlib actions look them up at runtime.
|
|
7
|
+
*
|
|
8
|
+
* Mirrors capability-registry.ts pattern but for interceptors instead
|
|
9
|
+
* of full-delegation behaviors.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.registerActionInterceptor = registerActionInterceptor;
|
|
13
|
+
exports.getInterceptorForAction = getInterceptorForAction;
|
|
14
|
+
exports.getInterceptorBinding = getInterceptorBinding;
|
|
15
|
+
exports.hasActionInterceptor = hasActionInterceptor;
|
|
16
|
+
exports.unregisterActionInterceptor = unregisterActionInterceptor;
|
|
17
|
+
exports.clearInterceptorRegistry = clearInterceptorRegistry;
|
|
18
|
+
exports.getAllInterceptorBindings = getAllInterceptorBindings;
|
|
19
|
+
/**
|
|
20
|
+
* Registry storage: key = `${traitType}:${actionId}`
|
|
21
|
+
* Uses globalThis to ensure the registry is shared across module boundaries
|
|
22
|
+
* (e.g., when story modules import from packages but actions run from bundle)
|
|
23
|
+
*/
|
|
24
|
+
const INTERCEPTOR_REGISTRY_KEY = '__sharpee_interceptor_registry__';
|
|
25
|
+
// Use globalThis to share registry across module instances
|
|
26
|
+
function getInterceptorRegistry() {
|
|
27
|
+
const global = globalThis;
|
|
28
|
+
if (!global[INTERCEPTOR_REGISTRY_KEY]) {
|
|
29
|
+
global[INTERCEPTOR_REGISTRY_KEY] = new Map();
|
|
30
|
+
}
|
|
31
|
+
return global[INTERCEPTOR_REGISTRY_KEY];
|
|
32
|
+
}
|
|
33
|
+
// For backwards compatibility, expose as const (but delegates to globalThis)
|
|
34
|
+
const interceptorRegistry = {
|
|
35
|
+
get size() { return getInterceptorRegistry().size; },
|
|
36
|
+
has(key) { return getInterceptorRegistry().has(key); },
|
|
37
|
+
get(key) { return getInterceptorRegistry().get(key); },
|
|
38
|
+
set(key, value) { return getInterceptorRegistry().set(key, value); },
|
|
39
|
+
delete(key) { return getInterceptorRegistry().delete(key); },
|
|
40
|
+
clear() { return getInterceptorRegistry().clear(); },
|
|
41
|
+
keys() { return getInterceptorRegistry().keys(); },
|
|
42
|
+
values() { return getInterceptorRegistry().values(); },
|
|
43
|
+
entries() { return getInterceptorRegistry().entries(); },
|
|
44
|
+
[Symbol.iterator]() { return getInterceptorRegistry()[Symbol.iterator](); }
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Generate registry key for trait+action combination.
|
|
48
|
+
*/
|
|
49
|
+
function registryKey(traitType, actionId) {
|
|
50
|
+
return `${traitType}:${actionId}`;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Register an interceptor for a trait+action combination.
|
|
54
|
+
*
|
|
55
|
+
* Stories call this to register their interceptors during initialization.
|
|
56
|
+
* Each trait+action pair can only have one interceptor registered.
|
|
57
|
+
*
|
|
58
|
+
* @param traitType - The trait type identifier (e.g., 'dungeo.trait.inflatable')
|
|
59
|
+
* @param actionId - The action ID (e.g., 'if.action.entering')
|
|
60
|
+
* @param interceptor - The interceptor implementation
|
|
61
|
+
* @param options - Optional configuration (priority)
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* // Register boat puncture interceptor
|
|
66
|
+
* registerActionInterceptor(
|
|
67
|
+
* InflatableTrait.type,
|
|
68
|
+
* 'if.action.entering',
|
|
69
|
+
* InflatableEnteringInterceptor
|
|
70
|
+
* );
|
|
71
|
+
*
|
|
72
|
+
* // With priority
|
|
73
|
+
* registerActionInterceptor(
|
|
74
|
+
* TrollGuardianTrait.type,
|
|
75
|
+
* 'if.action.going',
|
|
76
|
+
* TrollGoingInterceptor,
|
|
77
|
+
* { priority: 100 }
|
|
78
|
+
* );
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
function registerActionInterceptor(traitType, actionId, interceptor, options) {
|
|
82
|
+
const key = registryKey(traitType, actionId);
|
|
83
|
+
if (interceptorRegistry.has(key)) {
|
|
84
|
+
throw new Error(`Interceptor already registered for trait "${traitType}" and action "${actionId}"`);
|
|
85
|
+
}
|
|
86
|
+
interceptorRegistry.set(key, {
|
|
87
|
+
traitType,
|
|
88
|
+
actionId,
|
|
89
|
+
interceptor,
|
|
90
|
+
priority: options?.priority ?? 0
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get interceptor for an entity and action.
|
|
95
|
+
*
|
|
96
|
+
* Finds a trait on the entity that has an interceptor registered for
|
|
97
|
+
* the given action. Looks up by trait type string in the registry.
|
|
98
|
+
*
|
|
99
|
+
* @param entity - The entity to check
|
|
100
|
+
* @param actionId - The action ID
|
|
101
|
+
* @returns The interceptor and trait, or undefined if not found
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* const result = getInterceptorForAction(boat, 'if.action.entering');
|
|
106
|
+
* if (result) {
|
|
107
|
+
* const { interceptor, trait, binding } = result;
|
|
108
|
+
* // Call interceptor hooks during action execution
|
|
109
|
+
* }
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
function getInterceptorForAction(entity, actionId) {
|
|
113
|
+
// Find all traits that have an interceptor registered for this action
|
|
114
|
+
const candidates = [];
|
|
115
|
+
for (const trait of entity.traits.values()) {
|
|
116
|
+
// Look up interceptor by trait type string (more reliable than static property)
|
|
117
|
+
const traitType = trait.type;
|
|
118
|
+
const key = registryKey(traitType, actionId);
|
|
119
|
+
const binding = interceptorRegistry.get(key);
|
|
120
|
+
if (binding) {
|
|
121
|
+
candidates.push({ trait, binding });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (candidates.length === 0) {
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
// Sort by priority (highest first) and return the first one
|
|
128
|
+
candidates.sort((a, b) => b.binding.priority - a.binding.priority);
|
|
129
|
+
const { trait, binding } = candidates[0];
|
|
130
|
+
return {
|
|
131
|
+
interceptor: binding.interceptor,
|
|
132
|
+
trait,
|
|
133
|
+
binding
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Get the interceptor binding for a trait type and action.
|
|
138
|
+
*
|
|
139
|
+
* @param traitType - The trait type identifier
|
|
140
|
+
* @param actionId - The action ID
|
|
141
|
+
* @returns The binding, or undefined if not registered
|
|
142
|
+
*/
|
|
143
|
+
function getInterceptorBinding(traitType, actionId) {
|
|
144
|
+
return interceptorRegistry.get(registryKey(traitType, actionId));
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Check if an interceptor is registered for a trait+action.
|
|
148
|
+
*
|
|
149
|
+
* @param traitType - The trait type identifier
|
|
150
|
+
* @param actionId - The action ID
|
|
151
|
+
*/
|
|
152
|
+
function hasActionInterceptor(traitType, actionId) {
|
|
153
|
+
return interceptorRegistry.has(registryKey(traitType, actionId));
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Unregister an interceptor (primarily for testing).
|
|
157
|
+
*
|
|
158
|
+
* @param traitType - The trait type identifier
|
|
159
|
+
* @param actionId - The action ID
|
|
160
|
+
*/
|
|
161
|
+
function unregisterActionInterceptor(traitType, actionId) {
|
|
162
|
+
interceptorRegistry.delete(registryKey(traitType, actionId));
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Clear all registered interceptors (for testing).
|
|
166
|
+
*/
|
|
167
|
+
function clearInterceptorRegistry() {
|
|
168
|
+
interceptorRegistry.clear();
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Get all registered interceptor bindings (for debugging/introspection).
|
|
172
|
+
*/
|
|
173
|
+
function getAllInterceptorBindings() {
|
|
174
|
+
return new Map(interceptorRegistry);
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=interceptor-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interceptor-registry.js","sourceRoot":"","sources":["../../src/capabilities/interceptor-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { IEntity, EntityId, IEntityCreationParams } from '@sharpee/core';
|
|
|
2
2
|
import { ITrait, ITraitConstructor } from '../traits/trait';
|
|
3
3
|
import { TraitType } from '../traits/trait-types';
|
|
4
4
|
import { IEventHandlers } from '../events/types';
|
|
5
|
+
import { Annotation, AnnotationCondition } from '../annotations/types';
|
|
5
6
|
/**
|
|
6
7
|
* Interactive Fiction Entity with trait-based composition.
|
|
7
8
|
* Implements the core Entity interface and adds trait management capabilities.
|
|
@@ -31,6 +32,12 @@ export declare class IFEntity implements IEntity {
|
|
|
31
32
|
* - butterfly.setMinimumScope(3, ['garden']) - reachable in garden
|
|
32
33
|
*/
|
|
33
34
|
private minimumScopes;
|
|
35
|
+
/**
|
|
36
|
+
* Presentation metadata annotations (ADR-124).
|
|
37
|
+
* Keyed by kind (e.g., 'illustration', 'portrait', 'voice').
|
|
38
|
+
* Multiple annotations per kind are supported.
|
|
39
|
+
*/
|
|
40
|
+
private annotations;
|
|
34
41
|
/**
|
|
35
42
|
* Event handlers for this entity
|
|
36
43
|
* Key is the event type (e.g., 'if.event.pushed')
|
|
@@ -158,6 +165,54 @@ export declare class IFEntity implements IEntity {
|
|
|
158
165
|
* Get all minimum scopes for serialization
|
|
159
166
|
*/
|
|
160
167
|
getMinimumScopes(): Record<string, number>;
|
|
168
|
+
/**
|
|
169
|
+
* Add a presentation annotation to this entity.
|
|
170
|
+
*
|
|
171
|
+
* @param kind - Annotation kind (e.g., 'illustration', 'portrait')
|
|
172
|
+
* @param data - Kind-specific payload. Must include an `id` field.
|
|
173
|
+
* @param condition - Optional condition for when this annotation is active
|
|
174
|
+
*
|
|
175
|
+
* @example
|
|
176
|
+
* entity.annotate('illustration', {
|
|
177
|
+
* id: 'dam-exterior',
|
|
178
|
+
* src: 'dam-dry.jpg',
|
|
179
|
+
* alt: 'The massive concrete face of Flood Control Dam #3',
|
|
180
|
+
* trigger: 'on-enter',
|
|
181
|
+
* position: 'right',
|
|
182
|
+
* });
|
|
183
|
+
*/
|
|
184
|
+
annotate(kind: string, data: Record<string, unknown> & {
|
|
185
|
+
id: string;
|
|
186
|
+
}, condition?: AnnotationCondition): this;
|
|
187
|
+
/**
|
|
188
|
+
* Get all annotations of a given kind (unfiltered).
|
|
189
|
+
*/
|
|
190
|
+
getAnnotations(kind: string): Annotation[];
|
|
191
|
+
/**
|
|
192
|
+
* Get annotations whose conditions are currently met.
|
|
193
|
+
* Requires a world model reference to resolve trait state on self/player/location.
|
|
194
|
+
*
|
|
195
|
+
* @param kind - Annotation kind to query
|
|
196
|
+
* @param world - World model for condition evaluation (must have getEntity, getPlayer, getLocation)
|
|
197
|
+
*/
|
|
198
|
+
getActiveAnnotations(kind: string, world: {
|
|
199
|
+
getEntity(id: string): IFEntity | undefined;
|
|
200
|
+
getPlayer(): IFEntity | undefined;
|
|
201
|
+
getLocation(entityId: string): string | undefined;
|
|
202
|
+
}): Annotation[];
|
|
203
|
+
/**
|
|
204
|
+
* Remove a specific annotation by kind and id.
|
|
205
|
+
* @returns true if the annotation was found and removed
|
|
206
|
+
*/
|
|
207
|
+
removeAnnotation(kind: string, id: string): boolean;
|
|
208
|
+
/**
|
|
209
|
+
* Check if entity has any annotations of a given kind.
|
|
210
|
+
*/
|
|
211
|
+
hasAnnotations(kind: string): boolean;
|
|
212
|
+
/**
|
|
213
|
+
* Evaluate an annotation condition against current world state.
|
|
214
|
+
*/
|
|
215
|
+
private evaluateCondition;
|
|
161
216
|
/**
|
|
162
217
|
* Clone this entity with all its traits
|
|
163
218
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"if-entity.d.ts","sourceRoot":"","sources":["../../src/entities/if-entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,12 @@ class IFEntity {
|
|
|
33
33
|
* - butterfly.setMinimumScope(3, ['garden']) - reachable in garden
|
|
34
34
|
*/
|
|
35
35
|
minimumScopes = new Map();
|
|
36
|
+
/**
|
|
37
|
+
* Presentation metadata annotations (ADR-124).
|
|
38
|
+
* Keyed by kind (e.g., 'illustration', 'portrait', 'voice').
|
|
39
|
+
* Multiple annotations per kind are supported.
|
|
40
|
+
*/
|
|
41
|
+
annotations = new Map();
|
|
36
42
|
/**
|
|
37
43
|
* Event handlers for this entity
|
|
38
44
|
* Key is the event type (e.g., 'if.event.pushed')
|
|
@@ -246,6 +252,107 @@ class IFEntity {
|
|
|
246
252
|
getMinimumScopes() {
|
|
247
253
|
return Object.fromEntries(this.minimumScopes);
|
|
248
254
|
}
|
|
255
|
+
// ========== Annotations (ADR-124) ==========
|
|
256
|
+
/**
|
|
257
|
+
* Add a presentation annotation to this entity.
|
|
258
|
+
*
|
|
259
|
+
* @param kind - Annotation kind (e.g., 'illustration', 'portrait')
|
|
260
|
+
* @param data - Kind-specific payload. Must include an `id` field.
|
|
261
|
+
* @param condition - Optional condition for when this annotation is active
|
|
262
|
+
*
|
|
263
|
+
* @example
|
|
264
|
+
* entity.annotate('illustration', {
|
|
265
|
+
* id: 'dam-exterior',
|
|
266
|
+
* src: 'dam-dry.jpg',
|
|
267
|
+
* alt: 'The massive concrete face of Flood Control Dam #3',
|
|
268
|
+
* trigger: 'on-enter',
|
|
269
|
+
* position: 'right',
|
|
270
|
+
* });
|
|
271
|
+
*/
|
|
272
|
+
annotate(kind, data, condition) {
|
|
273
|
+
const annotation = { kind, id: data.id, data, condition };
|
|
274
|
+
const existing = this.annotations.get(kind);
|
|
275
|
+
if (existing) {
|
|
276
|
+
existing.push(annotation);
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
this.annotations.set(kind, [annotation]);
|
|
280
|
+
}
|
|
281
|
+
return this;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Get all annotations of a given kind (unfiltered).
|
|
285
|
+
*/
|
|
286
|
+
getAnnotations(kind) {
|
|
287
|
+
return this.annotations.get(kind) ?? [];
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Get annotations whose conditions are currently met.
|
|
291
|
+
* Requires a world model reference to resolve trait state on self/player/location.
|
|
292
|
+
*
|
|
293
|
+
* @param kind - Annotation kind to query
|
|
294
|
+
* @param world - World model for condition evaluation (must have getEntity, getPlayer, getLocation)
|
|
295
|
+
*/
|
|
296
|
+
getActiveAnnotations(kind, world) {
|
|
297
|
+
const all = this.annotations.get(kind);
|
|
298
|
+
if (!all)
|
|
299
|
+
return [];
|
|
300
|
+
return all.filter(a => {
|
|
301
|
+
if (!a.condition)
|
|
302
|
+
return true;
|
|
303
|
+
return this.evaluateCondition(a.condition, world);
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Remove a specific annotation by kind and id.
|
|
308
|
+
* @returns true if the annotation was found and removed
|
|
309
|
+
*/
|
|
310
|
+
removeAnnotation(kind, id) {
|
|
311
|
+
const list = this.annotations.get(kind);
|
|
312
|
+
if (!list)
|
|
313
|
+
return false;
|
|
314
|
+
const idx = list.findIndex(a => a.id === id);
|
|
315
|
+
if (idx === -1)
|
|
316
|
+
return false;
|
|
317
|
+
list.splice(idx, 1);
|
|
318
|
+
if (list.length === 0) {
|
|
319
|
+
this.annotations.delete(kind);
|
|
320
|
+
}
|
|
321
|
+
return true;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Check if entity has any annotations of a given kind.
|
|
325
|
+
*/
|
|
326
|
+
hasAnnotations(kind) {
|
|
327
|
+
const list = this.annotations.get(kind);
|
|
328
|
+
return !!list && list.length > 0;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Evaluate an annotation condition against current world state.
|
|
332
|
+
*/
|
|
333
|
+
evaluateCondition(condition, world) {
|
|
334
|
+
const scope = condition.scope ?? 'self';
|
|
335
|
+
let target;
|
|
336
|
+
switch (scope) {
|
|
337
|
+
case 'self':
|
|
338
|
+
target = this;
|
|
339
|
+
break;
|
|
340
|
+
case 'player':
|
|
341
|
+
target = world.getPlayer();
|
|
342
|
+
break;
|
|
343
|
+
case 'location': {
|
|
344
|
+
const locId = world.getLocation(this.id);
|
|
345
|
+
target = locId ? world.getEntity(locId) : undefined;
|
|
346
|
+
break;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
if (!target)
|
|
350
|
+
return false;
|
|
351
|
+
const trait = target.get(condition.trait);
|
|
352
|
+
if (!trait)
|
|
353
|
+
return false;
|
|
354
|
+
return trait[condition.property] === condition.value;
|
|
355
|
+
}
|
|
249
356
|
/**
|
|
250
357
|
* Clone this entity with all its traits
|
|
251
358
|
*/
|
|
@@ -266,6 +373,10 @@ class IFEntity {
|
|
|
266
373
|
for (const [roomId, level] of this.minimumScopes) {
|
|
267
374
|
cloned.minimumScopes.set(roomId, level);
|
|
268
375
|
}
|
|
376
|
+
// Clone annotations (deep copy)
|
|
377
|
+
for (const [kind, list] of this.annotations) {
|
|
378
|
+
cloned.annotations.set(kind, JSON.parse(JSON.stringify(list)));
|
|
379
|
+
}
|
|
269
380
|
return cloned;
|
|
270
381
|
}
|
|
271
382
|
/**
|
|
@@ -291,6 +402,10 @@ class IFEntity {
|
|
|
291
402
|
if (this.minimumScopes.size > 0) {
|
|
292
403
|
json.minimumScopes = Object.fromEntries(this.minimumScopes);
|
|
293
404
|
}
|
|
405
|
+
// Include annotations if any
|
|
406
|
+
if (this.annotations.size > 0) {
|
|
407
|
+
json.annotations = Object.fromEntries(Array.from(this.annotations.entries()).map(([kind, list]) => [kind, list]));
|
|
408
|
+
}
|
|
294
409
|
return json;
|
|
295
410
|
}
|
|
296
411
|
/**
|
|
@@ -342,6 +457,14 @@ class IFEntity {
|
|
|
342
457
|
entity.minimumScopes.set(roomId, level);
|
|
343
458
|
}
|
|
344
459
|
}
|
|
460
|
+
// Restore annotations
|
|
461
|
+
if (json.annotations && typeof json.annotations === 'object') {
|
|
462
|
+
for (const [kind, list] of Object.entries(json.annotations)) {
|
|
463
|
+
if (Array.isArray(list)) {
|
|
464
|
+
entity.annotations.set(kind, list);
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
}
|
|
345
468
|
return entity;
|
|
346
469
|
}
|
|
347
470
|
// ========== Convenience Properties ==========
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"if-entity.js","sourceRoot":"","sources":["../../src/entities/if-entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,eAAe,CAAC"}
|
|
@@ -65,4 +65,6 @@ __exportStar(require("./scope"), exports);
|
|
|
65
65
|
__exportStar(require("./events/types"), exports);
|
|
66
66
|
// Capability dispatch system (ADR-090)
|
|
67
67
|
__exportStar(require("./capabilities"), exports);
|
|
68
|
+
// Annotations (ADR-124)
|
|
69
|
+
__exportStar(require("./annotations"), exports);
|
|
68
70
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;;;;;;;;;;;;;;AAEpC,gBAAgB;AAChB,6CAA2B;AAE3B,iBAAiB;AACjB,8CAA4B;AAE5B,YAAY;AACZ,8CAA4B;AAE5B,8CAA8C;AAC9C,6CAA2B;AAC3B,+CAA6B;AAE7B,SAAS;AACT,iDAA+B;AAC/B,uDAAqC;AACrC,2DAAyC;AAEzC,2BAA2B;AAC3B,oDAAkC;AAClC,qDAAmC;AACnC,gDAA8B;AAC9B,oDAAkC;AAClC,oDAAkC;AAClC,oDAAkC;AAClC,wDAAsC;AACtC,gDAA8B;AAC9B,qDAAmC;AACnC,mDAAiC;AACjC,qDAAmC;AACnC,sDAAoC;AACpC,oDAAkC;AAClC,kDAAgC;AAChC,gDAA8B;AAC9B,iDAA+B;AAC/B,oDAAkC;AAClC,kDAAgC;AAChC,oDAAkC;AAClC,4DAA0C;AAC1C,oDAAkC;AAClC,oDAAkC;AAClC,+CAA6B;AAC7B,mDAAiC;AAEjC,mBAAmB;AACnB,+CAA6B;AAE7B,cAAc;AACd,0CAAwB;AAExB,WAAW;AACX,6CAA2B;AAE3B,eAAe;AACf,0CAAwB;AAExB,mFAAmF;AACnF,iDAA+B;AAE/B,uCAAuC;AACvC,iDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;;;;;;;;;;;;;;AAEpC,gBAAgB;AAChB,6CAA2B;AAE3B,iBAAiB;AACjB,8CAA4B;AAE5B,YAAY;AACZ,8CAA4B;AAE5B,8CAA8C;AAC9C,6CAA2B;AAC3B,+CAA6B;AAE7B,SAAS;AACT,iDAA+B;AAC/B,uDAAqC;AACrC,2DAAyC;AAEzC,2BAA2B;AAC3B,oDAAkC;AAClC,qDAAmC;AACnC,gDAA8B;AAC9B,oDAAkC;AAClC,oDAAkC;AAClC,oDAAkC;AAClC,wDAAsC;AACtC,gDAA8B;AAC9B,qDAAmC;AACnC,mDAAiC;AACjC,qDAAmC;AACnC,sDAAoC;AACpC,oDAAkC;AAClC,kDAAgC;AAChC,gDAA8B;AAC9B,iDAA+B;AAC/B,oDAAkC;AAClC,kDAAgC;AAChC,oDAAkC;AAClC,4DAA0C;AAC1C,oDAAkC;AAClC,oDAAkC;AAClC,+CAA6B;AAC7B,mDAAiC;AAEjC,mBAAmB;AACnB,+CAA6B;AAE7B,cAAc;AACd,0CAAwB;AAExB,WAAW;AACX,6CAA2B;AAE3B,eAAe;AACf,0CAAwB;AAExB,mFAAmF;AACnF,iDAA+B;AAE/B,uCAAuC;AACvC,iDAA+B;AAE/B,wBAAwB;AACxB,gDAA8B"}
|
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
import { ITrait } from '../trait';
|
|
2
2
|
import { DirectionType } from '../../constants/directions';
|
|
3
|
+
/**
|
|
4
|
+
* Map position hint for an exit (ADR-113).
|
|
5
|
+
* Overrides direction-based positioning in the auto-mapper.
|
|
6
|
+
*/
|
|
7
|
+
export interface IExitMapHint {
|
|
8
|
+
/** Grid offset X (-1 = west, +1 = east) */
|
|
9
|
+
dx?: number;
|
|
10
|
+
/** Grid offset Y (-1 = north, +1 = south) */
|
|
11
|
+
dy?: number;
|
|
12
|
+
/** Grid offset Z (-1 = down, +1 = up) */
|
|
13
|
+
dz?: number;
|
|
14
|
+
}
|
|
3
15
|
export interface IExitInfo {
|
|
4
16
|
/** The destination room ID (must be an entity ID, not a name) */
|
|
5
17
|
destination: string;
|
|
6
18
|
/** Optional door/portal entity ID that must be traversed (must be an entity ID, not a name) */
|
|
7
19
|
via?: string;
|
|
20
|
+
/** Optional map positioning hint (ADR-113) */
|
|
21
|
+
mapHint?: IExitMapHint;
|
|
8
22
|
}
|
|
9
23
|
export interface IRoomData {
|
|
10
24
|
/** Whether this room has been visited by the player */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomTrait.d.ts","sourceRoot":"","sources":["../../../src/traits/room/roomTrait.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roomTrait.js","sourceRoot":"","sources":["../../../src/traits/room/roomTrait.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAGpD,gDAA2C;
|
|
1
|
+
{"version":3,"file":"roomTrait.js","sourceRoot":"","sources":["../../../src/traits/room/roomTrait.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAGpD,gDAA2C;AAyF3C;;;;;;GAMG;AACH,MAAa,SAAS;IACpB,MAAM,CAAU,IAAI,GAAG,uBAAS,CAAC,IAAI,CAAC;IAC7B,IAAI,GAAG,uBAAS,CAAC,IAAI,CAAC;IAE/B,sBAAsB;IACtB,OAAO,CAAU;IACjB,KAAK,CAA4C;IACjD,YAAY,CAA0C;IACtD,OAAO,CAAU;IACjB,MAAM,CAAU;IAChB,UAAU,CAAU;IACpB,aAAa,CAAU;IACvB,kBAAkB,CAAU;IAC5B,oBAAoB,CAAU;IAC9B,YAAY,CAAU;IACtB,YAAY,CAAU;IACtB,MAAM,CAAU;IAChB,IAAI,CAAW;IAEf,0BAA0B;IAC1B,QAAQ,CAIN;IACF,YAAY,CAAY;IACxB,aAAa,CAAY;IAEzB,gEAAgE;IACvD,aAAa,GAAY,IAAI,CAAC;IAC9B,SAAS,GAAY,IAAI,CAAC;IAEnC,YAAY,OAAkB,EAAE;QAC9B,4CAA4C;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAA+C,CAAC;QAC3E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,CAAE,iBAAiB;QACtD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;QACjD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAClD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAE5B,uBAAuB;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IAC1C,CAAC;;AApDH,8BAqDC"}
|