@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
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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/annotations/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./types"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/annotations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity Annotations (ADR-124)
|
|
3
|
+
*
|
|
4
|
+
* Presentation metadata attached to entities. Annotations are separate from
|
|
5
|
+
* traits — they carry UI hints that the engine ignores and clients interpret.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* A single annotation on an entity.
|
|
9
|
+
* Annotations are keyed by kind (e.g., 'illustration', 'portrait', 'voice').
|
|
10
|
+
*/
|
|
11
|
+
export interface Annotation {
|
|
12
|
+
/** The annotation kind — groups annotations by purpose */
|
|
13
|
+
kind: string;
|
|
14
|
+
/** Unique identifier within entity+kind */
|
|
15
|
+
id: string;
|
|
16
|
+
/** Kind-specific payload (clients interpret this) */
|
|
17
|
+
data: Record<string, unknown>;
|
|
18
|
+
/** Optional condition — when absent, annotation is always active */
|
|
19
|
+
condition?: AnnotationCondition;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Pure-data condition evaluated against trait state.
|
|
23
|
+
* No callbacks — serializable and evaluable at any time.
|
|
24
|
+
*/
|
|
25
|
+
export interface AnnotationCondition {
|
|
26
|
+
/** Trait type to check (e.g., 'switchable', 'custom') */
|
|
27
|
+
trait: string;
|
|
28
|
+
/** Property name on the trait */
|
|
29
|
+
property: string;
|
|
30
|
+
/** Expected value (strict equality) */
|
|
31
|
+
value: unknown;
|
|
32
|
+
/** Which entity to check: self (default), player, or location */
|
|
33
|
+
scope?: 'self' | 'player' | 'location';
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/annotations/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,oEAAoE;IACpE,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;CACxC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Entity Annotations (ADR-124)
|
|
4
|
+
*
|
|
5
|
+
* Presentation metadata attached to entities. Annotations are separate from
|
|
6
|
+
* traits — they carry UI hints that the engine ignores and clients interpret.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/annotations/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|
|
@@ -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"}
|