@aephia/atlas-kit 0.0.0

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 (279) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +124 -0
  3. package/dist/bindings.d.ts +11 -0
  4. package/dist/bindings.d.ts.map +1 -0
  5. package/dist/bindings.js +11 -0
  6. package/dist/bindings.js.map +1 -0
  7. package/dist/cargo/actions/index.d.ts +122 -0
  8. package/dist/cargo/actions/index.d.ts.map +1 -0
  9. package/dist/cargo/actions/index.js +526 -0
  10. package/dist/cargo/actions/index.js.map +1 -0
  11. package/dist/cargo/index.d.ts +77 -0
  12. package/dist/cargo/index.d.ts.map +1 -0
  13. package/dist/cargo/index.js +102 -0
  14. package/dist/cargo/index.js.map +1 -0
  15. package/dist/claim-stakes/index.d.ts +64 -0
  16. package/dist/claim-stakes/index.d.ts.map +1 -0
  17. package/dist/claim-stakes/index.js +97 -0
  18. package/dist/claim-stakes/index.js.map +1 -0
  19. package/dist/client/context.d.ts +21 -0
  20. package/dist/client/context.d.ts.map +1 -0
  21. package/dist/client/context.js +1374 -0
  22. package/dist/client/context.js.map +1 -0
  23. package/dist/client/contracts.d.ts +671 -0
  24. package/dist/client/contracts.d.ts.map +1 -0
  25. package/dist/client/contracts.js +2 -0
  26. package/dist/client/contracts.js.map +1 -0
  27. package/dist/client/deployments.d.ts +3 -0
  28. package/dist/client/deployments.d.ts.map +1 -0
  29. package/dist/client/deployments.js +2 -0
  30. package/dist/client/deployments.js.map +1 -0
  31. package/dist/client/errors.d.ts +227 -0
  32. package/dist/client/errors.d.ts.map +1 -0
  33. package/dist/client/errors.js +288 -0
  34. package/dist/client/errors.js.map +1 -0
  35. package/dist/client/index.d.ts +7 -0
  36. package/dist/client/index.d.ts.map +1 -0
  37. package/dist/client/index.js +5 -0
  38. package/dist/client/index.js.map +1 -0
  39. package/dist/client/lifecycle.d.ts +4 -0
  40. package/dist/client/lifecycle.d.ts.map +1 -0
  41. package/dist/client/lifecycle.js +10 -0
  42. package/dist/client/lifecycle.js.map +1 -0
  43. package/dist/client/provider-errors.d.ts +9 -0
  44. package/dist/client/provider-errors.d.ts.map +1 -0
  45. package/dist/client/provider-errors.js +12 -0
  46. package/dist/client/provider-errors.js.map +1 -0
  47. package/dist/client/reconciliation.d.ts +10 -0
  48. package/dist/client/reconciliation.d.ts.map +1 -0
  49. package/dist/client/reconciliation.js +9 -0
  50. package/dist/client/reconciliation.js.map +1 -0
  51. package/dist/client/refs.d.ts +23 -0
  52. package/dist/client/refs.d.ts.map +1 -0
  53. package/dist/client/refs.js +12 -0
  54. package/dist/client/refs.js.map +1 -0
  55. package/dist/combat/index.d.ts +256 -0
  56. package/dist/combat/index.d.ts.map +1 -0
  57. package/dist/combat/index.js +222 -0
  58. package/dist/combat/index.js.map +1 -0
  59. package/dist/crafting/index.d.ts +308 -0
  60. package/dist/crafting/index.d.ts.map +1 -0
  61. package/dist/crafting/index.js +400 -0
  62. package/dist/crafting/index.js.map +1 -0
  63. package/dist/factions/index.d.ts +292 -0
  64. package/dist/factions/index.d.ts.map +1 -0
  65. package/dist/factions/index.js +334 -0
  66. package/dist/factions/index.js.map +1 -0
  67. package/dist/fleets/actions/index.d.ts +200 -0
  68. package/dist/fleets/actions/index.d.ts.map +1 -0
  69. package/dist/fleets/actions/index.js +854 -0
  70. package/dist/fleets/actions/index.js.map +1 -0
  71. package/dist/fleets/index.d.ts +100 -0
  72. package/dist/fleets/index.d.ts.map +1 -0
  73. package/dist/fleets/index.js +124 -0
  74. package/dist/fleets/index.js.map +1 -0
  75. package/dist/identity/index.d.ts +225 -0
  76. package/dist/identity/index.d.ts.map +1 -0
  77. package/dist/identity/index.js +341 -0
  78. package/dist/identity/index.js.map +1 -0
  79. package/dist/index.d.ts +401 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +519 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/internal/c4/adapter.d.ts +6 -0
  84. package/dist/internal/c4/adapter.d.ts.map +1 -0
  85. package/dist/internal/c4/adapter.js +2 -0
  86. package/dist/internal/c4/adapter.js.map +1 -0
  87. package/dist/internal/c4/bindings.d.ts +4 -0
  88. package/dist/internal/c4/bindings.d.ts.map +1 -0
  89. package/dist/internal/c4/bindings.js +4 -0
  90. package/dist/internal/c4/bindings.js.map +1 -0
  91. package/dist/internal/c4/character-modifier.d.ts +5 -0
  92. package/dist/internal/c4/character-modifier.d.ts.map +1 -0
  93. package/dist/internal/c4/character-modifier.js +100 -0
  94. package/dist/internal/c4/character-modifier.js.map +1 -0
  95. package/dist/internal/c4/claim-stake.d.ts +140 -0
  96. package/dist/internal/c4/claim-stake.d.ts.map +1 -0
  97. package/dist/internal/c4/claim-stake.js +205 -0
  98. package/dist/internal/c4/claim-stake.js.map +1 -0
  99. package/dist/internal/c4/combat.d.ts +98 -0
  100. package/dist/internal/c4/combat.d.ts.map +1 -0
  101. package/dist/internal/c4/combat.js +232 -0
  102. package/dist/internal/c4/combat.js.map +1 -0
  103. package/dist/internal/c4/crafting.d.ts +170 -0
  104. package/dist/internal/c4/crafting.d.ts.map +1 -0
  105. package/dist/internal/c4/crafting.js +387 -0
  106. package/dist/internal/c4/crafting.js.map +1 -0
  107. package/dist/internal/c4/factions.d.ts +248 -0
  108. package/dist/internal/c4/factions.d.ts.map +1 -0
  109. package/dist/internal/c4/factions.js +589 -0
  110. package/dist/internal/c4/factions.js.map +1 -0
  111. package/dist/internal/c4/fleet-crew-binding.d.ts +12 -0
  112. package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -0
  113. package/dist/internal/c4/fleet-crew-binding.js +51 -0
  114. package/dist/internal/c4/fleet-crew-binding.js.map +1 -0
  115. package/dist/internal/c4/fleet.d.ts +310 -0
  116. package/dist/internal/c4/fleet.d.ts.map +1 -0
  117. package/dist/internal/c4/fleet.js +393 -0
  118. package/dist/internal/c4/fleet.js.map +1 -0
  119. package/dist/internal/c4/game.d.ts +192 -0
  120. package/dist/internal/c4/game.d.ts.map +1 -0
  121. package/dist/internal/c4/game.js +396 -0
  122. package/dist/internal/c4/game.js.map +1 -0
  123. package/dist/internal/c4/identity.d.ts +193 -0
  124. package/dist/internal/c4/identity.d.ts.map +1 -0
  125. package/dist/internal/c4/identity.js +180 -0
  126. package/dist/internal/c4/identity.js.map +1 -0
  127. package/dist/internal/c4/loot-layout.d.ts +20 -0
  128. package/dist/internal/c4/loot-layout.d.ts.map +1 -0
  129. package/dist/internal/c4/loot-layout.js +29 -0
  130. package/dist/internal/c4/loot-layout.js.map +1 -0
  131. package/dist/internal/c4/loyalty.d.ts +102 -0
  132. package/dist/internal/c4/loyalty.d.ts.map +1 -0
  133. package/dist/internal/c4/loyalty.js +318 -0
  134. package/dist/internal/c4/loyalty.js.map +1 -0
  135. package/dist/internal/c4/market.d.ts +112 -0
  136. package/dist/internal/c4/market.d.ts.map +1 -0
  137. package/dist/internal/c4/market.js +247 -0
  138. package/dist/internal/c4/market.js.map +1 -0
  139. package/dist/internal/c4/pda.d.ts +6 -0
  140. package/dist/internal/c4/pda.d.ts.map +1 -0
  141. package/dist/internal/c4/pda.js +45 -0
  142. package/dist/internal/c4/pda.js.map +1 -0
  143. package/dist/internal/c4/profile-faction.d.ts +14 -0
  144. package/dist/internal/c4/profile-faction.d.ts.map +1 -0
  145. package/dist/internal/c4/profile-faction.js +69 -0
  146. package/dist/internal/c4/profile-faction.js.map +1 -0
  147. package/dist/internal/c4/rewards.d.ts +135 -0
  148. package/dist/internal/c4/rewards.d.ts.map +1 -0
  149. package/dist/internal/c4/rewards.js +305 -0
  150. package/dist/internal/c4/rewards.js.map +1 -0
  151. package/dist/internal/c4/scanning.d.ts +85 -0
  152. package/dist/internal/c4/scanning.d.ts.map +1 -0
  153. package/dist/internal/c4/scanning.js +180 -0
  154. package/dist/internal/c4/scanning.js.map +1 -0
  155. package/dist/internal/c4/starbase.d.ts +186 -0
  156. package/dist/internal/c4/starbase.d.ts.map +1 -0
  157. package/dist/internal/c4/starbase.js +259 -0
  158. package/dist/internal/c4/starbase.js.map +1 -0
  159. package/dist/internal/c4/world.d.ts +294 -0
  160. package/dist/internal/c4/world.d.ts.map +1 -0
  161. package/dist/internal/c4/world.js +417 -0
  162. package/dist/internal/c4/world.js.map +1 -0
  163. package/dist/internal/cargo.d.ts +65 -0
  164. package/dist/internal/cargo.d.ts.map +1 -0
  165. package/dist/internal/cargo.js +46 -0
  166. package/dist/internal/cargo.js.map +1 -0
  167. package/dist/internal/claim-stake.d.ts +31 -0
  168. package/dist/internal/claim-stake.d.ts.map +1 -0
  169. package/dist/internal/claim-stake.js +20 -0
  170. package/dist/internal/claim-stake.js.map +1 -0
  171. package/dist/internal/fleet.d.ts +165 -0
  172. package/dist/internal/fleet.d.ts.map +1 -0
  173. package/dist/internal/fleet.js +179 -0
  174. package/dist/internal/fleet.js.map +1 -0
  175. package/dist/internal/game-context.d.ts +4 -0
  176. package/dist/internal/game-context.d.ts.map +1 -0
  177. package/dist/internal/game-context.js +9 -0
  178. package/dist/internal/game-context.js.map +1 -0
  179. package/dist/internal/immutable-tree.d.ts +5 -0
  180. package/dist/internal/immutable-tree.d.ts.map +1 -0
  181. package/dist/internal/immutable-tree.js +47 -0
  182. package/dist/internal/immutable-tree.js.map +1 -0
  183. package/dist/internal/json.d.ts +7 -0
  184. package/dist/internal/json.d.ts.map +1 -0
  185. package/dist/internal/json.js +33 -0
  186. package/dist/internal/json.js.map +1 -0
  187. package/dist/internal/planning/authorization-adapter.d.ts +63 -0
  188. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -0
  189. package/dist/internal/planning/authorization-adapter.js +222 -0
  190. package/dist/internal/planning/authorization-adapter.js.map +1 -0
  191. package/dist/internal/read-meta.d.ts +84 -0
  192. package/dist/internal/read-meta.d.ts.map +1 -0
  193. package/dist/internal/read-meta.js +28 -0
  194. package/dist/internal/read-meta.js.map +1 -0
  195. package/dist/internal/resolved-snapshot.d.ts +3 -0
  196. package/dist/internal/resolved-snapshot.d.ts.map +1 -0
  197. package/dist/internal/resolved-snapshot.js +11 -0
  198. package/dist/internal/resolved-snapshot.js.map +1 -0
  199. package/dist/internal/zink/provider.d.ts +9 -0
  200. package/dist/internal/zink/provider.d.ts.map +1 -0
  201. package/dist/internal/zink/provider.js +213 -0
  202. package/dist/internal/zink/provider.js.map +1 -0
  203. package/dist/loyalty/index.d.ts +195 -0
  204. package/dist/loyalty/index.d.ts.map +1 -0
  205. package/dist/loyalty/index.js +289 -0
  206. package/dist/loyalty/index.js.map +1 -0
  207. package/dist/markets/index.d.ts +195 -0
  208. package/dist/markets/index.d.ts.map +1 -0
  209. package/dist/markets/index.js +232 -0
  210. package/dist/markets/index.js.map +1 -0
  211. package/dist/mining/index.d.ts +156 -0
  212. package/dist/mining/index.d.ts.map +1 -0
  213. package/dist/mining/index.js +236 -0
  214. package/dist/mining/index.js.map +1 -0
  215. package/dist/planning/assembly.d.ts +42 -0
  216. package/dist/planning/assembly.d.ts.map +1 -0
  217. package/dist/planning/assembly.js +141 -0
  218. package/dist/planning/assembly.js.map +1 -0
  219. package/dist/planning/composition.d.ts +4 -0
  220. package/dist/planning/composition.d.ts.map +1 -0
  221. package/dist/planning/composition.js +76 -0
  222. package/dist/planning/composition.js.map +1 -0
  223. package/dist/planning/execution.d.ts +93 -0
  224. package/dist/planning/execution.d.ts.map +1 -0
  225. package/dist/planning/execution.js +549 -0
  226. package/dist/planning/execution.js.map +1 -0
  227. package/dist/planning/index.d.ts +219 -0
  228. package/dist/planning/index.d.ts.map +1 -0
  229. package/dist/planning/index.js +375 -0
  230. package/dist/planning/index.js.map +1 -0
  231. package/dist/planning/plan-instances.d.ts +3 -0
  232. package/dist/planning/plan-instances.d.ts.map +1 -0
  233. package/dist/planning/plan-instances.js +8 -0
  234. package/dist/planning/plan-instances.js.map +1 -0
  235. package/dist/planning/plan-sequence-checkpoint.d.ts +154 -0
  236. package/dist/planning/plan-sequence-checkpoint.d.ts.map +1 -0
  237. package/dist/planning/plan-sequence-checkpoint.js +449 -0
  238. package/dist/planning/plan-sequence-checkpoint.js.map +1 -0
  239. package/dist/planning/plan-sequence-execution.d.ts +72 -0
  240. package/dist/planning/plan-sequence-execution.d.ts.map +1 -0
  241. package/dist/planning/plan-sequence-execution.js +410 -0
  242. package/dist/planning/plan-sequence-execution.js.map +1 -0
  243. package/dist/planning/plan-sequence.d.ts +244 -0
  244. package/dist/planning/plan-sequence.d.ts.map +1 -0
  245. package/dist/planning/plan-sequence.js +264 -0
  246. package/dist/planning/plan-sequence.js.map +1 -0
  247. package/dist/planning/simulation.d.ts +50 -0
  248. package/dist/planning/simulation.d.ts.map +1 -0
  249. package/dist/planning/simulation.js +69 -0
  250. package/dist/planning/simulation.js.map +1 -0
  251. package/dist/registry/combat.d.ts +5 -0
  252. package/dist/registry/combat.d.ts.map +1 -0
  253. package/dist/registry/combat.js +7 -0
  254. package/dist/registry/combat.js.map +1 -0
  255. package/dist/registry/index.d.ts +138 -0
  256. package/dist/registry/index.d.ts.map +1 -0
  257. package/dist/registry/index.js +397 -0
  258. package/dist/registry/index.js.map +1 -0
  259. package/dist/rewards/index.d.ts +202 -0
  260. package/dist/rewards/index.d.ts.map +1 -0
  261. package/dist/rewards/index.js +290 -0
  262. package/dist/rewards/index.js.map +1 -0
  263. package/dist/scanning/index.d.ts +185 -0
  264. package/dist/scanning/index.d.ts.map +1 -0
  265. package/dist/scanning/index.js +207 -0
  266. package/dist/scanning/index.js.map +1 -0
  267. package/dist/starbases/actions/index.d.ts +60 -0
  268. package/dist/starbases/actions/index.d.ts.map +1 -0
  269. package/dist/starbases/actions/index.js +245 -0
  270. package/dist/starbases/actions/index.js.map +1 -0
  271. package/dist/starbases/index.d.ts +165 -0
  272. package/dist/starbases/index.d.ts.map +1 -0
  273. package/dist/starbases/index.js +213 -0
  274. package/dist/starbases/index.js.map +1 -0
  275. package/dist/world/index.d.ts +180 -0
  276. package/dist/world/index.d.ts.map +1 -0
  277. package/dist/world/index.js +265 -0
  278. package/dist/world/index.js.map +1 -0
  279. package/package.json +140 -0
