@aephia/atlas-kit 0.6.0-next.12 → 0.6.0-next.121

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 (737) hide show
  1. package/README.md +3 -1
  2. package/dist/cargo/actions/deposit.d.ts +2 -2
  3. package/dist/cargo/actions/deposit.d.ts.map +1 -1
  4. package/dist/cargo/actions/deposit.js +28 -117
  5. package/dist/cargo/actions/deposit.js.map +1 -1
  6. package/dist/cargo/actions/index.d.ts +1 -1
  7. package/dist/cargo/actions/index.d.ts.map +1 -1
  8. package/dist/cargo/actions/index.js +28 -84
  9. package/dist/cargo/actions/index.js.map +1 -1
  10. package/dist/cargo/actions/wallet-context.d.ts +52 -3
  11. package/dist/cargo/actions/wallet-context.d.ts.map +1 -1
  12. package/dist/cargo/actions/wallet-context.js +118 -7
  13. package/dist/cargo/actions/wallet-context.js.map +1 -1
  14. package/dist/cargo/actions/wallet-token.d.ts +1 -6
  15. package/dist/cargo/actions/wallet-token.d.ts.map +1 -1
  16. package/dist/cargo/actions/wallet-token.js +0 -53
  17. package/dist/cargo/actions/wallet-token.js.map +1 -1
  18. package/dist/cargo/actions/withdrawal.d.ts +1 -1
  19. package/dist/cargo/actions/withdrawal.d.ts.map +1 -1
  20. package/dist/cargo/actions/withdrawal.js +39 -164
  21. package/dist/cargo/actions/withdrawal.js.map +1 -1
  22. package/dist/cargo/index.d.ts.map +1 -1
  23. package/dist/cargo/index.js +2 -10
  24. package/dist/cargo/index.js.map +1 -1
  25. package/dist/claim-stakes/actions/index.d.ts +14 -1
  26. package/dist/claim-stakes/actions/index.d.ts.map +1 -1
  27. package/dist/claim-stakes/actions/index.js +399 -592
  28. package/dist/claim-stakes/actions/index.js.map +1 -1
  29. package/dist/claim-stakes/index.d.ts +14 -0
  30. package/dist/claim-stakes/index.d.ts.map +1 -1
  31. package/dist/claim-stakes/index.js +25 -12
  32. package/dist/claim-stakes/index.js.map +1 -1
  33. package/dist/client/context.d.ts.map +1 -1
  34. package/dist/client/context.js +1 -1
  35. package/dist/client/context.js.map +1 -1
  36. package/dist/client/contracts.d.ts +16 -6
  37. package/dist/client/contracts.d.ts.map +1 -1
  38. package/dist/client/errors.d.ts +6 -2
  39. package/dist/client/errors.d.ts.map +1 -1
  40. package/dist/client/errors.js +31 -1
  41. package/dist/client/errors.js.map +1 -1
  42. package/dist/client/index.d.ts +35 -0
  43. package/dist/client/index.d.ts.map +1 -1
  44. package/dist/client/index.js +35 -0
  45. package/dist/client/index.js.map +1 -1
  46. package/dist/client/rpc-subscription-provider.d.ts +35 -0
  47. package/dist/client/rpc-subscription-provider.d.ts.map +1 -0
  48. package/dist/client/rpc-subscription-provider.js +190 -0
  49. package/dist/client/rpc-subscription-provider.js.map +1 -0
  50. package/dist/combat/actions/index.d.ts +4 -4
  51. package/dist/combat/actions/index.d.ts.map +1 -1
  52. package/dist/combat/actions/index.js +207 -261
  53. package/dist/combat/actions/index.js.map +1 -1
  54. package/dist/combat/index.d.ts +13 -3
  55. package/dist/combat/index.d.ts.map +1 -1
  56. package/dist/combat/index.js +9 -16
  57. package/dist/combat/index.js.map +1 -1
  58. package/dist/crafting/actions/index.d.ts +12 -1
  59. package/dist/crafting/actions/index.d.ts.map +1 -1
  60. package/dist/crafting/actions/index.js +181 -303
  61. package/dist/crafting/actions/index.js.map +1 -1
  62. package/dist/crafting/index.d.ts +33 -3
  63. package/dist/crafting/index.d.ts.map +1 -1
  64. package/dist/crafting/index.js +49 -28
  65. package/dist/crafting/index.js.map +1 -1
  66. package/dist/factions/actions/index.d.ts +2 -1
  67. package/dist/factions/actions/index.d.ts.map +1 -1
  68. package/dist/factions/actions/index.js +6 -4
  69. package/dist/factions/actions/index.js.map +1 -1
  70. package/dist/factions/index.d.ts +1 -1
  71. package/dist/factions/index.d.ts.map +1 -1
  72. package/dist/factions/index.js +16 -18
  73. package/dist/factions/index.js.map +1 -1
  74. package/dist/factions/profile-faction.d.ts +20 -8
  75. package/dist/factions/profile-faction.d.ts.map +1 -1
  76. package/dist/factions/profile-faction.js +20 -8
  77. package/dist/factions/profile-faction.js.map +1 -1
  78. package/dist/fleets/actions/add-ship.d.ts +35 -0
  79. package/dist/fleets/actions/add-ship.d.ts.map +1 -0
  80. package/dist/fleets/actions/add-ship.js +120 -0
  81. package/dist/fleets/actions/add-ship.js.map +1 -0
  82. package/dist/fleets/actions/create-fleet.d.ts +36 -0
  83. package/dist/fleets/actions/create-fleet.d.ts.map +1 -0
  84. package/dist/fleets/actions/create-fleet.js +108 -0
  85. package/dist/fleets/actions/create-fleet.js.map +1 -0
  86. package/dist/fleets/actions/crew-transfer.d.ts +41 -0
  87. package/dist/fleets/actions/crew-transfer.d.ts.map +1 -0
  88. package/dist/fleets/actions/crew-transfer.js +94 -0
  89. package/dist/fleets/actions/crew-transfer.js.map +1 -0
  90. package/dist/fleets/actions/dock-bounds.d.ts +38 -0
  91. package/dist/fleets/actions/dock-bounds.d.ts.map +1 -0
  92. package/dist/fleets/actions/dock-bounds.js +46 -0
  93. package/dist/fleets/actions/dock-bounds.js.map +1 -0
  94. package/dist/fleets/actions/index.d.ts +64 -24
  95. package/dist/fleets/actions/index.d.ts.map +1 -1
  96. package/dist/fleets/actions/index.js +385 -334
  97. package/dist/fleets/actions/index.js.map +1 -1
  98. package/dist/fleets/actions/respawn.d.ts +38 -0
  99. package/dist/fleets/actions/respawn.d.ts.map +1 -0
  100. package/dist/fleets/actions/respawn.js +93 -0
  101. package/dist/fleets/actions/respawn.js.map +1 -0
  102. package/dist/fleets/actions/ship-import.d.ts +1 -1
  103. package/dist/fleets/actions/ship-import.d.ts.map +1 -1
  104. package/dist/fleets/actions/ship-import.js +67 -91
  105. package/dist/fleets/actions/ship-import.js.map +1 -1
  106. package/dist/fleets/cooldown.d.ts +44 -0
  107. package/dist/fleets/cooldown.d.ts.map +1 -0
  108. package/dist/fleets/cooldown.js +43 -0
  109. package/dist/fleets/cooldown.js.map +1 -0
  110. package/dist/fleets/coordinate-warp-estimate.d.ts +70 -0
  111. package/dist/fleets/coordinate-warp-estimate.d.ts.map +1 -0
  112. package/dist/fleets/coordinate-warp-estimate.js +46 -0
  113. package/dist/fleets/coordinate-warp-estimate.js.map +1 -0
  114. package/dist/fleets/index.d.ts +35 -0
  115. package/dist/fleets/index.d.ts.map +1 -1
  116. package/dist/fleets/index.js +54 -12
  117. package/dist/fleets/index.js.map +1 -1
  118. package/dist/fleets/movement-arithmetic.d.ts +21 -0
  119. package/dist/fleets/movement-arithmetic.d.ts.map +1 -0
  120. package/dist/fleets/movement-arithmetic.js +41 -0
  121. package/dist/fleets/movement-arithmetic.js.map +1 -0
  122. package/dist/fleets/subwarp-estimate.d.ts +70 -0
  123. package/dist/fleets/subwarp-estimate.d.ts.map +1 -0
  124. package/dist/fleets/subwarp-estimate.js +38 -0
  125. package/dist/fleets/subwarp-estimate.js.map +1 -0
  126. package/dist/fleets/travel-profile.d.ts +102 -0
  127. package/dist/fleets/travel-profile.d.ts.map +1 -0
  128. package/dist/fleets/travel-profile.js +120 -0
  129. package/dist/fleets/travel-profile.js.map +1 -0
  130. package/dist/fleets/warp-lane-estimate.d.ts +59 -0
  131. package/dist/fleets/warp-lane-estimate.d.ts.map +1 -0
  132. package/dist/fleets/warp-lane-estimate.js +36 -0
  133. package/dist/fleets/warp-lane-estimate.js.map +1 -0
  134. package/dist/fleets/warp-lane-policy.d.ts +68 -0
  135. package/dist/fleets/warp-lane-policy.d.ts.map +1 -0
  136. package/dist/fleets/warp-lane-policy.js +91 -0
  137. package/dist/fleets/warp-lane-policy.js.map +1 -0
  138. package/dist/fleets/warp-lane-toll.d.ts +55 -0
  139. package/dist/fleets/warp-lane-toll.d.ts.map +1 -0
  140. package/dist/fleets/warp-lane-toll.js +79 -0
  141. package/dist/fleets/warp-lane-toll.js.map +1 -0
  142. package/dist/identity/actions/create-profile.d.ts +1 -1
  143. package/dist/identity/actions/create-profile.d.ts.map +1 -1
  144. package/dist/identity/actions/create-profile.js +2 -2
  145. package/dist/identity/actions/create-profile.js.map +1 -1
  146. package/dist/identity/actions/index.d.ts +4 -4
  147. package/dist/identity/actions/index.d.ts.map +1 -1
  148. package/dist/identity/actions/index.js +51 -29
  149. package/dist/identity/actions/index.js.map +1 -1
  150. package/dist/identity/index.d.ts +5 -2
  151. package/dist/identity/index.d.ts.map +1 -1
  152. package/dist/identity/index.js +6 -12
  153. package/dist/identity/index.js.map +1 -1
  154. package/dist/identity/research-state.d.ts +60 -0
  155. package/dist/identity/research-state.d.ts.map +1 -0
  156. package/dist/identity/research-state.js +68 -0
  157. package/dist/identity/research-state.js.map +1 -0
  158. package/dist/index.d.ts +24 -0
  159. package/dist/index.d.ts.map +1 -1
  160. package/dist/index.js +20 -3
  161. package/dist/index.js.map +1 -1
  162. package/dist/internal/c4/account-decoding.d.ts +49 -0
  163. package/dist/internal/c4/account-decoding.d.ts.map +1 -0
  164. package/dist/internal/c4/account-decoding.js +74 -0
  165. package/dist/internal/c4/account-decoding.js.map +1 -0
  166. package/dist/internal/c4/cargo-bytes-config.d.ts +7 -0
  167. package/dist/internal/c4/cargo-bytes-config.d.ts.map +1 -0
  168. package/dist/internal/c4/cargo-bytes-config.js +19 -0
  169. package/dist/internal/c4/cargo-bytes-config.js.map +1 -0
  170. package/dist/internal/c4/cargo-pod.d.ts +15 -0
  171. package/dist/internal/c4/cargo-pod.d.ts.map +1 -0
  172. package/dist/internal/c4/cargo-pod.js +13 -0
  173. package/dist/internal/c4/cargo-pod.js.map +1 -0
  174. package/dist/internal/c4/character-modifier.d.ts +1 -1
  175. package/dist/internal/c4/character-modifier.d.ts.map +1 -1
  176. package/dist/internal/c4/character-registration.d.ts +2 -0
  177. package/dist/internal/c4/character-registration.d.ts.map +1 -1
  178. package/dist/internal/c4/character-registration.js +2 -0
  179. package/dist/internal/c4/character-registration.js.map +1 -1
  180. package/dist/internal/c4/character.d.ts +157 -0
  181. package/dist/internal/c4/character.d.ts.map +1 -0
  182. package/dist/internal/c4/character.js +64 -0
  183. package/dist/internal/c4/character.js.map +1 -0
  184. package/dist/internal/c4/claim-stake-building-definitions.d.ts.map +1 -1
  185. package/dist/internal/c4/claim-stake-building-definitions.js +2 -1
  186. package/dist/internal/c4/claim-stake-building-definitions.js.map +1 -1
  187. package/dist/internal/c4/claim-stake-configuration.d.ts.map +1 -1
  188. package/dist/internal/c4/claim-stake-configuration.js +5 -36
  189. package/dist/internal/c4/claim-stake-configuration.js.map +1 -1
  190. package/dist/internal/c4/claim-stake-definitions.d.ts +4 -4
  191. package/dist/internal/c4/claim-stake-definitions.d.ts.map +1 -1
  192. package/dist/internal/c4/claim-stake-definitions.js +2 -1
  193. package/dist/internal/c4/claim-stake-definitions.js.map +1 -1
  194. package/dist/internal/c4/claim-stake.d.ts +4 -27
  195. package/dist/internal/c4/claim-stake.d.ts.map +1 -1
  196. package/dist/internal/c4/claim-stake.js +38 -83
  197. package/dist/internal/c4/claim-stake.js.map +1 -1
  198. package/dist/internal/c4/combat.d.ts +1 -82
  199. package/dist/internal/c4/combat.d.ts.map +1 -1
  200. package/dist/internal/c4/combat.js +16 -213
  201. package/dist/internal/c4/combat.js.map +1 -1
  202. package/dist/internal/c4/crafting-process-codec.d.ts +13 -0
  203. package/dist/internal/c4/crafting-process-codec.d.ts.map +1 -0
  204. package/dist/internal/c4/crafting-process-codec.js +34 -0
  205. package/dist/internal/c4/crafting-process-codec.js.map +1 -0
  206. package/dist/internal/c4/crafting.d.ts +25 -33
  207. package/dist/internal/c4/crafting.d.ts.map +1 -1
  208. package/dist/internal/c4/crafting.js +76 -127
  209. package/dist/internal/c4/crafting.js.map +1 -1
  210. package/dist/internal/c4/currency-cache.d.ts +6 -0
  211. package/dist/internal/c4/currency-cache.d.ts.map +1 -0
  212. package/dist/internal/c4/currency-cache.js +27 -0
  213. package/dist/internal/c4/currency-cache.js.map +1 -0
  214. package/dist/internal/c4/discriminators.d.ts +81 -0
  215. package/dist/internal/c4/discriminators.d.ts.map +1 -0
  216. package/dist/internal/c4/discriminators.js +166 -0
  217. package/dist/internal/c4/discriminators.js.map +1 -0
  218. package/dist/internal/c4/docking-funding.d.ts +4 -0
  219. package/dist/internal/c4/docking-funding.d.ts.map +1 -0
  220. package/dist/internal/c4/docking-funding.js +11 -0
  221. package/dist/internal/c4/docking-funding.js.map +1 -0
  222. package/dist/internal/c4/faction-epoch-meter.d.ts +10 -0
  223. package/dist/internal/c4/faction-epoch-meter.d.ts.map +1 -0
  224. package/dist/internal/c4/faction-epoch-meter.js +26 -0
  225. package/dist/internal/c4/faction-epoch-meter.js.map +1 -0
  226. package/dist/internal/c4/faction-treasury.d.ts +23 -0
  227. package/dist/internal/c4/faction-treasury.d.ts.map +1 -0
  228. package/dist/internal/c4/faction-treasury.js +41 -0
  229. package/dist/internal/c4/faction-treasury.js.map +1 -0
  230. package/dist/internal/c4/faction.d.ts +21 -0
  231. package/dist/internal/c4/faction.d.ts.map +1 -0
  232. package/dist/internal/c4/faction.js +23 -0
  233. package/dist/internal/c4/faction.js.map +1 -0
  234. package/dist/internal/c4/factions.d.ts +13 -57
  235. package/dist/internal/c4/factions.d.ts.map +1 -1
  236. package/dist/internal/c4/factions.js +79 -222
  237. package/dist/internal/c4/factions.js.map +1 -1
  238. package/dist/internal/c4/fleet-arrival.d.ts +28 -0
  239. package/dist/internal/c4/fleet-arrival.d.ts.map +1 -0
  240. package/dist/internal/c4/fleet-arrival.js +42 -0
  241. package/dist/internal/c4/fleet-arrival.js.map +1 -0
  242. package/dist/internal/c4/fleet-creation.d.ts +7 -0
  243. package/dist/internal/c4/fleet-creation.d.ts.map +1 -0
  244. package/dist/internal/c4/fleet-creation.js +171 -0
  245. package/dist/internal/c4/fleet-creation.js.map +1 -0
  246. package/dist/internal/c4/fleet-crew-binding.d.ts +9 -0
  247. package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -1
  248. package/dist/internal/c4/fleet-crew-binding.js +31 -44
  249. package/dist/internal/c4/fleet-crew-binding.js.map +1 -1
  250. package/dist/internal/c4/fleet-respawn.d.ts +17 -0
  251. package/dist/internal/c4/fleet-respawn.d.ts.map +1 -0
  252. package/dist/internal/c4/fleet-respawn.js +62 -0
  253. package/dist/internal/c4/fleet-respawn.js.map +1 -0
  254. package/dist/internal/c4/fleet-ship-assembly.d.ts +11 -0
  255. package/dist/internal/c4/fleet-ship-assembly.d.ts.map +1 -0
  256. package/dist/internal/c4/fleet-ship-assembly.js +44 -0
  257. package/dist/internal/c4/fleet-ship-assembly.js.map +1 -0
  258. package/dist/internal/c4/fleet.d.ts +48 -19
  259. package/dist/internal/c4/fleet.d.ts.map +1 -1
  260. package/dist/internal/c4/fleet.js +50 -87
  261. package/dist/internal/c4/fleet.js.map +1 -1
  262. package/dist/internal/c4/game-definition-layout.d.ts +2 -0
  263. package/dist/internal/c4/game-definition-layout.d.ts.map +1 -1
  264. package/dist/internal/c4/game-definition-layout.js +4 -0
  265. package/dist/internal/c4/game-definition-layout.js.map +1 -1
  266. package/dist/internal/c4/game.d.ts +76 -30
  267. package/dist/internal/c4/game.d.ts.map +1 -1
  268. package/dist/internal/c4/game.js +173 -124
  269. package/dist/internal/c4/game.js.map +1 -1
  270. package/dist/internal/c4/identity.d.ts +3 -152
  271. package/dist/internal/c4/identity.d.ts.map +1 -1
  272. package/dist/internal/c4/identity.js +19 -126
  273. package/dist/internal/c4/identity.js.map +1 -1
  274. package/dist/internal/c4/local-market-order.d.ts +29 -0
  275. package/dist/internal/c4/local-market-order.d.ts.map +1 -0
  276. package/dist/internal/c4/local-market-order.js +46 -0
  277. package/dist/internal/c4/local-market-order.js.map +1 -0
  278. package/dist/internal/c4/loot-layout.js +1 -1
  279. package/dist/internal/c4/loot-layout.js.map +1 -1
  280. package/dist/internal/c4/loot.d.ts +87 -0
  281. package/dist/internal/c4/loot.d.ts.map +1 -0
  282. package/dist/internal/c4/loot.js +108 -0
  283. package/dist/internal/c4/loot.js.map +1 -0
  284. package/dist/internal/c4/loyalty.d.ts +0 -27
  285. package/dist/internal/c4/loyalty.d.ts.map +1 -1
  286. package/dist/internal/c4/loyalty.js +32 -160
  287. package/dist/internal/c4/loyalty.js.map +1 -1
  288. package/dist/internal/c4/market.d.ts +2 -38
  289. package/dist/internal/c4/market.d.ts.map +1 -1
  290. package/dist/internal/c4/market.js +26 -120
  291. package/dist/internal/c4/market.js.map +1 -1
  292. package/dist/internal/c4/mining-instructions.d.ts +2 -0
  293. package/dist/internal/c4/mining-instructions.d.ts.map +1 -0
  294. package/dist/internal/c4/mining-instructions.js +3 -0
  295. package/dist/internal/c4/mining-instructions.js.map +1 -0
  296. package/dist/internal/c4/open-signal.d.ts +8 -0
  297. package/dist/internal/c4/open-signal.d.ts.map +1 -0
  298. package/dist/internal/c4/open-signal.js +37 -0
  299. package/dist/internal/c4/open-signal.js.map +1 -0
  300. package/dist/internal/c4/pda.d.ts +31 -0
  301. package/dist/internal/c4/pda.d.ts.map +1 -1
  302. package/dist/internal/c4/pda.js +60 -17
  303. package/dist/internal/c4/pda.js.map +1 -1
  304. package/dist/internal/c4/profile-faction.d.ts +2 -1
  305. package/dist/internal/c4/profile-faction.d.ts.map +1 -1
  306. package/dist/internal/c4/profile-faction.js +36 -72
  307. package/dist/internal/c4/profile-faction.js.map +1 -1
  308. package/dist/internal/c4/profile-permissions.d.ts +1 -1
  309. package/dist/internal/c4/profile-permissions.d.ts.map +1 -1
  310. package/dist/internal/c4/profile-permissions.js +2 -1
  311. package/dist/internal/c4/profile-permissions.js.map +1 -1
  312. package/dist/internal/c4/region-geometry.d.ts +8 -0
  313. package/dist/internal/c4/region-geometry.d.ts.map +1 -0
  314. package/dist/internal/c4/region-geometry.js +43 -0
  315. package/dist/internal/c4/region-geometry.js.map +1 -0
  316. package/dist/internal/c4/rewards.d.ts +1 -61
  317. package/dist/internal/c4/rewards.d.ts.map +1 -1
  318. package/dist/internal/c4/rewards.js +23 -203
  319. package/dist/internal/c4/rewards.js.map +1 -1
  320. package/dist/internal/c4/runtime-bindings.d.ts +4 -0
  321. package/dist/internal/c4/runtime-bindings.d.ts.map +1 -0
  322. package/dist/internal/c4/runtime-bindings.js +4 -0
  323. package/dist/internal/c4/runtime-bindings.js.map +1 -0
  324. package/dist/internal/c4/scan-detection-codecs.d.ts +3 -0
  325. package/dist/internal/c4/scan-detection-codecs.d.ts.map +1 -0
  326. package/dist/internal/c4/scan-detection-codecs.js +3 -0
  327. package/dist/internal/c4/scan-detection-codecs.js.map +1 -0
  328. package/dist/internal/c4/scan-lifecycle.d.ts +306 -0
  329. package/dist/internal/c4/scan-lifecycle.d.ts.map +1 -0
  330. package/dist/internal/c4/scan-lifecycle.js +235 -0
  331. package/dist/internal/c4/scan-lifecycle.js.map +1 -0
  332. package/dist/internal/c4/scanning.d.ts +1 -28
  333. package/dist/internal/c4/scanning.d.ts.map +1 -1
  334. package/dist/internal/c4/scanning.js +32 -103
  335. package/dist/internal/c4/scanning.js.map +1 -1
  336. package/dist/internal/c4/ship-import.d.ts +4 -0
  337. package/dist/internal/c4/ship-import.d.ts.map +1 -0
  338. package/dist/internal/c4/ship-import.js +13 -0
  339. package/dist/internal/c4/ship-import.js.map +1 -0
  340. package/dist/internal/c4/ship-stats.d.ts.map +1 -1
  341. package/dist/internal/c4/ship-stats.js +45 -43
  342. package/dist/internal/c4/ship-stats.js.map +1 -1
  343. package/dist/internal/c4/starbase.d.ts +0 -32
  344. package/dist/internal/c4/starbase.d.ts.map +1 -1
  345. package/dist/internal/c4/starbase.js +26 -136
  346. package/dist/internal/c4/starbase.js.map +1 -1
  347. package/dist/internal/c4/wallet-cargo-cache.js +2 -1
  348. package/dist/internal/c4/wallet-cargo-cache.js.map +1 -1
  349. package/dist/internal/c4/world.d.ts +36 -7
  350. package/dist/internal/c4/world.d.ts.map +1 -1
  351. package/dist/internal/c4/world.js +87 -129
  352. package/dist/internal/c4/world.js.map +1 -1
  353. package/dist/internal/cargo.d.ts +2 -0
  354. package/dist/internal/cargo.d.ts.map +1 -1
  355. package/dist/internal/cargo.js +8 -0
  356. package/dist/internal/cargo.js.map +1 -1
  357. package/dist/internal/fleet.d.ts +1 -0
  358. package/dist/internal/fleet.d.ts.map +1 -1
  359. package/dist/internal/fleet.js +3 -1
  360. package/dist/internal/fleet.js.map +1 -1
  361. package/dist/internal/loyalty-atlas-bank-state.d.ts +16 -0
  362. package/dist/internal/loyalty-atlas-bank-state.d.ts.map +1 -0
  363. package/dist/internal/loyalty-atlas-bank-state.js +10 -0
  364. package/dist/internal/loyalty-atlas-bank-state.js.map +1 -0
  365. package/dist/internal/planning/account-state.d.ts +6 -0
  366. package/dist/internal/planning/account-state.d.ts.map +1 -1
  367. package/dist/internal/planning/account-state.js +13 -0
  368. package/dist/internal/planning/account-state.js.map +1 -1
  369. package/dist/internal/planning/action-runtime.d.ts +38 -0
  370. package/dist/internal/planning/action-runtime.d.ts.map +1 -0
  371. package/dist/internal/planning/action-runtime.js +63 -0
  372. package/dist/internal/planning/action-runtime.js.map +1 -0
  373. package/dist/internal/planning/arrival-guards.d.ts +19 -0
  374. package/dist/internal/planning/arrival-guards.d.ts.map +1 -0
  375. package/dist/internal/planning/arrival-guards.js +172 -0
  376. package/dist/internal/planning/arrival-guards.js.map +1 -0
  377. package/dist/internal/planning/authorization-adapter.d.ts +45 -37
  378. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
  379. package/dist/internal/planning/authorization-adapter.js +169 -81
  380. package/dist/internal/planning/authorization-adapter.js.map +1 -1
  381. package/dist/internal/planning/character-registration-guard.d.ts +4 -0
  382. package/dist/internal/planning/character-registration-guard.d.ts.map +1 -0
  383. package/dist/internal/planning/character-registration-guard.js +59 -0
  384. package/dist/internal/planning/character-registration-guard.js.map +1 -0
  385. package/dist/internal/planning/character-registration.d.ts +23 -0
  386. package/dist/internal/planning/character-registration.d.ts.map +1 -0
  387. package/dist/internal/planning/character-registration.js +87 -0
  388. package/dist/internal/planning/character-registration.js.map +1 -0
  389. package/dist/internal/planning/currency-cache-guard.d.ts +4 -0
  390. package/dist/internal/planning/currency-cache-guard.d.ts.map +1 -0
  391. package/dist/internal/planning/currency-cache-guard.js +33 -0
  392. package/dist/internal/planning/currency-cache-guard.js.map +1 -0
  393. package/dist/internal/planning/democracy-history.d.ts +50 -0
  394. package/dist/internal/planning/democracy-history.d.ts.map +1 -0
  395. package/dist/internal/planning/democracy-history.js +189 -0
  396. package/dist/internal/planning/democracy-history.js.map +1 -0
  397. package/dist/internal/planning/direct-options.d.ts +17 -0
  398. package/dist/internal/planning/direct-options.d.ts.map +1 -0
  399. package/dist/internal/planning/direct-options.js +43 -0
  400. package/dist/internal/planning/direct-options.js.map +1 -0
  401. package/dist/internal/planning/faction-enrollment.d.ts +0 -4
  402. package/dist/internal/planning/faction-enrollment.d.ts.map +1 -1
  403. package/dist/internal/planning/faction-enrollment.js +1 -31
  404. package/dist/internal/planning/faction-enrollment.js.map +1 -1
  405. package/dist/internal/planning/faction-trade-guards.d.ts +30 -0
  406. package/dist/internal/planning/faction-trade-guards.d.ts.map +1 -0
  407. package/dist/internal/planning/faction-trade-guards.js +15 -0
  408. package/dist/internal/planning/faction-trade-guards.js.map +1 -0
  409. package/dist/internal/planning/faction-trade-state.d.ts +16 -0
  410. package/dist/internal/planning/faction-trade-state.d.ts.map +1 -0
  411. package/dist/internal/planning/faction-trade-state.js +43 -0
  412. package/dist/internal/planning/faction-trade-state.js.map +1 -0
  413. package/dist/internal/planning/fleet-arrival.d.ts +40 -0
  414. package/dist/internal/planning/fleet-arrival.d.ts.map +1 -0
  415. package/dist/internal/planning/fleet-arrival.js +107 -0
  416. package/dist/internal/planning/fleet-arrival.js.map +1 -0
  417. package/dist/internal/planning/fleet-attack-xp.d.ts +20 -0
  418. package/dist/internal/planning/fleet-attack-xp.d.ts.map +1 -0
  419. package/dist/internal/planning/fleet-attack-xp.js +104 -0
  420. package/dist/internal/planning/fleet-attack-xp.js.map +1 -0
  421. package/dist/internal/planning/fleet-creation.d.ts +30 -0
  422. package/dist/internal/planning/fleet-creation.d.ts.map +1 -0
  423. package/dist/internal/planning/fleet-creation.js +89 -0
  424. package/dist/internal/planning/fleet-creation.js.map +1 -0
  425. package/dist/internal/planning/fleet-crew-guard.d.ts +28 -0
  426. package/dist/internal/planning/fleet-crew-guard.d.ts.map +1 -0
  427. package/dist/internal/planning/fleet-crew-guard.js +48 -0
  428. package/dist/internal/planning/fleet-crew-guard.js.map +1 -0
  429. package/dist/internal/planning/fleet-crew-transfer.d.ts +7 -0
  430. package/dist/internal/planning/fleet-crew-transfer.d.ts.map +1 -0
  431. package/dist/internal/planning/fleet-crew-transfer.js +123 -0
  432. package/dist/internal/planning/fleet-crew-transfer.js.map +1 -0
  433. package/dist/internal/planning/fleet-dock-funding-guard.d.ts +42 -0
  434. package/dist/internal/planning/fleet-dock-funding-guard.d.ts.map +1 -0
  435. package/dist/internal/planning/fleet-dock-funding-guard.js +209 -0
  436. package/dist/internal/planning/fleet-dock-funding-guard.js.map +1 -0
  437. package/dist/internal/planning/fleet-dock-funding.d.ts +9 -0
  438. package/dist/internal/planning/fleet-dock-funding.d.ts.map +1 -0
  439. package/dist/internal/planning/fleet-dock-funding.js +154 -0
  440. package/dist/internal/planning/fleet-dock-funding.js.map +1 -0
  441. package/dist/internal/planning/fleet-docking-guard.d.ts +4 -0
  442. package/dist/internal/planning/fleet-docking-guard.d.ts.map +1 -0
  443. package/dist/internal/planning/fleet-docking-guard.js +43 -0
  444. package/dist/internal/planning/fleet-docking-guard.js.map +1 -0
  445. package/dist/internal/planning/fleet-docking.d.ts +10 -0
  446. package/dist/internal/planning/fleet-docking.d.ts.map +1 -0
  447. package/dist/internal/planning/fleet-docking.js +71 -0
  448. package/dist/internal/planning/fleet-docking.js.map +1 -0
  449. package/dist/internal/planning/fleet-respawn.d.ts +28 -0
  450. package/dist/internal/planning/fleet-respawn.d.ts.map +1 -0
  451. package/dist/internal/planning/fleet-respawn.js +164 -0
  452. package/dist/internal/planning/fleet-respawn.js.map +1 -0
  453. package/dist/internal/planning/fleet-ship-assembly.d.ts +36 -0
  454. package/dist/internal/planning/fleet-ship-assembly.d.ts.map +1 -0
  455. package/dist/internal/planning/fleet-ship-assembly.js +118 -0
  456. package/dist/internal/planning/fleet-ship-assembly.js.map +1 -0
  457. package/dist/internal/planning/fleet-state.d.ts +25 -0
  458. package/dist/internal/planning/fleet-state.d.ts.map +1 -0
  459. package/dist/internal/planning/fleet-state.js +28 -0
  460. package/dist/internal/planning/fleet-state.js.map +1 -0
  461. package/dist/internal/planning/governance-fees.d.ts +64 -0
  462. package/dist/internal/planning/governance-fees.d.ts.map +1 -0
  463. package/dist/internal/planning/governance-fees.js +231 -0
  464. package/dist/internal/planning/governance-fees.js.map +1 -0
  465. package/dist/internal/planning/local-market-order-funding.d.ts +8 -0
  466. package/dist/internal/planning/local-market-order-funding.d.ts.map +1 -0
  467. package/dist/internal/planning/local-market-order-funding.js +128 -0
  468. package/dist/internal/planning/local-market-order-funding.js.map +1 -0
  469. package/dist/internal/planning/local-market-order.d.ts +40 -0
  470. package/dist/internal/planning/local-market-order.d.ts.map +1 -0
  471. package/dist/internal/planning/local-market-order.js +139 -0
  472. package/dist/internal/planning/local-market-order.js.map +1 -0
  473. package/dist/internal/planning/mining-stop.d.ts +14 -0
  474. package/dist/internal/planning/mining-stop.d.ts.map +1 -0
  475. package/dist/internal/planning/mining-stop.js +42 -0
  476. package/dist/internal/planning/mining-stop.js.map +1 -0
  477. package/dist/internal/planning/movement-character.d.ts +7 -0
  478. package/dist/internal/planning/movement-character.d.ts.map +1 -0
  479. package/dist/internal/planning/movement-character.js +41 -0
  480. package/dist/internal/planning/movement-character.js.map +1 -0
  481. package/dist/internal/planning/movement-xp-guard.d.ts +4 -0
  482. package/dist/internal/planning/movement-xp-guard.d.ts.map +1 -0
  483. package/dist/internal/planning/movement-xp-guard.js +104 -0
  484. package/dist/internal/planning/movement-xp-guard.js.map +1 -0
  485. package/dist/internal/planning/open-signal-guard.d.ts +3 -0
  486. package/dist/internal/planning/open-signal-guard.d.ts.map +1 -0
  487. package/dist/internal/planning/open-signal-guard.js +32 -0
  488. package/dist/internal/planning/open-signal-guard.js.map +1 -0
  489. package/dist/internal/planning/open-signal.d.ts +31 -0
  490. package/dist/internal/planning/open-signal.d.ts.map +1 -0
  491. package/dist/internal/planning/open-signal.js +85 -0
  492. package/dist/internal/planning/open-signal.js.map +1 -0
  493. package/dist/internal/planning/original-token.d.ts +40 -0
  494. package/dist/internal/planning/original-token.d.ts.map +1 -0
  495. package/dist/internal/planning/original-token.js +112 -0
  496. package/dist/internal/planning/original-token.js.map +1 -0
  497. package/dist/internal/planning/own-starbase-facts.d.ts +33 -0
  498. package/dist/internal/planning/own-starbase-facts.d.ts.map +1 -0
  499. package/dist/internal/planning/own-starbase-facts.js +49 -0
  500. package/dist/internal/planning/own-starbase-facts.js.map +1 -0
  501. package/dist/internal/planning/plan-fields.d.ts +60 -0
  502. package/dist/internal/planning/plan-fields.d.ts.map +1 -0
  503. package/dist/internal/planning/plan-fields.js +159 -0
  504. package/dist/internal/planning/plan-fields.js.map +1 -0
  505. package/dist/internal/planning/plan-guards.d.ts +4 -0
  506. package/dist/internal/planning/plan-guards.d.ts.map +1 -0
  507. package/dist/internal/planning/plan-guards.js +168 -0
  508. package/dist/internal/planning/plan-guards.js.map +1 -0
  509. package/dist/internal/planning/profile-key.d.ts +13 -0
  510. package/dist/internal/planning/profile-key.d.ts.map +1 -0
  511. package/dist/internal/planning/profile-key.js +20 -0
  512. package/dist/internal/planning/profile-key.js.map +1 -0
  513. package/dist/internal/planning/recipe-state.d.ts +6 -0
  514. package/dist/internal/planning/recipe-state.d.ts.map +1 -0
  515. package/dist/internal/planning/recipe-state.js +20 -0
  516. package/dist/internal/planning/recipe-state.js.map +1 -0
  517. package/dist/internal/planning/rent.d.ts +19 -0
  518. package/dist/internal/planning/rent.d.ts.map +1 -0
  519. package/dist/internal/planning/rent.js +35 -0
  520. package/dist/internal/planning/rent.js.map +1 -0
  521. package/dist/internal/planning/respawn-guards.d.ts +3 -0
  522. package/dist/internal/planning/respawn-guards.d.ts.map +1 -0
  523. package/dist/internal/planning/respawn-guards.js +42 -0
  524. package/dist/internal/planning/respawn-guards.js.map +1 -0
  525. package/dist/internal/planning/runtime-guards.d.ts +41 -0
  526. package/dist/internal/planning/runtime-guards.d.ts.map +1 -0
  527. package/dist/internal/planning/runtime-guards.js +640 -0
  528. package/dist/internal/planning/runtime-guards.js.map +1 -0
  529. package/dist/internal/planning/scan-completion-guard.d.ts +43 -0
  530. package/dist/internal/planning/scan-completion-guard.d.ts.map +1 -0
  531. package/dist/internal/planning/scan-completion-guard.js +95 -0
  532. package/dist/internal/planning/scan-completion-guard.js.map +1 -0
  533. package/dist/internal/planning/scan-completion.d.ts +20 -0
  534. package/dist/internal/planning/scan-completion.d.ts.map +1 -0
  535. package/dist/internal/planning/scan-completion.js +197 -0
  536. package/dist/internal/planning/scan-completion.js.map +1 -0
  537. package/dist/internal/planning/scan-detect-guard.d.ts +34 -0
  538. package/dist/internal/planning/scan-detect-guard.d.ts.map +1 -0
  539. package/dist/internal/planning/scan-detect-guard.js +77 -0
  540. package/dist/internal/planning/scan-detect-guard.js.map +1 -0
  541. package/dist/internal/planning/scan-detect.d.ts +24 -0
  542. package/dist/internal/planning/scan-detect.d.ts.map +1 -0
  543. package/dist/internal/planning/scan-detect.js +245 -0
  544. package/dist/internal/planning/scan-detect.js.map +1 -0
  545. package/dist/internal/planning/scan-input.d.ts +9 -0
  546. package/dist/internal/planning/scan-input.d.ts.map +1 -0
  547. package/dist/internal/planning/scan-input.js +58 -0
  548. package/dist/internal/planning/scan-input.js.map +1 -0
  549. package/dist/internal/planning/ship-import-funding.d.ts +22 -0
  550. package/dist/internal/planning/ship-import-funding.d.ts.map +1 -0
  551. package/dist/internal/planning/ship-import-funding.js +53 -0
  552. package/dist/internal/planning/ship-import-funding.js.map +1 -0
  553. package/dist/internal/planning/ship-token.d.ts +1 -6
  554. package/dist/internal/planning/ship-token.d.ts.map +1 -1
  555. package/dist/internal/planning/ship-token.js +2 -41
  556. package/dist/internal/planning/ship-token.js.map +1 -1
  557. package/dist/internal/planning/starbase-player-owner.d.ts +21 -0
  558. package/dist/internal/planning/starbase-player-owner.d.ts.map +1 -0
  559. package/dist/internal/planning/starbase-player-owner.js +17 -0
  560. package/dist/internal/planning/starbase-player-owner.js.map +1 -0
  561. package/dist/internal/planning/starbase-system-guard.d.ts +6 -0
  562. package/dist/internal/planning/starbase-system-guard.d.ts.map +1 -0
  563. package/dist/internal/planning/starbase-system-guard.js +94 -0
  564. package/dist/internal/planning/starbase-system-guard.js.map +1 -0
  565. package/dist/internal/planning/starbase-system.d.ts +15 -0
  566. package/dist/internal/planning/starbase-system.d.ts.map +1 -0
  567. package/dist/internal/planning/starbase-system.js +25 -0
  568. package/dist/internal/planning/starbase-system.js.map +1 -0
  569. package/dist/internal/planning/token-mint.d.ts +4 -0
  570. package/dist/internal/planning/token-mint.d.ts.map +1 -0
  571. package/dist/internal/planning/token-mint.js +16 -0
  572. package/dist/internal/planning/token-mint.js.map +1 -0
  573. package/dist/internal/planning/trade-faction-market.d.ts +20 -0
  574. package/dist/internal/planning/trade-faction-market.d.ts.map +1 -0
  575. package/dist/internal/planning/trade-faction-market.js +56 -0
  576. package/dist/internal/planning/trade-faction-market.js.map +1 -0
  577. package/dist/internal/planning/wallet-starbase.d.ts +34 -0
  578. package/dist/internal/planning/wallet-starbase.d.ts.map +1 -0
  579. package/dist/internal/planning/wallet-starbase.js +39 -0
  580. package/dist/internal/planning/wallet-starbase.js.map +1 -0
  581. package/dist/internal/planning/xp-runtime.d.ts +36 -0
  582. package/dist/internal/planning/xp-runtime.d.ts.map +1 -0
  583. package/dist/internal/planning/xp-runtime.js +117 -0
  584. package/dist/internal/planning/xp-runtime.js.map +1 -0
  585. package/dist/internal/read-meta.d.ts +12 -0
  586. package/dist/internal/read-meta.d.ts.map +1 -1
  587. package/dist/internal/read-meta.js +10 -0
  588. package/dist/internal/read-meta.js.map +1 -1
  589. package/dist/internal/system-program.d.ts +4 -0
  590. package/dist/internal/system-program.d.ts.map +1 -0
  591. package/dist/internal/system-program.js +3 -0
  592. package/dist/internal/system-program.js.map +1 -0
  593. package/dist/loyalty/actions/index.d.ts +1 -1
  594. package/dist/loyalty/actions/index.d.ts.map +1 -1
  595. package/dist/loyalty/actions/index.js +15 -45
  596. package/dist/loyalty/actions/index.js.map +1 -1
  597. package/dist/loyalty/index.d.ts.map +1 -1
  598. package/dist/loyalty/index.js +6 -18
  599. package/dist/loyalty/index.js.map +1 -1
  600. package/dist/markets/actions/index.d.ts +62 -4
  601. package/dist/markets/actions/index.d.ts.map +1 -1
  602. package/dist/markets/actions/index.js +230 -178
  603. package/dist/markets/actions/index.js.map +1 -1
  604. package/dist/markets/actions/trade-faction-market.d.ts +43 -0
  605. package/dist/markets/actions/trade-faction-market.d.ts.map +1 -0
  606. package/dist/markets/actions/trade-faction-market.js +277 -0
  607. package/dist/markets/actions/trade-faction-market.js.map +1 -0
  608. package/dist/markets/index.d.ts +38 -7
  609. package/dist/markets/index.d.ts.map +1 -1
  610. package/dist/markets/index.js +59 -20
  611. package/dist/markets/index.js.map +1 -1
  612. package/dist/mining/actions/index.d.ts +87 -0
  613. package/dist/mining/actions/index.d.ts.map +1 -0
  614. package/dist/mining/actions/index.js +319 -0
  615. package/dist/mining/actions/index.js.map +1 -0
  616. package/dist/mining/estimate.d.ts +114 -0
  617. package/dist/mining/estimate.d.ts.map +1 -0
  618. package/dist/mining/estimate.js +127 -0
  619. package/dist/mining/estimate.js.map +1 -0
  620. package/dist/mining/index.d.ts +9 -2
  621. package/dist/mining/index.d.ts.map +1 -1
  622. package/dist/mining/index.js +10 -13
  623. package/dist/mining/index.js.map +1 -1
  624. package/dist/mining/profile.d.ts +82 -0
  625. package/dist/mining/profile.d.ts.map +1 -0
  626. package/dist/mining/profile.js +109 -0
  627. package/dist/mining/profile.js.map +1 -0
  628. package/dist/planning/assembly.d.ts +6 -1
  629. package/dist/planning/assembly.d.ts.map +1 -1
  630. package/dist/planning/assembly.js +12 -8
  631. package/dist/planning/assembly.js.map +1 -1
  632. package/dist/planning/execution.d.ts +19 -3
  633. package/dist/planning/execution.d.ts.map +1 -1
  634. package/dist/planning/execution.js +504 -72
  635. package/dist/planning/execution.js.map +1 -1
  636. package/dist/planning/index.d.ts +196 -149
  637. package/dist/planning/index.d.ts.map +1 -1
  638. package/dist/planning/index.js +31 -355
  639. package/dist/planning/index.js.map +1 -1
  640. package/dist/planning/plan-construction.d.ts +25 -0
  641. package/dist/planning/plan-construction.d.ts.map +1 -0
  642. package/dist/planning/plan-construction.js +143 -0
  643. package/dist/planning/plan-construction.js.map +1 -0
  644. package/dist/planning/plan-sequence-checkpoint.d.ts +9 -0
  645. package/dist/planning/plan-sequence-checkpoint.d.ts.map +1 -1
  646. package/dist/planning/plan-sequence-checkpoint.js +16 -7
  647. package/dist/planning/plan-sequence-checkpoint.js.map +1 -1
  648. package/dist/planning/plan-sequence-execution.d.ts +5 -0
  649. package/dist/planning/plan-sequence-execution.d.ts.map +1 -1
  650. package/dist/planning/plan-sequence-execution.js +74 -40
  651. package/dist/planning/plan-sequence-execution.js.map +1 -1
  652. package/dist/planning/plan-sequence.d.ts +2 -1
  653. package/dist/planning/plan-sequence.d.ts.map +1 -1
  654. package/dist/planning/plan-sequence.js +8 -1
  655. package/dist/planning/plan-sequence.js.map +1 -1
  656. package/dist/planning/plan-validation.d.ts +17 -0
  657. package/dist/planning/plan-validation.d.ts.map +1 -0
  658. package/dist/planning/plan-validation.js +127 -0
  659. package/dist/planning/plan-validation.js.map +1 -0
  660. package/dist/planning/simulation.d.ts +25 -1
  661. package/dist/planning/simulation.d.ts.map +1 -1
  662. package/dist/planning/simulation.js +111 -11
  663. package/dist/planning/simulation.js.map +1 -1
  664. package/dist/registry/cargo.d.ts +7 -12
  665. package/dist/registry/cargo.d.ts.map +1 -1
  666. package/dist/registry/cargo.js +20 -20
  667. package/dist/registry/cargo.js.map +1 -1
  668. package/dist/registry/docking.d.ts +10 -0
  669. package/dist/registry/docking.d.ts.map +1 -0
  670. package/dist/registry/docking.js +12 -0
  671. package/dist/registry/docking.js.map +1 -0
  672. package/dist/registry/index.d.ts +4 -0
  673. package/dist/registry/index.d.ts.map +1 -1
  674. package/dist/registry/index.js +190 -224
  675. package/dist/registry/index.js.map +1 -1
  676. package/dist/registry/onboarding.d.ts +10 -2
  677. package/dist/registry/onboarding.d.ts.map +1 -1
  678. package/dist/registry/onboarding.js +20 -7
  679. package/dist/registry/onboarding.js.map +1 -1
  680. package/dist/registry/scanning.d.ts +7 -0
  681. package/dist/registry/scanning.d.ts.map +1 -0
  682. package/dist/registry/scanning.js +13 -0
  683. package/dist/registry/scanning.js.map +1 -0
  684. package/dist/registry/ship-stats-snapshot.js +19 -19
  685. package/dist/registry/ship-stats-snapshot.js.map +1 -1
  686. package/dist/registry/ships.d.ts +22 -2
  687. package/dist/registry/ships.d.ts.map +1 -1
  688. package/dist/registry/ships.js +31 -4
  689. package/dist/registry/ships.js.map +1 -1
  690. package/dist/registry/xp-runtime.d.ts +4 -0
  691. package/dist/registry/xp-runtime.d.ts.map +1 -0
  692. package/dist/registry/xp-runtime.js +14 -0
  693. package/dist/registry/xp-runtime.js.map +1 -0
  694. package/dist/rewards/index.d.ts +11 -5
  695. package/dist/rewards/index.d.ts.map +1 -1
  696. package/dist/rewards/index.js +10 -21
  697. package/dist/rewards/index.js.map +1 -1
  698. package/dist/scanning/actions/index.d.ts +116 -0
  699. package/dist/scanning/actions/index.d.ts.map +1 -0
  700. package/dist/scanning/actions/index.js +191 -0
  701. package/dist/scanning/actions/index.js.map +1 -0
  702. package/dist/scanning/index.d.ts +5 -2
  703. package/dist/scanning/index.d.ts.map +1 -1
  704. package/dist/scanning/index.js +17 -21
  705. package/dist/scanning/index.js.map +1 -1
  706. package/dist/scanning/lifecycle.d.ts +77 -0
  707. package/dist/scanning/lifecycle.d.ts.map +1 -0
  708. package/dist/scanning/lifecycle.js +93 -0
  709. package/dist/scanning/lifecycle.js.map +1 -0
  710. package/dist/scanning/odds.d.ts +111 -0
  711. package/dist/scanning/odds.d.ts.map +1 -0
  712. package/dist/scanning/odds.js +294 -0
  713. package/dist/scanning/odds.js.map +1 -0
  714. package/dist/scanning/signals.d.ts +121 -0
  715. package/dist/scanning/signals.d.ts.map +1 -0
  716. package/dist/scanning/signals.js +171 -0
  717. package/dist/scanning/signals.js.map +1 -0
  718. package/dist/starbases/actions/index.d.ts +1 -1
  719. package/dist/starbases/actions/index.d.ts.map +1 -1
  720. package/dist/starbases/actions/index.js +16 -58
  721. package/dist/starbases/actions/index.js.map +1 -1
  722. package/dist/starbases/index.d.ts.map +1 -1
  723. package/dist/starbases/index.js +3 -11
  724. package/dist/starbases/index.js.map +1 -1
  725. package/dist/world/index.d.ts +110 -5
  726. package/dist/world/index.d.ts.map +1 -1
  727. package/dist/world/index.js +112 -15
  728. package/dist/world/index.js.map +1 -1
  729. package/dist/world/planet-claim-stake-plots.d.ts +130 -0
  730. package/dist/world/planet-claim-stake-plots.d.ts.map +1 -0
  731. package/dist/world/planet-claim-stake-plots.js +110 -0
  732. package/dist/world/planet-claim-stake-plots.js.map +1 -0
  733. package/dist/world/starbase-status.d.ts +176 -0
  734. package/dist/world/starbase-status.d.ts.map +1 -0
  735. package/dist/world/starbase-status.js +153 -0
  736. package/dist/world/starbase-status.js.map +1 -0
  737. package/package.json +10 -2
