@sbugallo/pokecode 0.0.0 → 0.2.1
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 +201 -0
- package/README.md +331 -2
- package/dist/adapters/opencode/rpc/contract.d.ts +813 -0
- package/dist/adapters/opencode/rpc/contract.d.ts.map +1 -0
- package/dist/adapters/opencode/rpc/contract.js +254 -0
- package/dist/adapters/opencode/rpc/contract.js.map +1 -0
- package/dist/adapters/opencode/server/handlers.d.ts +20 -0
- package/dist/adapters/opencode/server/handlers.d.ts.map +1 -0
- package/dist/adapters/opencode/server/handlers.js +41 -0
- package/dist/adapters/opencode/server/handlers.js.map +1 -0
- package/dist/adapters/opencode/server/plugin.d.ts +19 -0
- package/dist/adapters/opencode/server/plugin.d.ts.map +1 -0
- package/dist/adapters/opencode/server/plugin.js +101 -0
- package/dist/adapters/opencode/server/plugin.js.map +1 -0
- package/dist/adapters/opencode/server/usage-reconciliation.d.ts +24 -0
- package/dist/adapters/opencode/server/usage-reconciliation.d.ts.map +1 -0
- package/dist/adapters/opencode/server/usage-reconciliation.js +60 -0
- package/dist/adapters/opencode/server/usage-reconciliation.js.map +1 -0
- package/dist/adapters/opencode/tui/choices/cards.d.ts +32 -0
- package/dist/adapters/opencode/tui/choices/cards.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/choices/cards.jsx +114 -0
- package/dist/adapters/opencode/tui/choices/cards.jsx.map +1 -0
- package/dist/adapters/opencode/tui/choices/encounter.d.ts +13 -0
- package/dist/adapters/opencode/tui/choices/encounter.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/choices/encounter.jsx +30 -0
- package/dist/adapters/opencode/tui/choices/encounter.jsx.map +1 -0
- package/dist/adapters/opencode/tui/client.d.ts +164 -0
- package/dist/adapters/opencode/tui/client.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/client.js +30 -0
- package/dist/adapters/opencode/tui/client.js.map +1 -0
- package/dist/adapters/opencode/tui/commands/commands.d.ts +21 -0
- package/dist/adapters/opencode/tui/commands/commands.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/commands/commands.jsx +78 -0
- package/dist/adapters/opencode/tui/commands/commands.jsx.map +1 -0
- package/dist/adapters/opencode/tui/components/action-button.d.ts +12 -0
- package/dist/adapters/opencode/tui/components/action-button.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/components/action-button.jsx +13 -0
- package/dist/adapters/opencode/tui/components/action-button.jsx.map +1 -0
- package/dist/adapters/opencode/tui/components/move-list.d.ts +13 -0
- package/dist/adapters/opencode/tui/components/move-list.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/components/move-list.jsx +91 -0
- package/dist/adapters/opencode/tui/components/move-list.jsx.map +1 -0
- package/dist/adapters/opencode/tui/components/owner.d.ts +3 -0
- package/dist/adapters/opencode/tui/components/owner.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/components/owner.js +16 -0
- package/dist/adapters/opencode/tui/components/owner.js.map +1 -0
- package/dist/adapters/opencode/tui/components/sprite.d.ts +13 -0
- package/dist/adapters/opencode/tui/components/sprite.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/components/sprite.jsx +30 -0
- package/dist/adapters/opencode/tui/components/sprite.jsx.map +1 -0
- package/dist/adapters/opencode/tui/controls/native.d.ts +2 -0
- package/dist/adapters/opencode/tui/controls/native.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/controls/native.js +22 -0
- package/dist/adapters/opencode/tui/controls/native.js.map +1 -0
- package/dist/adapters/opencode/tui/dex/actions.d.ts +12 -0
- package/dist/adapters/opencode/tui/dex/actions.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/dex/actions.jsx +15 -0
- package/dist/adapters/opencode/tui/dex/actions.jsx.map +1 -0
- package/dist/adapters/opencode/tui/dex/dialog.d.ts +12 -0
- package/dist/adapters/opencode/tui/dex/dialog.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/dex/dialog.jsx +79 -0
- package/dist/adapters/opencode/tui/dex/dialog.jsx.map +1 -0
- package/dist/adapters/opencode/tui/export/actions.d.ts +14 -0
- package/dist/adapters/opencode/tui/export/actions.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/export/actions.js +25 -0
- package/dist/adapters/opencode/tui/export/actions.js.map +1 -0
- package/dist/adapters/opencode/tui/export/presentation.d.ts +16 -0
- package/dist/adapters/opencode/tui/export/presentation.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/export/presentation.js +15 -0
- package/dist/adapters/opencode/tui/export/presentation.js.map +1 -0
- package/dist/adapters/opencode/tui/pc/actions.d.ts +22 -0
- package/dist/adapters/opencode/tui/pc/actions.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/pc/actions.jsx +47 -0
- package/dist/adapters/opencode/tui/pc/actions.jsx.map +1 -0
- package/dist/adapters/opencode/tui/pc/details.d.ts +10 -0
- package/dist/adapters/opencode/tui/pc/details.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/pc/details.jsx +51 -0
- package/dist/adapters/opencode/tui/pc/details.jsx.map +1 -0
- package/dist/adapters/opencode/tui/pc/dialog.d.ts +19 -0
- package/dist/adapters/opencode/tui/pc/dialog.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/pc/dialog.jsx +263 -0
- package/dist/adapters/opencode/tui/pc/dialog.jsx.map +1 -0
- package/dist/adapters/opencode/tui/plugin.d.ts +14 -0
- package/dist/adapters/opencode/tui/plugin.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/plugin.jsx +103 -0
- package/dist/adapters/opencode/tui/plugin.jsx.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/actions.d.ts +21 -0
- package/dist/adapters/opencode/tui/sidebar/actions.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/actions.js +54 -0
- package/dist/adapters/opencode/tui/sidebar/actions.js.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/register.d.ts +30 -0
- package/dist/adapters/opencode/tui/sidebar/register.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/register.jsx +21 -0
- package/dist/adapters/opencode/tui/sidebar/register.jsx.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/view.d.ts +43 -0
- package/dist/adapters/opencode/tui/sidebar/view.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/sidebar/view.jsx +166 -0
- package/dist/adapters/opencode/tui/sidebar/view.jsx.map +1 -0
- package/dist/adapters/opencode/tui/state/cleanup.d.ts +8 -0
- package/dist/adapters/opencode/tui/state/cleanup.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/state/cleanup.js +68 -0
- package/dist/adapters/opencode/tui/state/cleanup.js.map +1 -0
- package/dist/adapters/opencode/tui/state/coordinator.d.ts +122 -0
- package/dist/adapters/opencode/tui/state/coordinator.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/state/coordinator.js +40 -0
- package/dist/adapters/opencode/tui/state/coordinator.js.map +1 -0
- package/dist/adapters/opencode/tui/state/setup-failure.d.ts +2 -0
- package/dist/adapters/opencode/tui/state/setup-failure.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/state/setup-failure.js +10 -0
- package/dist/adapters/opencode/tui/state/setup-failure.js.map +1 -0
- package/dist/adapters/opencode/tui/travel/actions.d.ts +16 -0
- package/dist/adapters/opencode/tui/travel/actions.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/travel/actions.jsx +31 -0
- package/dist/adapters/opencode/tui/travel/actions.jsx.map +1 -0
- package/dist/adapters/opencode/tui/travel/dialog.d.ts +29 -0
- package/dist/adapters/opencode/tui/travel/dialog.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/travel/dialog.jsx +128 -0
- package/dist/adapters/opencode/tui/travel/dialog.jsx.map +1 -0
- package/dist/adapters/opencode/tui/travel/projection.d.ts +29 -0
- package/dist/adapters/opencode/tui/travel/projection.d.ts.map +1 -0
- package/dist/adapters/opencode/tui/travel/projection.js +44 -0
- package/dist/adapters/opencode/tui/travel/projection.js.map +1 -0
- package/dist/adapters/presentation/game-notifications.d.ts +13 -0
- package/dist/adapters/presentation/game-notifications.d.ts.map +1 -0
- package/dist/adapters/presentation/game-notifications.js +111 -0
- package/dist/adapters/presentation/game-notifications.js.map +1 -0
- package/dist/adapters/presentation/localization.d.ts +12 -0
- package/dist/adapters/presentation/localization.d.ts.map +1 -0
- package/dist/adapters/presentation/localization.js +65 -0
- package/dist/adapters/presentation/localization.js.map +1 -0
- package/dist/adapters/presentation/move-details.d.ts +11 -0
- package/dist/adapters/presentation/move-details.d.ts.map +1 -0
- package/dist/adapters/presentation/move-details.js +47 -0
- package/dist/adapters/presentation/move-details.js.map +1 -0
- package/dist/adapters/presentation/pc-copy.d.ts +31 -0
- package/dist/adapters/presentation/pc-copy.d.ts.map +1 -0
- package/dist/adapters/presentation/pc-copy.js +56 -0
- package/dist/adapters/presentation/pc-copy.js.map +1 -0
- package/dist/adapters/presentation/ui-copy.d.ts +49 -0
- package/dist/adapters/presentation/ui-copy.d.ts.map +1 -0
- package/dist/adapters/presentation/ui-copy.js +81 -0
- package/dist/adapters/presentation/ui-copy.js.map +1 -0
- package/dist/adapters/showdown/format-team.d.ts +3 -0
- package/dist/adapters/showdown/format-team.d.ts.map +1 -0
- package/dist/adapters/showdown/format-team.js +23 -0
- package/dist/adapters/showdown/format-team.js.map +1 -0
- package/dist/adapters/sprites/cache.d.ts +12 -0
- package/dist/adapters/sprites/cache.d.ts.map +1 -0
- package/dist/adapters/sprites/cache.js +43 -0
- package/dist/adapters/sprites/cache.js.map +1 -0
- package/dist/adapters/sprites/contracts.d.ts +20 -0
- package/dist/adapters/sprites/contracts.d.ts.map +1 -0
- package/dist/adapters/sprites/contracts.js +12 -0
- package/dist/adapters/sprites/contracts.js.map +1 -0
- package/dist/adapters/sqlite/game-repository.d.ts +14 -0
- package/dist/adapters/sqlite/game-repository.d.ts.map +1 -0
- package/dist/adapters/sqlite/game-repository.js +48 -0
- package/dist/adapters/sqlite/game-repository.js.map +1 -0
- package/dist/adapters/sqlite/game-transaction.d.ts +5 -0
- package/dist/adapters/sqlite/game-transaction.d.ts.map +1 -0
- package/dist/adapters/sqlite/game-transaction.js +35 -0
- package/dist/adapters/sqlite/game-transaction.js.map +1 -0
- package/dist/adapters/sqlite/initialize-database.d.ts +6 -0
- package/dist/adapters/sqlite/initialize-database.d.ts.map +1 -0
- package/dist/adapters/sqlite/initialize-database.js +15 -0
- package/dist/adapters/sqlite/initialize-database.js.map +1 -0
- package/dist/adapters/sqlite/pokemon-mapper.d.ts +23 -0
- package/dist/adapters/sqlite/pokemon-mapper.d.ts.map +1 -0
- package/dist/adapters/sqlite/pokemon-mapper.js +41 -0
- package/dist/adapters/sqlite/pokemon-mapper.js.map +1 -0
- package/dist/adapters/sqlite/queries/collection.d.ts +8 -0
- package/dist/adapters/sqlite/queries/collection.d.ts.map +1 -0
- package/dist/adapters/sqlite/queries/collection.js +58 -0
- package/dist/adapters/sqlite/queries/collection.js.map +1 -0
- package/dist/adapters/sqlite/queries/game-state.d.ts +4 -0
- package/dist/adapters/sqlite/queries/game-state.d.ts.map +1 -0
- package/dist/adapters/sqlite/queries/game-state.js +165 -0
- package/dist/adapters/sqlite/queries/game-state.js.map +1 -0
- package/dist/adapters/sqlite/schema.d.ts +4 -0
- package/dist/adapters/sqlite/schema.d.ts.map +1 -0
- package/dist/adapters/sqlite/schema.js +284 -0
- package/dist/adapters/sqlite/schema.js.map +1 -0
- package/dist/adapters/sqlite/starter-selection-store.d.ts +4 -0
- package/dist/adapters/sqlite/starter-selection-store.d.ts.map +1 -0
- package/dist/adapters/sqlite/starter-selection-store.js +55 -0
- package/dist/adapters/sqlite/starter-selection-store.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/choices.d.ts +7 -0
- package/dist/adapters/sqlite/transaction-stores/choices.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/choices.js +54 -0
- package/dist/adapters/sqlite/transaction-stores/choices.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/encounters.d.ts +7 -0
- package/dist/adapters/sqlite/transaction-stores/encounters.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/encounters.js +59 -0
- package/dist/adapters/sqlite/transaction-stores/encounters.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/exploration.d.ts +7 -0
- package/dist/adapters/sqlite/transaction-stores/exploration.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/exploration.js +65 -0
- package/dist/adapters/sqlite/transaction-stores/exploration.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/pokemon.d.ts +7 -0
- package/dist/adapters/sqlite/transaction-stores/pokemon.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/pokemon.js +160 -0
- package/dist/adapters/sqlite/transaction-stores/pokemon.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/queue-order.d.ts +5 -0
- package/dist/adapters/sqlite/transaction-stores/queue-order.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/queue-order.js +15 -0
- package/dist/adapters/sqlite/transaction-stores/queue-order.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/receipts.d.ts +4 -0
- package/dist/adapters/sqlite/transaction-stores/receipts.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/receipts.js +11 -0
- package/dist/adapters/sqlite/transaction-stores/receipts.js.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/trainers.d.ts +4 -0
- package/dist/adapters/sqlite/transaction-stores/trainers.d.ts.map +1 -0
- package/dist/adapters/sqlite/transaction-stores/trainers.js +11 -0
- package/dist/adapters/sqlite/transaction-stores/trainers.js.map +1 -0
- package/dist/application/contracts/game.d.ts +1412 -0
- package/dist/application/contracts/game.d.ts.map +1 -0
- package/dist/application/contracts/game.js +126 -0
- package/dist/application/contracts/game.js.map +1 -0
- package/dist/application/contracts/starter-choice.d.ts +6 -0
- package/dist/application/contracts/starter-choice.d.ts.map +1 -0
- package/dist/application/contracts/starter-choice.js +2 -0
- package/dist/application/contracts/starter-choice.js.map +1 -0
- package/dist/application/game.d.ts +34 -0
- package/dist/application/game.d.ts.map +1 -0
- package/dist/application/game.js +67 -0
- package/dist/application/game.js.map +1 -0
- package/dist/application/ports/game-transaction.d.ts +173 -0
- package/dist/application/ports/game-transaction.d.ts.map +1 -0
- package/dist/application/ports/game-transaction.js +2 -0
- package/dist/application/ports/game-transaction.js.map +1 -0
- package/dist/application/ports/game.d.ts +11 -0
- package/dist/application/ports/game.d.ts.map +1 -0
- package/dist/application/ports/game.js +2 -0
- package/dist/application/ports/game.js.map +1 -0
- package/dist/application/ports/starter-selection-store.d.ts +23 -0
- package/dist/application/ports/starter-selection-store.d.ts.map +1 -0
- package/dist/application/ports/starter-selection-store.js +2 -0
- package/dist/application/ports/starter-selection-store.js.map +1 -0
- package/dist/application/use-cases/choices.d.ts +9 -0
- package/dist/application/use-cases/choices.d.ts.map +1 -0
- package/dist/application/use-cases/choices.js +113 -0
- package/dist/application/use-cases/choices.js.map +1 -0
- package/dist/application/use-cases/choose-regional-starter.d.ts +4 -0
- package/dist/application/use-cases/choose-regional-starter.d.ts.map +1 -0
- package/dist/application/use-cases/choose-regional-starter.js +37 -0
- package/dist/application/use-cases/choose-regional-starter.js.map +1 -0
- package/dist/application/use-cases/choose-starter.d.ts +15 -0
- package/dist/application/use-cases/choose-starter.d.ts.map +1 -0
- package/dist/application/use-cases/choose-starter.js +26 -0
- package/dist/application/use-cases/choose-starter.js.map +1 -0
- package/dist/application/use-cases/encounters.d.ts +234 -0
- package/dist/application/use-cases/encounters.d.ts.map +1 -0
- package/dist/application/use-cases/encounters.js +39 -0
- package/dist/application/use-cases/encounters.js.map +1 -0
- package/dist/application/use-cases/game-command-support.d.ts +16 -0
- package/dist/application/use-cases/game-command-support.d.ts.map +1 -0
- package/dist/application/use-cases/game-command-support.js +16 -0
- package/dist/application/use-cases/game-command-support.js.map +1 -0
- package/dist/application/use-cases/game-commands.d.ts +244 -0
- package/dist/application/use-cases/game-commands.d.ts.map +1 -0
- package/dist/application/use-cases/game-commands.js +14 -0
- package/dist/application/use-cases/game-commands.js.map +1 -0
- package/dist/application/use-cases/learn-move.d.ts +22 -0
- package/dist/application/use-cases/learn-move.d.ts.map +1 -0
- package/dist/application/use-cases/learn-move.js +24 -0
- package/dist/application/use-cases/learn-move.js.map +1 -0
- package/dist/application/use-cases/party.d.ts +8 -0
- package/dist/application/use-cases/party.d.ts.map +1 -0
- package/dist/application/use-cases/party.js +44 -0
- package/dist/application/use-cases/party.js.map +1 -0
- package/dist/application/use-cases/record-usage.d.ts +10 -0
- package/dist/application/use-cases/record-usage.d.ts.map +1 -0
- package/dist/application/use-cases/record-usage.js +145 -0
- package/dist/application/use-cases/record-usage.js.map +1 -0
- package/dist/application/use-cases/resolve-progression.d.ts +9 -0
- package/dist/application/use-cases/resolve-progression.d.ts.map +1 -0
- package/dist/application/use-cases/resolve-progression.js +82 -0
- package/dist/application/use-cases/resolve-progression.js.map +1 -0
- package/dist/application/use-cases/travel.d.ts +7 -0
- package/dist/application/use-cases/travel.d.ts.map +1 -0
- package/dist/application/use-cases/travel.js +58 -0
- package/dist/application/use-cases/travel.js.map +1 -0
- package/dist/cli/command.d.ts +16 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +73 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/install.d.ts +9 -0
- package/dist/cli/install.d.ts.map +1 -0
- package/dist/cli/install.js +23 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +124 -0
- package/dist/cli.js.map +1 -0
- package/dist/domain/choices/choices.d.ts +79 -0
- package/dist/domain/choices/choices.d.ts.map +1 -0
- package/dist/domain/choices/choices.js +54 -0
- package/dist/domain/choices/choices.js.map +1 -0
- package/dist/domain/content/catalog.d.ts +241 -0
- package/dist/domain/content/catalog.d.ts.map +1 -0
- package/dist/domain/content/catalog.js +286 -0
- package/dist/domain/content/catalog.js.map +1 -0
- package/dist/domain/content/catalogs/abilities-catalog.d.ts +8 -0
- package/dist/domain/content/catalogs/abilities-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/abilities-catalog.js +2054 -0
- package/dist/domain/content/catalogs/abilities-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/alola-locations-catalog.d.ts +4949 -0
- package/dist/domain/content/catalogs/alola-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/alola-locations-catalog.js +5994 -0
- package/dist/domain/content/catalogs/alola-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/encouter-methods.d.ts +2 -0
- package/dist/domain/content/catalogs/encouter-methods.d.ts.map +1 -0
- package/dist/domain/content/catalogs/encouter-methods.js +69 -0
- package/dist/domain/content/catalogs/encouter-methods.js.map +1 -0
- package/dist/domain/content/catalogs/galar-locations-catalog.d.ts +6707 -0
- package/dist/domain/content/catalogs/galar-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/galar-locations-catalog.js +8089 -0
- package/dist/domain/content/catalogs/galar-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/hoenn-locations-catalog.d.ts +2922 -0
- package/dist/domain/content/catalogs/hoenn-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/hoenn-locations-catalog.js +3541 -0
- package/dist/domain/content/catalogs/hoenn-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/johto-locations-catalog.d.ts +29 -0
- package/dist/domain/content/catalogs/johto-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/johto-locations-catalog.js +4151 -0
- package/dist/domain/content/catalogs/johto-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/kalos-locations-catalog.d.ts +29 -0
- package/dist/domain/content/catalogs/kalos-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/kalos-locations-catalog.js +4346 -0
- package/dist/domain/content/catalogs/kalos-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/kanto-locations-catalog.d.ts +2304 -0
- package/dist/domain/content/catalogs/kanto-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/kanto-locations-catalog.js +2796 -0
- package/dist/domain/content/catalogs/kanto-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/moves-catalog.d.ts +62 -0
- package/dist/domain/content/catalogs/moves-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/moves-catalog.js +12883 -0
- package/dist/domain/content/catalogs/moves-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/natures-catalog.d.ts +202 -0
- package/dist/domain/content/catalogs/natures-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/natures-catalog.js +228 -0
- package/dist/domain/content/catalogs/natures-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/paldea-locations-catalog.d.ts +14756 -0
- package/dist/domain/content/catalogs/paldea-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/paldea-locations-catalog.js +17762 -0
- package/dist/domain/content/catalogs/paldea-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/pokemon-catalog.d.ts +75 -0
- package/dist/domain/content/catalogs/pokemon-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/pokemon-catalog.js +100649 -0
- package/dist/domain/content/catalogs/pokemon-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/regional-forms-catalog.d.ts +3033 -0
- package/dist/domain/content/catalogs/regional-forms-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/regional-forms-catalog.js +4358 -0
- package/dist/domain/content/catalogs/regional-forms-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/regions-catalog.d.ts +8 -0
- package/dist/domain/content/catalogs/regions-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/regions-catalog.js +66 -0
- package/dist/domain/content/catalogs/regions-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.d.ts +5955 -0
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.js +7184 -0
- package/dist/domain/content/catalogs/sinnoh-locations-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/stats-catalog.d.ts +38 -0
- package/dist/domain/content/catalogs/stats-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/stats-catalog.js +45 -0
- package/dist/domain/content/catalogs/stats-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/types-catalog.d.ts +8 -0
- package/dist/domain/content/catalogs/types-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/types-catalog.js +129 -0
- package/dist/domain/content/catalogs/types-catalog.js.map +1 -0
- package/dist/domain/content/catalogs/unova-locations-catalog.d.ts +29 -0
- package/dist/domain/content/catalogs/unova-locations-catalog.d.ts.map +1 -0
- package/dist/domain/content/catalogs/unova-locations-catalog.js +6552 -0
- package/dist/domain/content/catalogs/unova-locations-catalog.js.map +1 -0
- package/dist/domain/content/encounter-catalog.d.ts +27 -0
- package/dist/domain/content/encounter-catalog.d.ts.map +1 -0
- package/dist/domain/content/encounter-catalog.js +75 -0
- package/dist/domain/content/encounter-catalog.js.map +1 -0
- package/dist/domain/content/names.d.ts +6 -0
- package/dist/domain/content/names.d.ts.map +1 -0
- package/dist/domain/content/names.js +7 -0
- package/dist/domain/content/names.js.map +1 -0
- package/dist/domain/content/schema.d.ts +153 -0
- package/dist/domain/content/schema.d.ts.map +1 -0
- package/dist/domain/content/schema.js +81 -0
- package/dist/domain/content/schema.js.map +1 -0
- package/dist/domain/content/sprites.d.ts +5 -0
- package/dist/domain/content/sprites.d.ts.map +1 -0
- package/dist/domain/content/sprites.js +22 -0
- package/dist/domain/content/sprites.js.map +1 -0
- package/dist/domain/encounters/encounter.d.ts +56 -0
- package/dist/domain/encounters/encounter.d.ts.map +1 -0
- package/dist/domain/encounters/encounter.js +74 -0
- package/dist/domain/encounters/encounter.js.map +1 -0
- package/dist/domain/exploration/exploration.d.ts +63 -0
- package/dist/domain/exploration/exploration.d.ts.map +1 -0
- package/dist/domain/exploration/exploration.js +48 -0
- package/dist/domain/exploration/exploration.js.map +1 -0
- package/dist/domain/party/party.d.ts +59 -0
- package/dist/domain/party/party.d.ts.map +1 -0
- package/dist/domain/party/party.js +19 -0
- package/dist/domain/party/party.js.map +1 -0
- package/dist/domain/pokemon/model.d.ts +43 -0
- package/dist/domain/pokemon/model.d.ts.map +1 -0
- package/dist/domain/pokemon/model.js +18 -0
- package/dist/domain/pokemon/model.js.map +1 -0
- package/dist/domain/pokemon/nature.d.ts +10 -0
- package/dist/domain/pokemon/nature.d.ts.map +1 -0
- package/dist/domain/pokemon/nature.js +23 -0
- package/dist/domain/pokemon/nature.js.map +1 -0
- package/dist/domain/pokemon/starter.d.ts +23 -0
- package/dist/domain/pokemon/starter.d.ts.map +1 -0
- package/dist/domain/pokemon/starter.js +59 -0
- package/dist/domain/pokemon/starter.js.map +1 -0
- package/dist/domain/pokemon/stats.d.ts +6 -0
- package/dist/domain/pokemon/stats.d.ts.map +1 -0
- package/dist/domain/pokemon/stats.js +35 -0
- package/dist/domain/pokemon/stats.js.map +1 -0
- package/dist/domain/pokemon/types.d.ts +37 -0
- package/dist/domain/pokemon/types.d.ts.map +1 -0
- package/dist/domain/pokemon/types.js +30 -0
- package/dist/domain/pokemon/types.js.map +1 -0
- package/dist/domain/progression/catalog.d.ts +34 -0
- package/dist/domain/progression/catalog.d.ts.map +1 -0
- package/dist/domain/progression/catalog.js +258 -0
- package/dist/domain/progression/catalog.js.map +1 -0
- package/dist/domain/progression/level-evolution.d.ts +13 -0
- package/dist/domain/progression/level-evolution.d.ts.map +1 -0
- package/dist/domain/progression/level-evolution.js +245 -0
- package/dist/domain/progression/level-evolution.js.map +1 -0
- package/dist/domain/progression/policies.d.ts +38 -0
- package/dist/domain/progression/policies.d.ts.map +1 -0
- package/dist/domain/progression/policies.js +78 -0
- package/dist/domain/progression/policies.js.map +1 -0
- package/dist/domain/shared/identifiers.d.ts +12 -0
- package/dist/domain/shared/identifiers.d.ts.map +1 -0
- package/dist/domain/shared/identifiers.js +7 -0
- package/dist/domain/shared/identifiers.js.map +1 -0
- package/dist/domain/shared/language.d.ts +7 -0
- package/dist/domain/shared/language.d.ts.map +1 -0
- package/dist/domain/shared/language.js +3 -0
- package/dist/domain/shared/language.js.map +1 -0
- package/dist/domain/trainer/trainer.d.ts +7 -0
- package/dist/domain/trainer/trainer.d.ts.map +1 -0
- package/dist/domain/trainer/trainer.js +2 -0
- package/dist/domain/trainer/trainer.js.map +1 -0
- package/dist/domain/usage/usage.d.ts +21 -0
- package/dist/domain/usage/usage.d.ts.map +1 -0
- package/dist/domain/usage/usage.js +23 -0
- package/dist/domain/usage/usage.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +183819 -0
- package/dist/index.js.map +1 -0
- package/dist/package.json +10 -0
- package/dist/rpc.d.ts +2 -0
- package/dist/rpc.d.ts.map +1 -0
- package/dist/rpc.js +568 -0
- package/dist/rpc.js.map +1 -0
- package/dist/tui.d.ts +2 -0
- package/dist/tui.d.ts.map +1 -0
- package/dist/tui.js +184828 -0
- package/package.json +78 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../../src/application/contracts/game.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { pendingEncounterSchema } from "../../domain/encounters/encounter.js";
|
|
3
|
+
import { explorationStatusSchema } from "../../domain/exploration/exploration.js";
|
|
4
|
+
import { partySlotSchema } from "../../domain/party/party.js";
|
|
5
|
+
import { pokemonInstanceSchema } from "../../domain/pokemon/model.js";
|
|
6
|
+
import { speciesIdSchema } from "../../domain/shared/identifiers.js";
|
|
7
|
+
import { languageSchema } from "../../domain/shared/language.js";
|
|
8
|
+
export const pendingChoiceSchema = z.object({
|
|
9
|
+
id: z.string().uuid(),
|
|
10
|
+
kind: z.string().min(1),
|
|
11
|
+
payload: z.string(),
|
|
12
|
+
});
|
|
13
|
+
export const gameStateSchema = z.object({
|
|
14
|
+
phase: z.enum(["onboarding", "active"]),
|
|
15
|
+
locale: languageSchema,
|
|
16
|
+
message: z.string(),
|
|
17
|
+
region: z.string().nullable(),
|
|
18
|
+
location: z.string().nullable(),
|
|
19
|
+
party: z.array(partySlotSchema).length(6),
|
|
20
|
+
pendingChoices: z.array(pendingChoiceSchema),
|
|
21
|
+
pendingEncounterCount: z.number().int().nonnegative().default(0),
|
|
22
|
+
choicePokemon: z.array(pokemonInstanceSchema).default([]),
|
|
23
|
+
pendingEncounter: pendingEncounterSchema
|
|
24
|
+
.extend({ caught: z.boolean().default(false) })
|
|
25
|
+
.nullable()
|
|
26
|
+
.default(null),
|
|
27
|
+
exploration: explorationStatusSchema.nullable().default(null),
|
|
28
|
+
});
|
|
29
|
+
export const starterChoiceInputSchema = z.object({
|
|
30
|
+
regionId: z.string().min(1),
|
|
31
|
+
speciesId: z.string().min(1),
|
|
32
|
+
});
|
|
33
|
+
export const starterChoiceResultSchema = z.object({
|
|
34
|
+
kind: z.enum(["selected", "invalid-region", "invalid-starter", "already-selected"]),
|
|
35
|
+
state: gameStateSchema,
|
|
36
|
+
});
|
|
37
|
+
export const gameplayConfigSchema = z.object({
|
|
38
|
+
pauseOnPendingChoice: z.boolean().default(true),
|
|
39
|
+
xpTokensPerPoint: z.number().int().positive().default(1_000),
|
|
40
|
+
encounterMinimumTokens: z.number().int().positive().default(200_000),
|
|
41
|
+
encounterMaximumTokens: z.number().int().positive().default(400_000),
|
|
42
|
+
locationUnlockTokens: z.number().int().positive().default(2_160_000),
|
|
43
|
+
});
|
|
44
|
+
export const usageInputSchema = z.object({
|
|
45
|
+
sessionId: z.string().min(1),
|
|
46
|
+
messageId: z.string().min(1),
|
|
47
|
+
inputTokens: z.number().int().nonnegative(),
|
|
48
|
+
outputTokens: z.number().int().nonnegative(),
|
|
49
|
+
reasoningTokens: z.number().int().nonnegative(),
|
|
50
|
+
cacheReadTokens: z.number().int().nonnegative(),
|
|
51
|
+
cacheWriteTokens: z.number().int().nonnegative(),
|
|
52
|
+
completedAt: z.string().datetime(),
|
|
53
|
+
});
|
|
54
|
+
export const usageApplicationSchema = z.object({
|
|
55
|
+
kind: z.enum(["applied", "duplicate", "frozen-discarded", "inactive"]),
|
|
56
|
+
state: gameStateSchema,
|
|
57
|
+
});
|
|
58
|
+
export const locationTravelInputSchema = z.object({ locationId: z.string().min(1) });
|
|
59
|
+
export const locationTravelResultSchema = z.object({
|
|
60
|
+
kind: z.enum(["teleported", "inactive", "invalid-location", "locked-location"]),
|
|
61
|
+
state: gameStateSchema,
|
|
62
|
+
});
|
|
63
|
+
export const regionTravelInputSchema = z.object({ regionId: z.string().min(1) });
|
|
64
|
+
export const regionTravelResultSchema = z.object({
|
|
65
|
+
kind: z.enum(["traveled", "inactive", "invalid-region", "already-visited", "region-incomplete"]),
|
|
66
|
+
state: gameStateSchema,
|
|
67
|
+
});
|
|
68
|
+
export const encounterResolutionResultSchema = z.object({
|
|
69
|
+
kind: z.enum(["caught", "ran", "inactive", "no-encounter"]),
|
|
70
|
+
state: gameStateSchema,
|
|
71
|
+
});
|
|
72
|
+
export const partyReplacementInputSchema = z.object({
|
|
73
|
+
pokemonIds: z.array(z.string().uuid()).min(1).max(6),
|
|
74
|
+
});
|
|
75
|
+
export const partyReplacementResultSchema = z.object({
|
|
76
|
+
kind: z.enum(["replaced", "inactive", "invalid-party"]),
|
|
77
|
+
state: gameStateSchema,
|
|
78
|
+
});
|
|
79
|
+
export const pokemonRenameInputSchema = z.object({
|
|
80
|
+
pokemonId: z.string().uuid(),
|
|
81
|
+
name: z.string(),
|
|
82
|
+
});
|
|
83
|
+
export const pokemonReleaseInputSchema = z.object({ pokemonId: z.string().uuid() });
|
|
84
|
+
export const pokemonManagementResultSchema = z.object({
|
|
85
|
+
kind: z.enum([
|
|
86
|
+
"renamed",
|
|
87
|
+
"released",
|
|
88
|
+
"inactive",
|
|
89
|
+
"invalid-pokemon",
|
|
90
|
+
"invalid-name",
|
|
91
|
+
"last-party-pokemon",
|
|
92
|
+
]),
|
|
93
|
+
state: gameStateSchema,
|
|
94
|
+
});
|
|
95
|
+
export const moveChoiceInputSchema = z.object({
|
|
96
|
+
choiceId: z.string().uuid(),
|
|
97
|
+
selectedMoveId: z.string().min(1),
|
|
98
|
+
});
|
|
99
|
+
export const evolutionChoiceInputSchema = z.object({
|
|
100
|
+
choiceId: z.string().uuid(),
|
|
101
|
+
selectedSpeciesId: z.string().min(1),
|
|
102
|
+
});
|
|
103
|
+
export const choiceResolutionResultSchema = z.object({
|
|
104
|
+
kind: z.enum(["resolved", "inactive", "invalid-choice"]),
|
|
105
|
+
state: gameStateSchema,
|
|
106
|
+
});
|
|
107
|
+
export const pokemonCollectionSchema = z.object({ pokemon: z.array(pokemonInstanceSchema) });
|
|
108
|
+
export const pokedexEntrySchema = z.object({
|
|
109
|
+
number: z.number().int().positive(),
|
|
110
|
+
speciesId: speciesIdSchema,
|
|
111
|
+
name: z.string().min(1),
|
|
112
|
+
status: z.enum(["caught", "seen", "unknown"]),
|
|
113
|
+
});
|
|
114
|
+
export const pokemonDexSchema = z.object({
|
|
115
|
+
pokemon: z.array(pokedexEntrySchema),
|
|
116
|
+
/** Exact species/form discoveries, separate from the aggregated National Dex rows. */
|
|
117
|
+
discoveries: z.array(z.object({
|
|
118
|
+
speciesId: speciesIdSchema,
|
|
119
|
+
status: z.enum(["caught", "seen"]),
|
|
120
|
+
})),
|
|
121
|
+
});
|
|
122
|
+
export const teamExportSchema = z.object({
|
|
123
|
+
kind: z.enum(["exported", "inactive"]),
|
|
124
|
+
text: z.string(),
|
|
125
|
+
});
|
|
126
|
+
//# sourceMappingURL=game.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game.js","sourceRoot":"","sources":["../../../src/application/contracts/game.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAEhE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACvC,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IAC5C,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACzD,gBAAgB,EAAE,sBAAsB;SACrC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;SAC9C,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;IAChB,WAAW,EAAE,uBAAuB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAC9D,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;IACnF,KAAK,EAAE,eAAe;CACvB,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC/C,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5D,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IACpE,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IACpE,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;CACrE,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC5C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC/C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC/C,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAChD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,UAAU,CAAC,CAAC;IACtE,KAAK,EAAE,eAAe;CACvB,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAEpF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;IAC/E,KAAK,EAAE,eAAe;CACvB,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAEhF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAChG,KAAK,EAAE,eAAe;CACvB,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IAC3D,KAAK,EAAE,eAAe;CACvB,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACrD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IACvD,KAAK,EAAE,eAAe;CACvB,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AAEnF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QACX,SAAS;QACT,UAAU;QACV,UAAU;QACV,iBAAiB;QACjB,cAAc;QACd,oBAAoB;KACrB,CAAC;IACF,KAAK,EAAE,eAAe;CACvB,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC3B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAClC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC3B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACrC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;IACxD,KAAK,EAAE,eAAe;CACvB,CAAC,CAAA;AAKF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAA;AAE5F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACnC,SAAS,EAAE,eAAe;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;CAC9C,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;IACpC,sFAAsF;IACtF,WAAW,EAAE,CAAC,CAAC,KAAK,CAClB,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,eAAe;QAC1B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;KACnC,CAAC,CACH;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { StarterGameState } from "../ports/starter-selection-store.js";
|
|
2
|
+
export type StarterChoiceResult<TState extends StarterGameState> = {
|
|
3
|
+
readonly kind: "selected" | "invalid-region" | "invalid-starter" | "already-selected";
|
|
4
|
+
readonly state: TState;
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=starter-choice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starter-choice.d.ts","sourceRoot":"","sources":["../../../src/application/contracts/starter-choice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAE3E,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,gBAAgB,IAAI;IACjE,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,kBAAkB,CAAA;IACrF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starter-choice.js","sourceRoot":"","sources":["../../../src/application/contracts/starter-choice.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { PokemonInstance } from "../domain/pokemon/model.js";
|
|
2
|
+
import type { GameplayConfig, GameState, StarterChoiceResult, TeamExport, UsageApplication, UsageInput } from "./contracts/game.js";
|
|
3
|
+
import type { ApplicationGamePort } from "./ports/game.js";
|
|
4
|
+
import type { StarterIdGenerator } from "./ports/starter-selection-store.js";
|
|
5
|
+
export type GameService = {
|
|
6
|
+
status(): GameState;
|
|
7
|
+
chooseStarter(regionId: string, speciesId: string): StarterChoiceResult;
|
|
8
|
+
recordUsage(input: UsageInput): UsageApplication;
|
|
9
|
+
catchEncounter(encounterId: string): import("./contracts/game.js").EncounterResolutionResult;
|
|
10
|
+
runEncounter(encounterId: string): import("./contracts/game.js").EncounterResolutionResult;
|
|
11
|
+
collection(): import("./contracts/game.js").PokemonCollection;
|
|
12
|
+
dex(): import("./contracts/game.js").PokemonDex;
|
|
13
|
+
exportTeam(): TeamExport;
|
|
14
|
+
replaceParty(pokemonIds: readonly string[]): import("./contracts/game.js").PartyReplacementResult;
|
|
15
|
+
renamePokemon(pokemonId: string, name: string): import("./contracts/game.js").PokemonManagementResult;
|
|
16
|
+
releasePokemon(pokemonId: string): import("./contracts/game.js").PokemonManagementResult;
|
|
17
|
+
travelTo(locationId: string): import("./contracts/game.js").LocationTravelResult;
|
|
18
|
+
travelToRegion(regionId: string): import("./contracts/game.js").RegionTravelResult;
|
|
19
|
+
dismissNextRegionChoice(): GameState;
|
|
20
|
+
reopenNextRegionChoice(): GameState;
|
|
21
|
+
resolveMoveChoice(choiceId: string, selectedMoveId: string): import("./contracts/game.js").ChoiceResolution;
|
|
22
|
+
resolveEvolutionChoice(choiceId: string, selectedSpeciesId: string): import("./contracts/game.js").ChoiceResolution;
|
|
23
|
+
};
|
|
24
|
+
export type GameServiceDependencies = {
|
|
25
|
+
readonly repository: ApplicationGamePort;
|
|
26
|
+
readonly random: () => number;
|
|
27
|
+
readonly now: () => string;
|
|
28
|
+
readonly config: GameplayConfig;
|
|
29
|
+
readonly createId: () => string;
|
|
30
|
+
readonly createStarterIds: StarterIdGenerator;
|
|
31
|
+
readonly formatTeam: (party: readonly PokemonInstance[]) => string;
|
|
32
|
+
};
|
|
33
|
+
export declare function createApplicationGame(dependencies: GameServiceDependencies): GameService;
|
|
34
|
+
//# sourceMappingURL=game.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../src/application/game.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,UAAU,EACX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAM5E,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,IAAI,SAAS,CAAA;IACnB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,mBAAmB,CAAA;IACvE,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,gBAAgB,CAAA;IAChD,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,qBAAqB,EAAE,yBAAyB,CAAA;IAC5F,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,qBAAqB,EAAE,yBAAyB,CAAA;IAC1F,UAAU,IAAI,OAAO,qBAAqB,EAAE,iBAAiB,CAAA;IAC7D,GAAG,IAAI,OAAO,qBAAqB,EAAE,UAAU,CAAA;IAC/C,UAAU,IAAI,UAAU,CAAA;IACxB,YAAY,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,qBAAqB,EAAE,sBAAsB,CAAA;IACjG,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,qBAAqB,EAAE,uBAAuB,CAAA;IACxD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,qBAAqB,EAAE,uBAAuB,CAAA;IACxF,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,qBAAqB,EAAE,oBAAoB,CAAA;IAChF,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,qBAAqB,EAAE,kBAAkB,CAAA;IAClF,uBAAuB,IAAI,SAAS,CAAA;IACpC,sBAAsB,IAAI,SAAS,CAAA;IACnC,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACrB,OAAO,qBAAqB,EAAE,gBAAgB,CAAA;IACjD,sBAAsB,CACpB,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM,GACxB,OAAO,qBAAqB,EAAE,gBAAgB,CAAA;CAClD,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAA;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAA;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAA;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,kBAAkB,CAAA;IAC7C,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,KAAK,MAAM,CAAA;CACnE,CAAA;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,uBAAuB,GAAG,WAAW,CAmExF"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { findStarter, locationsForRegion } from "../domain/content/catalog.js";
|
|
2
|
+
import { createChooseRegionalStarter } from "./use-cases/choose-regional-starter.js";
|
|
3
|
+
import { createChooseStarter } from "./use-cases/choose-starter.js";
|
|
4
|
+
import { createGameCommands } from "./use-cases/game-commands.js";
|
|
5
|
+
import { createRecordUsage } from "./use-cases/record-usage.js";
|
|
6
|
+
export function createApplicationGame(dependencies) {
|
|
7
|
+
const { repository, random, now, config, createId, createStarterIds } = dependencies;
|
|
8
|
+
const readState = () => repository.readState(config.locationUnlockTokens);
|
|
9
|
+
const commands = createGameCommands({
|
|
10
|
+
transactions: repository.transactions,
|
|
11
|
+
readState,
|
|
12
|
+
createId,
|
|
13
|
+
now,
|
|
14
|
+
pauseOnPendingChoice: config.pauseOnPendingChoice,
|
|
15
|
+
});
|
|
16
|
+
const recordUsage = createRecordUsage({
|
|
17
|
+
transactions: repository.transactions,
|
|
18
|
+
readState,
|
|
19
|
+
createId,
|
|
20
|
+
});
|
|
21
|
+
const chooseStarter = createChooseStarter({
|
|
22
|
+
store: {
|
|
23
|
+
readState,
|
|
24
|
+
createStarterAtomically: repository.createStarterAtomically,
|
|
25
|
+
},
|
|
26
|
+
random,
|
|
27
|
+
now,
|
|
28
|
+
createIds: createStarterIds,
|
|
29
|
+
firstLocationForRegion: (regionId) => locationsForRegion(regionId)[0],
|
|
30
|
+
findStarter,
|
|
31
|
+
});
|
|
32
|
+
const chooseRegionalStarter = createChooseRegionalStarter({
|
|
33
|
+
transactions: repository.transactions,
|
|
34
|
+
readState,
|
|
35
|
+
createId,
|
|
36
|
+
now,
|
|
37
|
+
pauseOnPendingChoice: config.pauseOnPendingChoice,
|
|
38
|
+
}, random);
|
|
39
|
+
return {
|
|
40
|
+
status: readState,
|
|
41
|
+
chooseStarter: (regionId, speciesId) => readState().phase === "onboarding"
|
|
42
|
+
? chooseStarter(regionId, speciesId)
|
|
43
|
+
: chooseRegionalStarter(regionId, speciesId),
|
|
44
|
+
recordUsage: (input) => recordUsage(input, config, random),
|
|
45
|
+
catchEncounter: (encounterId) => commands.catchEncounter(encounterId, random),
|
|
46
|
+
runEncounter: (encounterId) => commands.runEncounter(encounterId),
|
|
47
|
+
collection: () => repository.collection(),
|
|
48
|
+
dex: () => repository.dex(),
|
|
49
|
+
exportTeam: () => {
|
|
50
|
+
const state = readState();
|
|
51
|
+
const party = state.party.flatMap((slot) => (slot.pokemon === null ? [] : [slot.pokemon]));
|
|
52
|
+
return party.length === 0
|
|
53
|
+
? { kind: "inactive", text: "" }
|
|
54
|
+
: { kind: "exported", text: dependencies.formatTeam(party) };
|
|
55
|
+
},
|
|
56
|
+
replaceParty: commands.replaceParty,
|
|
57
|
+
renamePokemon: commands.renamePokemon,
|
|
58
|
+
releasePokemon: commands.releasePokemon,
|
|
59
|
+
travelTo: commands.travelTo,
|
|
60
|
+
travelToRegion: commands.travelToRegion,
|
|
61
|
+
dismissNextRegionChoice: commands.dismissNextRegionChoice,
|
|
62
|
+
reopenNextRegionChoice: () => commands.reopenNextRegionChoice(now()),
|
|
63
|
+
resolveMoveChoice: (choiceId, selectedMoveId) => commands.resolveMoveChoice(choiceId, selectedMoveId, now()),
|
|
64
|
+
resolveEvolutionChoice: (choiceId, selectedSpeciesId) => commands.resolveEvolutionChoice(choiceId, selectedSpeciesId, now()),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=game.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game.js","sourceRoot":"","sources":["../../src/application/game.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import type { DomainChoice } from "../../domain/choices/choices.js";
|
|
2
|
+
import type { StarterCreationData } from "../../domain/pokemon/starter.js";
|
|
3
|
+
import type { Move, PokemonGender } from "../../domain/pokemon/types.js";
|
|
4
|
+
import type { UsageInput } from "../contracts/game.js";
|
|
5
|
+
export type TransactionTrainer = {
|
|
6
|
+
readonly id: string;
|
|
7
|
+
readonly regionId: string;
|
|
8
|
+
readonly locationId: string;
|
|
9
|
+
};
|
|
10
|
+
export type PartyProgressPokemon = {
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly speciesId: string;
|
|
13
|
+
readonly gender: PokemonGender;
|
|
14
|
+
readonly level: number;
|
|
15
|
+
readonly experience: number;
|
|
16
|
+
};
|
|
17
|
+
export type StoredPokemonMove = Move & {
|
|
18
|
+
readonly position: number;
|
|
19
|
+
};
|
|
20
|
+
export type EncounterProgress = {
|
|
21
|
+
readonly tokenCount: number;
|
|
22
|
+
readonly threshold: number;
|
|
23
|
+
};
|
|
24
|
+
export type PendingEncounterWrite = {
|
|
25
|
+
readonly id: string;
|
|
26
|
+
readonly trainerId: string;
|
|
27
|
+
readonly kind: "ordinary" | "special";
|
|
28
|
+
readonly speciesId: string;
|
|
29
|
+
readonly name: string;
|
|
30
|
+
readonly specialEncounterId: string | null;
|
|
31
|
+
readonly level: number;
|
|
32
|
+
readonly gender: PokemonGender;
|
|
33
|
+
readonly shiny: boolean;
|
|
34
|
+
readonly spriteUrl: string;
|
|
35
|
+
readonly ability: string;
|
|
36
|
+
readonly createdAt: string;
|
|
37
|
+
};
|
|
38
|
+
export type PendingChoiceWrite = DomainChoice & {
|
|
39
|
+
readonly id: string;
|
|
40
|
+
readonly trainerId: string;
|
|
41
|
+
readonly createdAt: string;
|
|
42
|
+
};
|
|
43
|
+
export type PendingEncounterSnapshot = {
|
|
44
|
+
readonly id: string;
|
|
45
|
+
readonly kind: "ordinary" | "special";
|
|
46
|
+
readonly speciesId: string;
|
|
47
|
+
readonly name: string;
|
|
48
|
+
readonly level: number;
|
|
49
|
+
readonly gender: "male" | "female" | "genderless";
|
|
50
|
+
readonly shiny: boolean;
|
|
51
|
+
readonly spriteUrl: string;
|
|
52
|
+
readonly ability: string;
|
|
53
|
+
};
|
|
54
|
+
export type ChoiceForResolution = DomainChoice & {
|
|
55
|
+
readonly id: string;
|
|
56
|
+
};
|
|
57
|
+
export type CommandTransactionStores = {
|
|
58
|
+
readonly encounters: {
|
|
59
|
+
pending(trainerId: string, encounterId: string): PendingEncounterSnapshot | null;
|
|
60
|
+
clearPending(trainerId: string, encounterId: string): void;
|
|
61
|
+
};
|
|
62
|
+
readonly choices: {
|
|
63
|
+
find(trainerId: string, choiceId: string, kind: "move" | "evolution" | "starter"): ChoiceForResolution | null;
|
|
64
|
+
hasKind(trainerId: string, kind: "region"): boolean;
|
|
65
|
+
delete(choiceId: string): void;
|
|
66
|
+
deleteCatch(trainerId: string, encounterId: string): void;
|
|
67
|
+
deleteKind(trainerId: string, kind: "region"): void;
|
|
68
|
+
};
|
|
69
|
+
readonly pokemon: {
|
|
70
|
+
insertStarter(input: {
|
|
71
|
+
readonly id: string;
|
|
72
|
+
readonly trainerId: string;
|
|
73
|
+
readonly starter: StarterCreationData;
|
|
74
|
+
}): void;
|
|
75
|
+
ownedCount(trainerId: string, pokemonIds: readonly string[]): number;
|
|
76
|
+
replaceParty(trainerId: string, pokemonIds: readonly string[]): void;
|
|
77
|
+
rename(trainerId: string, pokemonId: string, name: string): void;
|
|
78
|
+
release(trainerId: string, pokemonId: string): void;
|
|
79
|
+
insertCaptured(input: {
|
|
80
|
+
readonly id: string;
|
|
81
|
+
readonly trainerId: string;
|
|
82
|
+
readonly encounter: PendingEncounterSnapshot;
|
|
83
|
+
readonly nature: string;
|
|
84
|
+
readonly ivs: readonly [number, number, number, number, number, number];
|
|
85
|
+
readonly moves: readonly Move[];
|
|
86
|
+
}): void;
|
|
87
|
+
firstEmptyPartyPosition(trainerId: string): number | null;
|
|
88
|
+
assignPartyPosition(trainerId: string, pokemonId: string, position: number): void;
|
|
89
|
+
replaceMove(pokemonId: string, position: number, move: Move): void;
|
|
90
|
+
level(pokemonId: string): number | null;
|
|
91
|
+
};
|
|
92
|
+
readonly exploration: {
|
|
93
|
+
locationUnlocked(trainerId: string, locationId: string): boolean;
|
|
94
|
+
regionCompleted(trainerId: string, regionId: string): boolean;
|
|
95
|
+
regionVisited(trainerId: string, regionId: string): boolean;
|
|
96
|
+
travelToLocation(trainerId: string, regionId: string, locationId: string): void;
|
|
97
|
+
initializeRegion(trainerId: string, regionId: string, locationId: string): void;
|
|
98
|
+
setRegionDismissed(trainerId: string, regionId: string, dismissed: boolean): void;
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
export type UsageTransactionStores = {
|
|
102
|
+
readonly receipts: {
|
|
103
|
+
/** Uses the durable `(session_id, message_id)` uniqueness constraint. */
|
|
104
|
+
claim(input: {
|
|
105
|
+
readonly id: string;
|
|
106
|
+
readonly trainerId: string | null;
|
|
107
|
+
readonly usage: UsageInput;
|
|
108
|
+
readonly tokenCount: number;
|
|
109
|
+
}): boolean;
|
|
110
|
+
};
|
|
111
|
+
readonly trainers: {
|
|
112
|
+
find(): TransactionTrainer | null;
|
|
113
|
+
findById(trainerId: string): TransactionTrainer | null;
|
|
114
|
+
};
|
|
115
|
+
readonly choices: {
|
|
116
|
+
hasPending(trainerId: string): boolean;
|
|
117
|
+
hasPokemonChoice(trainerId: string, pokemonId: string, kind: "move" | "evolution", moveId?: string): boolean;
|
|
118
|
+
insert(choice: PendingChoiceWrite): void;
|
|
119
|
+
};
|
|
120
|
+
readonly pokemon: {
|
|
121
|
+
addPartyExperience(trainerId: string, amount: number): void;
|
|
122
|
+
party(trainerId: string): readonly PartyProgressPokemon[];
|
|
123
|
+
offPartyWithExperience(trainerId: string): readonly PartyProgressPokemon[];
|
|
124
|
+
findOwned(trainerId: string, pokemonId: string): PartyProgressPokemon | null;
|
|
125
|
+
setLevel(pokemonId: string, level: number, experience: number): void;
|
|
126
|
+
evolve(pokemonId: string, speciesId: string, name: string): void;
|
|
127
|
+
moves(pokemonId: string): readonly StoredPokemonMove[];
|
|
128
|
+
learnMove(pokemonId: string, position: number, move: Move): void;
|
|
129
|
+
markSeen(trainerId: string, speciesId: string): void;
|
|
130
|
+
/** Also sets `seen`: a Pokémon the trainer owns is registered as caught. */
|
|
131
|
+
markCaught(trainerId: string, speciesId: string): void;
|
|
132
|
+
};
|
|
133
|
+
readonly exploration: {
|
|
134
|
+
latestUnlockedLocation(trainerId: string): string | null;
|
|
135
|
+
unlockTokenCount(trainerId: string): number;
|
|
136
|
+
setUnlockTokenCount(trainerId: string, tokenCount: number): void;
|
|
137
|
+
unlockLocation(trainerId: string, locationId: string): void;
|
|
138
|
+
completeRegion(trainerId: string, regionId: string): boolean;
|
|
139
|
+
visitedRegionIds(trainerId: string): readonly string[];
|
|
140
|
+
};
|
|
141
|
+
readonly encounters: {
|
|
142
|
+
hasPending(trainerId: string): boolean;
|
|
143
|
+
progress(trainerId: string): EncounterProgress | null;
|
|
144
|
+
saveProgress(trainerId: string, tokenCount: number, threshold: number): void;
|
|
145
|
+
maximumPartyLevel(trainerId: string): number;
|
|
146
|
+
triggeredSpecialIds(trainerId: string): ReadonlySet<string>;
|
|
147
|
+
markSpecialTriggered(trainerId: string, specialEncounterId: string, triggeredAt: string): void;
|
|
148
|
+
insertPending(encounter: PendingEncounterWrite): void;
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* The callback is deliberately synchronous. Every feature store supplied to it
|
|
153
|
+
* is scoped to this one transaction/connection and must not commit independently.
|
|
154
|
+
*/
|
|
155
|
+
export type GameTransactionStores = UsageTransactionStores & {
|
|
156
|
+
readonly commands: CommandTransactionStores;
|
|
157
|
+
};
|
|
158
|
+
export type ProgressionTransactionStores = {
|
|
159
|
+
readonly choices: Pick<UsageTransactionStores["choices"], "insert" | "hasPending" | "hasPokemonChoice">;
|
|
160
|
+
readonly pokemon: Pick<UsageTransactionStores["pokemon"], "party" | "offPartyWithExperience" | "findOwned" | "setLevel" | "evolve" | "moves" | "learnMove" | "markCaught">;
|
|
161
|
+
};
|
|
162
|
+
export type CommandWorkflowStores = ProgressionTransactionStores & {
|
|
163
|
+
readonly trainers: Pick<UsageTransactionStores["trainers"], "find">;
|
|
164
|
+
readonly commands: CommandTransactionStores;
|
|
165
|
+
};
|
|
166
|
+
export type SynchronousTransactionResult<Result> = Result extends PromiseLike<unknown> ? never : Result;
|
|
167
|
+
export type TransactionRunner<Stores> = {
|
|
168
|
+
withTransaction<Result>(work: (stores: Stores) => SynchronousTransactionResult<Result>): Result;
|
|
169
|
+
};
|
|
170
|
+
export type UsageTransactionRunner = TransactionRunner<UsageTransactionStores>;
|
|
171
|
+
export type GameTransactionRunner = TransactionRunner<GameTransactionStores>;
|
|
172
|
+
export type CommandTransactionRunner = TransactionRunner<CommandWorkflowStores>;
|
|
173
|
+
//# sourceMappingURL=game-transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-transaction.d.ts","sourceRoot":"","sources":["../../../src/application/ports/game-transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-transaction.js","sourceRoot":"","sources":["../../../src/application/ports/game-transaction.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { GameState, PokemonCollection, PokemonDex } from "../contracts/game.js";
|
|
2
|
+
import type { GameTransactionRunner } from "./game-transaction.js";
|
|
3
|
+
import type { StarterCreationCommand, StarterIdGenerator } from "./starter-selection-store.js";
|
|
4
|
+
export type ApplicationGamePort = {
|
|
5
|
+
readonly transactions: GameTransactionRunner;
|
|
6
|
+
readState(locationUnlockThreshold: number): GameState;
|
|
7
|
+
createStarterAtomically(selection: StarterCreationCommand, createIds: StarterIdGenerator): boolean;
|
|
8
|
+
collection(): PokemonCollection;
|
|
9
|
+
dex(): PokemonDex;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=game.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../../src/application/ports/game.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAE9F,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAA;IAC5C,SAAS,CAAC,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAA;IACrD,uBAAuB,CAAC,SAAS,EAAE,sBAAsB,EAAE,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAA;IAClG,UAAU,IAAI,iBAAiB,CAAA;IAC/B,GAAG,IAAI,UAAU,CAAA;CAClB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game.js","sourceRoot":"","sources":["../../../src/application/ports/game.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { StarterCreationData } from "../../domain/pokemon/starter.js";
|
|
2
|
+
import type { PokemonGender } from "../../domain/pokemon/types.js";
|
|
3
|
+
export type StarterCreationCommand = Omit<StarterCreationData, "gender"> & {
|
|
4
|
+
readonly gender: PokemonGender;
|
|
5
|
+
readonly regionId: string;
|
|
6
|
+
readonly locationId: string;
|
|
7
|
+
readonly selectedAt: string;
|
|
8
|
+
};
|
|
9
|
+
export type StarterIds = {
|
|
10
|
+
readonly trainerId: string;
|
|
11
|
+
readonly pokemonId: string;
|
|
12
|
+
};
|
|
13
|
+
export type StarterIdGenerator = () => StarterIds;
|
|
14
|
+
export type StarterGameState = {
|
|
15
|
+
readonly phase: "onboarding" | "active";
|
|
16
|
+
};
|
|
17
|
+
/** Atomically creates the initial trainer, progress, Pokémon, party, moves, and Pokédex rows. */
|
|
18
|
+
export type StarterSelectionStore<TState extends StarterGameState> = {
|
|
19
|
+
readState(): TState;
|
|
20
|
+
/** Returns false if another selection already created the trainer. */
|
|
21
|
+
createStarterAtomically(selection: StarterCreationCommand, createIds: StarterIdGenerator): boolean;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=starter-selection-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starter-selection-store.d.ts","sourceRoot":"","sources":["../../../src/application/ports/starter-selection-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAElE,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,GAAG;IACzE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,UAAU,CAAA;AAEjD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,QAAQ,CAAA;CACxC,CAAA;AAED,iGAAiG;AACjG,MAAM,MAAM,qBAAqB,CAAC,MAAM,SAAS,gBAAgB,IAAI;IACnE,SAAS,IAAI,MAAM,CAAA;IACnB,sEAAsE;IACtE,uBAAuB,CAAC,SAAS,EAAE,sBAAsB,EAAE,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAA;CACnG,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starter-selection-store.js","sourceRoot":"","sources":["../../../src/application/ports/starter-selection-store.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ChoiceResolutionResult, GameState } from "../contracts/game.js";
|
|
2
|
+
import { type GameCommandDependencies } from "./game-command-support.js";
|
|
3
|
+
export declare function createChoiceCommands(dependencies: GameCommandDependencies): {
|
|
4
|
+
dismissNextRegionChoice: () => GameState;
|
|
5
|
+
reopenNextRegionChoice: (createdAt: string) => GameState;
|
|
6
|
+
resolveMoveChoice: (choiceId: string, selectedMoveId: string, createdAt: string) => ChoiceResolutionResult;
|
|
7
|
+
resolveEvolutionChoice: (choiceId: string, selectedSpeciesId: string, createdAt: string) => ChoiceResolutionResult;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=choices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"choices.d.ts","sourceRoot":"","sources":["../../../src/application/use-cases/choices.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC7E,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,2BAA2B,CAAA;AAIlC,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,uBAAuB;mCAEpC,SAAS;wCAEF,MAAM,KAAG,SAAS;kCAyBjD,MAAM,kBACA,MAAM,aACX,MAAM,KAChB,sBAAsB;uCAyBb,MAAM,qBACG,MAAM,aACd,MAAM,KAChB,sBAAsB;EAsE1B"}
|