@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.
Files changed (463) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +331 -2
  3. package/dist/adapters/opencode/rpc/contract.d.ts +813 -0
  4. package/dist/adapters/opencode/rpc/contract.d.ts.map +1 -0
  5. package/dist/adapters/opencode/rpc/contract.js +254 -0
  6. package/dist/adapters/opencode/rpc/contract.js.map +1 -0
  7. package/dist/adapters/opencode/server/handlers.d.ts +20 -0
  8. package/dist/adapters/opencode/server/handlers.d.ts.map +1 -0
  9. package/dist/adapters/opencode/server/handlers.js +41 -0
  10. package/dist/adapters/opencode/server/handlers.js.map +1 -0
  11. package/dist/adapters/opencode/server/plugin.d.ts +19 -0
  12. package/dist/adapters/opencode/server/plugin.d.ts.map +1 -0
  13. package/dist/adapters/opencode/server/plugin.js +101 -0
  14. package/dist/adapters/opencode/server/plugin.js.map +1 -0
  15. package/dist/adapters/opencode/server/usage-reconciliation.d.ts +24 -0
  16. package/dist/adapters/opencode/server/usage-reconciliation.d.ts.map +1 -0
  17. package/dist/adapters/opencode/server/usage-reconciliation.js +60 -0
  18. package/dist/adapters/opencode/server/usage-reconciliation.js.map +1 -0
  19. package/dist/adapters/opencode/tui/choices/cards.d.ts +32 -0
  20. package/dist/adapters/opencode/tui/choices/cards.d.ts.map +1 -0
  21. package/dist/adapters/opencode/tui/choices/cards.jsx +114 -0
  22. package/dist/adapters/opencode/tui/choices/cards.jsx.map +1 -0
  23. package/dist/adapters/opencode/tui/choices/encounter.d.ts +13 -0
  24. package/dist/adapters/opencode/tui/choices/encounter.d.ts.map +1 -0
  25. package/dist/adapters/opencode/tui/choices/encounter.jsx +30 -0
  26. package/dist/adapters/opencode/tui/choices/encounter.jsx.map +1 -0
  27. package/dist/adapters/opencode/tui/client.d.ts +164 -0
  28. package/dist/adapters/opencode/tui/client.d.ts.map +1 -0
  29. package/dist/adapters/opencode/tui/client.js +30 -0
  30. package/dist/adapters/opencode/tui/client.js.map +1 -0
  31. package/dist/adapters/opencode/tui/commands/commands.d.ts +21 -0
  32. package/dist/adapters/opencode/tui/commands/commands.d.ts.map +1 -0
  33. package/dist/adapters/opencode/tui/commands/commands.jsx +78 -0
  34. package/dist/adapters/opencode/tui/commands/commands.jsx.map +1 -0
  35. package/dist/adapters/opencode/tui/components/action-button.d.ts +12 -0
  36. package/dist/adapters/opencode/tui/components/action-button.d.ts.map +1 -0
  37. package/dist/adapters/opencode/tui/components/action-button.jsx +13 -0
  38. package/dist/adapters/opencode/tui/components/action-button.jsx.map +1 -0
  39. package/dist/adapters/opencode/tui/components/move-list.d.ts +13 -0
  40. package/dist/adapters/opencode/tui/components/move-list.d.ts.map +1 -0
  41. package/dist/adapters/opencode/tui/components/move-list.jsx +91 -0
  42. package/dist/adapters/opencode/tui/components/move-list.jsx.map +1 -0
  43. package/dist/adapters/opencode/tui/components/owner.d.ts +3 -0
  44. package/dist/adapters/opencode/tui/components/owner.d.ts.map +1 -0
  45. package/dist/adapters/opencode/tui/components/owner.js +16 -0
  46. package/dist/adapters/opencode/tui/components/owner.js.map +1 -0
  47. package/dist/adapters/opencode/tui/components/sprite.d.ts +13 -0
  48. package/dist/adapters/opencode/tui/components/sprite.d.ts.map +1 -0
  49. package/dist/adapters/opencode/tui/components/sprite.jsx +30 -0
  50. package/dist/adapters/opencode/tui/components/sprite.jsx.map +1 -0
  51. package/dist/adapters/opencode/tui/controls/native.d.ts +2 -0
  52. package/dist/adapters/opencode/tui/controls/native.d.ts.map +1 -0
  53. package/dist/adapters/opencode/tui/controls/native.js +22 -0
  54. package/dist/adapters/opencode/tui/controls/native.js.map +1 -0
  55. package/dist/adapters/opencode/tui/dex/actions.d.ts +12 -0
  56. package/dist/adapters/opencode/tui/dex/actions.d.ts.map +1 -0
  57. package/dist/adapters/opencode/tui/dex/actions.jsx +15 -0
  58. package/dist/adapters/opencode/tui/dex/actions.jsx.map +1 -0
  59. package/dist/adapters/opencode/tui/dex/dialog.d.ts +12 -0
  60. package/dist/adapters/opencode/tui/dex/dialog.d.ts.map +1 -0
  61. package/dist/adapters/opencode/tui/dex/dialog.jsx +79 -0
  62. package/dist/adapters/opencode/tui/dex/dialog.jsx.map +1 -0
  63. package/dist/adapters/opencode/tui/export/actions.d.ts +14 -0
  64. package/dist/adapters/opencode/tui/export/actions.d.ts.map +1 -0
  65. package/dist/adapters/opencode/tui/export/actions.js +25 -0
  66. package/dist/adapters/opencode/tui/export/actions.js.map +1 -0
  67. package/dist/adapters/opencode/tui/export/presentation.d.ts +16 -0
  68. package/dist/adapters/opencode/tui/export/presentation.d.ts.map +1 -0
  69. package/dist/adapters/opencode/tui/export/presentation.js +15 -0
  70. package/dist/adapters/opencode/tui/export/presentation.js.map +1 -0
  71. package/dist/adapters/opencode/tui/pc/actions.d.ts +22 -0
  72. package/dist/adapters/opencode/tui/pc/actions.d.ts.map +1 -0
  73. package/dist/adapters/opencode/tui/pc/actions.jsx +47 -0
  74. package/dist/adapters/opencode/tui/pc/actions.jsx.map +1 -0
  75. package/dist/adapters/opencode/tui/pc/details.d.ts +10 -0
  76. package/dist/adapters/opencode/tui/pc/details.d.ts.map +1 -0
  77. package/dist/adapters/opencode/tui/pc/details.jsx +51 -0
  78. package/dist/adapters/opencode/tui/pc/details.jsx.map +1 -0
  79. package/dist/adapters/opencode/tui/pc/dialog.d.ts +19 -0
  80. package/dist/adapters/opencode/tui/pc/dialog.d.ts.map +1 -0
  81. package/dist/adapters/opencode/tui/pc/dialog.jsx +263 -0
  82. package/dist/adapters/opencode/tui/pc/dialog.jsx.map +1 -0
  83. package/dist/adapters/opencode/tui/plugin.d.ts +14 -0
  84. package/dist/adapters/opencode/tui/plugin.d.ts.map +1 -0
  85. package/dist/adapters/opencode/tui/plugin.jsx +103 -0
  86. package/dist/adapters/opencode/tui/plugin.jsx.map +1 -0
  87. package/dist/adapters/opencode/tui/sidebar/actions.d.ts +21 -0
  88. package/dist/adapters/opencode/tui/sidebar/actions.d.ts.map +1 -0
  89. package/dist/adapters/opencode/tui/sidebar/actions.js +54 -0
  90. package/dist/adapters/opencode/tui/sidebar/actions.js.map +1 -0
  91. package/dist/adapters/opencode/tui/sidebar/register.d.ts +30 -0
  92. package/dist/adapters/opencode/tui/sidebar/register.d.ts.map +1 -0
  93. package/dist/adapters/opencode/tui/sidebar/register.jsx +21 -0
  94. package/dist/adapters/opencode/tui/sidebar/register.jsx.map +1 -0
  95. package/dist/adapters/opencode/tui/sidebar/view.d.ts +43 -0
  96. package/dist/adapters/opencode/tui/sidebar/view.d.ts.map +1 -0
  97. package/dist/adapters/opencode/tui/sidebar/view.jsx +166 -0
  98. package/dist/adapters/opencode/tui/sidebar/view.jsx.map +1 -0
  99. package/dist/adapters/opencode/tui/state/cleanup.d.ts +8 -0
  100. package/dist/adapters/opencode/tui/state/cleanup.d.ts.map +1 -0
  101. package/dist/adapters/opencode/tui/state/cleanup.js +68 -0
  102. package/dist/adapters/opencode/tui/state/cleanup.js.map +1 -0
  103. package/dist/adapters/opencode/tui/state/coordinator.d.ts +122 -0
  104. package/dist/adapters/opencode/tui/state/coordinator.d.ts.map +1 -0
  105. package/dist/adapters/opencode/tui/state/coordinator.js +40 -0
  106. package/dist/adapters/opencode/tui/state/coordinator.js.map +1 -0
  107. package/dist/adapters/opencode/tui/state/setup-failure.d.ts +2 -0
  108. package/dist/adapters/opencode/tui/state/setup-failure.d.ts.map +1 -0
  109. package/dist/adapters/opencode/tui/state/setup-failure.js +10 -0
  110. package/dist/adapters/opencode/tui/state/setup-failure.js.map +1 -0
  111. package/dist/adapters/opencode/tui/travel/actions.d.ts +16 -0
  112. package/dist/adapters/opencode/tui/travel/actions.d.ts.map +1 -0
  113. package/dist/adapters/opencode/tui/travel/actions.jsx +31 -0
  114. package/dist/adapters/opencode/tui/travel/actions.jsx.map +1 -0
  115. package/dist/adapters/opencode/tui/travel/dialog.d.ts +29 -0
  116. package/dist/adapters/opencode/tui/travel/dialog.d.ts.map +1 -0
  117. package/dist/adapters/opencode/tui/travel/dialog.jsx +128 -0
  118. package/dist/adapters/opencode/tui/travel/dialog.jsx.map +1 -0
  119. package/dist/adapters/opencode/tui/travel/projection.d.ts +29 -0
  120. package/dist/adapters/opencode/tui/travel/projection.d.ts.map +1 -0
  121. package/dist/adapters/opencode/tui/travel/projection.js +44 -0
  122. package/dist/adapters/opencode/tui/travel/projection.js.map +1 -0
  123. package/dist/adapters/presentation/game-notifications.d.ts +13 -0
  124. package/dist/adapters/presentation/game-notifications.d.ts.map +1 -0
  125. package/dist/adapters/presentation/game-notifications.js +111 -0
  126. package/dist/adapters/presentation/game-notifications.js.map +1 -0
  127. package/dist/adapters/presentation/localization.d.ts +12 -0
  128. package/dist/adapters/presentation/localization.d.ts.map +1 -0
  129. package/dist/adapters/presentation/localization.js +65 -0
  130. package/dist/adapters/presentation/localization.js.map +1 -0
  131. package/dist/adapters/presentation/move-details.d.ts +11 -0
  132. package/dist/adapters/presentation/move-details.d.ts.map +1 -0
  133. package/dist/adapters/presentation/move-details.js +47 -0
  134. package/dist/adapters/presentation/move-details.js.map +1 -0
  135. package/dist/adapters/presentation/pc-copy.d.ts +31 -0
  136. package/dist/adapters/presentation/pc-copy.d.ts.map +1 -0
  137. package/dist/adapters/presentation/pc-copy.js +56 -0
  138. package/dist/adapters/presentation/pc-copy.js.map +1 -0
  139. package/dist/adapters/presentation/ui-copy.d.ts +49 -0
  140. package/dist/adapters/presentation/ui-copy.d.ts.map +1 -0
  141. package/dist/adapters/presentation/ui-copy.js +81 -0
  142. package/dist/adapters/presentation/ui-copy.js.map +1 -0
  143. package/dist/adapters/showdown/format-team.d.ts +3 -0
  144. package/dist/adapters/showdown/format-team.d.ts.map +1 -0
  145. package/dist/adapters/showdown/format-team.js +23 -0
  146. package/dist/adapters/showdown/format-team.js.map +1 -0
  147. package/dist/adapters/sprites/cache.d.ts +12 -0
  148. package/dist/adapters/sprites/cache.d.ts.map +1 -0
  149. package/dist/adapters/sprites/cache.js +43 -0
  150. package/dist/adapters/sprites/cache.js.map +1 -0
  151. package/dist/adapters/sprites/contracts.d.ts +20 -0
  152. package/dist/adapters/sprites/contracts.d.ts.map +1 -0
  153. package/dist/adapters/sprites/contracts.js +12 -0
  154. package/dist/adapters/sprites/contracts.js.map +1 -0
  155. package/dist/adapters/sqlite/game-repository.d.ts +14 -0
  156. package/dist/adapters/sqlite/game-repository.d.ts.map +1 -0
  157. package/dist/adapters/sqlite/game-repository.js +48 -0
  158. package/dist/adapters/sqlite/game-repository.js.map +1 -0
  159. package/dist/adapters/sqlite/game-transaction.d.ts +5 -0
  160. package/dist/adapters/sqlite/game-transaction.d.ts.map +1 -0
  161. package/dist/adapters/sqlite/game-transaction.js +35 -0
  162. package/dist/adapters/sqlite/game-transaction.js.map +1 -0
  163. package/dist/adapters/sqlite/initialize-database.d.ts +6 -0
  164. package/dist/adapters/sqlite/initialize-database.d.ts.map +1 -0
  165. package/dist/adapters/sqlite/initialize-database.js +15 -0
  166. package/dist/adapters/sqlite/initialize-database.js.map +1 -0
  167. package/dist/adapters/sqlite/pokemon-mapper.d.ts +23 -0
  168. package/dist/adapters/sqlite/pokemon-mapper.d.ts.map +1 -0
  169. package/dist/adapters/sqlite/pokemon-mapper.js +41 -0
  170. package/dist/adapters/sqlite/pokemon-mapper.js.map +1 -0
  171. package/dist/adapters/sqlite/queries/collection.d.ts +8 -0
  172. package/dist/adapters/sqlite/queries/collection.d.ts.map +1 -0
  173. package/dist/adapters/sqlite/queries/collection.js +58 -0
  174. package/dist/adapters/sqlite/queries/collection.js.map +1 -0
  175. package/dist/adapters/sqlite/queries/game-state.d.ts +4 -0
  176. package/dist/adapters/sqlite/queries/game-state.d.ts.map +1 -0
  177. package/dist/adapters/sqlite/queries/game-state.js +165 -0
  178. package/dist/adapters/sqlite/queries/game-state.js.map +1 -0
  179. package/dist/adapters/sqlite/schema.d.ts +4 -0
  180. package/dist/adapters/sqlite/schema.d.ts.map +1 -0
  181. package/dist/adapters/sqlite/schema.js +284 -0
  182. package/dist/adapters/sqlite/schema.js.map +1 -0
  183. package/dist/adapters/sqlite/starter-selection-store.d.ts +4 -0
  184. package/dist/adapters/sqlite/starter-selection-store.d.ts.map +1 -0
  185. package/dist/adapters/sqlite/starter-selection-store.js +55 -0
  186. package/dist/adapters/sqlite/starter-selection-store.js.map +1 -0
  187. package/dist/adapters/sqlite/transaction-stores/choices.d.ts +7 -0
  188. package/dist/adapters/sqlite/transaction-stores/choices.d.ts.map +1 -0
  189. package/dist/adapters/sqlite/transaction-stores/choices.js +54 -0
  190. package/dist/adapters/sqlite/transaction-stores/choices.js.map +1 -0
  191. package/dist/adapters/sqlite/transaction-stores/encounters.d.ts +7 -0
  192. package/dist/adapters/sqlite/transaction-stores/encounters.d.ts.map +1 -0
  193. package/dist/adapters/sqlite/transaction-stores/encounters.js +59 -0
  194. package/dist/adapters/sqlite/transaction-stores/encounters.js.map +1 -0
  195. package/dist/adapters/sqlite/transaction-stores/exploration.d.ts +7 -0
  196. package/dist/adapters/sqlite/transaction-stores/exploration.d.ts.map +1 -0
  197. package/dist/adapters/sqlite/transaction-stores/exploration.js +65 -0
  198. package/dist/adapters/sqlite/transaction-stores/exploration.js.map +1 -0
  199. package/dist/adapters/sqlite/transaction-stores/pokemon.d.ts +7 -0
  200. package/dist/adapters/sqlite/transaction-stores/pokemon.d.ts.map +1 -0
  201. package/dist/adapters/sqlite/transaction-stores/pokemon.js +160 -0
  202. package/dist/adapters/sqlite/transaction-stores/pokemon.js.map +1 -0
  203. package/dist/adapters/sqlite/transaction-stores/queue-order.d.ts +5 -0
  204. package/dist/adapters/sqlite/transaction-stores/queue-order.d.ts.map +1 -0
  205. package/dist/adapters/sqlite/transaction-stores/queue-order.js +15 -0
  206. package/dist/adapters/sqlite/transaction-stores/queue-order.js.map +1 -0
  207. package/dist/adapters/sqlite/transaction-stores/receipts.d.ts +4 -0
  208. package/dist/adapters/sqlite/transaction-stores/receipts.d.ts.map +1 -0
  209. package/dist/adapters/sqlite/transaction-stores/receipts.js +11 -0
  210. package/dist/adapters/sqlite/transaction-stores/receipts.js.map +1 -0
  211. package/dist/adapters/sqlite/transaction-stores/trainers.d.ts +4 -0
  212. package/dist/adapters/sqlite/transaction-stores/trainers.d.ts.map +1 -0
  213. package/dist/adapters/sqlite/transaction-stores/trainers.js +11 -0
  214. package/dist/adapters/sqlite/transaction-stores/trainers.js.map +1 -0
  215. package/dist/application/contracts/game.d.ts +1412 -0
  216. package/dist/application/contracts/game.d.ts.map +1 -0
  217. package/dist/application/contracts/game.js +126 -0
  218. package/dist/application/contracts/game.js.map +1 -0
  219. package/dist/application/contracts/starter-choice.d.ts +6 -0
  220. package/dist/application/contracts/starter-choice.d.ts.map +1 -0
  221. package/dist/application/contracts/starter-choice.js +2 -0
  222. package/dist/application/contracts/starter-choice.js.map +1 -0
  223. package/dist/application/game.d.ts +34 -0
  224. package/dist/application/game.d.ts.map +1 -0
  225. package/dist/application/game.js +67 -0
  226. package/dist/application/game.js.map +1 -0
  227. package/dist/application/ports/game-transaction.d.ts +173 -0
  228. package/dist/application/ports/game-transaction.d.ts.map +1 -0
  229. package/dist/application/ports/game-transaction.js +2 -0
  230. package/dist/application/ports/game-transaction.js.map +1 -0
  231. package/dist/application/ports/game.d.ts +11 -0
  232. package/dist/application/ports/game.d.ts.map +1 -0
  233. package/dist/application/ports/game.js +2 -0
  234. package/dist/application/ports/game.js.map +1 -0
  235. package/dist/application/ports/starter-selection-store.d.ts +23 -0
  236. package/dist/application/ports/starter-selection-store.d.ts.map +1 -0
  237. package/dist/application/ports/starter-selection-store.js +2 -0
  238. package/dist/application/ports/starter-selection-store.js.map +1 -0
  239. package/dist/application/use-cases/choices.d.ts +9 -0
  240. package/dist/application/use-cases/choices.d.ts.map +1 -0
  241. package/dist/application/use-cases/choices.js +113 -0
  242. package/dist/application/use-cases/choices.js.map +1 -0
  243. package/dist/application/use-cases/choose-regional-starter.d.ts +4 -0
  244. package/dist/application/use-cases/choose-regional-starter.d.ts.map +1 -0
  245. package/dist/application/use-cases/choose-regional-starter.js +37 -0
  246. package/dist/application/use-cases/choose-regional-starter.js.map +1 -0
  247. package/dist/application/use-cases/choose-starter.d.ts +15 -0
  248. package/dist/application/use-cases/choose-starter.d.ts.map +1 -0
  249. package/dist/application/use-cases/choose-starter.js +26 -0
  250. package/dist/application/use-cases/choose-starter.js.map +1 -0
  251. package/dist/application/use-cases/encounters.d.ts +234 -0
  252. package/dist/application/use-cases/encounters.d.ts.map +1 -0
  253. package/dist/application/use-cases/encounters.js +39 -0
  254. package/dist/application/use-cases/encounters.js.map +1 -0
  255. package/dist/application/use-cases/game-command-support.d.ts +16 -0
  256. package/dist/application/use-cases/game-command-support.d.ts.map +1 -0
  257. package/dist/application/use-cases/game-command-support.js +16 -0
  258. package/dist/application/use-cases/game-command-support.js.map +1 -0
  259. package/dist/application/use-cases/game-commands.d.ts +244 -0
  260. package/dist/application/use-cases/game-commands.d.ts.map +1 -0
  261. package/dist/application/use-cases/game-commands.js +14 -0
  262. package/dist/application/use-cases/game-commands.js.map +1 -0
  263. package/dist/application/use-cases/learn-move.d.ts +22 -0
  264. package/dist/application/use-cases/learn-move.d.ts.map +1 -0
  265. package/dist/application/use-cases/learn-move.js +24 -0
  266. package/dist/application/use-cases/learn-move.js.map +1 -0
  267. package/dist/application/use-cases/party.d.ts +8 -0
  268. package/dist/application/use-cases/party.d.ts.map +1 -0
  269. package/dist/application/use-cases/party.js +44 -0
  270. package/dist/application/use-cases/party.js.map +1 -0
  271. package/dist/application/use-cases/record-usage.d.ts +10 -0
  272. package/dist/application/use-cases/record-usage.d.ts.map +1 -0
  273. package/dist/application/use-cases/record-usage.js +145 -0
  274. package/dist/application/use-cases/record-usage.js.map +1 -0
  275. package/dist/application/use-cases/resolve-progression.d.ts +9 -0
  276. package/dist/application/use-cases/resolve-progression.d.ts.map +1 -0
  277. package/dist/application/use-cases/resolve-progression.js +82 -0
  278. package/dist/application/use-cases/resolve-progression.js.map +1 -0
  279. package/dist/application/use-cases/travel.d.ts +7 -0
  280. package/dist/application/use-cases/travel.d.ts.map +1 -0
  281. package/dist/application/use-cases/travel.js +58 -0
  282. package/dist/application/use-cases/travel.js.map +1 -0
  283. package/dist/cli/command.d.ts +16 -0
  284. package/dist/cli/command.d.ts.map +1 -0
  285. package/dist/cli/command.js +73 -0
  286. package/dist/cli/command.js.map +1 -0
  287. package/dist/cli/install.d.ts +9 -0
  288. package/dist/cli/install.d.ts.map +1 -0
  289. package/dist/cli/install.js +23 -0
  290. package/dist/cli/install.js.map +1 -0
  291. package/dist/cli.d.ts +3 -0
  292. package/dist/cli.d.ts.map +1 -0
  293. package/dist/cli.js +124 -0
  294. package/dist/cli.js.map +1 -0
  295. package/dist/domain/choices/choices.d.ts +79 -0
  296. package/dist/domain/choices/choices.d.ts.map +1 -0
  297. package/dist/domain/choices/choices.js +54 -0
  298. package/dist/domain/choices/choices.js.map +1 -0
  299. package/dist/domain/content/catalog.d.ts +241 -0
  300. package/dist/domain/content/catalog.d.ts.map +1 -0
  301. package/dist/domain/content/catalog.js +286 -0
  302. package/dist/domain/content/catalog.js.map +1 -0
  303. package/dist/domain/content/catalogs/abilities-catalog.d.ts +8 -0
  304. package/dist/domain/content/catalogs/abilities-catalog.d.ts.map +1 -0
  305. package/dist/domain/content/catalogs/abilities-catalog.js +2054 -0
  306. package/dist/domain/content/catalogs/abilities-catalog.js.map +1 -0
  307. package/dist/domain/content/catalogs/alola-locations-catalog.d.ts +4949 -0
  308. package/dist/domain/content/catalogs/alola-locations-catalog.d.ts.map +1 -0
  309. package/dist/domain/content/catalogs/alola-locations-catalog.js +5994 -0
  310. package/dist/domain/content/catalogs/alola-locations-catalog.js.map +1 -0
  311. package/dist/domain/content/catalogs/encouter-methods.d.ts +2 -0
  312. package/dist/domain/content/catalogs/encouter-methods.d.ts.map +1 -0
  313. package/dist/domain/content/catalogs/encouter-methods.js +69 -0
  314. package/dist/domain/content/catalogs/encouter-methods.js.map +1 -0
  315. package/dist/domain/content/catalogs/galar-locations-catalog.d.ts +6707 -0
  316. package/dist/domain/content/catalogs/galar-locations-catalog.d.ts.map +1 -0
  317. package/dist/domain/content/catalogs/galar-locations-catalog.js +8089 -0
  318. package/dist/domain/content/catalogs/galar-locations-catalog.js.map +1 -0
  319. package/dist/domain/content/catalogs/hoenn-locations-catalog.d.ts +2922 -0
  320. package/dist/domain/content/catalogs/hoenn-locations-catalog.d.ts.map +1 -0
  321. package/dist/domain/content/catalogs/hoenn-locations-catalog.js +3541 -0
  322. package/dist/domain/content/catalogs/hoenn-locations-catalog.js.map +1 -0
  323. package/dist/domain/content/catalogs/johto-locations-catalog.d.ts +29 -0
  324. package/dist/domain/content/catalogs/johto-locations-catalog.d.ts.map +1 -0
  325. package/dist/domain/content/catalogs/johto-locations-catalog.js +4151 -0
  326. package/dist/domain/content/catalogs/johto-locations-catalog.js.map +1 -0
  327. package/dist/domain/content/catalogs/kalos-locations-catalog.d.ts +29 -0
  328. package/dist/domain/content/catalogs/kalos-locations-catalog.d.ts.map +1 -0
  329. package/dist/domain/content/catalogs/kalos-locations-catalog.js +4346 -0
  330. package/dist/domain/content/catalogs/kalos-locations-catalog.js.map +1 -0
  331. package/dist/domain/content/catalogs/kanto-locations-catalog.d.ts +2304 -0
  332. package/dist/domain/content/catalogs/kanto-locations-catalog.d.ts.map +1 -0
  333. package/dist/domain/content/catalogs/kanto-locations-catalog.js +2796 -0
  334. package/dist/domain/content/catalogs/kanto-locations-catalog.js.map +1 -0
  335. package/dist/domain/content/catalogs/moves-catalog.d.ts +62 -0
  336. package/dist/domain/content/catalogs/moves-catalog.d.ts.map +1 -0
  337. package/dist/domain/content/catalogs/moves-catalog.js +12883 -0
  338. package/dist/domain/content/catalogs/moves-catalog.js.map +1 -0
  339. package/dist/domain/content/catalogs/natures-catalog.d.ts +202 -0
  340. package/dist/domain/content/catalogs/natures-catalog.d.ts.map +1 -0
  341. package/dist/domain/content/catalogs/natures-catalog.js +228 -0
  342. package/dist/domain/content/catalogs/natures-catalog.js.map +1 -0
  343. package/dist/domain/content/catalogs/paldea-locations-catalog.d.ts +14756 -0
  344. package/dist/domain/content/catalogs/paldea-locations-catalog.d.ts.map +1 -0
  345. package/dist/domain/content/catalogs/paldea-locations-catalog.js +17762 -0
  346. package/dist/domain/content/catalogs/paldea-locations-catalog.js.map +1 -0
  347. package/dist/domain/content/catalogs/pokemon-catalog.d.ts +75 -0
  348. package/dist/domain/content/catalogs/pokemon-catalog.d.ts.map +1 -0
  349. package/dist/domain/content/catalogs/pokemon-catalog.js +100649 -0
  350. package/dist/domain/content/catalogs/pokemon-catalog.js.map +1 -0
  351. package/dist/domain/content/catalogs/regional-forms-catalog.d.ts +3033 -0
  352. package/dist/domain/content/catalogs/regional-forms-catalog.d.ts.map +1 -0
  353. package/dist/domain/content/catalogs/regional-forms-catalog.js +4358 -0
  354. package/dist/domain/content/catalogs/regional-forms-catalog.js.map +1 -0
  355. package/dist/domain/content/catalogs/regions-catalog.d.ts +8 -0
  356. package/dist/domain/content/catalogs/regions-catalog.d.ts.map +1 -0
  357. package/dist/domain/content/catalogs/regions-catalog.js +66 -0
  358. package/dist/domain/content/catalogs/regions-catalog.js.map +1 -0
  359. package/dist/domain/content/catalogs/sinnoh-locations-catalog.d.ts +5955 -0
  360. package/dist/domain/content/catalogs/sinnoh-locations-catalog.d.ts.map +1 -0
  361. package/dist/domain/content/catalogs/sinnoh-locations-catalog.js +7184 -0
  362. package/dist/domain/content/catalogs/sinnoh-locations-catalog.js.map +1 -0
  363. package/dist/domain/content/catalogs/stats-catalog.d.ts +38 -0
  364. package/dist/domain/content/catalogs/stats-catalog.d.ts.map +1 -0
  365. package/dist/domain/content/catalogs/stats-catalog.js +45 -0
  366. package/dist/domain/content/catalogs/stats-catalog.js.map +1 -0
  367. package/dist/domain/content/catalogs/types-catalog.d.ts +8 -0
  368. package/dist/domain/content/catalogs/types-catalog.d.ts.map +1 -0
  369. package/dist/domain/content/catalogs/types-catalog.js +129 -0
  370. package/dist/domain/content/catalogs/types-catalog.js.map +1 -0
  371. package/dist/domain/content/catalogs/unova-locations-catalog.d.ts +29 -0
  372. package/dist/domain/content/catalogs/unova-locations-catalog.d.ts.map +1 -0
  373. package/dist/domain/content/catalogs/unova-locations-catalog.js +6552 -0
  374. package/dist/domain/content/catalogs/unova-locations-catalog.js.map +1 -0
  375. package/dist/domain/content/encounter-catalog.d.ts +27 -0
  376. package/dist/domain/content/encounter-catalog.d.ts.map +1 -0
  377. package/dist/domain/content/encounter-catalog.js +75 -0
  378. package/dist/domain/content/encounter-catalog.js.map +1 -0
  379. package/dist/domain/content/names.d.ts +6 -0
  380. package/dist/domain/content/names.d.ts.map +1 -0
  381. package/dist/domain/content/names.js +7 -0
  382. package/dist/domain/content/names.js.map +1 -0
  383. package/dist/domain/content/schema.d.ts +153 -0
  384. package/dist/domain/content/schema.d.ts.map +1 -0
  385. package/dist/domain/content/schema.js +81 -0
  386. package/dist/domain/content/schema.js.map +1 -0
  387. package/dist/domain/content/sprites.d.ts +5 -0
  388. package/dist/domain/content/sprites.d.ts.map +1 -0
  389. package/dist/domain/content/sprites.js +22 -0
  390. package/dist/domain/content/sprites.js.map +1 -0
  391. package/dist/domain/encounters/encounter.d.ts +56 -0
  392. package/dist/domain/encounters/encounter.d.ts.map +1 -0
  393. package/dist/domain/encounters/encounter.js +74 -0
  394. package/dist/domain/encounters/encounter.js.map +1 -0
  395. package/dist/domain/exploration/exploration.d.ts +63 -0
  396. package/dist/domain/exploration/exploration.d.ts.map +1 -0
  397. package/dist/domain/exploration/exploration.js +48 -0
  398. package/dist/domain/exploration/exploration.js.map +1 -0
  399. package/dist/domain/party/party.d.ts +59 -0
  400. package/dist/domain/party/party.d.ts.map +1 -0
  401. package/dist/domain/party/party.js +19 -0
  402. package/dist/domain/party/party.js.map +1 -0
  403. package/dist/domain/pokemon/model.d.ts +43 -0
  404. package/dist/domain/pokemon/model.d.ts.map +1 -0
  405. package/dist/domain/pokemon/model.js +18 -0
  406. package/dist/domain/pokemon/model.js.map +1 -0
  407. package/dist/domain/pokemon/nature.d.ts +10 -0
  408. package/dist/domain/pokemon/nature.d.ts.map +1 -0
  409. package/dist/domain/pokemon/nature.js +23 -0
  410. package/dist/domain/pokemon/nature.js.map +1 -0
  411. package/dist/domain/pokemon/starter.d.ts +23 -0
  412. package/dist/domain/pokemon/starter.d.ts.map +1 -0
  413. package/dist/domain/pokemon/starter.js +59 -0
  414. package/dist/domain/pokemon/starter.js.map +1 -0
  415. package/dist/domain/pokemon/stats.d.ts +6 -0
  416. package/dist/domain/pokemon/stats.d.ts.map +1 -0
  417. package/dist/domain/pokemon/stats.js +35 -0
  418. package/dist/domain/pokemon/stats.js.map +1 -0
  419. package/dist/domain/pokemon/types.d.ts +37 -0
  420. package/dist/domain/pokemon/types.d.ts.map +1 -0
  421. package/dist/domain/pokemon/types.js +30 -0
  422. package/dist/domain/pokemon/types.js.map +1 -0
  423. package/dist/domain/progression/catalog.d.ts +34 -0
  424. package/dist/domain/progression/catalog.d.ts.map +1 -0
  425. package/dist/domain/progression/catalog.js +258 -0
  426. package/dist/domain/progression/catalog.js.map +1 -0
  427. package/dist/domain/progression/level-evolution.d.ts +13 -0
  428. package/dist/domain/progression/level-evolution.d.ts.map +1 -0
  429. package/dist/domain/progression/level-evolution.js +245 -0
  430. package/dist/domain/progression/level-evolution.js.map +1 -0
  431. package/dist/domain/progression/policies.d.ts +38 -0
  432. package/dist/domain/progression/policies.d.ts.map +1 -0
  433. package/dist/domain/progression/policies.js +78 -0
  434. package/dist/domain/progression/policies.js.map +1 -0
  435. package/dist/domain/shared/identifiers.d.ts +12 -0
  436. package/dist/domain/shared/identifiers.d.ts.map +1 -0
  437. package/dist/domain/shared/identifiers.js +7 -0
  438. package/dist/domain/shared/identifiers.js.map +1 -0
  439. package/dist/domain/shared/language.d.ts +7 -0
  440. package/dist/domain/shared/language.d.ts.map +1 -0
  441. package/dist/domain/shared/language.js +3 -0
  442. package/dist/domain/shared/language.js.map +1 -0
  443. package/dist/domain/trainer/trainer.d.ts +7 -0
  444. package/dist/domain/trainer/trainer.d.ts.map +1 -0
  445. package/dist/domain/trainer/trainer.js +2 -0
  446. package/dist/domain/trainer/trainer.js.map +1 -0
  447. package/dist/domain/usage/usage.d.ts +21 -0
  448. package/dist/domain/usage/usage.d.ts.map +1 -0
  449. package/dist/domain/usage/usage.js +23 -0
  450. package/dist/domain/usage/usage.js.map +1 -0
  451. package/dist/index.d.ts +2 -0
  452. package/dist/index.d.ts.map +1 -0
  453. package/dist/index.js +183819 -0
  454. package/dist/index.js.map +1 -0
  455. package/dist/package.json +10 -0
  456. package/dist/rpc.d.ts +2 -0
  457. package/dist/rpc.d.ts.map +1 -0
  458. package/dist/rpc.js +568 -0
  459. package/dist/rpc.js.map +1 -0
  460. package/dist/tui.d.ts +2 -0
  461. package/dist/tui.d.ts.map +1 -0
  462. package/dist/tui.js +184828 -0
  463. package/package.json +78 -5