@@ -0,0 +1,114 @@
1
+ /** One selected Asteroid resource, using translated storage units rather than encoded fixed point.
2
+ * `runtimeMultiplier` is the caller's effective multiplier, including any applicable
3
+ * crew/research effects. No modifier composition or eligibility is inferred.
4
+ * @example
5
+ * ```ts
6
+ * const resource: MiningEstimateResourceInput = {
7
+ * cargoId: 300, richness: 2, storageCost: 2, runtimeMultiplier: 1.5,
8
+ * };
9
+ * ```
10
+ */
11
+ export interface MiningEstimateResourceInput {
12
+ readonly cargoId: number;
13
+ readonly richness: number;
14
+ readonly storageCost: number;
15
+ readonly runtimeMultiplier: number;
16
+ }
17
+ /** Explicit constant-rate Asteroid scenario. Balances and rates use cargo units;
18
+ * capacity, occupancy and storage costs use translated storage units. Occupancy
19
+ * includes all available Food; Ammo is held separately and frees no cargo space.
20
+ * Supply all 1–8 selected resources, including zero-yield rows. Fleet rate already
21
+ * includes ship/component effects: do not apply those again in the multipliers.
22
+ * @example
23
+ * ```ts
24
+ * const input: MiningEstimateInput = {
25
+ * fleetUnitsPerSecond: 2, durationSeconds: 60,
26
+ * resources: [{ cargoId: 300, richness: 1, storageCost: 1, runtimeMultiplier: 1 }],
27
+ * cargo: { occupiedSpace: 10, capacity: 100 },
28
+ * food: { availableUnits: 10, burnUnitsPerSecond: 0.1, storageCost: 1 },
29
+ * ammo: { availableUnits: 10, burnUnitsPerSecond: 0.1 },
30
+ * };
31
+ * ```
32
+ */
33
+ export interface MiningEstimateInput {
34
+ readonly fleetUnitsPerSecond: number;
35
+ /** Requested duration; the result reports the clipped duration. */
36
+ readonly durationSeconds: number;
37
+ readonly resources: readonly MiningEstimateResourceInput[];
38
+ readonly cargo: {
39
+ readonly occupiedSpace: number;
40
+ readonly capacity: number;
41
+ };
42
+ readonly food: {
43
+ readonly availableUnits: number;
44
+ readonly burnUnitsPerSecond: number;
45
+ readonly storageCost: number;
46
+ };
47
+ readonly ammo: {
48
+ readonly availableUnits: number;
49
+ readonly burnUnitsPerSecond: number;
50
+ };
51
+ }
52
+ /** Constraints reached at the end of an estimate; simultaneous limits are retained.
53
+ * @example
54
+ * ```ts
55
+ * const reason: MiningEstimateLimit = 'food';
56
+ * ```
57
+ */
58
+ export type MiningEstimateLimit = 'duration' | 'food' | 'ammo' | 'cargo' | 'no-output';
59
+ /** Immutable, JSON-safe constant-rate estimate, not a settlement guarantee.
60
+ * Projected quantities are fractional numbers; chain rounding, changing state,
61
+ * eligibility and tick ordering are excluded. A null limit means unbounded by
62
+ * that constraint, never an unknown balance. No-output scenarios run for zero time
63
+ * and project no upkeep. An initially full hold conservatively permits no mining,
64
+ * even when Food outflow could offset output: tick ordering is not established.
65
+ * @example
66
+ * ```ts
67
+ * declare const estimate: MiningEstimate;
68
+ * console.log(estimate.durationSeconds, estimate.limitingFactors);
69
+ * ```
70
+ */
71
+ export interface MiningEstimate {
72
+ readonly basis: 'official-model-estimate';
73
+ /** Requested duration clipped to the modeled limits, in seconds. */
74
+ readonly durationSeconds: number;
75
+ readonly outputs: readonly {
76
+ readonly cargoId: number;
77
+ readonly unitsPerSecond: number;
78
+ readonly projectedUnits: number;
79
+ }[];
80
+ readonly resourceVolumeInflowPerSecond: number;
81
+ readonly foodVolumeOutflowPerSecond: number;
82
+ /** May be negative when Food consumption frees more space than mining uses. */
83
+ readonly netCargoGrowthPerSecond: number;
84
+ readonly limitsSeconds: {
85
+ readonly food: number | null;
86
+ readonly ammo: number | null;
87
+ readonly cargo: number | null;
88
+ };
89
+ readonly limitingFactors: readonly MiningEstimateLimit[];
90
+ readonly consumedFoodUnits: number;
91
+ readonly consumedAmmoUnits: number;
92
+ readonly finalOccupiedSpace: number;
93
+ }
94
+ /** Estimates constant-rate Asteroid output, clipping duration to Food, Ammo and
95
+ * cargo capacity. Each rate is Fleet rate / selected count × richness × explicit
96
+ * effective runtime multiplier. Food consumption offsets volume growth while
97
+ * mining; Ammo does not. Hardness is absent from the official current C4 model.
98
+ * This is pure: it neither reads accounts nor validates resource eligibility.
99
+ * @throws InvalidDerivationInputError for invalid selections, inconsistent cargo
100
+ * occupancy, negative/nonfinite values or arithmetic overflow.
101
+ * @example
102
+ * ```ts
103
+ * const estimate = deriveMiningEstimate({
104
+ * fleetUnitsPerSecond: 2, durationSeconds: 60,
105
+ * resources: [{ cargoId: 300, richness: 1, storageCost: 1, runtimeMultiplier: 1 }],
106
+ * cargo: { occupiedSpace: 10, capacity: 100 },
107
+ * food: { availableUnits: 10, burnUnitsPerSecond: 0.1, storageCost: 1 },
108
+ * ammo: { availableUnits: 10, burnUnitsPerSecond: 0.1 },
109
+ * });
110
+ * console.log(estimate.outputs, estimate.limitingFactors);
111
+ * ```
112
+ */
113
+ export declare function deriveMiningEstimate(input: MiningEstimateInput): MiningEstimate;
114
+ //# sourceMappingURL=estimate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimate.d.ts","sourceRoot":"","sources":["../../src/mining/estimate.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,mEAAmE;IACnE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;QACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;KACrC,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAC7B,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,oEAAoE;IACpE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS;QACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;KACjC,EAAE,CAAC;IACJ,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,+EAA+E;IAC/E,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,aAAa,EAAE;QACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,CAAC;IACF,QAAQ,CAAC,eAAe,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACzD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAiBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,mBAAmB,GACzB,cAAc,CAmLhB"}
@@ -0,0 +1,127 @@
1
+ import { InvalidDerivationInputError } from '../client/errors.js';
2
+ import { freezeResolvedSnapshot } from '../internal/resolved-snapshot.js';
3
+ function checked(field, value) {
4
+ if (!Number.isFinite(value) || value < 0) {
5
+ throw new InvalidDerivationInputError(field, value, 'Supply finite, nonnegative mining inputs whose calculated rates, quantities and time limits remain finite.');
6
+ }
7
+ return value;
8
+ }
9
+ function invalid(field, value, remedy) {
10
+ throw new InvalidDerivationInputError(field, value, remedy);
11
+ }
12
+ /** Estimates constant-rate Asteroid output, clipping duration to Food, Ammo and
13
+ * cargo capacity. Each rate is Fleet rate / selected count × richness × explicit
14
+ * effective runtime multiplier. Food consumption offsets volume growth while
15
+ * mining; Ammo does not. Hardness is absent from the official current C4 model.
16
+ * This is pure: it neither reads accounts nor validates resource eligibility.
17
+ * @throws InvalidDerivationInputError for invalid selections, inconsistent cargo
18
+ * occupancy, negative/nonfinite values or arithmetic overflow.
19
+ * @example
20
+ * ```ts
21
+ * const estimate = deriveMiningEstimate({
22
+ * fleetUnitsPerSecond: 2, durationSeconds: 60,
23
+ * resources: [{ cargoId: 300, richness: 1, storageCost: 1, runtimeMultiplier: 1 }],
24
+ * cargo: { occupiedSpace: 10, capacity: 100 },
25
+ * food: { availableUnits: 10, burnUnitsPerSecond: 0.1, storageCost: 1 },
26
+ * ammo: { availableUnits: 10, burnUnitsPerSecond: 0.1 },
27
+ * });
28
+ * console.log(estimate.outputs, estimate.limitingFactors);
29
+ * ```
30
+ */
31
+ export function deriveMiningEstimate(input) {
32
+ const base = checked('Fleet mining units per second', input.fleetUnitsPerSecond);
33
+ const requested = checked('Mining duration seconds', input.durationSeconds);
34
+ const count = input.resources.length;
35
+ if (count < 1 || count > 8)
36
+ invalid('Selected resource count', count, 'Select between one and eight distinct Asteroid resources.');
37
+ const seen = new Set();
38
+ const rates = Array.from(input.resources, (resource, index) => {
39
+ if (resource === null || typeof resource !== 'object') {
40
+ invalid('Selected resource index', index, 'Supply a dense list of resource objects with explicit numeric inputs.');
41
+ }
42
+ const id = resource.cargoId;
43
+ if (!Number.isInteger(id) || id < 0 || id > 65535 || seen.has(id)) {
44
+ invalid('Selected cargo id', id, 'Supply distinct integer cargo ids between 0 and 65535 from the Asteroid deposit.');
45
+ }
46
+ seen.add(id);
47
+ const richness = checked('Resource richness', resource.richness);
48
+ const multiplier = checked('Resource runtime multiplier', resource.runtimeMultiplier);
49
+ const storageCost = checked('Resource storage cost', resource.storageCost);
50
+ const unitsPerSecond = checked('Resource output rate', checked('Richness-adjusted output rate', (base / count) * richness) *
51
+ multiplier);
52
+ return {
53
+ cargoId: id,
54
+ unitsPerSecond,
55
+ volume: checked('Resource volume inflow', unitsPerSecond * storageCost),
56
+ };
57
+ });
58
+ const capacity = checked('Cargo capacity', input.cargo.capacity);
59
+ const occupied = checked('Occupied cargo space', input.cargo.occupiedSpace);
60
+ if (occupied > capacity)
61
+ invalid('Occupied cargo space', occupied, 'Supply occupancy no greater than cargo capacity.');
62
+ const foodAvailable = checked('Available Food units', input.food.availableUnits);
63
+ const foodBurn = checked('Food burn units per second', input.food.burnUnitsPerSecond);
64
+ const foodStorage = checked('Food storage cost', input.food.storageCost);
65
+ if (checked('Available Food volume', foodAvailable * foodStorage) > occupied) {
66
+ invalid('Occupied cargo space', occupied, 'Include the volume of all available Food in occupied cargo space.');
67
+ }
68
+ const ammoAvailable = checked('Available Ammo units', input.ammo.availableUnits);
69
+ const ammoBurn = checked('Ammo burn units per second', input.ammo.burnUnitsPerSecond);
70
+ const resourceVolumeInflowPerSecond = rates.reduce((sum, row) => checked('Total resource volume inflow', sum + row.volume), 0);
71
+ const foodVolumeOutflowPerSecond = checked('Food volume outflow', foodBurn * foodStorage);
72
+ const netCargoGrowthPerSecond = resourceVolumeInflowPerSecond - foodVolumeOutflowPerSecond;
73
+ const limitsSeconds = {
74
+ food: foodBurn === 0
75
+ ? null
76
+ : checked('Food time limit', foodAvailable / foodBurn),
77
+ ammo: ammoBurn === 0
78
+ ? null
79
+ : checked('Ammo time limit', ammoAvailable / ammoBurn),
80
+ cargo: occupied === capacity
81
+ ? 0
82
+ : netCargoGrowthPerSecond > 0
83
+ ? checked('Cargo time limit', (capacity - occupied) / netCargoGrowthPerSecond)
84
+ : null,
85
+ };
86
+ const constraints = [
87
+ ['duration', requested],
88
+ ['food', limitsSeconds.food],
89
+ ['ammo', limitsSeconds.ammo],
90
+ ['cargo', limitsSeconds.cargo],
91
+ ];
92
+ const noOutput = rates.every((row) => row.unitsPerSecond === 0);
93
+ const durationSeconds = noOutput
94
+ ? 0
95
+ : Math.min(...constraints.flatMap(([, seconds]) => seconds === null ? [] : [seconds]));
96
+ const tolerance = Math.max(1e-9, durationSeconds * 1e-9);
97
+ const limitingFactors = noOutput
98
+ ? ['no-output']
99
+ : constraints
100
+ .filter(([, seconds]) => seconds !== null &&
101
+ Math.abs(seconds - durationSeconds) <= tolerance)
102
+ .map(([reason]) => reason);
103
+ const consumedFoodUnits = checked('Consumed Food units', foodBurn * durationSeconds);
104
+ const consumedAmmoUnits = checked('Consumed Ammo units', ammoBurn * durationSeconds);
105
+ const inflow = checked('Projected cargo inflow', resourceVolumeInflowPerSecond * durationSeconds);
106
+ const outflow = checked('Projected Food outflow', foodVolumeOutflowPerSecond * durationSeconds);
107
+ // Subtract Food first to avoid overflowing a temporary sum near Number.MAX_VALUE.
108
+ const finalOccupiedSpace = Math.min(capacity, checked('Projected occupied cargo space', Math.max(0, occupied - outflow) + inflow));
109
+ return freezeResolvedSnapshot({
110
+ basis: 'official-model-estimate',
111
+ durationSeconds,
112
+ outputs: rates.map(({ cargoId, unitsPerSecond }) => ({
113
+ cargoId,
114
+ unitsPerSecond,
115
+ projectedUnits: checked('Projected resource units', unitsPerSecond * durationSeconds),
116
+ })),
117
+ resourceVolumeInflowPerSecond,
118
+ foodVolumeOutflowPerSecond,
119
+ netCargoGrowthPerSecond,
120
+ limitsSeconds,
121
+ limitingFactors,
122
+ consumedFoodUnits,
123
+ consumedAmmoUnits,
124
+ finalOccupiedSpace,
125
+ });
126
+ }
127
+ //# sourceMappingURL=estimate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimate.js","sourceRoot":"","sources":["../../src/mining/estimate.ts"],"names":[],"mappings":"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"}
@@ -43,7 +43,7 @@ export interface MiningOutputRateInput {
43
43
  readonly cargoId: number;
44
44
  readonly richness: number;
45
45
  }