@@ -0,0 +1,526 @@
1
+ import { getAddressEncoder } from '@solana/kit';
2
+ import { InvalidActionInputError, SageSdkError } from '../../client/errors.js';
3
+ import { ProviderAccountAddressMismatchError } from '../../client/provider-errors.js';
4
+ import { readContextRawAccounts } from '../../client/reconciliation.js';
5
+ import { sage } from '../../internal/c4/bindings.js';
6
+ import { deriveFleetAddress, fleetAccountDefinition, } from '../../internal/c4/fleet.js';
7
+ import { characterAccountDefinition, findCharacterPda, } from '../../internal/c4/identity.js';
8
+ import { deriveStarbasePlayerAddress, starbasePlayerAccountDefinition, } from '../../internal/c4/starbase.js';
9
+ import { requireGameAddress } from '../../internal/game-context.js';
10
+ import { adaptTransferCargoToFleetInstruction, adaptTransferCargoWithinFleetInstruction, validatePlanAuthorization, } from '../../internal/planning/authorization-adapter.js';
11
+ import { createPlan, } from '../../planning/index.js';
12
+ import { resolveCargo } from '../../registry/index.js';
13
+ const I64_MAX = (1n << 63n) - 1n;
14
+ const U64_MAX = (1n << 64n) - 1n;
15
+ const U16_MAX = 65_535;
16
+ function invalid(field, value, acceptedRange, remedy) {
17
+ throw new InvalidActionInputError(field, value, acceptedRange, remedy);
18
+ }
19
+ function readRecord(value, field) {
20
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
21
+ return invalid(field, value, 'a plain object', `Provide ${field} as the documented object before retrying.`);
22
+ }
23
+ return value;
24
+ }
25
+ function assertKeys(value, field, required, optional = []) {
26
+ const accepted = new Set([...required, ...optional]);
27
+ const missing = required.find((key) => !Object.hasOwn(value, key));
28
+ const unexpected = Object.keys(value).find((key) => !accepted.has(key));
29
+ if (missing !== undefined || unexpected !== undefined) {
30
+ invalid(field, missing === undefined ? unexpected : `missing ${missing}`, `exactly the fields ${[...required, ...optional].join(', ')}`, `Remove unknown fields and provide every required ${field} field before retrying.`);
31
+ }
32
+ }
33
+ function readPositiveBigint(value, field, maximum, wireType) {
34
+ if (typeof value !== 'bigint' || value <= 0n || value > maximum) {
35
+ return invalid(field, value, `a positive raw bigint from 1 through ${String(maximum)} (${wireType})`, `Set ${field} to an explicit positive raw-unit bigint within the instruction codec range.`);
36
+ }
37
+ return value;
38
+ }
39
+ function readCargoHold(value) {
40
+ if (!Array.isArray(value) || value.length === 0) {
41
+ return invalid('amounts.cargoHold', value, 'a non-empty dense array of { cargoId, amount } entries', 'Provide at least one explicit cargo-hold transfer entry before retrying.');
42
+ }
43
+ const seen = new Set();
44
+ const normalized = [];
45
+ for (let index = 0; index < value.length; index += 1) {
46
+ const field = `amounts.cargoHold[${String(index)}]`;
47
+ if (!Object.hasOwn(value, index)) {
48
+ invalid(field, undefined, 'a present cargo transfer entry', 'Remove sparse entries from amounts.cargoHold before retrying.');
49
+ }
50
+ const entry = readRecord(value[index], field);
51
+ assertKeys(entry, field, ['cargoId', 'amount']);
52
+ const cargoId = entry.cargoId;
53
+ if (typeof cargoId !== 'number' ||
54
+ !Number.isInteger(cargoId) ||
55
+ cargoId < 0 ||
56
+ cargoId > U16_MAX) {
57
+ invalid(`${field}.cargoId`, cargoId, 'an integer cargo id from 0 through 65535 (unsigned u16)', `Set ${field}.cargoId to the cargo definition's exact numeric id before retrying.`);
58
+ }
59
+ if (seen.has(cargoId)) {
60
+ invalid(`${field}.cargoId`, cargoId, 'one unique cargo id per transfer entry', 'Combine duplicate cargo quantities into one entry before retrying.');
61
+ }
62
+ seen.add(cargoId);
63
+ normalized.push({
64
+ amount: readPositiveBigint(entry.amount, `${field}.amount`, U64_MAX, 'unsigned u64'),
65
+ cargoId,
66
+ });
67
+ }
68
+ return Object.freeze(normalized);
69
+ }
70
+ function validateOptions(value) {
71
+ const options = readRecord(value, 'options');
72
+ assertKeys(options, 'options', ['authorization', 'direction', 'amounts']);
73
+ if (options.direction !== 'toFleet' && options.direction !== 'toStarbase') {
74
+ invalid('direction', options.direction, 'either toFleet or toStarbase', 'Choose the transfer direction explicitly before retrying.');
75
+ }
76
+ const amounts = readRecord(options.amounts, 'amounts');
77
+ assertKeys(amounts, 'amounts', [], ['ammo', 'fuel', 'cargoHold']);
78
+ const normalized = {};
79
+ if (Object.hasOwn(amounts, 'ammo')) {
80
+ normalized.ammo = readPositiveBigint(amounts.ammo, 'amounts.ammo', I64_MAX, 'signed i64');
81
+ }
82
+ if (Object.hasOwn(amounts, 'fuel')) {
83
+ normalized.fuel = readPositiveBigint(amounts.fuel, 'amounts.fuel', I64_MAX, 'signed i64');
84
+ }
85
+ if (Object.hasOwn(amounts, 'cargoHold')) {
86
+ normalized.cargoHold = readCargoHold(amounts.cargoHold);
87
+ }
88
+ if (Object.keys(normalized).length === 0) {
89
+ invalid('amounts', amounts, 'at least one of ammo, fuel, or a non-empty cargoHold', 'Provide one or more explicit raw-unit transfer amounts before retrying.');
90
+ }
91
+ const authorizationRecord = readRecord(options.authorization, 'authorization');
92
+ assertKeys(authorizationRecord, 'authorization', ['profile', 'authority', 'keyIndex'], ['certificate']);
93
+ const authorization = authorizationRecord;
94
+ validatePlanAuthorization(authorization);
95
+ return {
96
+ amounts: Object.freeze(normalized),
97
+ authorization,
98
+ direction: options.direction,
99
+ };
100
+ }
101
+ function readFleetCargoPodName(value, field) {
102
+ if (value !== 'ammo' && value !== 'fuel' && value !== 'cargoHold') {
103
+ invalid(field, value, 'one of ammo, fuel, or cargoHold', `Choose ${field} from the Fleet's ammo, fuel, or cargoHold pod before retrying.`);
104
+ }
105
+ return value;
106
+ }
107
+ function readCargoId(value) {
108
+ if (typeof value !== 'number' ||
109
+ !Number.isInteger(value) ||
110
+ value < 0 ||
111
+ value > U16_MAX) {
112
+ invalid('cargoId', value, 'an integer cargo id from 0 through 65535 (unsigned u16)', "Set cargoId to the cargo definition's exact numeric id before retrying.");
113
+ }
114
+ return value;
115
+ }
116
+ function validateWithinFleetOptions(value) {
117
+ const options = readRecord(value, 'options');
118
+ assertKeys(options, 'options', [
119
+ 'authorization',
120
+ 'from',
121
+ 'to',
122
+ 'cargoId',
123
+ 'amount',
124
+ ]);
125
+ const from = readFleetCargoPodName(options.from, 'from');
126
+ const to = readFleetCargoPodName(options.to, 'to');
127
+ if (from === to) {
128
+ invalid('to', to, 'a destination pod different from the source pod', 'Choose different source and destination Fleet pods before retrying.');
129
+ }
130
+ const authorizationRecord = readRecord(options.authorization, 'authorization');
131
+ assertKeys(authorizationRecord, 'authorization', ['profile', 'authority', 'keyIndex'], ['certificate']);
132
+ const authorization = authorizationRecord;
133
+ validatePlanAuthorization(authorization);
134
+ return {
135
+ amount: readPositiveBigint(options.amount, 'amount', U64_MAX, 'unsigned u64'),
136
+ authorization,
137
+ cargoId: readCargoId(options.cargoId),
138
+ from,
139
+ to,
140
+ };
141
+ }
142
+ function fail(message, address) {
143
+ throw new SageSdkError('ACTION_PRECONDITION_FAILED', message, { address });
144
+ }
145
+ function requireRawAccount(account, message, address) {
146
+ return account ?? fail(message, address);
147
+ }
148
+ function isProviderAddressMismatch(cause, requestedAddress) {
149
+ return (cause instanceof ProviderAccountAddressMismatchError &&
150
+ cause.requestedAddress === requestedAddress);
151
+ }
152
+ async function readCargoTransferAccounts(ctx, fleet, character, starbasePlayer) {
153
+ try {
154
+ return await readContextRawAccounts(ctx, [
155
+ fleet.address,
156
+ character,
157
+ starbasePlayer,
158
+ ]);
159
+ }
160
+ catch (cause) {
161
+ if (isProviderAddressMismatch(cause, character)) {
162
+ fail(`Fleet ${fleet.name} cannot transfer cargo because the account returned for canonical Character ${character} has a contradictory address. Fix the provider response, refresh or repair the Character registration, and retry.`, character);
163
+ }
164
+ if (isProviderAddressMismatch(cause, starbasePlayer)) {
165
+ fail(`Fleet ${fleet.name} cannot transfer cargo because the account returned for canonical Starbase Player ${starbasePlayer} has a contradictory address. Fix the provider response, refresh or repair the Starbase registration, and retry.`, starbasePlayer);
166
+ }
167
+ throw cause;
168
+ }
169
+ }
170
+ async function hashAccountState(account) {
171
+ const owner = getAddressEncoder().encode(account.owner);
172
+ const canonical = new Uint8Array(owner.length + account.data.length);
173
+ canonical.set(owner);
174
+ canonical.set(account.data, owner.length);
175
+ const digest = new Uint8Array(await globalThis.crypto.subtle.digest('SHA-256', canonical));
176
+ return [...digest].map((byte) => byte.toString(16).padStart(2, '0')).join('');
177
+ }
178
+ async function precondition(account, describes) {
179
+ return Object.freeze({
180
+ address: account.address,
181
+ dataHash: await hashAccountState(account),
182
+ describes,
183
+ kind: 'account-state',
184
+ });
185
+ }
186
+ function amountFor(amounts, cargoId) {
187
+ return amounts.find((item) => item.cargoId === cargoId)?.amount ?? 0n;
188
+ }
189
+ function requireBalance(source, label, available, requested, address) {
190
+ if (requested > available) {
191
+ fail(`${source} ${label} balance has ${String(available)} raw units available, but this Plan requests ${String(requested)}. Reduce the transfer amount, refresh the ${source}, and retry.`, address);
192
+ }
193
+ }
194
+ function requireCapacity(label, used, requested, total, address) {
195
+ if (used + requested > total) {
196
+ const remaining = used < total ? total - used : 0n;
197
+ fail(`Fleet ${label} capacity has ${String(remaining)} raw units of space remaining, but this Plan requires ${String(requested)}. Reduce the transfer amount or free Fleet capacity, refresh the Fleet, and retry.`, address);
198
+ }
199
+ }
200
+ function formatRawUnits(amount) {
201
+ return `${String(amount)} raw ${amount === 1n ? 'unit' : 'units'}`;
202
+ }
203
+ function describeTransferAmounts(amounts) {
204
+ const descriptions = [];
205
+ if (amounts.ammo !== undefined) {
206
+ descriptions.push(`ammo = ${formatRawUnits(amounts.ammo)}`);
207
+ }
208
+ if (amounts.fuel !== undefined) {
209
+ descriptions.push(`fuel = ${formatRawUnits(amounts.fuel)}`);
210
+ }
211
+ for (const item of amounts.cargoHold ?? []) {
212
+ descriptions.push(`cargo-hold id ${String(item.cargoId)} = ${formatRawUnits(item.amount)}`);
213
+ }
214
+ return descriptions.join('; ');
215
+ }
216
+ async function validateFleetAccount(account, fleet, game, profile, system) {
217
+ const data = fleetAccountDefinition.decode(account);
218
+ const canonicalAddress = await deriveFleetAddress(data);
219
+ if (account.address !== fleet.address ||
220
+ canonicalAddress !== fleet.address ||
221
+ data.game !== game ||
222
+ data.ownerProfile !== profile ||
223
+ data.state.kind !== 'docked' ||
224
+ data.state.system !== system) {
225
+ fail(`Fleet ${fleet.name} changed or no longer matches its configured Game, owner, canonical address, or docked Starbase System. Refresh the Fleet and create a new cargo transfer Plan before retrying.`, fleet.address);
226
+ }
227
+ return data;
228
+ }
229
+ function validateStarbasePlayer(account, fleet, profile, character, system) {
230
+ const data = starbasePlayerAccountDefinition.decode(account);
231
+ if (data.playerProfile !== profile ||
232
+ data.character !== character ||
233
+ data.system !== system) {
234
+ fail(`Fleet ${fleet.name} cannot transfer cargo because its Starbase Player does not match the owning Profile, canonical Character, docked System, or canonical PDA. Refresh or repair the Starbase registration before retrying.`, account.address);
235
+ }
236
+ return data;
237
+ }
238
+ /** Plans one bidirectional Fleet/player-Starbase cargo transfer without signing or RPC writes.
239
+ *
240
+ * The caller supplies only gameplay direction and positive raw-unit quantities.
241
+ * Planning directly re-reads the Fleet, canonical Character, and derived
242
+ * StarbasePlayer; checks known source balances (aggregated by cargo id for the
243
+ * shared Starbase inventory) and, when loading the Fleet, exact
244
+ * ammo/fuel/cargo capacity; and returns one inspectable instruction. The chain
245
+ * remains authoritative for state races, crew normalization, faction
246
+ * policy, Profile permission bits including `MANAGE_FLEET_CARGO`, and program
247
+ * arithmetic. Starbase destination capacity is not inferred because the
248
+ * shipped StarbasePlayer read exposes no total-capacity field.
249
+ *
250
+ * @example
251
+ * ```ts
252
+ * declare const ctx: SageContext;
253
+ * declare const fleet: FleetSnapshot;
254
+ * declare const authorization: PlanAuthorization;
255
+ * const plan = await planFleetTransferCargoAtStarbase(ctx, fleet, {
256
+ * authorization,
257
+ * direction: 'toStarbase',
258
+ * amounts: { fuel: 10n },
259
+ * });
260
+ * console.log(plan.describe());
261
+ * ```
262
+ */
263
+ export async function planFleetTransferCargoAtStarbase(ctx, fleet, input) {
264
+ const options = validateOptions(input);
265
+ if (fleet.ownerProfile.address !== options.authorization.profile) {
266
+ fail(`Fleet ${fleet.name} belongs to Profile ${fleet.ownerProfile.address}, not authorized Profile ${options.authorization.profile}. Use the owning Profile in PlanAuthorization, refresh the Fleet, and retry.`, fleet.address);
267
+ }
268
+ if (fleet.state.kind !== 'docked') {
269
+ fail(`Fleet ${fleet.name} is ${fleet.state.kind}, but Starbase cargo transfer requires the Fleet to be docked. Dock the Fleet at its player Starbase, refresh it, and retry.`, fleet.address);
270
+ }
271
+ const game = requireGameAddress(ctx);
272
+ const system = fleet.state.system.address;
273
+ const character = await findCharacterPda(options.authorization.profile, game);
274
+ const starbasePlayer = await deriveStarbasePlayerAddress(system, character);
275
+ const [fleetCandidate, characterCandidate, playerCandidate] = await readCargoTransferAccounts(ctx, fleet, character, starbasePlayer);
276
+ const fleetAccount = requireRawAccount(fleetCandidate, `Fleet ${fleet.name} is no longer available. Refresh the Fleet and retry planning the cargo transfer.`, fleet.address);
277
+ const characterAccount = requireRawAccount(characterCandidate, `Fleet ${fleet.name} cannot transfer cargo because Profile ${options.authorization.profile} has no canonical Character ${character}. Create or repair the Character registration, refresh the Fleet, and retry.`, character);
278
+ const playerAccount = requireRawAccount(playerCandidate, `Fleet ${fleet.name} cannot transfer cargo because Character ${character} has no Starbase Player registration at docked System ${system}. Register the Character at this Starbase, refresh the Fleet, and retry.`, starbasePlayer);
279
+ const fleetData = await validateFleetAccount(fleetAccount, fleet, game, options.authorization.profile, system);
280
+ const characterData = characterAccountDefinition.decode(characterAccount);
281
+ if (characterData.playerProfile !== options.authorization.profile ||
282
+ characterData.game !== game) {
283
+ fail(`Fleet ${fleet.name} cannot transfer cargo because canonical Character ${character} does not match the owning Profile and configured Game. Refresh or repair the Character registration before retrying.`, characterAccount.address);
284
+ }
285
+ const playerData = validateStarbasePlayer(playerAccount, fleet, options.authorization.profile, character, system);
286
+ if (options.direction === 'toFleet') {
287
+ const requestedByCargoId = new Map();
288
+ const addRequested = (cargoId, amount) => {
289
+ requestedByCargoId.set(cargoId, (requestedByCargoId.get(cargoId) ?? 0n) + amount);
290
+ };
291
+ if (options.amounts.ammo !== undefined) {
292
+ addRequested(fleetData.ammoBank.cargoId, options.amounts.ammo);
293
+ }
294
+ if (options.amounts.fuel !== undefined) {
295
+ addRequested(fleetData.fuelTank.cargoId, options.amounts.fuel);
296
+ }
297
+ for (const item of options.amounts.cargoHold ?? []) {
298
+ addRequested(item.cargoId, item.amount);
299
+ }
300
+ for (const [cargoId, requested] of requestedByCargoId) {
301
+ requireBalance('Starbase', `cargo id ${String(cargoId)}`, amountFor(playerData.cargo.amounts, cargoId), requested, starbasePlayer);
302
+ }
303
+ }
304
+ if (options.amounts.ammo !== undefined) {
305
+ if (options.direction === 'toStarbase') {
306
+ requireBalance('Fleet', 'ammo', fleetData.ammoBank.amount, options.amounts.ammo, fleet.address);
307
+ }
308
+ else {
309
+ requireCapacity('ammo', fleetData.ammoBank.amount, options.amounts.ammo, fleetData.stats.cargo.ammoCapacity, fleet.address);
310
+ }
311
+ }
312
+ if (options.amounts.fuel !== undefined) {
313
+ if (options.direction === 'toStarbase') {
314
+ requireBalance('Fleet', 'fuel', fleetData.fuelTank.amount, options.amounts.fuel, fleet.address);
315
+ }
316
+ else {
317
+ requireCapacity('fuel', fleetData.fuelTank.amount, options.amounts.fuel, fleetData.stats.cargo.fuelCapacity, fleet.address);
318
+ }
319
+ }
320
+ if (options.direction === 'toStarbase') {
321
+ for (const item of options.amounts.cargoHold ?? []) {
322
+ requireBalance('Fleet', `cargo id ${String(item.cargoId)}`, amountFor(fleetData.cargoHold.amounts, item.cargoId), item.amount, fleet.address);
323
+ }
324
+ }
325
+ if (options.direction === 'toFleet' &&
326
+ options.amounts.cargoHold !== undefined) {
327
+ const definitions = await Promise.all(options.amounts.cargoHold.map((item) => resolveCargo(ctx, item.cargoId)));
328
+ const requestedStorage = options.amounts.cargoHold.reduce((total, item, index) => total + item.amount * BigInt(definitions[index].storageCost), 0n);
329
+ requireCapacity('cargo storage', fleetData.cargoHold.storageCost, requestedStorage, fleetData.stats.cargo.cargoCapacity, fleet.address);
330
+ }
331
+ const sign = options.direction === 'toFleet' ? 1n : -1n;
332
+ const cargoHold = options.amounts.cargoHold?.map(({ amount, cargoId }) => [cargoId, amount]);
333
+ const instruction = adaptTransferCargoToFleetInstruction({
334
+ ammoBank: options.amounts.ammo === undefined ? null : options.amounts.ammo * sign,
335
+ authorization: options.authorization,
336
+ cargoHold: cargoHold === undefined
337
+ ? null
338
+ : {
339
+ toLoad: options.direction === 'toFleet' ? [...cargoHold] : [],
340
+ toUnload: options.direction === 'toStarbase' ? [...cargoHold] : [],
341
+ },
342
+ character,
343
+ fleet: fleet.address,
344
+ fuelTank: options.amounts.fuel === undefined ? null : options.amounts.fuel * sign,
345
+ game,
346
+ systemAndStarbasePlayerStarbasePlayer: starbasePlayer,
347
+ systemAndStarbasePlayerSystem: system,
348
+ });
349
+ const description = options.direction === 'toFleet'
350
+ ? `Transfer cargo from the player Starbase to fleet ${fleet.name}. Amounts: ${describeTransferAmounts(options.amounts)}.`
351
+ : `Transfer cargo from fleet ${fleet.name} to the player Starbase. Amounts: ${describeTransferAmounts(options.amounts)}.`;
352
+ const fleetPreconditionDescription = options.direction === 'toFleet'
353
+ ? `Fleet ${fleet.name} remains owned by Profile ${options.authorization.profile}, docked at System ${system}, and has the checked destination cargo capacities.`
354
+ : `Fleet ${fleet.name} remains owned by Profile ${options.authorization.profile}, docked at System ${system}, and has the checked source cargo balances.`;
355
+ const playerPreconditionDescription = options.direction === 'toFleet'
356
+ ? `The Starbase Player remains registered for the canonical Character at Fleet ${fleet.name}'s docked System with the checked source cargo balances.`
357
+ : `The Starbase Player remains registered for the canonical Character at Fleet ${fleet.name}'s docked System.`;
358
+ return createPlan({
359
+ kind: 'cargo.fleet-starbase-transfer',
360
+ preconditions: await Promise.all([
361
+ precondition(fleetAccount, fleetPreconditionDescription),
362
+ precondition(characterAccount, `The canonical Character remains assigned to Profile ${options.authorization.profile} in the configured Game.`),
363
+ precondition(playerAccount, playerPreconditionDescription),
364
+ ]),
365
+ steps: [
366
+ {
367
+ describes: description,
368
+ instruction,
369
+ signers: [options.authorization.authority],
370
+ },
371
+ ],
372
+ summary: description,
373
+ });
374
+ }
375
+ function requireWithinFleetTransferState(fleet) {
376
+ switch (fleet.state.kind) {
377
+ case 'idle':
378
+ case 'docked':
379
+ case 'claimStakeTransfer':
380
+ return;
381
+ case 'warp':
382
+ fail(`Fleet ${fleet.name} is warp, but within-Fleet cargo transfer requires idle, docked, or claimStakeTransfer state. Finish the Fleet's warp, refresh it, and retry.`, fleet.address);
383
+ case 'subwarp':
384
+ fail(`Fleet ${fleet.name} is subwarp, but within-Fleet cargo transfer requires idle, docked, or claimStakeTransfer state. Finish or stop the Fleet's subwarp, refresh it, and retry.`, fleet.address);
385
+ case 'mining':
386
+ fail(`Fleet ${fleet.name} is mining, but within-Fleet cargo transfer requires idle, docked, or claimStakeTransfer state. Stop the Fleet's mining action, refresh it, and retry.`, fleet.address);
387
+ case 'respawn':
388
+ fail(`Fleet ${fleet.name} is respawn, but within-Fleet cargo transfer requires idle, docked, or claimStakeTransfer state. Finish the Fleet's respawn, refresh it, and retry.`, fleet.address);
389
+ case 'destroyed':
390
+ fail(`Fleet ${fleet.name} is destroyed, but within-Fleet cargo transfer requires idle, docked, or claimStakeTransfer state. Respawn the Fleet, refresh it, and retry.`, fleet.address);
391
+ /* v8 ignore next -- a new Fleet state fails compilation until its policy is explicit. */
392
+ default: {
393
+ const exhaustive = fleet.state;
394
+ throw new RangeError(`Unsupported within-Fleet cargo transfer state ${String(exhaustive)}.`);
395
+ }
396
+ }
397
+ }
398
+ function podCargoId(fleet, pod) {
399
+ switch (pod) {
400
+ case 'ammo':
401
+ return fleet.ammo.id;
402
+ case 'fuel':
403
+ return fleet.fuel.id;
404
+ case 'cargoHold':
405
+ return undefined;
406
+ }
407
+ }
408
+ function requireMatchingPodCargoId(fleet, pod, cargoId) {
409
+ const expected = podCargoId(fleet, pod);
410
+ if (expected !== undefined && cargoId !== expected) {
411
+ fail(`Requested cargo id ${String(cargoId)} does not match Fleet ${pod} pod resolved cargo id ${String(expected)}. Use the pod's resolved cargo id, refresh the Fleet, and retry.`, fleet.address);
412
+ }
413
+ }
414
+ function podBalance(fleet, pod, cargoId) {
415
+ switch (pod) {
416
+ case 'ammo':
417
+ return fleet.ammo.amount;
418
+ case 'fuel':
419
+ return fleet.fuel.amount;
420
+ case 'cargoHold':
421
+ return (fleet.cargoHold.items.find((item) => item.id === cargoId)?.amount ?? 0n);
422
+ }
423
+ }
424
+ function requiredDestinationUnits(fleet, options) {
425
+ switch (options.to) {
426
+ case 'ammo':
427
+ return {
428
+ label: 'ammo',
429
+ remaining: fleet.capacities.ammo.remaining,
430
+ required: options.amount,
431
+ };
432
+ case 'fuel':
433
+ return {
434
+ label: 'fuel',
435
+ remaining: fleet.capacities.fuel.remaining,
436
+ required: options.amount,
437
+ };
438
+ case 'cargoHold': {
439
+ const source = options.from === 'ammo' ? fleet.ammo : fleet.fuel;
440
+ return {
441
+ label: 'cargoHold storage',
442
+ remaining: fleet.capacities.cargo.remaining,
443
+ required: options.amount * BigInt(source.storageCost),
444
+ };
445
+ }
446
+ }
447
+ }
448
+ function generatedFleetCargoPod(pod) {
449
+ switch (pod) {
450
+ case 'ammo':
451
+ return sage.FleetCargoPod.AmmoBank;
452
+ case 'fuel':
453
+ return sage.FleetCargoPod.FuelTank;
454
+ case 'cargoHold':
455
+ return sage.FleetCargoPod.CargoHold;
456
+ }
457
+ }
458
+ /** Plans one exact cargo transfer between two nested pods in one Fleet.
459
+ *
460
+ * The caller supplies pod names, one unsigned-u16 cargo id, and one positive
461
+ * raw unsigned-u64 amount. Planning uses only the supplied Fleet snapshot for
462
+ * pod identities, resolved cargo ids, balances, and ammo/fuel/cargo-hold
463
+ * capacity. It accepts idle, docked, and Claim Stake transfer states and
464
+ * returns one signer-free, inspectable instruction. The chain remains
465
+ * authoritative for state races, Profile permission bits including
466
+ * `MANAGE_FLEET_CARGO`, and program arithmetic.
467
+ *
468
+ * @example
469
+ * ```ts
470
+ * declare const ctx: SageContext;
471
+ * declare const fleet: FleetSnapshot;
472
+ * declare const authorization: PlanAuthorization;
473
+ * const plan = await planFleetTransferCargoWithinFleet(ctx, fleet, {
474
+ * amount: 5n,
475
+ * authorization,
476
+ * cargoId: fleet.ammo.id,
477
+ * from: 'ammo',
478
+ * to: 'cargoHold',
479
+ * });
480
+ * console.log(plan.describe());
481
+ * ```
482
+ */
483
+ export async function planFleetTransferCargoWithinFleet(ctx, fleet, input) {
484
+ const options = validateWithinFleetOptions(input);
485
+ if (fleet.ownerProfile.address !== options.authorization.profile) {
486
+ fail(`Fleet ${fleet.name} belongs to Profile ${fleet.ownerProfile.address}, not authorized Profile ${options.authorization.profile}. Use the owning Profile in PlanAuthorization, refresh the Fleet, and retry.`, fleet.address);
487
+ }
488
+ const game = requireGameAddress(ctx);
489
+ if (fleet.game !== game) {
490
+ fail(`Fleet ${fleet.name} belongs to Game ${fleet.game}, not configured Game ${game}. Use a Fleet snapshot loaded from the matching Game context, refresh the Fleet, and retry.`, fleet.address);
491
+ }
492
+ requireWithinFleetTransferState(fleet);
493
+ requireMatchingPodCargoId(fleet, options.from, options.cargoId);
494
+ requireMatchingPodCargoId(fleet, options.to, options.cargoId);
495
+ const available = podBalance(fleet, options.from, options.cargoId);
496
+ if (options.amount > available) {
497
+ fail(`Fleet ${options.from} source balance has ${String(available)} raw units available for cargo id ${String(options.cargoId)}, but this Plan requests ${String(options.amount)}. Reduce the transfer amount, refresh the Fleet, and retry.`, fleet.address);
498
+ }
499
+ const destination = requiredDestinationUnits(fleet, options);
500
+ if (destination.required > destination.remaining) {
501
+ fail(`Fleet ${destination.label} destination capacity has ${String(destination.remaining)} raw units of space remaining, but this Plan requires ${String(destination.required)}. Reduce the transfer amount or free Fleet capacity, refresh the Fleet, and retry.`, fleet.address);
502
+ }
503
+ const instruction = adaptTransferCargoWithinFleetInstruction({
504
+ amount: options.amount,
505
+ authorization: options.authorization,
506
+ cargoId: options.cargoId,
507
+ cargoPodFrom: generatedFleetCargoPod(options.from),
508
+ cargoPodTo: generatedFleetCargoPod(options.to),
509
+ fleet: fleet.address,
510
+ game,
511
+ });
512
+ const description = `Transfer ${formatRawUnits(options.amount)} of cargo id ${String(options.cargoId)} within fleet ${fleet.name} from ${options.from} to ${options.to}.`;
513
+ return createPlan({
514
+ kind: 'cargo.within-fleet-transfer',
515
+ preconditions: [],
516
+ steps: [
517
+ {
518
+ describes: description,
519
+ instruction,
520
+ signers: [options.authorization.authority],
521
+ },
522
+ ],
523
+ summary: description,
524
+ });
525
+ }
526
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cargo/actions/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { type Address, type DiscoveryRequest, type EntityRef, type ReadOptions, type SageContext } from '../client/index.js';
2
+ import { type ResolvedFleetCargoInventory } from '../internal/cargo.js';
3
+ import { type CargoDefinitionSummary, type DefinitionLookupOptions } from '../registry/index.js';
4
+ export type { CargoCapacity, CargoInventoryItem, CargoPodInventory, } from '../internal/cargo.js';
5
+ /** Stable cargo definition resolved lazily from the configured Game registry.
6
+ * @example
7
+ * ```ts
8
+ * declare const definition: CargoDefinition;
9
+ * console.log(definition.name, definition.storageCost);
10
+ * ```
11
+ */
12
+ export type CargoDefinition = CargoDefinitionSummary;
13
+ /** Sequence expectation used when resolving a cargo definition.
14
+ * @example
15
+ * ```ts
16
+ * const options: CargoDefinitionLookupOptions = { expectedSequenceId: 4 };
17
+ * ```
18
+ */
19
+ export type CargoDefinitionLookupOptions = DefinitionLookupOptions;
20
+ /** Options supported by targeted Fleet cargo inventory discovery.
21
+ * @example
22
+ * ```ts
23
+ * const options: CargoDiscoveryOptions = { commitment: 'confirmed' };
24
+ * ```
25
+ */
26
+ export type CargoDiscoveryOptions = Omit<DiscoveryRequest, 'filters' | 'strategy'>;
27
+ /** Immutable cargo inventory projected from the CargoPods nested in a Fleet.
28
+ * @example
29
+ * ```ts
30
+ * declare const inventory: FleetCargoInventorySnapshot;
31
+ * console.log(inventory.cargoHold.items);
32
+ * ```
33
+ */
34
+ export interface FleetCargoInventorySnapshot extends Omit<ResolvedFleetCargoInventory, 'ownerProfile'> {
35
+ readonly kind: 'fleetCargoInventory';
36
+ /** Parent Fleet address; CargoPods are nested values and have no own address. */
37
+ readonly address: Address;
38
+ readonly fleet: EntityRef<'fleet'>;
39
+ readonly ownerProfile: EntityRef<'profile'>;
40
+ toJSON(): unknown;
41
+ }
42
+ /** Resolves one cargo definition without loading the Game registry eagerly.
43
+ * @example
44
+ * ```ts
45
+ * declare const ctx: SageContext;
46
+ * const fuel = await getCargoDefinition(ctx, 1);
47
+ * ```
48
+ */
49
+ export declare function getCargoDefinition(context: SageContext, cargoId: number, options?: CargoDefinitionLookupOptions): Promise<CargoDefinition>;
50
+ /** Reads the required CargoPods nested in a Fleet account.
51
+ * @example
52
+ * ```ts
53
+ * declare const ctx: SageContext;
54
+ * declare const fleetAddress: Address;
55
+ * const inventory = await getFleetCargoInventory(ctx, fleetAddress);
56
+ * ```
57
+ */
58
+ export declare function getFleetCargoInventory(context: SageContext, fleetAddress: Address, options?: ReadOptions): Promise<FleetCargoInventorySnapshot>;
59
+ /** Reads optional CargoPods nested in a Fleet account.
60
+ * @example
61
+ * ```ts
62
+ * declare const ctx: SageContext;
63
+ * declare const fleetAddress: Address;
64
+ * const inventory = await maybeGetFleetCargoInventory(ctx, fleetAddress);
65
+ * ```
66
+ */
67
+ export declare function maybeGetFleetCargoInventory(context: SageContext, fleetAddress: Address, options?: ReadOptions): Promise<FleetCargoInventorySnapshot | undefined>;
68
+ /** Discovers CargoPod inventories for Fleets owned by a Player Profile.
69
+ * @example
70
+ * ```ts
71
+ * declare const ctx: SageContext;
72
+ * declare const profileAddress: Address;
73
+ * const inventories = await getFleetCargoInventoriesByOwner(ctx, profileAddress);
74
+ * ```
75
+ */
76
+ export declare function getFleetCargoInventoriesByOwner(context: SageContext, profileAddress: Address, options?: CargoDiscoveryOptions): Promise<readonly FleetCargoInventorySnapshot[]>;
77
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cargo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,SAAS,EAEd,KAAK,WAAW,EAChB,KAAK,WAAW,EAEjB,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,MAAM,4BAA4B,GAAG,uBAAuB,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,gBAAgB,EAChB,SAAS,GAAG,UAAU,CACvB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,2BAA4B,SAAQ,IAAI,CACvD,2BAA2B,EAC3B,cAAc,CACf;IACC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,IAAI,OAAO,CAAC;CACnB;AAwED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,4BAA4B,GACrC,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,OAAO,EACrB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,2BAA2B,CAAC,CAUtC;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,OAAO,EACrB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAWlD;AAED;;;;;;;GAOG;AACH,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,WAAW,EACpB,cAAc,EAAE,OAAO,EACvB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,SAAS,2BAA2B,EAAE,CAAC,CAWjD"}