@@ -0,0 +1,54 @@
1
+ import { decodeChoicePayload, encodeChoicePayload } from "../../../domain/choices/choices.js";
2
+ import { nextQueueOrder } from "./queue-order.js";
3
+ export function createChoiceTransactionStore(database) {
4
+ return {
5
+ usage: {
6
+ hasPending: (trainerId) => (database
7
+ .query("SELECT COUNT(*) AS count FROM pending_choices WHERE trainer_id = ?1")
8
+ .get(trainerId)?.count ?? 0) > 0,
9
+ hasPokemonChoice: (trainerId, pokemonId, kind, moveId) => database
10
+ .query(`SELECT id FROM pending_choices
11
+ WHERE trainer_id = ?1 AND kind = ?3
12
+ AND CASE WHEN json_valid(payload) THEN json_extract(payload, '$.pokemonId') END = ?2
13
+ AND (?4 IS NULL OR CASE WHEN json_valid(payload) THEN json_extract(payload, '$.move.id') END = ?4)
14
+ LIMIT 1`)
15
+ .get(trainerId, pokemonId, kind, moveId ?? null) !== null,
16
+ insert: ({ id, trainerId, createdAt, ...choice }) => {
17
+ const insertionOrder = nextQueueOrder(database, trainerId, "choice");
18
+ database
19
+ .query("INSERT INTO pending_choices (id, trainer_id, kind, payload, created_at, insertion_order) VALUES (?1, ?2, ?3, ?4, ?5, ?6)")
20
+ .run(id, trainerId, choice.kind, encodeChoicePayload(choice), createdAt, insertionOrder);
21
+ },
22
+ },
23
+ commands: {
24
+ find: (trainerId, choiceId, kind) => {
25
+ const row = database
26
+ .query("SELECT id, kind, payload FROM pending_choices WHERE trainer_id = ?1 AND id = ?2 AND kind = ?3")
27
+ .get(trainerId, choiceId, kind);
28
+ if (row === null)
29
+ return null;
30
+ const choice = decodeChoicePayload(row.kind, row.payload);
31
+ return choice === null ? null : { ...choice, id: row.id };
32
+ },
33
+ hasKind: (trainerId, kind) => database
34
+ .query("SELECT id FROM pending_choices WHERE trainer_id = ?1 AND kind = ?2 LIMIT 1")
35
+ .get(trainerId, kind) !== null,
36
+ delete: (choiceId) => {
37
+ database.query("DELETE FROM pending_choices WHERE id = ?1").run(choiceId);
38
+ },
39
+ deleteKind: (trainerId, kind) => {
40
+ database
41
+ .query("DELETE FROM pending_choices WHERE trainer_id = ?1 AND kind = ?2")
42
+ .run(trainerId, kind);
43
+ },
44
+ deleteCatch: (trainerId, encounterId) => {
45
+ database
46
+ .query(`DELETE FROM pending_choices
47
+ WHERE trainer_id = ?1 AND kind = 'catch'
48
+ AND CASE WHEN json_valid(payload) THEN json_extract(payload, '$.encounterId') END = ?2`)
49
+ .run(trainerId, encounterId);
50
+ },
51
+ },
52
+ };
53
+ }
54
+ //# sourceMappingURL=choices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"choices.js","sourceRoot":"","sources":["../../../../src/adapters/sqlite/transaction-stores/choices.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,MAAM,UAAU,4BAA4B,CAAC,QAAkB;IAI7D,OAAO;QACL,KAAK,EAAE;YACL,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE,CACxB,CAAC,QAAQ;iBACN,KAAK,CACJ,qEAAqE,CACtE;iBACA,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC;YACpC,gBAAgB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CACvD,QAAQ;iBACL,KAAK,CACJ;;;;qBAIS,CACV;iBACA,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI;YAC7D,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE;gBAClD,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;gBACpE,QAAQ;qBACL,KAAK,CACJ,0HAA0H,CAC3H;qBACA,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAA;YAC5F,CAAC;SACF;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;gBAClC,MAAM,GAAG,GAAG,QAAQ;qBACjB,KAAK,CAIJ,+FAA+F,CAChG;qBACA,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;gBACjC,IAAI,GAAG,KAAK,IAAI;oBAAE,OAAO,IAAI,CAAA;gBAC7B,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;gBACzD,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAA;YAC3D,CAAC;YACD,OAAO,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAC3B,QAAQ;iBACL,KAAK,CACJ,4EAA4E,CAC7E;iBACA,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI;YAClC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACnB,QAAQ,CAAC,KAAK,CAAiB,2CAA2C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC3F,CAAC;YACD,UAAU,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE;gBAC9B,QAAQ;qBACL,KAAK,CACJ,iEAAiE,CAClE;qBACA,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YACzB,CAAC;YACD,WAAW,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE;gBACtC,QAAQ;qBACL,KAAK,CACJ;;sGAE0F,CAC3F;qBACA,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;YAChC,CAAC;SACF;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import type { CommandTransactionStores, UsageTransactionStores } from "../../../application/ports/game-transaction.js";
3
+ export declare function createEncounterTransactionStore(database: Database): {
4
+ readonly usage: UsageTransactionStores["encounters"];
5
+ readonly commands: CommandTransactionStores["encounters"];
6
+ };
7
+ //# sourceMappingURL=encounters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encounters.d.ts","sourceRoot":"","sources":["../../../../src/adapters/sqlite/transaction-stores/encounters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EACV,wBAAwB,EAExB,sBAAsB,EACvB,MAAM,gDAAgD,CAAA;AAGvD,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,QAAQ,GAAG;IACnE,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,YAAY,CAAC,CAAA;IACpD,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC,YAAY,CAAC,CAAA;CAC1D,CAkHA"}
@@ -0,0 +1,59 @@
1
+ import { nextQueueOrder } from "./queue-order.js";
2
+ export function createEncounterTransactionStore(database) {
3
+ return {
4
+ usage: {
5
+ hasPending: (trainerId) => database
6
+ .query("SELECT id FROM pending_encounters WHERE trainer_id = ?1")
7
+ .get(trainerId) !== null,
8
+ progress: (trainerId) => database
9
+ .query("SELECT token_count AS tokenCount, threshold FROM encounter_progress WHERE trainer_id = ?1")
10
+ .get(trainerId) ?? null,
11
+ saveProgress: (trainerId, tokenCount, threshold) => {
12
+ database
13
+ .query(`INSERT INTO encounter_progress (trainer_id, token_count, threshold)
14
+ VALUES (?1, ?2, ?3)
15
+ ON CONFLICT(trainer_id) DO UPDATE SET token_count = excluded.token_count, threshold = excluded.threshold`)
16
+ .run(trainerId, tokenCount, threshold);
17
+ },
18
+ maximumPartyLevel: (trainerId) => database
19
+ .query(`SELECT COALESCE(MAX(owned_pokemon.level), 1) AS level
20
+ FROM party_slots
21
+ JOIN owned_pokemon ON owned_pokemon.id = party_slots.pokemon_id
22
+ WHERE party_slots.trainer_id = ?1`)
23
+ .get(trainerId)?.level ?? 1,
24
+ triggeredSpecialIds: (trainerId) => new Set(database
25
+ .query("SELECT special_encounter_id AS specialEncounterId FROM triggered_special_encounters WHERE trainer_id = ?1")
26
+ .all(trainerId)
27
+ .map((row) => row.specialEncounterId)),
28
+ markSpecialTriggered: (trainerId, specialEncounterId, triggeredAt) => {
29
+ database
30
+ .query(`INSERT INTO triggered_special_encounters (trainer_id, special_encounter_id, triggered_at)
31
+ VALUES (?1, ?2, ?3)`)
32
+ .run(trainerId, specialEncounterId, triggeredAt);
33
+ },
34
+ insertPending: (encounter) => {
35
+ const insertionOrder = nextQueueOrder(database, encounter.trainerId, "encounter");
36
+ database
37
+ .query(`INSERT INTO pending_encounters (
38
+ id, trainer_id, kind, species_id, name, special_encounter_id, level, gender, shiny, sprite_url, ability, created_at, insertion_order
39
+ ) VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13)`)
40
+ .run(encounter.id, encounter.trainerId, encounter.kind, encounter.speciesId, encounter.name, encounter.specialEncounterId, encounter.level, encounter.gender, Number(encounter.shiny), encounter.spriteUrl, encounter.ability, encounter.createdAt, insertionOrder);
41
+ },
42
+ },
43
+ commands: {
44
+ pending: (trainerId, encounterId) => {
45
+ const row = database
46
+ .query(`SELECT id, kind, species_id AS speciesId, name, level, gender, shiny,
47
+ sprite_url AS spriteUrl, ability FROM pending_encounters WHERE trainer_id = ?1 AND id = ?2`)
48
+ .get(trainerId, encounterId);
49
+ return row === null ? null : { ...row, shiny: row.shiny === 1 };
50
+ },
51
+ clearPending: (trainerId, encounterId) => {
52
+ database
53
+ .query("DELETE FROM pending_encounters WHERE trainer_id = ?1 AND id = ?2")
54
+ .run(trainerId, encounterId);
55
+ },
56
+ },
57
+ };
58
+ }
59
+ //# sourceMappingURL=encounters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encounters.js","sourceRoot":"","sources":["../../../../src/adapters/sqlite/transaction-stores/encounters.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,MAAM,UAAU,+BAA+B,CAAC,QAAkB;IAIhE,OAAO;QACL,KAAK,EAAE;YACL,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE,CACxB,QAAQ;iBACL,KAAK,CACJ,yDAAyD,CAC1D;iBACA,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI;YAC5B,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CACtB,QAAQ;iBACL,KAAK,CACJ,2FAA2F,CAC5F;iBACA,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI;YAC3B,YAAY,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE;gBACjD,QAAQ;qBACL,KAAK,CACJ;;qHAEyG,CAC1G;qBACA,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;YAC1C,CAAC;YACD,iBAAiB,EAAE,CAAC,SAAS,EAAE,EAAE,CAC/B,QAAQ;iBACL,KAAK,CACJ;;;8CAGkC,CACnC;iBACA,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC;YAC/B,mBAAmB,EAAE,CAAC,SAAS,EAAE,EAAE,CACjC,IAAI,GAAG,CACL,QAAQ;iBACL,KAAK,CACJ,2GAA2G,CAC5G;iBACA,GAAG,CAAC,SAAS,CAAC;iBACd,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CACxC;YACH,oBAAoB,EAAE,CAAC,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE;gBACnE,QAAQ;qBACL,KAAK,CACJ;gCACoB,CACrB;qBACA,GAAG,CAAC,SAAS,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAA;YACpD,CAAC;YACD,aAAa,EAAE,CAAC,SAAS,EAAE,EAAE;gBAC3B,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;gBACjF,QAAQ;qBACL,KAAK,CAkBJ;;8EAEkE,CACnE;qBACA,GAAG,CACF,SAAS,CAAC,EAAE,EACZ,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,kBAAkB,EAC5B,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,MAAM,EAChB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EACvB,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,SAAS,EACnB,cAAc,CACf,CAAA;YACL,CAAC;SACF;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE;gBAClC,MAAM,GAAG,GAAG,QAAQ;qBACjB,KAAK,CAIJ;yGAC6F,CAC9F;qBACA,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;gBAC9B,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,CAAC,EAAE,CAAA;YACjE,CAAC;YACD,YAAY,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE;gBACvC,QAAQ;qBACL,KAAK,CACJ,kEAAkE,CACnE;qBACA,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;YAChC,CAAC;SACF;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import type { CommandTransactionStores, UsageTransactionStores } from "../../../application/ports/game-transaction.js";
3
+ export declare function createExplorationTransactionStore(database: Database): {
4
+ readonly usage: UsageTransactionStores["exploration"];
5
+ readonly commands: CommandTransactionStores["exploration"];
6
+ };
7
+ //# sourceMappingURL=exploration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exploration.d.ts","sourceRoot":"","sources":["../../../../src/adapters/sqlite/transaction-stores/exploration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EACV,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,gDAAgD,CAAA;AAEvD,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,GAAG;IACrE,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAA;IACrD,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC,aAAa,CAAC,CAAA;CAC3D,CAoGA"}
@@ -0,0 +1,65 @@
1
+ export function createExplorationTransactionStore(database) {
2
+ return {
3
+ usage: {
4
+ visitedRegionIds: (trainerId) => database
5
+ .query("SELECT region_id AS regionId FROM region_progress WHERE trainer_id = ?1")
6
+ .all(trainerId)
7
+ .map((region) => region.regionId),
8
+ latestUnlockedLocation: (trainerId) => database
9
+ .query("SELECT location_id AS locationId FROM location_progress WHERE trainer_id = ?1 AND unlocked = 1 ORDER BY rowid DESC LIMIT 1")
10
+ .get(trainerId)?.locationId ?? null,
11
+ unlockTokenCount: (trainerId) => database
12
+ .query("SELECT token_count AS tokenCount FROM location_unlock_progress WHERE trainer_id = ?1")
13
+ .get(trainerId)?.tokenCount ?? 0,
14
+ setUnlockTokenCount: (trainerId, tokenCount) => {
15
+ database
16
+ .query("UPDATE location_unlock_progress SET token_count = ?1 WHERE trainer_id = ?2")
17
+ .run(tokenCount, trainerId);
18
+ },
19
+ unlockLocation: (trainerId, locationId) => {
20
+ database
21
+ .query("INSERT INTO location_progress (trainer_id, location_id) VALUES (?1, ?2)")
22
+ .run(trainerId, locationId);
23
+ },
24
+ completeRegion: (trainerId, regionId) => database
25
+ .query("UPDATE region_progress SET completed = 1 WHERE trainer_id = ?1 AND region_id = ?2 AND completed = 0")
26
+ .run(trainerId, regionId).changes > 0,
27
+ },
28
+ commands: {
29
+ locationUnlocked: (trainerId, locationId) => database
30
+ .query("SELECT location_id AS locationId FROM location_progress WHERE trainer_id = ?1 AND location_id = ?2 AND unlocked = 1")
31
+ .get(trainerId, locationId) !== null,
32
+ regionCompleted: (trainerId, regionId) => database
33
+ .query("SELECT completed FROM region_progress WHERE trainer_id = ?1 AND region_id = ?2")
34
+ .get(trainerId, regionId)?.completed === 1,
35
+ regionVisited: (trainerId, regionId) => database
36
+ .query("SELECT region_id AS regionId FROM region_progress WHERE trainer_id = ?1 AND region_id = ?2")
37
+ .get(trainerId, regionId) !== null,
38
+ travelToLocation: (trainerId, regionId, locationId) => {
39
+ database
40
+ .query("UPDATE trainers SET current_region_id = ?1, current_location_id = ?2 WHERE id = ?3")
41
+ .run(regionId, locationId, trainerId);
42
+ },
43
+ initializeRegion: (trainerId, regionId, locationId) => {
44
+ database
45
+ .query("INSERT INTO region_progress (trainer_id, region_id) VALUES (?1, ?2)")
46
+ .run(trainerId, regionId);
47
+ database
48
+ .query("INSERT INTO location_progress (trainer_id, location_id) VALUES (?1, ?2)")
49
+ .run(trainerId, locationId);
50
+ database
51
+ .query("UPDATE trainers SET current_region_id = ?1, current_location_id = ?2 WHERE id = ?3")
52
+ .run(regionId, locationId, trainerId);
53
+ database
54
+ .query("UPDATE location_unlock_progress SET token_count = 0 WHERE trainer_id = ?1")
55
+ .run(trainerId);
56
+ },
57
+ setRegionDismissed: (trainerId, regionId, dismissed) => {
58
+ database
59
+ .query("UPDATE region_progress SET next_region_dismissed = ?1 WHERE trainer_id = ?2 AND region_id = ?3")
60
+ .run(Number(dismissed), trainerId, regionId);
61
+ },
62
+ },
63
+ };
64
+ }
65
+ //# sourceMappingURL=exploration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exploration.js","sourceRoot":"","sources":["../../../../src/adapters/sqlite/transaction-stores/exploration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import type { CommandTransactionStores, UsageTransactionStores } from "../../../application/ports/game-transaction.js";
3
+ export declare function createPokemonTransactionStore(database: Database): {
4
+ readonly usage: UsageTransactionStores["pokemon"];
5
+ readonly commands: CommandTransactionStores["pokemon"];
6
+ };
7
+ //# sourceMappingURL=pokemon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pokemon.d.ts","sourceRoot":"","sources":["../../../../src/adapters/sqlite/transaction-stores/pokemon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EACV,wBAAwB,EAExB,sBAAsB,EACvB,MAAM,gDAAgD,CAAA;AAGvD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,GAAG;IACjE,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAA;IACjD,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC,SAAS,CAAC,CAAA;CACvD,CA2PA"}
@@ -0,0 +1,160 @@
1
+ import { localizedPokemonName } from "../../../domain/content/catalog.js";
2
+ export function createPokemonTransactionStore(database) {
3
+ return {
4
+ usage: {
5
+ addPartyExperience: (trainerId, amount) => {
6
+ database
7
+ .query(`UPDATE owned_pokemon
8
+ SET experience = experience + ?1
9
+ WHERE level < 100
10
+ AND id IN (
11
+ SELECT pokemon_id
12
+ FROM party_slots
13
+ WHERE trainer_id = ?2 AND pokemon_id IS NOT NULL
14
+ )`)
15
+ .run(amount, trainerId);
16
+ },
17
+ party: (trainerId) => database
18
+ .query(`SELECT owned_pokemon.id, owned_pokemon.species_id AS speciesId, owned_pokemon.gender, owned_pokemon.level, owned_pokemon.experience
19
+ FROM party_slots
20
+ JOIN owned_pokemon ON owned_pokemon.id = party_slots.pokemon_id
21
+ WHERE party_slots.trainer_id = ?1
22
+ ORDER BY party_slots.position`)
23
+ .all(trainerId),
24
+ offPartyWithExperience: (trainerId) => database
25
+ .query(`SELECT id, species_id AS speciesId, gender, level, experience
26
+ FROM owned_pokemon
27
+ WHERE trainer_id = ?1 AND experience > 0 AND level < 100
28
+ AND NOT EXISTS (
29
+ SELECT 1 FROM party_slots
30
+ WHERE party_slots.trainer_id = ?1
31
+ AND party_slots.pokemon_id = owned_pokemon.id
32
+ )
33
+ ORDER BY id`)
34
+ .all(trainerId),
35
+ findOwned: (trainerId, pokemonId) => database
36
+ .query(`SELECT id, species_id AS speciesId, gender, level, experience
37
+ FROM owned_pokemon WHERE trainer_id = ?1 AND id = ?2`)
38
+ .get(trainerId, pokemonId) ?? null,
39
+ setLevel: (pokemonId, level, experience) => {
40
+ database
41
+ .query("UPDATE owned_pokemon SET level = ?1, experience = ?2 WHERE id = ?3")
42
+ .run(level, experience, pokemonId);
43
+ },
44
+ evolve: (pokemonId, speciesId, name) => {
45
+ const previous = database
46
+ .query("SELECT species_id AS speciesId FROM owned_pokemon WHERE id = ?1")
47
+ .get(pokemonId);
48
+ const previousName = previous === null
49
+ ? ""
50
+ : localizedPokemonName(previous.speciesId, "en", previous.speciesId);
51
+ database
52
+ .query("UPDATE owned_pokemon SET species_id = ?1, name = CASE WHEN name = ?4 THEN ?2 ELSE name END WHERE id = ?3")
53
+ .run(speciesId, name, pokemonId, previousName);
54
+ },
55
+ moves: (pokemonId) => database
56
+ .query("SELECT position, move_id AS id, move_name AS name FROM pokemon_moves WHERE pokemon_id = ?1 ORDER BY position")
57
+ .all(pokemonId),
58
+ learnMove: (pokemonId, position, move) => {
59
+ database
60
+ .query("INSERT INTO pokemon_moves (pokemon_id, position, move_id, move_name) VALUES (?1, ?2, ?3, ?4)")
61
+ .run(pokemonId, position, move.id, move.name);
62
+ },
63
+ markSeen: (trainerId, speciesId) => {
64
+ database
65
+ .query(`INSERT INTO pokedex_entries (trainer_id, species_id, seen, caught)
66
+ VALUES (?1, ?2, 1, 0)
67
+ ON CONFLICT(trainer_id, species_id) DO UPDATE SET seen = 1`)
68
+ .run(trainerId, speciesId);
69
+ },
70
+ markCaught: (trainerId, speciesId) => {
71
+ database
72
+ .query(`INSERT INTO pokedex_entries (trainer_id, species_id, seen, caught)
73
+ VALUES (?1, ?2, 1, 1)
74
+ ON CONFLICT(trainer_id, species_id) DO UPDATE SET seen = 1, caught = 1`)
75
+ .run(trainerId, speciesId);
76
+ },
77
+ },
78
+ commands: {
79
+ rename: (trainerId, pokemonId, name) => {
80
+ database
81
+ .query("UPDATE owned_pokemon SET name = ?3 WHERE trainer_id = ?1 AND id = ?2")
82
+ .run(trainerId, pokemonId, name);
83
+ },
84
+ release: (trainerId, pokemonId) => {
85
+ database
86
+ .query("DELETE FROM pending_choices WHERE trainer_id = ?1 AND kind IN ('move', 'evolution') AND json_extract(payload, '$.pokemonId') = ?2")
87
+ .run(trainerId, pokemonId);
88
+ database
89
+ .query("UPDATE party_slots SET pokemon_id = NULL WHERE trainer_id = ?1 AND pokemon_id = ?2")
90
+ .run(trainerId, pokemonId);
91
+ database
92
+ .query("DELETE FROM pokemon_moves WHERE pokemon_id = ?1")
93
+ .run(pokemonId);
94
+ database
95
+ .query("DELETE FROM owned_pokemon WHERE trainer_id = ?1 AND id = ?2")
96
+ .run(trainerId, pokemonId);
97
+ },
98
+ insertStarter: ({ id, trainerId, starter }) => {
99
+ database
100
+ .query(`INSERT INTO owned_pokemon (
101
+ id, trainer_id, species_id, name, level, ability, nature, gender, shiny,
102
+ hp_iv, attack_iv, defense_iv, special_attack_iv, special_defense_iv, speed_iv
103
+ ) VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14, ?15)`)
104
+ .run(id, trainerId, starter.speciesId, starter.name, starter.level, starter.ability, starter.nature, starter.gender, Number(starter.shiny), starter.ivs.hp, starter.ivs.attack, starter.ivs.defense, starter.ivs.specialAttack, starter.ivs.specialDefense, starter.ivs.speed);
105
+ for (const [index, move] of starter.moves.entries()) {
106
+ database
107
+ .query("INSERT INTO pokemon_moves (pokemon_id, position, move_id, move_name) VALUES (?1, ?2, ?3, ?4)")
108
+ .run(id, index + 1, move.id, move.name);
109
+ }
110
+ },
111
+ ownedCount: (trainerId, pokemonIds) => {
112
+ if (pokemonIds.length === 0)
113
+ return 0;
114
+ return (database
115
+ .query(`SELECT COUNT(*) AS count FROM owned_pokemon WHERE trainer_id = ?1 AND id IN (${pokemonIds.map((_, index) => `?${index + 2}`).join(", ")})`)
116
+ .get(trainerId, ...pokemonIds)?.count ?? 0);
117
+ },
118
+ replaceParty: (trainerId, pokemonIds) => {
119
+ database
120
+ .query("UPDATE party_slots SET pokemon_id = NULL WHERE trainer_id = ?1")
121
+ .run(trainerId);
122
+ for (const [index, pokemonId] of pokemonIds.entries()) {
123
+ database
124
+ .query("UPDATE party_slots SET pokemon_id = ?1 WHERE trainer_id = ?2 AND position = ?3")
125
+ .run(pokemonId, trainerId, index + 1);
126
+ }
127
+ },
128
+ insertCaptured: ({ id, trainerId, encounter, nature, ivs, moves }) => {
129
+ database
130
+ .query(`INSERT INTO owned_pokemon (
131
+ id, trainer_id, species_id, name, level, ability, nature, gender, shiny,
132
+ hp_iv, attack_iv, defense_iv, special_attack_iv, special_defense_iv, speed_iv
133
+ ) VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14, ?15)`)
134
+ .run(id, trainerId, encounter.speciesId, encounter.name, encounter.level, encounter.ability, nature, encounter.gender, Number(encounter.shiny), ...ivs);
135
+ for (const [index, move] of moves.entries()) {
136
+ database
137
+ .query("INSERT INTO pokemon_moves (pokemon_id, position, move_id, move_name) VALUES (?1, ?2, ?3, ?4)")
138
+ .run(id, index + 1, move.id, move.name);
139
+ }
140
+ },
141
+ firstEmptyPartyPosition: (trainerId) => database
142
+ .query("SELECT position FROM party_slots WHERE trainer_id = ?1 AND pokemon_id IS NULL ORDER BY position LIMIT 1")
143
+ .get(trainerId)?.position ?? null,
144
+ assignPartyPosition: (trainerId, pokemonId, position) => {
145
+ database
146
+ .query("UPDATE party_slots SET pokemon_id = ?1 WHERE trainer_id = ?2 AND position = ?3")
147
+ .run(pokemonId, trainerId, position);
148
+ },
149
+ replaceMove: (pokemonId, position, move) => {
150
+ database
151
+ .query("UPDATE pokemon_moves SET move_id = ?1, move_name = ?2 WHERE pokemon_id = ?3 AND position = ?4")
152
+ .run(move.id, move.name, pokemonId, position);
153
+ },
154
+ level: (pokemonId) => database
155
+ .query("SELECT level FROM owned_pokemon WHERE id = ?1")
156
+ .get(pokemonId)?.level ?? null,
157
+ },
158
+ };
159
+ }
160
+ //# sourceMappingURL=pokemon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pokemon.js","sourceRoot":"","sources":["../../../../src/adapters/sqlite/transaction-stores/pokemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Database } from "bun:sqlite";
2
+ export type QueueKind = "choice" | "encounter";
3
+ /** Allocate a durable per-trainer queue sequence. Call only within the write transaction. */
4
+ export declare function nextQueueOrder(database: Database, trainerId: string, queueKind: QueueKind): number;
5
+ //# sourceMappingURL=queue-order.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-order.d.ts","sourceRoot":"","sources":["../../../../src/adapters/sqlite/transaction-stores/queue-order.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE1C,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAA;AAE9C,6FAA6F;AAC7F,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,GACnB,MAAM,CAeR"}
@@ -0,0 +1,15 @@
1
+ /** Allocate a durable per-trainer queue sequence. Call only within the write transaction. */
2
+ export function nextQueueOrder(database, trainerId, queueKind) {
3
+ database
4
+ .query(`INSERT INTO queue_order_sequences (trainer_id, queue_kind, last_order)
5
+ VALUES (?1, ?2, 1)
6
+ ON CONFLICT(trainer_id, queue_kind) DO UPDATE SET last_order = last_order + 1`)
7
+ .run(trainerId, queueKind);
8
+ const order = database
9
+ .query("SELECT last_order AS lastOrder FROM queue_order_sequences WHERE trainer_id = ?1 AND queue_kind = ?2")
10
+ .get(trainerId, queueKind)?.lastOrder;
11
+ if (order === undefined)
12
+ throw new Error(`Failed to allocate ${queueKind} queue order`);
13
+ return order;
14
+ }
15
+ //# sourceMappingURL=queue-order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-order.js","sourceRoot":"","sources":["../../../../src/adapters/sqlite/transaction-stores/queue-order.ts"],"names":[],"mappings":"AAIA,6FAA6F;AAC7F,MAAM,UAAU,cAAc,CAC5B,QAAkB,EAClB,SAAiB,EACjB,SAAoB;IAEpB,QAAQ;SACL,KAAK,CACJ;;qFAE+E,CAChF;SACA,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAC5B,MAAM,KAAK,GAAG,QAAQ;SACnB,KAAK,CACJ,qGAAqG,CACtG;SACA,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,SAAS,CAAA;IACvC,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,cAAc,CAAC,CAAA;IACvF,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import type { UsageTransactionStores } from "../../../application/ports/game-transaction.js";
3
+ export declare function createReceiptStore(database: Database): UsageTransactionStores["receipts"];
4
+ //# sourceMappingURL=receipts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receipts.d.ts","sourceRoot":"","sources":["../../../../src/adapters/sqlite/transaction-stores/receipts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAA;AAE5F,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAYzF"}
@@ -0,0 +1,11 @@
1
+ export function createReceiptStore(database) {
2
+ return {
3
+ claim: ({ id, trainerId, usage, tokenCount }) => database
4
+ .query(`INSERT OR IGNORE INTO token_receipts (
5
+ id, trainer_id, session_id, message_id, token_count, created_at
6
+ ) VALUES (?1, ?2, ?3, ?4, ?5, ?6)`)
7
+ .run(id, trainerId, usage.sessionId, usage.messageId, tokenCount, usage.completedAt)
8
+ .changes > 0,
9
+ };
10
+ }
11
+ //# sourceMappingURL=receipts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receipts.js","sourceRoot":"","sources":["../../../../src/adapters/sqlite/transaction-stores/receipts.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,kBAAkB,CAAC,QAAkB;IACnD,OAAO;QACL,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAC9C,QAAQ;aACL,KAAK,CACJ;;4CAEkC,CACnC;aACA,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC;aACnF,OAAO,GAAG,CAAC;KACjB,CAAA;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Database } from "bun:sqlite";
2
+ import type { UsageTransactionStores } from "../../../application/ports/game-transaction.js";
3
+ export declare function createTrainerTransactionStore(database: Database): UsageTransactionStores["trainers"];
4
+ //# sourceMappingURL=trainers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trainers.d.ts","sourceRoot":"","sources":["../../../../src/adapters/sqlite/transaction-stores/trainers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAA;AAE5F,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,QAAQ,GACjB,sBAAsB,CAAC,UAAU,CAAC,CAkBpC"}
@@ -0,0 +1,11 @@
1
+ export function createTrainerTransactionStore(database) {
2
+ return {
3
+ find: () => database
4
+ .query("SELECT id, current_region_id AS regionId, current_location_id AS locationId FROM trainers LIMIT 1")
5
+ .get() ?? null,
6
+ findById: (trainerId) => database
7
+ .query("SELECT id, current_region_id AS regionId, current_location_id AS locationId FROM trainers WHERE id = ?1")
8
+ .get(trainerId) ?? null,
9
+ };
10
+ }
11
+ //# sourceMappingURL=trainers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trainers.js","sourceRoot":"","sources":["../../../../src/adapters/sqlite/transaction-stores/trainers.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,6BAA6B,CAC3C,QAAkB;IAElB,OAAO;QACL,IAAI,EAAE,GAAG,EAAE,CACT,QAAQ;aACL,KAAK,CACJ,mGAAmG,CACpG;aACA,GAAG,EAAE,IAAI,IAAI;QAClB,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CACtB,QAAQ;aACL,KAAK,CAIJ,yGAAyG,CAC1G;aACA,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI;KAC5B,CAAA;AACH,CAAC"}