46
- /** One richness-adjusted resource output in cargo units per second.
46
+ /** One nominal resource output after sharing Fleet capacity and applying richness.
47
47
  * @example
48
48
  * ```ts
49
49
  * const rate: MiningOutputRate = { cargoId: 8, unitsPerSecond: 4.5 };
@@ -61,6 +61,7 @@ export interface MiningOutputRate {
61
61
  * ```
62
62
  */
63
63
  export interface FleetMiningOutput extends ResourceDepositItem {
64
+ /** Nominal cargo units per second, with Fleet capacity shared among selected resources. */
64
65
  readonly unitsPerSecond: number;
65
66
  }
66
67
  /** Immutable current extraction relationship for one active mining Fleet.
@@ -77,6 +78,7 @@ export interface FleetMiningSnapshot {
77
78
  readonly asteroid: EntityRef<'celestialBody'>;
78
79
  readonly lastUpdatedAtUnixSeconds: bigint;
79
80
  readonly regionXpModifier: WorldFixedValue;
81
+ /** Fleet base rate before sharing among selected resources and applying richness. */
80
82
  readonly miningRate: {
81
83
  readonly raw: bigint;
82
84
  readonly unitsPerSecond: number;
@@ -121,7 +123,10 @@ export declare function maybeGetResourceDeposit(context: SageContext, asteroid:
121
123
  * ```
122
124
  */
123
125
  export declare function deriveMiningStateAgeSeconds(lastUpdatedAtUnixSeconds: bigint, atUnixSeconds: bigint): number;
124
- /** Derives each selected output rate as Fleet units/second times deposit richness.
126
+ /** Shares Fleet units/second equally among selected resources, then applies richness.
127
+ * Supply the complete selected resource list, including zero-richness selections.
128
+ * An empty selection returns no rates. Results are nominal estimates; cargo
129
+ * limits, upkeep and whole-unit settlement remain chain-authoritative.
125
130
  * @example
126
131
  * ```ts
127
132
  * const rates = deriveMiningOutputRates(2, [{ cargoId: 8, richness: 1.5 }]);
@@ -153,4 +158,6 @@ export declare function getFleetMiningState(context: SageContext, fleet: Address
153
158
  * ```
154
159
  */
155
160
  export declare function getFleetMiningStatesByOwner(context: SageContext, owner: Address, options?: MiningDiscoveryOptions): Promise<readonly FleetMiningSnapshot[]>;
161
+ export { deriveMiningEstimate, type MiningEstimate, type MiningEstimateInput, type MiningEstimateLimit, type MiningEstimateResourceInput, } from './estimate.js';
162
+ export { deriveMiningProfile, type MiningProfile, type MiningProfileInput, } from './profile.js';
156
163
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mining/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,SAAS,EAEd,KAAK,WAAW,EAChB,KAAK,WAAW,EAEjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAC;AAWjC,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAC;AAY9B;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,MAAM,IAAI,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC9C,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,eAAe,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;KACjC,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC/C,MAAM,IAAI,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,gBAAgB,EAChB,SAAS,GAAG,UAAU,CACvB,CAAC;AAuGF;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,uBAAuB,CAAC,CAMlC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAU9C;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,wBAAwB,EAAE,MAAM,EAChC,aAAa,EAAE,MAAM,GACpB,MAAM,CAGR;AAKD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,mBAAmB,EAAE,MAAM,EAC3B,OAAO,EAAE,SAAS,qBAAqB,EAAE,GACxC,SAAS,gBAAgB,EAAE,CAuB7B;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,GACrB,MAAM,CAkBR;AAqGD;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAU1C;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC,CAYzC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mining/index.ts"],"names":[],"mappings":"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"}
@@ -3,19 +3,11 @@ import { celestialBodyAccountDefinition, deriveCelestialBodyAddress, } from '../
3
3
  import { assertCanonicalFleetAddress, discoverFleetAccounts, fleetAccountDefinition, } from '../internal/c4/fleet.js';
4
4
  import { requireGameAddress } from '../internal/game-context.js';
5
5
  import { attachJsonSerialization } from '../internal/json.js';
6
- import { attachReadMeta, readMeta } from '../internal/read-meta.js';
6
+ import { attachReadMeta, envelopeMeta, readMeta, } from '../internal/read-meta.js';
7
7
  import { freezeResolvedSnapshot } from '../internal/resolved-snapshot.js';
8
8
  import { resolveCargo, } from '../registry/index.js';
9
9
  const DEPOSIT_SNAPSHOTS = new WeakMap();
10
10
  const MINING_SNAPSHOTS = new WeakMap();
11
- function directMetadata(envelope) {
12
- return {
13
- commitment: envelope.commitment,
14
- slot: envelope.slot,
15
- source: envelope.source,
16
- strategy: 'direct',
17
- };
18
- }
19
11
  function assertConfiguredGame(context, accountType, envelope) {
20
12
  const game = requireGameAddress(context);
21
13
  if (envelope.data.game === game)
@@ -48,7 +40,7 @@ async function createResourceDepositSnapshot(context, envelope) {
48
40
  resources,
49
41
  system: entityRef('starSystem', asteroid.system),
50
42
  systemSequenceId: asteroid.systemSequenceId,
51
- }), directMetadata(envelope)));
43
+ }), envelopeMeta(envelope, 'direct')));
52
44
  }
53
45
  function toResourceDepositSnapshot(context, envelope) {
54
46
  const existing = DEPOSIT_SNAPSHOTS.get(envelope);
@@ -102,7 +94,10 @@ export function deriveMiningStateAgeSeconds(lastUpdatedAtUnixSeconds, atUnixSeco
102
94
  return elapsed > 0n ? Number(elapsed) : 0;
103
95
  }
104
96
  const MINING_DERIVATION_REMEDY = 'Mining derivations require a finite, nonnegative value. Supply a finite value greater than or equal to zero before deriving mining output.';
105
- /** Derives each selected output rate as Fleet units/second times deposit richness.
97
+ /** Shares Fleet units/second equally among selected resources, then applies richness.
98
+ * Supply the complete selected resource list, including zero-richness selections.
99
+ * An empty selection returns no rates. Results are nominal estimates; cargo
100
+ * limits, upkeep and whole-unit settlement remain chain-authoritative.
106
101
  * @example
107
102
  * ```ts
108
103
  * const rates = deriveMiningOutputRates(2, [{ cargoId: 8, richness: 1.5 }]);
@@ -118,7 +113,7 @@ export function deriveMiningOutputRates(fleetUnitsPerSecond, outputs) {
118
113
  }
119
114
  return Object.freeze({
120
115
  cargoId,
121
- unitsPerSecond: fleetUnitsPerSecond * richness,
116
+ unitsPerSecond: (fleetUnitsPerSecond / outputs.length) * richness,
122
117
  });
123
118
  }));
