@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,56 @@
|
|
|
1
|
+
const english = {
|
|
2
|
+
title: "Pokemon PC",
|
|
3
|
+
nature: "Nature",
|
|
4
|
+
ability: "Ability",
|
|
5
|
+
moves: "Moves",
|
|
6
|
+
stats: { name: "Stat", value: "Value" },
|
|
7
|
+
statNames: ["HP", "Attack", "Defense", "Sp. Atk", "Sp. Def", "Speed"],
|
|
8
|
+
empty: "No Pokemon in storage.",
|
|
9
|
+
minimum: "Select at least one Pokemon.",
|
|
10
|
+
maximum: "Your team can contain at most six Pokemon.",
|
|
11
|
+
saving: "Saving team...",
|
|
12
|
+
failed: "Team could not be saved. Please try again.",
|
|
13
|
+
navigation: "Up/Down: Inspect | Space: Toggle",
|
|
14
|
+
actions: "Enter: Save team | Esc: Cancel",
|
|
15
|
+
rename: "Rename",
|
|
16
|
+
release: "Free Pokemon",
|
|
17
|
+
renamePrompt: "New name (1–30 characters):",
|
|
18
|
+
releasePrompt: "Free this Pokemon permanently? This cannot be undone.",
|
|
19
|
+
editActions: "Enter: Confirm | Esc: Back",
|
|
20
|
+
invalidName: "Use 1–30 characters, without control characters.",
|
|
21
|
+
lastPartyPokemon: "You cannot free your last party Pokemon. Save a different team first.",
|
|
22
|
+
managing: "Saving Pokemon...",
|
|
23
|
+
managementFailed: "Pokemon could not be updated. Please try again.",
|
|
24
|
+
renamed: "Pokemon renamed.",
|
|
25
|
+
released: "Pokemon freed.",
|
|
26
|
+
};
|
|
27
|
+
const spanish = {
|
|
28
|
+
title: "PC Pokémon",
|
|
29
|
+
nature: "Naturaleza",
|
|
30
|
+
ability: "Habilidad",
|
|
31
|
+
moves: "Movimientos",
|
|
32
|
+
stats: { name: "Estad.", value: "Valor" },
|
|
33
|
+
statNames: ["PS", "Ataque", "Defensa", "At. Esp", "Def. Esp", "Velocidad"],
|
|
34
|
+
empty: "No hay Pokémon almacenados.",
|
|
35
|
+
minimum: "Selecciona al menos un Pokémon.",
|
|
36
|
+
maximum: "El equipo puede tener hasta seis Pokémon.",
|
|
37
|
+
saving: "Guardando equipo...",
|
|
38
|
+
failed: "No se pudo guardar el equipo. Inténtalo de nuevo.",
|
|
39
|
+
navigation: "Arriba/Abajo: Ver | Espacio: Elegir",
|
|
40
|
+
actions: "Enter: Guardar | Esc: Cancelar",
|
|
41
|
+
rename: "Renombrar",
|
|
42
|
+
release: "Liberar Pokémon",
|
|
43
|
+
renamePrompt: "Nuevo nombre (1–30 caracteres):",
|
|
44
|
+
releasePrompt: "¿Liberar este Pokémon para siempre? No se puede deshacer.",
|
|
45
|
+
editActions: "Enter: Confirmar | Esc: Volver",
|
|
46
|
+
invalidName: "Usa entre 1 y 30 caracteres, sin caracteres de control.",
|
|
47
|
+
lastPartyPokemon: "No puedes liberar tu último Pokémon del equipo. Guarda otro equipo primero.",
|
|
48
|
+
managing: "Guardando Pokémon...",
|
|
49
|
+
managementFailed: "No se pudo actualizar el Pokémon. Inténtalo de nuevo.",
|
|
50
|
+
renamed: "Pokémon renombrado.",
|
|
51
|
+
released: "Pokémon liberado.",
|
|
52
|
+
};
|
|
53
|
+
export function pcCopy(language) {
|
|
54
|
+
return language === "es" ? spanish : english;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=pc-copy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pc-copy.js","sourceRoot":"","sources":["../../../src/adapters/presentation/pc-copy.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG;IACd,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;IACvC,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;IACrE,KAAK,EAAE,wBAAwB;IAC/B,OAAO,EAAE,8BAA8B;IACvC,OAAO,EAAE,4CAA4C;IACrD,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,4CAA4C;IACpD,UAAU,EAAE,kCAAkC;IAC9C,OAAO,EAAE,gCAAgC;IACzC,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,cAAc;IACvB,YAAY,EAAE,6BAA6B;IAC3C,aAAa,EAAE,uDAAuD;IACtE,WAAW,EAAE,4BAA4B;IACzC,WAAW,EAAE,kDAAkD;IAC/D,gBAAgB,EAAE,uEAAuE;IACzF,QAAQ,EAAE,mBAAmB;IAC7B,gBAAgB,EAAE,iDAAiD;IACnE,OAAO,EAAE,kBAAkB;IAC3B,QAAQ,EAAE,gBAAgB;CAC3B,CAAA;AAED,MAAM,OAAO,GAAmB;IAC9B,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;IACzC,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC;IAC1E,KAAK,EAAE,6BAA6B;IACpC,OAAO,EAAE,iCAAiC;IAC1C,OAAO,EAAE,2CAA2C;IACpD,MAAM,EAAE,qBAAqB;IAC7B,MAAM,EAAE,mDAAmD;IAC3D,UAAU,EAAE,qCAAqC;IACjD,OAAO,EAAE,gCAAgC;IACzC,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,iBAAiB;IAC1B,YAAY,EAAE,iCAAiC;IAC/C,aAAa,EAAE,2DAA2D;IAC1E,WAAW,EAAE,gCAAgC;IAC7C,WAAW,EAAE,yDAAyD;IACtE,gBAAgB,EAAE,6EAA6E;IAC/F,QAAQ,EAAE,sBAAsB;IAChC,gBAAgB,EAAE,uDAAuD;IACzE,OAAO,EAAE,qBAAqB;IAC9B,QAAQ,EAAE,mBAAmB;CAC9B,CAAA;AAED,MAAM,UAAU,MAAM,CAAC,QAAkB;IACvC,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;AAC9C,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { Language } from "../../domain/shared/language.js";
|
|
2
|
+
type EncounterCopy = {
|
|
3
|
+
readonly genderSymbol: string;
|
|
4
|
+
readonly kind: "ordinary" | "special";
|
|
5
|
+
readonly level: number;
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly shiny: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type UiCopy = {
|
|
10
|
+
readonly title: string;
|
|
11
|
+
readonly locationsCommand: string;
|
|
12
|
+
readonly pcCommand: string;
|
|
13
|
+
readonly dexCommand: string;
|
|
14
|
+
readonly exportCommand: string;
|
|
15
|
+
readonly commandGroup: string;
|
|
16
|
+
readonly locationsDialog: string;
|
|
17
|
+
readonly noLocationPokemon: string;
|
|
18
|
+
readonly dexDialog: string;
|
|
19
|
+
readonly selectParty: (count: number) => string;
|
|
20
|
+
readonly confirmParty: string;
|
|
21
|
+
readonly exportInactiveTitle: string;
|
|
22
|
+
readonly exportInactiveMessage: string;
|
|
23
|
+
readonly exportTitle: string;
|
|
24
|
+
readonly exportSuccessMessage: string;
|
|
25
|
+
readonly exportFailedTitle: string;
|
|
26
|
+
readonly clipboardUnavailable: string;
|
|
27
|
+
readonly chooseStarter: string;
|
|
28
|
+
readonly movePrompt: (pokemon: string) => string;
|
|
29
|
+
readonly moveDescription: string;
|
|
30
|
+
readonly travel: string;
|
|
31
|
+
readonly chooseEvolution: string;
|
|
32
|
+
readonly evolutionPrompt: (pokemon: string) => string;
|
|
33
|
+
readonly regionComplete: (region: string) => string;
|
|
34
|
+
readonly allRegionsComplete: string;
|
|
35
|
+
readonly chooseNextRegion: string;
|
|
36
|
+
readonly dismiss: string;
|
|
37
|
+
readonly location: string;
|
|
38
|
+
readonly nextLocation: string;
|
|
39
|
+
readonly unknown: string;
|
|
40
|
+
readonly encounter: (input: EncounterCopy) => string;
|
|
41
|
+
readonly catch: string;
|
|
42
|
+
readonly run: string;
|
|
43
|
+
readonly loadingSprite: string;
|
|
44
|
+
readonly spriteUnavailable: string;
|
|
45
|
+
readonly queueCounts: (decisions: number, encounters: number) => string;
|
|
46
|
+
};
|
|
47
|
+
export declare function uiCopy(language: Language): UiCopy;
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=ui-copy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-copy.d.ts","sourceRoot":"","sources":["../../../src/adapters/presentation/ui-copy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAE/D,KAAK,aAAa,GAAG;IACnB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAA;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;IAChD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;IACrD,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;IACnD,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,CAAA;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CAAA;CACxE,CAAA;AAsFD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAEjD"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
const english = {
|
|
2
|
+
title: "PokéCode",
|
|
3
|
+
locationsCommand: "Pokemon locations",
|
|
4
|
+
pcCommand: "Pokemon PC",
|
|
5
|
+
dexCommand: "Pokemon Dex",
|
|
6
|
+
exportCommand: "Pokemon export",
|
|
7
|
+
commandGroup: "PokéCode",
|
|
8
|
+
locationsDialog: "Pokemon locations",
|
|
9
|
+
noLocationPokemon: "No catalogued Pokémon appear here.",
|
|
10
|
+
dexDialog: "National Dex",
|
|
11
|
+
selectParty: (count) => `Select party (${count}/6)`,
|
|
12
|
+
confirmParty: "Confirm party",
|
|
13
|
+
exportInactiveTitle: "Pokemon export",
|
|
14
|
+
exportInactiveMessage: "Choose a starter before exporting a team.",
|
|
15
|
+
exportTitle: "Pokemon export",
|
|
16
|
+
exportSuccessMessage: "Team copied as a Gen 9 National Dex Showdown paste.",
|
|
17
|
+
exportFailedTitle: "Pokemon export failed",
|
|
18
|
+
clipboardUnavailable: "Clipboard access is unavailable in this environment.",
|
|
19
|
+
chooseStarter: "Choose a regional starter",
|
|
20
|
+
movePrompt: (pokemon) => `${pokemon} wants to learn\na new move`,
|
|
21
|
+
moveDescription: "Choose a move to forget:",
|
|
22
|
+
travel: "Travel",
|
|
23
|
+
chooseEvolution: "Choose an evolution",
|
|
24
|
+
evolutionPrompt: (pokemon) => `${pokemon} is evolving!`,
|
|
25
|
+
regionComplete: (region) => `You've completed ${region}!`,
|
|
26
|
+
allRegionsComplete: "You've completed all nine regions! Keep exploring your unlocked locations.",
|
|
27
|
+
chooseNextRegion: "Choose your next region.",
|
|
28
|
+
dismiss: "Dismiss",
|
|
29
|
+
location: "Location",
|
|
30
|
+
nextLocation: "Next location",
|
|
31
|
+
unknown: "Unknown",
|
|
32
|
+
encounter: ({ genderSymbol, level, name, shiny }) => `${shiny ? "✨ " : ""}Wild ${name} ${genderSymbol} Lv.${level}`,
|
|
33
|
+
catch: "Catch",
|
|
34
|
+
run: "Run",
|
|
35
|
+
loadingSprite: "Loading sprite...",
|
|
36
|
+
spriteUnavailable: "Sprite unavailable offline",
|
|
37
|
+
queueCounts: (decisions, encounters) => `Pending: ${decisions} decision${decisions === 1 ? "" : "s"} · ${encounters} encounter${encounters === 1 ? "" : "s"}`,
|
|
38
|
+
};
|
|
39
|
+
const spanish = {
|
|
40
|
+
...english,
|
|
41
|
+
title: "PokéCode",
|
|
42
|
+
locationsCommand: "Ubicaciones Pokémon",
|
|
43
|
+
pcCommand: "PC Pokémon",
|
|
44
|
+
dexCommand: "Pokédex",
|
|
45
|
+
exportCommand: "Exportar Pokémon",
|
|
46
|
+
commandGroup: "PokéCode",
|
|
47
|
+
locationsDialog: "Ubicaciones Pokémon",
|
|
48
|
+
noLocationPokemon: "No hay Pokémon catalogados aquí.",
|
|
49
|
+
dexDialog: "Pokédex Nacional",
|
|
50
|
+
selectParty: (count) => `Selecciona el equipo (${count}/6)`,
|
|
51
|
+
confirmParty: "Confirmar equipo",
|
|
52
|
+
exportInactiveTitle: "Exportar Pokémon",
|
|
53
|
+
exportInactiveMessage: "Elige un inicial antes de exportar un equipo.",
|
|
54
|
+
exportTitle: "Exportar Pokémon",
|
|
55
|
+
exportSuccessMessage: "Equipo copiado como formato de Showdown Nacional Dex de Gen 9.",
|
|
56
|
+
exportFailedTitle: "Error al exportar Pokémon",
|
|
57
|
+
clipboardUnavailable: "El portapapeles no está disponible en este entorno.",
|
|
58
|
+
chooseStarter: "Elige un inicial regional",
|
|
59
|
+
movePrompt: (pokemon) => `${pokemon} quiere aprender\nun nuevo movimiento`,
|
|
60
|
+
moveDescription: "Elige un movimiento que olvidar:",
|
|
61
|
+
travel: "Viajar",
|
|
62
|
+
chooseEvolution: "Elige una evolución",
|
|
63
|
+
evolutionPrompt: (pokemon) => `¡${pokemon} está evolucionando!`,
|
|
64
|
+
regionComplete: (region) => `¡Has completado ${region}!`,
|
|
65
|
+
allRegionsComplete: "¡Has completado las nueve regiones! Sigue explorando las ubicaciones desbloqueadas.",
|
|
66
|
+
chooseNextRegion: "Elige tu próxima región.",
|
|
67
|
+
dismiss: "Cerrar",
|
|
68
|
+
location: "Ubicación",
|
|
69
|
+
nextLocation: "Siguiente ubicación",
|
|
70
|
+
unknown: "Desconocido",
|
|
71
|
+
encounter: ({ genderSymbol, level, name, shiny }) => `${shiny ? "✨ " : ""}${name} salvaje ${genderSymbol} Nv.${level}`,
|
|
72
|
+
catch: "Capturar",
|
|
73
|
+
run: "Huir",
|
|
74
|
+
loadingSprite: "Cargando sprite...",
|
|
75
|
+
spriteUnavailable: "Sprite no disponible sin conexión",
|
|
76
|
+
queueCounts: (decisions, encounters) => `Pendientes: ${decisions} ${decisions === 1 ? "decisión" : "decisiones"} · ${encounters} encuentro${encounters === 1 ? "" : "s"}`,
|
|
77
|
+
};
|
|
78
|
+
export function uiCopy(language) {
|
|
79
|
+
return language === "es" ? spanish : english;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=ui-copy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-copy.js","sourceRoot":"","sources":["../../../src/adapters/presentation/ui-copy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-team.d.ts","sourceRoot":"","sources":["../../../src/adapters/showdown/format-team.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAMpE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAE5E"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { localizedSpeciesName } from "../../domain/content/catalog.js";
|
|
2
|
+
import { regionalFormsCatalog } from "../../domain/content/catalogs/regional-forms-catalog.js";
|
|
3
|
+
const showdownNameBySpeciesId = new Map(regionalFormsCatalog.map((form) => [form.id, form.showdownName]));
|
|
4
|
+
export function formatShowdownTeam(party) {
|
|
5
|
+
return party.map(formatPokemon).join("\n\n");
|
|
6
|
+
}
|
|
7
|
+
function formatPokemon(pokemon) {
|
|
8
|
+
const ivs = pokemon.ivs;
|
|
9
|
+
const speciesName = localizedSpeciesName(pokemon.speciesId);
|
|
10
|
+
const showdownName = showdownNameBySpeciesId.get(pokemon.speciesId) ?? speciesName;
|
|
11
|
+
const name = pokemon.name === speciesName ? showdownName : `${pokemon.name} (${showdownName})`;
|
|
12
|
+
return [
|
|
13
|
+
`${name}${pokemon.shiny ? " (Shiny)" : ""}`,
|
|
14
|
+
`Ability: ${pokemon.ability}`,
|
|
15
|
+
`Level: ${pokemon.level}`,
|
|
16
|
+
`Shiny: ${pokemon.shiny ? "Yes" : "No"}`,
|
|
17
|
+
"EVs: 0 HP / 0 Atk / 0 Def / 0 SpA / 0 SpD / 0 Spe",
|
|
18
|
+
`IVs: ${ivs.hp} HP / ${ivs.attack} Atk / ${ivs.defense} Def / ${ivs.specialAttack} SpA / ${ivs.specialDefense} SpD / ${ivs.speed} Spe`,
|
|
19
|
+
`${pokemon.nature} Nature`,
|
|
20
|
+
...pokemon.moves.map((move) => `- ${move.name}`),
|
|
21
|
+
].join("\n");
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=format-team.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-team.js","sourceRoot":"","sources":["../../../src/adapters/showdown/format-team.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yDAAyD,CAAA;AAG9F,MAAM,uBAAuB,GAAgC,IAAI,GAAG,CAClE,oBAAoB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CACjE,CAAA;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAiC;IAClE,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC9C,CAAC;AAED,SAAS,aAAa,CAAC,OAAwB;IAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;IACvB,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC3D,MAAM,YAAY,GAAG,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,WAAW,CAAA;IAClF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,YAAY,GAAG,CAAA;IAC9F,OAAO;QACL,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3C,YAAY,OAAO,CAAC,OAAO,EAAE;QAC7B,UAAU,OAAO,CAAC,KAAK,EAAE;QACzB,UAAU,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;QACxC,mDAAmD;QACnD,QAAQ,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,GAAG,CAAC,aAAa,UAAU,GAAG,CAAC,cAAc,UAAU,GAAG,CAAC,KAAK,MAAM;QACtI,GAAG,OAAO,CAAC,MAAM,SAAS;QAC1B,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;KACjD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SpriteInput, SpriteResolution } from "./contracts.js";
|
|
2
|
+
export type { SpriteResolution } from "./contracts.js";
|
|
3
|
+
export type SpriteCache = {
|
|
4
|
+
resolve(input: SpriteInput): Promise<SpriteResolution>;
|
|
5
|
+
};
|
|
6
|
+
type SpriteCacheDependencies = {
|
|
7
|
+
readonly cacheDirectory: string;
|
|
8
|
+
readonly fetch: typeof fetch;
|
|
9
|
+
};
|
|
10
|
+
export declare function globalSpriteCacheDirectory(environment?: NodeJS.ProcessEnv): string;
|
|
11
|
+
export declare function createSpriteCache(dependencies: SpriteCacheDependencies): SpriteCache;
|
|
12
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/adapters/sprites/cache.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEnE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;CACvD,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,OAAO,KAAK,CAAA;CAC7B,CAAA;AAED,wBAAgB,0BAA0B,CAAC,WAAW,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAG/F;AAED,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,uBAAuB,GAAG,WAAW,CAiBpF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { existsSync, mkdirSync, renameSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { homedir } from "node:os";
|
|
4
|
+
import { dirname, join } from "node:path";
|
|
5
|
+
import { spriteSourcesForSpecies } from "../../domain/content/sprites.js";
|
|
6
|
+
export function globalSpriteCacheDirectory(environment = process.env) {
|
|
7
|
+
const { XDG_CACHE_HOME: cacheHome, HOME: home } = environment;
|
|
8
|
+
return join(cacheHome ?? join(home ?? homedir(), ".cache"), "pokecode", "sprites");
|
|
9
|
+
}
|
|
10
|
+
export function createSpriteCache(dependencies) {
|
|
11
|
+
const resolve = async (input) => {
|
|
12
|
+
for (const source of spriteSourcesForSpecies(input.speciesId, input.shiny, input.gender)) {
|
|
13
|
+
const destination = cachePathFor(source, dependencies.cacheDirectory);
|
|
14
|
+
if (existsSync(destination))
|
|
15
|
+
return { kind: "cached", source: destination };
|
|
16
|
+
const response = await downloadSprite(source, dependencies.fetch);
|
|
17
|
+
if (response === null)
|
|
18
|
+
continue;
|
|
19
|
+
mkdirSync(dirname(destination), { recursive: true });
|
|
20
|
+
const temporary = `${destination}.${crypto.randomUUID()}.tmp`;
|
|
21
|
+
writeFileSync(temporary, new Uint8Array(await response.arrayBuffer()));
|
|
22
|
+
renameSync(temporary, destination);
|
|
23
|
+
return { kind: "cached", source: destination };
|
|
24
|
+
}
|
|
25
|
+
return { kind: "placeholder" };
|
|
26
|
+
};
|
|
27
|
+
return { resolve };
|
|
28
|
+
}
|
|
29
|
+
function cachePathFor(source, cacheDirectory) {
|
|
30
|
+
return join(cacheDirectory, `${createHash("sha256").update(source).digest("hex")}.png`);
|
|
31
|
+
}
|
|
32
|
+
async function downloadSprite(source, request) {
|
|
33
|
+
try {
|
|
34
|
+
const response = await request(source, { signal: AbortSignal.timeout(5_000) });
|
|
35
|
+
return response.ok ? response : null;
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
if (error instanceof TypeError || error instanceof DOMException)
|
|
39
|
+
return null;
|
|
40
|
+
throw error;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/adapters/sprites/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AAczE,MAAM,UAAU,0BAA0B,CAAC,cAAiC,OAAO,CAAC,GAAG;IACrF,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,WAAW,CAAA;IAC7D,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;AACpF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,YAAqC;IACrE,MAAM,OAAO,GAAG,KAAK,EAAE,KAAkB,EAA6B,EAAE;QACtE,KAAK,MAAM,MAAM,IAAI,uBAAuB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACzF,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,CAAA;YACrE,IAAI,UAAU,CAAC,WAAW,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;YAC3E,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAAA;YACjE,IAAI,QAAQ,KAAK,IAAI;gBAAE,SAAQ;YAC/B,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACpD,MAAM,SAAS,GAAG,GAAG,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,CAAA;YAC7D,aAAa,CAAC,SAAS,EAAE,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;YACtE,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;YAClC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;QAChD,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAA;IAChC,CAAC,CAAA;IAED,OAAO,EAAE,OAAO,EAAE,CAAA;AACpB,CAAC;AAED,SAAS,YAAY,CAAC,MAAc,EAAE,cAAsB;IAC1D,OAAO,IAAI,CAAC,cAAc,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;AACzF,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,OAAqB;IACjE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC9E,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,SAAS,IAAI,KAAK,YAAY,YAAY;YAAE,OAAO,IAAI,CAAA;QAC5E,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const spriteInputSchema: z.ZodObject<{
|
|
3
|
+
speciesId: z.ZodString;
|
|
4
|
+
shiny: z.ZodBoolean;
|
|
5
|
+
gender: z.ZodEnum<{
|
|
6
|
+
male: "male";
|
|
7
|
+
female: "female";
|
|
8
|
+
genderless: "genderless";
|
|
9
|
+
}>;
|
|
10
|
+
}, z.core.$strip>;
|
|
11
|
+
export type SpriteInput = z.infer<typeof spriteInputSchema>;
|
|
12
|
+
export type SpriteResolver = (speciesId: string, shiny: boolean, gender: SpriteInput["gender"]) => Promise<SpriteResolution>;
|
|
13
|
+
export declare const spriteResolutionSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
14
|
+
kind: z.ZodLiteral<"cached">;
|
|
15
|
+
source: z.ZodString;
|
|
16
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
17
|
+
kind: z.ZodLiteral<"placeholder">;
|
|
18
|
+
}, z.core.$strip>]>;
|
|
19
|
+
export type SpriteResolution = z.infer<typeof spriteResolutionSchema>;
|
|
20
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/adapters/sprites/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,iBAAiB;;;;;;;;iBAI5B,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,MAAM,MAAM,cAAc,GAAG,CAC3B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,KAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAA;AAE9B,eAAO,MAAM,sBAAsB;;;;;mBAGjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { pokemonGenderSchema } from "../../domain/pokemon/types.js";
|
|
3
|
+
export const spriteInputSchema = z.object({
|
|
4
|
+
speciesId: z.string().min(1),
|
|
5
|
+
shiny: z.boolean(),
|
|
6
|
+
gender: pokemonGenderSchema,
|
|
7
|
+
});
|
|
8
|
+
export const spriteResolutionSchema = z.union([
|
|
9
|
+
z.object({ kind: z.literal("cached"), source: z.string().min(1) }),
|
|
10
|
+
z.object({ kind: z.literal("placeholder") }),
|
|
11
|
+
]);
|
|
12
|
+
//# sourceMappingURL=contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/adapters/sprites/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAClB,MAAM,EAAE,mBAAmB;CAC5B,CAAC,CAAA;AASF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC5C,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;CAC7C,CAAC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type GameState, type PokemonCollection, type PokemonDex } from "../../application/contracts/game.js";
|
|
2
|
+
import type { GameTransactionRunner } from "../../application/ports/game-transaction.js";
|
|
3
|
+
import type { StarterCreationCommand, StarterIdGenerator } from "../../application/ports/starter-selection-store.js";
|
|
4
|
+
export type GameRepository = {
|
|
5
|
+
readonly transactions: GameTransactionRunner;
|
|
6
|
+
readState(locationUnlockThreshold?: number): GameState;
|
|
7
|
+
createStarterAtomically(selection: StarterCreationCommand, createIds: StarterIdGenerator): boolean;
|
|
8
|
+
collection(): PokemonCollection;
|
|
9
|
+
dex(): PokemonDex;
|
|
10
|
+
close(): void;
|
|
11
|
+
};
|
|
12
|
+
export declare function globalDatabasePath(environment?: NodeJS.ProcessEnv): string;
|
|
13
|
+
export declare function openGameRepository(path?: string): GameRepository;
|
|
14
|
+
//# sourceMappingURL=game-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-repository.d.ts","sourceRoot":"","sources":["../../../src/adapters/sqlite/game-repository.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,SAAS,EAEd,KAAK,iBAAiB,EACtB,KAAK,UAAU,EAChB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACxF,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,oDAAoD,CAAA;AAa3D,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAA;IAC5C,SAAS,CAAC,uBAAuB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtD,uBAAuB,CAAC,SAAS,EAAE,sBAAsB,EAAE,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAA;IAClG,UAAU,IAAI,iBAAiB,CAAA;IAC/B,GAAG,IAAI,UAAU,CAAA;IACjB,KAAK,IAAI,IAAI,CAAA;CACd,CAAA;AAED,wBAAgB,kBAAkB,CAAC,WAAW,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAKvF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,SAAuB,GAAG,cAAc,CA+B9E"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Database } from "bun:sqlite";
|
|
2
|
+
import { mkdirSync } from "node:fs";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
import { gameplayConfigSchema, } from "../../application/contracts/game.js";
|
|
5
|
+
import { createSqliteGameTransactionRunner } from "./game-transaction.js";
|
|
6
|
+
import { initializeSqliteDatabase } from "./initialize-database.js";
|
|
7
|
+
import { createSqliteCollectionQueries, trainerIdForQueries } from "./queries/collection.js";
|
|
8
|
+
import { createSqliteGameStateQuery } from "./queries/game-state.js";
|
|
9
|
+
import { initializeGameSchema } from "./schema.js";
|
|
10
|
+
import { createSqliteStarterSelectionStore } from "./starter-selection-store.js";
|
|
11
|
+
const environmentKeys = {
|
|
12
|
+
dataHome: "XDG_DATA_HOME",
|
|
13
|
+
home: "HOME",
|
|
14
|
+
};
|
|
15
|
+
export function globalDatabasePath(environment = process.env) {
|
|
16
|
+
const dataHome = environment[environmentKeys.dataHome] ??
|
|
17
|
+
join(environment[environmentKeys.home] ?? "~", ".local", "share");
|
|
18
|
+
return join(dataHome, "pokecode", "game.sqlite");
|
|
19
|
+
}
|
|
20
|
+
export function openGameRepository(path = globalDatabasePath()) {
|
|
21
|
+
if (path !== ":memory:")
|
|
22
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
23
|
+
const database = new Database(path, { create: true, strict: true });
|
|
24
|
+
initializeSqliteDatabase(database, () => {
|
|
25
|
+
database.run("PRAGMA foreign_keys = ON");
|
|
26
|
+
initializeGameSchema(database);
|
|
27
|
+
database.run("PRAGMA journal_mode = WAL");
|
|
28
|
+
});
|
|
29
|
+
const queryState = createSqliteGameStateQuery(database);
|
|
30
|
+
const readState = (locationUnlockThreshold = gameplayConfigSchema.parse({}).locationUnlockTokens) => queryState(locationUnlockThreshold);
|
|
31
|
+
const starterSelectionStore = createSqliteStarterSelectionStore(database, readState);
|
|
32
|
+
const collectionQueries = createSqliteCollectionQueries(database);
|
|
33
|
+
const collection = () => {
|
|
34
|
+
const trainerId = trainerIdForQueries(database);
|
|
35
|
+
return trainerId === null ? { pokemon: [] } : collectionQueries.list(trainerId);
|
|
36
|
+
};
|
|
37
|
+
const dex = () => collectionQueries.dex(trainerIdForQueries(database));
|
|
38
|
+
const transactions = createSqliteGameTransactionRunner(database);
|
|
39
|
+
return {
|
|
40
|
+
transactions,
|
|
41
|
+
readState,
|
|
42
|
+
createStarterAtomically: starterSelectionStore.createStarterAtomically,
|
|
43
|
+
collection,
|
|
44
|
+
dex,
|
|
45
|
+
close: () => database.close(true),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=game-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-repository.js","sourceRoot":"","sources":["../../../src/adapters/sqlite/game-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { GameTransactionRunner, GameTransactionStores } from "../../application/ports/game-transaction.js";
|
|
3
|
+
export declare function createSqliteGameTransactionStores(database: Database): GameTransactionStores;
|
|
4
|
+
export declare function createSqliteGameTransactionRunner(database: Database): GameTransactionRunner;
|
|
5
|
+
//# sourceMappingURL=game-transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-transaction.d.ts","sourceRoot":"","sources":["../../../src/adapters/sqlite/game-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,6CAA6C,CAAA;AAQpD,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,GAAG,qBAAqB,CAoB3F;AAED,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,GAAG,qBAAqB,CAS3F"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { createChoiceTransactionStore } from "./transaction-stores/choices.js";
|
|
2
|
+
import { createEncounterTransactionStore } from "./transaction-stores/encounters.js";
|
|
3
|
+
import { createExplorationTransactionStore } from "./transaction-stores/exploration.js";
|
|
4
|
+
import { createPokemonTransactionStore } from "./transaction-stores/pokemon.js";
|
|
5
|
+
import { createReceiptStore } from "./transaction-stores/receipts.js";
|
|
6
|
+
import { createTrainerTransactionStore } from "./transaction-stores/trainers.js";
|
|
7
|
+
export function createSqliteGameTransactionStores(database) {
|
|
8
|
+
const choices = createChoiceTransactionStore(database);
|
|
9
|
+
const pokemon = createPokemonTransactionStore(database);
|
|
10
|
+
const exploration = createExplorationTransactionStore(database);
|
|
11
|
+
const encounters = createEncounterTransactionStore(database);
|
|
12
|
+
return {
|
|
13
|
+
receipts: createReceiptStore(database),
|
|
14
|
+
trainers: createTrainerTransactionStore(database),
|
|
15
|
+
choices: choices.usage,
|
|
16
|
+
pokemon: pokemon.usage,
|
|
17
|
+
exploration: exploration.usage,
|
|
18
|
+
encounters: encounters.usage,
|
|
19
|
+
commands: {
|
|
20
|
+
choices: choices.commands,
|
|
21
|
+
pokemon: pokemon.commands,
|
|
22
|
+
exploration: exploration.commands,
|
|
23
|
+
encounters: encounters.commands,
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export function createSqliteGameTransactionRunner(database) {
|
|
28
|
+
return {
|
|
29
|
+
withTransaction: (work) => {
|
|
30
|
+
const transaction = database.transaction(() => work(createSqliteGameTransactionStores(database)));
|
|
31
|
+
return transaction.immediate();
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=game-transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-transaction.js","sourceRoot":"","sources":["../../../src/adapters/sqlite/game-transaction.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAA;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAA;AACpF,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAA;AACvF,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAA;AAEhF,MAAM,UAAU,iCAAiC,CAAC,QAAkB;IAClE,MAAM,OAAO,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAA;IACtD,MAAM,OAAO,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAA;IACvD,MAAM,WAAW,GAAG,iCAAiC,CAAC,QAAQ,CAAC,CAAA;IAC/D,MAAM,UAAU,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAA;IAE5D,OAAO;QACL,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC;QACtC,QAAQ,EAAE,6BAA6B,CAAC,QAAQ,CAAC;QACjD,OAAO,EAAE,OAAO,CAAC,KAAK;QACtB,OAAO,EAAE,OAAO,CAAC,KAAK;QACtB,WAAW,EAAE,WAAW,CAAC,KAAK;QAC9B,UAAU,EAAE,UAAU,CAAC,KAAK;QAC5B,QAAQ,EAAE;YACR,OAAO,EAAE,OAAO,CAAC,QAAQ;YACzB,OAAO,EAAE,OAAO,CAAC,QAAQ;YACzB,WAAW,EAAE,WAAW,CAAC,QAAQ;YACjC,UAAU,EAAE,UAAU,CAAC,QAAQ;SAChC;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,QAAkB;IAClE,OAAO;QACL,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,CAC5C,IAAI,CAAC,iCAAiC,CAAC,QAAQ,CAAC,CAAC,CAClD,CAAA;YACD,OAAO,WAAW,CAAC,SAAS,EAAE,CAAA;QAChC,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialize-database.d.ts","sourceRoot":"","sources":["../../../src/adapters/sqlite/initialize-database.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CAC7B,CAAA;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,IAAI,GAAG,IAAI,CAcjG"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function initializeSqliteDatabase(database, initialize) {
|
|
2
|
+
try {
|
|
3
|
+
initialize();
|
|
4
|
+
}
|
|
5
|
+
catch (initializationFailure) {
|
|
6
|
+
try {
|
|
7
|
+
database.close(true);
|
|
8
|
+
}
|
|
9
|
+
catch (closeFailure) {
|
|
10
|
+
throw new AggregateError([initializationFailure, closeFailure], "SQLite initialization and cleanup failed.");
|
|
11
|
+
}
|
|
12
|
+
throw initializationFailure;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=initialize-database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialize-database.js","sourceRoot":"","sources":["../../../src/adapters/sqlite/initialize-database.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,wBAAwB,CAAC,QAA0B,EAAE,UAAsB;IACzF,IAAI,CAAC;QACH,UAAU,EAAE,CAAA;IACd,CAAC;IAAC,OAAO,qBAAqB,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;QAAC,OAAO,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,cAAc,CACtB,CAAC,qBAAqB,EAAE,YAAY,CAAC,EACrC,2CAA2C,CAC5C,CAAA;QACH,CAAC;QACD,MAAM,qBAAqB,CAAA;IAC7B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { PokemonInstance } from "../../domain/pokemon/model.js";
|
|
3
|
+
import type { Move } from "../../domain/pokemon/types.js";
|
|
4
|
+
export type PokemonRow = {
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly speciesId: string;
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly gender: string;
|
|
9
|
+
readonly level: number;
|
|
10
|
+
readonly experience: number;
|
|
11
|
+
readonly ability: string;
|
|
12
|
+
readonly nature: string;
|
|
13
|
+
readonly shiny: number;
|
|
14
|
+
readonly hpIv: number;
|
|
15
|
+
readonly attackIv: number;
|
|
16
|
+
readonly defenseIv: number;
|
|
17
|
+
readonly specialAttackIv: number;
|
|
18
|
+
readonly specialDefenseIv: number;
|
|
19
|
+
readonly speedIv: number;
|
|
20
|
+
};
|
|
21
|
+
export declare function toPokemon(row: PokemonRow, database: Database): PokemonInstance;
|
|
22
|
+
export declare function pokemonFromRow(row: PokemonRow, moves: readonly Move[]): PokemonInstance;
|
|
23
|
+
//# sourceMappingURL=pokemon-mapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pokemon-mapper.d.ts","sourceRoot":"","sources":["../../../src/adapters/sqlite/pokemon-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AAIzD,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,CAQ9E;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,eAAe,CA8BvF"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { pokemonGenderSchema } from "../../domain/pokemon/types.js";
|
|
2
|
+
import { pokemonIdSchema, speciesIdSchema } from "../../domain/shared/identifiers.js";
|
|
3
|
+
export function toPokemon(row, database) {
|
|
4
|
+
const moves = database
|
|
5
|
+
.query("SELECT position, move_id AS id, move_name AS name FROM pokemon_moves WHERE pokemon_id = ?1 ORDER BY position")
|
|
6
|
+
.all(row.id)
|
|
7
|
+
.map(({ id, name }) => ({ id, name }));
|
|
8
|
+
return pokemonFromRow(row, moves);
|
|
9
|
+
}
|
|
10
|
+
export function pokemonFromRow(row, moves) {
|
|
11
|
+
return {
|
|
12
|
+
id: pokemonIdSchema.parse(row.id),
|
|
13
|
+
speciesId: speciesIdSchema.parse(row.speciesId),
|
|
14
|
+
name: row.name,
|
|
15
|
+
gender: pokemonGenderSchema.parse(row.gender),
|
|
16
|
+
level: row.level,
|
|
17
|
+
experience: row.experience,
|
|
18
|
+
ability: row.ability,
|
|
19
|
+
nature: row.nature,
|
|
20
|
+
shiny: row.shiny === 1,
|
|
21
|
+
ivs: {
|
|
22
|
+
hp: row.hpIv,
|
|
23
|
+
attack: row.attackIv,
|
|
24
|
+
defense: row.defenseIv,
|
|
25
|
+
specialAttack: row.specialAttackIv,
|
|
26
|
+
specialDefense: row.specialDefenseIv,
|
|
27
|
+
speed: row.speedIv,
|
|
28
|
+
},
|
|
29
|
+
evs: {
|
|
30
|
+
hp: 0,
|
|
31
|
+
attack: 0,
|
|
32
|
+
defense: 0,
|
|
33
|
+
specialAttack: 0,
|
|
34
|
+
specialDefense: 0,
|
|
35
|
+
speed: 0,
|
|
36
|
+
},
|
|
37
|
+
// SQL rows can include `position`; the application model exposes only Move fields.
|
|
38
|
+
moves: moves.map(({ id, name }) => ({ id, name })),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=pokemon-mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pokemon-mapper.js","sourceRoot":"","sources":["../../../src/adapters/sqlite/pokemon-mapper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAoBrF,MAAM,UAAU,SAAS,CAAC,GAAe,EAAE,QAAkB;IAC3D,MAAM,KAAK,GAAG,QAAQ;SACnB,KAAK,CACJ,8GAA8G,CAC/G;SACA,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;SACX,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACxC,OAAO,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAe,EAAE,KAAsB;IACpE,OAAO;QACL,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;QAC/C,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;QAC7C,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,CAAC;QACtB,GAAG,EAAE;YACH,EAAE,EAAE,GAAG,CAAC,IAAI;YACZ,MAAM,EAAE,GAAG,CAAC,QAAQ;YACpB,OAAO,EAAE,GAAG,CAAC,SAAS;YACtB,aAAa,EAAE,GAAG,CAAC,eAAe;YAClC,cAAc,EAAE,GAAG,CAAC,gBAAgB;YACpC,KAAK,EAAE,GAAG,CAAC,OAAO;SACnB;QACD,GAAG,EAAE;YACH,EAAE,EAAE,CAAC;YACL,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,aAAa,EAAE,CAAC;YAChB,cAAc,EAAE,CAAC;YACjB,KAAK,EAAE,CAAC;SACT;QACD,mFAAmF;QACnF,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;KACnD,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { PokemonCollection, PokemonDex } from "../../../application/contracts/game.js";
|
|
3
|
+
export declare function createSqliteCollectionQueries(database: Database): {
|
|
4
|
+
list: (trainerId: string) => PokemonCollection;
|
|
5
|
+
dex: (trainerId: string | null) => PokemonDex;
|
|
6
|
+
};
|
|
7
|
+
export declare function trainerIdForQueries(database: Database): string | null;
|
|
8
|
+
//# sourceMappingURL=collection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../../../src/adapters/sqlite/queries/collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAA;AAK3F,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,QAAQ;sBACrC,MAAM,KAAG,iBAAiB;qBAuB3B,MAAM,GAAG,IAAI,KAAG,UAAU;EAwCnD;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAIrE"}
|