124
119
  }
@@ -173,7 +168,7 @@ async function createFleetMiningSnapshot(context, envelope, options) {
173
168
  unitsPerSecond: rates[index].unitsPerSecond,
174
169
  }));
175
170
  const depositMeta = readMeta(deposit);
176
- const metadata = directMetadata(envelope);
171
+ const metadata = envelopeMeta(envelope, 'direct');
177
172
  return freezeResolvedSnapshot(attachReadMeta(attachJsonSerialization({
178
173
  asteroid: entityRef('celestialBody', state.asteroid),
179
174
  fleet: entityRef('fleet', envelope.address),
@@ -233,4 +228,6 @@ export async function getFleetMiningStatesByOwner(context, owner, options) {
233
228
  const states = (await Promise.all(envelopes.map((envelope) => toFleetMiningSnapshot(context, envelope, options)))).filter((state) => state !== undefined);
234
229
  return Object.freeze(attachReadMeta(states, metadata));
235
230
  }
231
+ export { deriveMiningEstimate, } from './estimate.js';
232
+ export { deriveMiningProfile, } from './profile.js';
236
233
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mining/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mining/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import type { FleetCargoStatsData } from '../internal/c4/fleet.js';
2
+ /** Fleet or ship configuration cargo stats plus one reference Asteroid resource.
3
+ * Richness and storage costs are explicit assumptions: storage costs are
4
+ * translated storage units per unit (an encoded 256 is 1), not raw values.
5
+ * @example
6
+ * ```ts
7
+ * declare const ship: { readonly stats: MiningProfileInput['stats'] };
8
+ * const input: MiningProfileInput = {
9
+ * stats: ship.stats, richness: 1, resourceStorageCost: 1, foodStorageCost: 1,
10
+ * };
11
+ * ```
12
+ */
13
+ export interface MiningProfileInput {
14
+ readonly stats: {
15
+ readonly cargo: Pick<FleetCargoStatsData, 'miningRate' | 'foodConsumptionRate' | 'ammoConsumptionRate' | 'cargoCapacity' | 'ammoCapacity'>;
16
+ };
17
+ readonly richness: number;
18
+ readonly resourceStorageCost: number;
19
+ readonly foodStorageCost: number;
20
+ }
21
+ /** Reference mining values for one selected resource at the given richness,
22
+ * with no crew, research or rare-mineral multiplier. `fullHold` starts from an
23
+ * empty hold carrying exactly the Food it burns and a full Ammo bank; it is
24
+ * null when nothing is mined, the hold has no capacity, or Food outflow would
25
+ * keep pace with output. Ratios are null when that consumable is not burned.
26
+ * @example
27
+ * ```ts
28
+ * declare const profile: MiningProfile;
29
+ * console.log(profile.unitsPerHour, profile.fullHold?.durationSeconds);
30
+ * ```
31
+ */
32
+ export interface MiningProfile {
33
+ readonly basis: 'official-model-estimate';
34
+ readonly unitsPerSecond: number;
35
+ readonly unitsPerHour: number;
36
+ /** Resource units mined per Food burned. */
37
+ readonly unitsPerFood: number | null;
38
+ /** Resource units mined per Ammo burned. */
39
+ readonly unitsPerAmmo: number | null;
40
+ readonly fullHold: {
41
+ readonly durationSeconds: number;
42
+ readonly minedUnits: number;
43
+ /** Food burned, which is also the Food to carry in the hold at the start. */
44
+ readonly foodUnits: number;
45
+ readonly ammoUnits: number;
46
+ readonly limitedBy: 'cargo' | 'ammo';
47
+ } | null;
48
+ }
49
+ /** Derives reference mining values from Fleet or ship configuration stats with
50
+ * the official constant-rate model behind `deriveMiningEstimate`. The Fleet
51
+ * rate times richness gives output; `foodConsumptionRate` and
52
+ * `ammoConsumptionRate` are burned per second while mining, as the official
53
+ * SAGE Editor Suite scenario applies them.
54
+ *
55
+ * The full-hold scenario carries Food equal to rate × fill time, so the Food
56
+ * burned frees exactly the space it occupied and the hold fills in capacity ÷
57
+ * (output × storage cost) seconds, unless the Ammo bank runs out first. This is
58
+ * an estimate, not a settlement: fixed-point rounding, eligibility, regional
59
+ * research, planet-exit Fuel and changing state are excluded.
60
+ * @throws InvalidDerivationInputError for negative or non-finite stats or
61
+ * assumptions, or derived values that overflow to Infinity.
62
+ * @example
63
+ * ```ts
64
+ * const profile = deriveMiningProfile({
65
+ * stats: {
66
+ * cargo: {
67
+ * miningRate: { raw: 16384n, value: 1 },
68
+ * foodConsumptionRate: { raw: 2048n, value: 0.125 },
69
+ * ammoConsumptionRate: { raw: 1024n, value: 0.0625 },
70
+ * cargoCapacity: 100n,
71
+ * ammoCapacity: 1000n,
72
+ * },
73
+ * },
74
+ * richness: 2, resourceStorageCost: 1, foodStorageCost: 1,
75
+ * });
76
+ * console.log(profile.unitsPerHour); // 7200
77
+ * console.log(profile.fullHold?.durationSeconds); // 50: 100 capacity / 2 per second
78
+ * console.log(profile.fullHold?.foodUnits); // 6.25 Food carried and burned
79
+ * ```
80
+ */
81
+ export declare function deriveMiningProfile(input: MiningProfileInput): MiningProfile;
82
+ //# sourceMappingURL=profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/mining/profile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAInE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,KAAK,EAAE,IAAI,CAClB,mBAAmB,EACjB,YAAY,GACZ,qBAAqB,GACrB,qBAAqB,GACrB,eAAe,GACf,cAAc,CACjB,CAAC;KACH,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,4CAA4C;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,4CAA4C;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,6EAA6E;QAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;KACtC,GAAG,IAAI,CAAC;CACV;AAeD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa,CAqF5E"}
@@ -0,0 +1,109 @@
1
+ import { InvalidDerivationInputError } from '../client/errors.js';
2
+ import { freezeResolvedSnapshot } from '../internal/resolved-snapshot.js';
3
+ import { deriveMiningEstimate } from './estimate.js';
4
+ // Every consumed stat and every returned value is checked, including when no
5
+ // full hold is estimated: JSON turns NaN and Infinity into null, which would be
6
+ // indistinguishable from the documented not-burned and no-hold nulls.
7
+ function checked(field, value) {
8
+ if (!Number.isFinite(value) || value < 0)
9
+ throw new InvalidDerivationInputError(field, value, 'Supply finite, nonnegative stats, richness and translated storage costs (1 for an encoded storage cost of 256) whose derived values remain finite.');
10
+ return value;
11
+ }
12
+ /** Derives reference mining values from Fleet or ship configuration stats with
13
+ * the official constant-rate model behind `deriveMiningEstimate`. The Fleet
14
+ * rate times richness gives output; `foodConsumptionRate` and
15
+ * `ammoConsumptionRate` are burned per second while mining, as the official
16
+ * SAGE Editor Suite scenario applies them.
17
+ *
18
+ * The full-hold scenario carries Food equal to rate × fill time, so the Food
19
+ * burned frees exactly the space it occupied and the hold fills in capacity ÷
20
+ * (output × storage cost) seconds, unless the Ammo bank runs out first. This is
21
+ * an estimate, not a settlement: fixed-point rounding, eligibility, regional
22
+ * research, planet-exit Fuel and changing state are excluded.
23
+ * @throws InvalidDerivationInputError for negative or non-finite stats or
24
+ * assumptions, or derived values that overflow to Infinity.
25
+ * @example
26
+ * ```ts
27
+ * const profile = deriveMiningProfile({
28
+ * stats: {
29
+ * cargo: {
30
+ * miningRate: { raw: 16384n, value: 1 },
31
+ * foodConsumptionRate: { raw: 2048n, value: 0.125 },
32
+ * ammoConsumptionRate: { raw: 1024n, value: 0.0625 },
33
+ * cargoCapacity: 100n,
34
+ * ammoCapacity: 1000n,
35
+ * },
36
+ * },
37
+ * richness: 2, resourceStorageCost: 1, foodStorageCost: 1,
38
+ * });
39
+ * console.log(profile.unitsPerHour); // 7200
40
+ * console.log(profile.fullHold?.durationSeconds); // 50: 100 capacity / 2 per second
41
+ * console.log(profile.fullHold?.foodUnits); // 6.25 Food carried and burned
42
+ * ```
43
+ */
44
+ export function deriveMiningProfile(input) {
45
+ const { cargo } = input.stats;
46
+ const richness = checked('Resource richness', input.richness);
47
+ const resourceStorageCost = checked('Resource storage cost', input.resourceStorageCost);
48
+ const foodStorageCost = checked('Food storage cost', input.foodStorageCost);
49
+ const rate = checked('Fleet mining units per second', cargo.miningRate.value);
50
+ const foodBurn = checked('Food burn units per second', cargo.foodConsumptionRate.value);
51
+ const ammoBurn = checked('Ammo burn units per second', cargo.ammoConsumptionRate.value);
52
+ const capacity = checked('Cargo capacity', Number(cargo.cargoCapacity));
53
+ const ammoCapacity = checked('Ammo capacity', Number(cargo.ammoCapacity));
54
+ const unitsPerSecond = checked('Resource output rate', rate * richness);
55
+ const inflow = checked('Resource volume inflow', unitsPerSecond * resourceStorageCost);
56
+ const foodUnits = inflow === 0
57
+ ? 0
58
+ : checked('Food units per hold', (foodBurn * capacity) / inflow);
59
+ const foodVolume = checked('Food volume per hold', foodUnits * foodStorageCost);
60
+ let fullHold = null;
61
+ if (inflow > 0 && capacity > 0 && foodVolume < capacity) {
62
+ const target = capacity / inflow;
63
+ const estimate = deriveMiningEstimate({
64
+ fleetUnitsPerSecond: rate,
65
+ durationSeconds: target,
66
+ resources: [
67
+ {
68
+ cargoId: 0,
69
+ richness,
70
+ storageCost: resourceStorageCost,
71
+ runtimeMultiplier: 1,
72
+ },
73
+ ],
74
+ cargo: { occupiedSpace: foodVolume, capacity },
75
+ food: {
76
+ availableUnits: foodUnits,
77
+ burnUnitsPerSecond: foodBurn,
78
+ storageCost: foodStorageCost,
79
+ },
80
+ ammo: {
81
+ availableUnits: ammoCapacity,
82
+ burnUnitsPerSecond: ammoBurn,
83
+ },
84
+ });
85
+ const ammoLimit = estimate.limitsSeconds.ammo;
86
+ fullHold = {
87
+ durationSeconds: estimate.durationSeconds,
88
+ minedUnits: estimate.outputs[0].projectedUnits,
89
+ foodUnits: estimate.consumedFoodUnits,
90
+ ammoUnits: estimate.consumedAmmoUnits,
91
+ limitedBy: ammoLimit !== null && ammoLimit < target * (1 - 1e-9)
92
+ ? 'ammo'
93
+ : 'cargo',
94
+ };
95
+ }
96
+ return freezeResolvedSnapshot({
97
+ basis: 'official-model-estimate',
98
+ unitsPerSecond,
99
+ unitsPerHour: checked('Resource units per hour', unitsPerSecond * 3600),
100
+ unitsPerFood: foodBurn === 0
101
+ ? null
102
+ : checked('Resource units per Food', unitsPerSecond / foodBurn),
103
+ unitsPerAmmo: ammoBurn === 0
104
+ ? null
105
+ : checked('Resource units per Ammo', unitsPerSecond / ammoBurn),
106
+ fullHold,
107
+ });
108
+ }
109
+ //# sourceMappingURL=profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/mining/profile.ts"],"names":[],"mappings":"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"}