@aephia/atlas-kit 0.5.0 → 0.6.0-next.2

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 (165) hide show
  1. package/README.md +38 -27
  2. package/dist/cargo/actions/deposit.d.ts +52 -0
  3. package/dist/cargo/actions/deposit.d.ts.map +1 -0
  4. package/dist/cargo/actions/deposit.js +192 -0
  5. package/dist/cargo/actions/deposit.js.map +1 -0
  6. package/dist/cargo/actions/index.d.ts +1 -0
  7. package/dist/cargo/actions/index.d.ts.map +1 -1
  8. package/dist/cargo/actions/index.js +1 -0
  9. package/dist/cargo/actions/index.js.map +1 -1
  10. package/dist/cargo/actions/wallet-token.d.ts +8 -0
  11. package/dist/cargo/actions/wallet-token.d.ts.map +1 -0
  12. package/dist/cargo/actions/wallet-token.js +58 -0
  13. package/dist/cargo/actions/wallet-token.js.map +1 -0
  14. package/dist/cargo/index.d.ts +1 -0
  15. package/dist/cargo/index.d.ts.map +1 -1
  16. package/dist/cargo/index.js +1 -0
  17. package/dist/cargo/index.js.map +1 -1
  18. package/dist/claim-stakes/actions/index.d.ts +393 -0
  19. package/dist/claim-stakes/actions/index.d.ts.map +1 -0
  20. package/dist/claim-stakes/actions/index.js +1747 -0
  21. package/dist/claim-stakes/actions/index.js.map +1 -0
  22. package/dist/claim-stakes/index.d.ts +64 -0
  23. package/dist/claim-stakes/index.d.ts.map +1 -1
  24. package/dist/claim-stakes/index.js +49 -0
  25. package/dist/claim-stakes/index.js.map +1 -1
  26. package/dist/client/context.d.ts.map +1 -1
  27. package/dist/client/context.js +2 -1
  28. package/dist/client/context.js.map +1 -1
  29. package/dist/client/errors.d.ts +12 -3
  30. package/dist/client/errors.d.ts.map +1 -1
  31. package/dist/client/errors.js +11 -0
  32. package/dist/client/errors.js.map +1 -1
  33. package/dist/client/index.d.ts +2 -1
  34. package/dist/client/index.d.ts.map +1 -1
  35. package/dist/client/index.js +1 -0
  36. package/dist/client/index.js.map +1 -1
  37. package/dist/client/lifecycle.d.ts +2 -0
  38. package/dist/client/lifecycle.d.ts.map +1 -1
  39. package/dist/client/lifecycle.js +31 -0
  40. package/dist/client/lifecycle.js.map +1 -1
  41. package/dist/combat/actions/index.d.ts +239 -0
  42. package/dist/combat/actions/index.d.ts.map +1 -0
  43. package/dist/combat/actions/index.js +1146 -0
  44. package/dist/combat/actions/index.js.map +1 -0
  45. package/dist/crafting/actions/index.d.ts +140 -0
  46. package/dist/crafting/actions/index.d.ts.map +1 -0
  47. package/dist/crafting/actions/index.js +728 -0
  48. package/dist/crafting/actions/index.js.map +1 -0
  49. package/dist/crafting/index.d.ts +74 -8
  50. package/dist/crafting/index.d.ts.map +1 -1
  51. package/dist/crafting/index.js +55 -9
  52. package/dist/crafting/index.js.map +1 -1
  53. package/dist/fleets/actions/index.d.ts +5 -4
  54. package/dist/fleets/actions/index.d.ts.map +1 -1
  55. package/dist/fleets/actions/index.js +85 -58
  56. package/dist/fleets/actions/index.js.map +1 -1
  57. package/dist/fleets/index.d.ts +1 -0
  58. package/dist/fleets/index.d.ts.map +1 -1
  59. package/dist/fleets/index.js +1 -0
  60. package/dist/fleets/index.js.map +1 -1
  61. package/dist/index.d.ts +13 -2
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +9 -2
  64. package/dist/index.js.map +1 -1
  65. package/dist/internal/c4/claim-stake-building-definitions.d.ts +50 -0
  66. package/dist/internal/c4/claim-stake-building-definitions.d.ts.map +1 -0
  67. package/dist/internal/c4/claim-stake-building-definitions.js +56 -0
  68. package/dist/internal/c4/claim-stake-building-definitions.js.map +1 -0
  69. package/dist/internal/c4/claim-stake-configuration.d.ts +17 -0
  70. package/dist/internal/c4/claim-stake-configuration.d.ts.map +1 -0
  71. package/dist/internal/c4/claim-stake-configuration.js +47 -0
  72. package/dist/internal/c4/claim-stake-configuration.js.map +1 -0
  73. package/dist/internal/c4/claim-stake-definitions.d.ts +37 -0
  74. package/dist/internal/c4/claim-stake-definitions.d.ts.map +1 -0
  75. package/dist/internal/c4/claim-stake-definitions.js +77 -0
  76. package/dist/internal/c4/claim-stake-definitions.js.map +1 -0
  77. package/dist/internal/c4/fleet.d.ts.map +1 -1
  78. package/dist/internal/c4/fleet.js +2 -102
  79. package/dist/internal/c4/fleet.js.map +1 -1
  80. package/dist/internal/c4/game-definition-layout.d.ts +11 -0
  81. package/dist/internal/c4/game-definition-layout.d.ts.map +1 -0
  82. package/dist/internal/c4/game-definition-layout.js +32 -0
  83. package/dist/internal/c4/game-definition-layout.js.map +1 -0
  84. package/dist/internal/c4/game.d.ts +19 -1
  85. package/dist/internal/c4/game.d.ts.map +1 -1
  86. package/dist/internal/c4/game.js +26 -37
  87. package/dist/internal/c4/game.js.map +1 -1
  88. package/dist/internal/c4/profile-faction.d.ts +6 -0
  89. package/dist/internal/c4/profile-faction.d.ts.map +1 -1
  90. package/dist/internal/c4/profile-faction.js +22 -1
  91. package/dist/internal/c4/profile-faction.js.map +1 -1
  92. package/dist/internal/c4/ship-stats.d.ts +5 -0
  93. package/dist/internal/c4/ship-stats.d.ts.map +1 -0
  94. package/dist/internal/c4/ship-stats.js +106 -0
  95. package/dist/internal/c4/ship-stats.js.map +1 -0
  96. package/dist/internal/c4/world.d.ts +23 -1
  97. package/dist/internal/c4/world.d.ts.map +1 -1
  98. package/dist/internal/c4/world.js +53 -1
  99. package/dist/internal/c4/world.js.map +1 -1
  100. package/dist/internal/crafting-process-state.d.ts +15 -0
  101. package/dist/internal/crafting-process-state.d.ts.map +1 -0
  102. package/dist/internal/crafting-process-state.js +12 -0
  103. package/dist/internal/crafting-process-state.js.map +1 -0
  104. package/dist/internal/planning/authorization-adapter.d.ts +79 -0
  105. package/dist/internal/planning/authorization-adapter.d.ts.map +1 -1
  106. package/dist/internal/planning/authorization-adapter.js +402 -0
  107. package/dist/internal/planning/authorization-adapter.js.map +1 -1
  108. package/dist/internal/read-meta.d.ts +39 -3
  109. package/dist/internal/read-meta.d.ts.map +1 -1
  110. package/dist/internal/read-meta.js +0 -10
  111. package/dist/internal/read-meta.js.map +1 -1
  112. package/dist/loyalty/actions/index.d.ts +40 -0
  113. package/dist/loyalty/actions/index.d.ts.map +1 -0
  114. package/dist/loyalty/actions/index.js +159 -0
  115. package/dist/loyalty/actions/index.js.map +1 -0
  116. package/dist/markets/actions/index.d.ts +100 -0
  117. package/dist/markets/actions/index.d.ts.map +1 -0
  118. package/dist/markets/actions/index.js +417 -0
  119. package/dist/markets/actions/index.js.map +1 -0
  120. package/dist/planning/assembly.d.ts +4 -0
  121. package/dist/planning/assembly.d.ts.map +1 -1
  122. package/dist/planning/assembly.js +13 -0
  123. package/dist/planning/assembly.js.map +1 -1
  124. package/dist/planning/composition.d.ts.map +1 -1
  125. package/dist/planning/composition.js +20 -1
  126. package/dist/planning/composition.js.map +1 -1
  127. package/dist/planning/execution.d.ts.map +1 -1
  128. package/dist/planning/execution.js +7 -4
  129. package/dist/planning/execution.js.map +1 -1
  130. package/dist/planning/index.d.ts +27 -8
  131. package/dist/planning/index.d.ts.map +1 -1
  132. package/dist/planning/index.js +57 -13
  133. package/dist/planning/index.js.map +1 -1
  134. package/dist/planning/simulation.d.ts.map +1 -1
  135. package/dist/planning/simulation.js +2 -1
  136. package/dist/planning/simulation.js.map +1 -1
  137. package/dist/registry/cargo.d.ts +17 -0
  138. package/dist/registry/cargo.d.ts.map +1 -0
  139. package/dist/registry/cargo.js +35 -0
  140. package/dist/registry/cargo.js.map +1 -0
  141. package/dist/registry/claim-stakes.d.ts +11 -0
  142. package/dist/registry/claim-stakes.d.ts.map +1 -0
  143. package/dist/registry/claim-stakes.js +15 -0
  144. package/dist/registry/claim-stakes.js.map +1 -0
  145. package/dist/registry/definition-section-snapshot.d.ts +42 -0
  146. package/dist/registry/definition-section-snapshot.d.ts.map +1 -0
  147. package/dist/registry/definition-section-snapshot.js +214 -0
  148. package/dist/registry/definition-section-snapshot.js.map +1 -0
  149. package/dist/registry/index.d.ts +114 -7
  150. package/dist/registry/index.d.ts.map +1 -1
  151. package/dist/registry/index.js +372 -101
  152. package/dist/registry/index.js.map +1 -1
  153. package/dist/registry/publication.d.ts +8 -0
  154. package/dist/registry/publication.d.ts.map +1 -0
  155. package/dist/registry/publication.js +10 -0
  156. package/dist/registry/publication.js.map +1 -0
  157. package/dist/registry/ship-stats-snapshot.d.ts +8 -0
  158. package/dist/registry/ship-stats-snapshot.d.ts.map +1 -0
  159. package/dist/registry/ship-stats-snapshot.js +154 -0
  160. package/dist/registry/ship-stats-snapshot.js.map +1 -0
  161. package/dist/world/index.d.ts +22 -1
  162. package/dist/world/index.d.ts.map +1 -1
  163. package/dist/world/index.js +24 -1
  164. package/dist/world/index.js.map +1 -1
  165. package/package.json +21 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition-section-snapshot.d.ts","sourceRoot":"","sources":["../../src/registry/definition-section-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAC9F,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,oDAAoD,CAAC;AAC/G,OAAO,KAAK,EACV,6BAA6B,EAC7B,6BAA6B,EAC9B,MAAM,wBAAwB,CAAC;AAIhC,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,WAAW,EAAE,4BAA4B,CAAC;IACnD,QAAQ,CAAC,SAAS,EAAE,oCAAoC,CAAC;IACzD,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC;IACrD,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC;CACtD;AACD,MAAM,MAAM,0BAA0B,GAAG,MAAM,cAAc,CAAC;AAC9D,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GACjC,MAAM,GACN,CAAC,SAAS,MAAM,GACd;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC7C,CAAC,CAAC;AACR,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,4BAA4B,CAAC,CAAC;AAChF,MAAM,MAAM,sBAAsB,GAChC,UAAU,CAAC,oCAAoC,CAAC,CAAC;AACnD,MAAM,MAAM,yBAAyB,GACnC,UAAU,CAAC,6BAA6B,CAAC,CAAC;AAC5C,MAAM,MAAM,yBAAyB,GACnC,UAAU,CAAC,6BAA6B,CAAC,CAAC;AAC5C,UAAU,QAAQ;IAChB,QAAQ,CAAC,WAAW,EAAE,wBAAwB,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;CAClD;AACD,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,0BAA0B;IACzE,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;CAC9C;AACD,MAAM,WAAW,yBAAyB,CACxC,CAAC,SAAS,0BAA0B;IAEpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;CACpD;AAyMD,oGAAoG;AACpG,wBAAgB,gCAAgC,CAC9C,CAAC,SAAS,0BAA0B,EAEpC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,CAAC,GACT,yBAAyB,CAAC,CAAC,CAAC,GAAG,SAAS,CAmC1C;AAED,+FAA+F;AAC/F,wBAAgB,+BAA+B,CAC7C,CAAC,SAAS,0BAA0B,EAEpC,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,yBAAyB,CAAC,CAAC,CAAC,GACnC,qBAAqB,CAAC,CAAC,CAAC,GAAG,SAAS,CAetC"}
@@ -0,0 +1,214 @@
1
+ import { isAddress } from '@solana/kit';
2
+ import { validateImmutableTree } from '../internal/immutable-tree.js';
3
+ import { toJsonSafeValue } from '../internal/json.js';
4
+ function record(value) {
5
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
6
+ }
7
+ function shape(rules) {
8
+ return (value) => {
9
+ if (!record(value) ||
10
+ Reflect.ownKeys(value).length !== Object.keys(rules).length)
11
+ return undefined;
12
+ const result = {};
13
+ for (const key of Object.keys(rules)) {
14
+ if (!Object.hasOwn(value, key))
15
+ return undefined;
16
+ const parsed = rules[key](value[key]);
17
+ if (parsed === undefined)
18
+ return undefined;
19
+ result[key] = parsed;
20
+ }
21
+ return result;
22
+ };
23
+ }
24
+ function integer(min, max) {
25
+ return (value) => typeof value === 'number' &&
26
+ Number.isInteger(value) &&
27
+ value >= min &&
28
+ value <= max
29
+ ? value
30
+ : undefined;
31
+ }
32
+ const U16 = integer(0, 65535), I16 = integer(-32768, 32767), U32 = integer(0, 4294967295);
33
+ function decimal(min, max) {
34
+ return (value) => {
35
+ if (typeof value !== 'string' ||
36
+ value.length > 20 ||
37
+ !/^(0|-?[1-9][0-9]*)$/.test(value))
38
+ return undefined;
39
+ const raw = BigInt(value);
40
+ return raw >= min && raw <= max ? raw : undefined;
41
+ };
42
+ }
43
+ const U64 = decimal(0n, 18446744073709551615n), I64 = decimal(-9223372036854775808n, 9223372036854775807n);
44
+ const text = (value) => typeof value === 'string' ? value : undefined;
45
+ const tier = (value) => value === 'one' ||
46
+ value === 'two' ||
47
+ value === 'three' ||
48
+ value === 'four' ||
49
+ value === 'five'
50
+ ? value
51
+ : undefined;
52
+ const finite = (value) => typeof value === 'number' && Number.isFinite(value) ? value : undefined;
53
+ function fixed(rawRule, divisor) {
54
+ const parse = shape({ raw: rawRule, value: finite });
55
+ return (value) => {
56
+ const parsed = parse(value);
57
+ return parsed !== undefined && parsed.value === Number(parsed.raw) / divisor
58
+ ? parsed
59
+ : undefined;
60
+ };
61
+ }
62
+ const U8F56 = fixed(U64, 2 ** 56), U16F16 = fixed(decimal(0n, 4294967295n), 65536), U26F6 = fixed(decimal(0n, 4294967295n), 64), I54F10 = fixed(I64, 1024), U54F10 = fixed(U64, 1024);
63
+ function uniqueArray(rule, key) {
64
+ return (value) => {
65
+ if (!Array.isArray(value) ||
66
+ Reflect.ownKeys(value).length !== value.length + 1)
67
+ return undefined;
68
+ const result = [], keys = new Set();
69
+ for (let i = 0; i < value.length; i++) {
70
+ if (!Object.hasOwn(value, i))
71
+ return undefined;
72
+ const parsed = rule(value[i]);
73
+ if (parsed === undefined || keys.has(key(parsed)))
74
+ return undefined;
75
+ keys.add(key(parsed));
76
+ result.push(parsed);
77
+ }
78
+ return result;
79
+ };
80
+ }
81
+ const ids = uniqueArray(U16, (value) => value);
82
+ const quantities = uniqueArray(shape({ cargoId: U16, quantityRaw: U64 }), (value) => value.cargoId);
83
+ const production = uniqueArray(shape({ cargoId: U16, rate: I54F10 }), (value) => value.cargoId);
84
+ const extraction = uniqueArray(shape({ cargoId: U16, rate: U54F10 }), (value) => value.cargoId);
85
+ const parseNetRate = shape({
86
+ cargoId: U16,
87
+ unitsPerSecondRaw: I64,
88
+ unitsPerSecond: finite,
89
+ });
90
+ const netRates = uniqueArray((value) => {
91
+ const parsed = parseNetRate(value);
92
+ return parsed !== undefined &&
93
+ parsed.unitsPerSecond === Number(parsed.unitsPerSecondRaw) / 1024
94
+ ? parsed
95
+ : undefined;
96
+ }, (value) => value.cargoId);
97
+ // Each full projection has an exhaustive field schema, despite sharing primitives.
98
+ const claimStakeRules = {
99
+ id: U16,
100
+ name: text,
101
+ cargoId: U16,
102
+ tier,
103
+ slots: U32,
104
+ rentMultiplier: U8F56,
105
+ placementFeeMultiplier: U8F56,
106
+ hubValue: U16,
107
+ requiredTagIds: ids,
108
+ providedTagIds: ids,
109
+ };
110
+ const craftingHabRules = {
111
+ ...claimStakeRules,
112
+ evictionGracePeriodSeconds: I64,
113
+ respawnDurationSeconds: I64,
114
+ };
115
+ const buildingRules = {
116
+ id: U16,
117
+ name: text,
118
+ slots: U32,
119
+ crewSlots: I16,
120
+ neededCrew: U16,
121
+ constructionDurationSeconds: I64,
122
+ power: I16,
123
+ resourceStorageRaw: U64,
124
+ hubValue: U16,
125
+ minimumTier: tier,
126
+ xpValue: U16F16,
127
+ refunds: quantities,
128
+ constructionCost: quantities,
129
+ researchRequirementIds: ids,
130
+ netResourceProduction: production,
131
+ resourceExtraction: extraction,
132
+ requiredTagIds: ids,
133
+ providedTagIds: ids,
134
+ };
135
+ const habBuildingRules = {
136
+ id: U16,
137
+ name: text,
138
+ slots: U32,
139
+ crewSlots: I16,
140
+ neededCrew: U16,
141
+ constructionDurationSeconds: I64,
142
+ resourceCapacityRaw: U64,
143
+ hubValue: U16,
144
+ minimumTier: tier,
145
+ modifiers: shape({
146
+ efficiency: U26F6,
147
+ fee: U26F6,
148
+ speed: U26F6,
149
+ crewCount: U26F6,
150
+ }),
151
+ jobCapacity: U16,
152
+ xpValue: U16F16,
153
+ refunds: quantities,
154
+ constructionCost: quantities,
155
+ researchRequirementIds: ids,
156
+ requiredTagIds: ids,
157
+ providedTagIds: ids,
158
+ netRates,
159
+ unlockedRecipeIds: ids,
160
+ };
161
+ const rowRules = {
162
+ claimStakes: shape(claimStakeRules),
163
+ craftingHabs: shape(craftingHabRules),
164
+ buildings: shape(buildingRules),
165
+ habBuildings: shape(habBuildingRules),
166
+ };
167
+ /** Unusable stored data is a miss. Returns fresh owned trees without mutating or freezing input. */
168
+ export function hydrateDefinitionSectionSnapshot(value, game, section) {
169
+ try {
170
+ validateImmutableTree(value);
171
+ if (!record(value) ||
172
+ Reflect.ownKeys(value).length !== 5 ||
173
+ value.schemaVersion !== 2 ||
174
+ value.game !== game ||
175
+ !isAddress(game) ||
176
+ value.section !== section ||
177
+ U32(value.sequenceId) === undefined)
178
+ return undefined;
179
+ const definitions = uniqueArray(rowRules[section], (row) => row.id)(value.definitions);
180
+ if (definitions === undefined)
181
+ return undefined;
182
+ if (section === 'craftingHabs') {
183
+ const habs = definitions;
184
+ // Both durations came from the same section observation, repeated per row.
185
+ if (habs.some((row) => row.evictionGracePeriodSeconds !==
186
+ habs[0].evictionGracePeriodSeconds ||
187
+ row.respawnDurationSeconds !== habs[0].respawnDurationSeconds))
188
+ return undefined;
189
+ }
190
+ return { definitions, sequenceId: value.sequenceId };
191
+ }
192
+ catch {
193
+ return undefined;
194
+ }
195
+ }
196
+ /** Encodes an owned JSON-safe snapshot; internal incompatible input cannot reach the store. */
197
+ export function encodeDefinitionSectionSnapshot(game, section, loaded) {
198
+ try {
199
+ const wire = {
200
+ schemaVersion: 2,
201
+ game,
202
+ section,
203
+ sequenceId: loaded.sequenceId,
204
+ definitions: toJsonSafeValue(loaded.definitions),
205
+ };
206
+ return hydrateDefinitionSectionSnapshot(wire, game, section) === undefined
207
+ ? undefined
208
+ : wire;
209
+ }
210
+ catch {
211
+ return undefined;
212
+ }
213
+ }
214
+ //# sourceMappingURL=definition-section-snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition-section-snapshot.js","sourceRoot":"","sources":["../../src/registry/definition-section-snapshot.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
+ import { type DefinitionSectionWire, type PersistedDefinitionSection } from './definition-section-snapshot.js';
2
+ import { type PreloadedDefinitions } from '../internal/read-meta.js';
3
+ import type { GameClaimStakeBuildingDefinitionData } from '../internal/c4/claim-stake-building-definitions.js';
4
+ import type { GameClaimStakeDefinitionData } from '../internal/c4/claim-stake-configuration.js';
5
+ import type { FleetStatsData } from '../internal/c4/fleet.js';
6
+ import { type ShipStatsJson } from './ship-stats-snapshot.js';
1
7
  import type { Address, SageContext } from '../client/contracts.js';
2
8
  import { type GameCraftingHabDefinitionData, type GameHabBuildingDefinitionData, type GameResearchNodeData, type GameXpDefinitionsSectionData } from '../internal/c4/game.js';
3
9
  /** Definition sections implemented by the first registry slice.
@@ -7,16 +13,23 @@ import { type GameCraftingHabDefinitionData, type GameHabBuildingDefinitionData,
7
13
  * const section: DefinitionSection = 'ships';
8
14
  * ```
9
15
  */
10
- export type DefinitionSection = 'ships' | 'cargo' | 'craftingHabs' | 'habBuildings' | 'xp' | 'research';
11
- /** Small, stable ship definition returned to gameplay domains.
16
+ export type DefinitionSection = 'ships' | 'cargo' | 'buildings' | 'claimStakes' | 'craftingHabs' | 'habBuildings' | 'xp' | 'research';
17
+ /** One immutable ship configuration from the loaded Game ships section.
18
+ * Stats describe this configuration, not a Fleet's effective stats.
19
+ * The sequence labels the resolved section; it does not prove chain freshness.
12
20
  *
13
21
  * @example
14
22
  * ```ts
15
23
  * declare const ctx: SageContext;
16
24
  * const ship: ShipDefinitionSummary = await resolveShip(ctx, 3);
25
+ * const miningRate = ship.stats.cargo.miningRate;
26
+ * const cargoCapacity = ship.stats.cargo.cargoCapacity;
27
+ * const fuelCapacity = ship.stats.cargo.fuelCapacity;
17
28
  * ```
18
29
  */
19
30
  export interface ShipDefinitionSummary {
31
+ readonly stats: FleetStatsData;
32
+ readonly definitionSequenceId: number;
20
33
  readonly id: number;
21
34
  readonly mint: Address;
22
35
  readonly name: string;
@@ -47,11 +60,15 @@ export interface CargoDefinitionSummary {
47
60
  * ```
48
61
  */
49
62
  export type DefinitionSectionSnapshot = {
50
- readonly schemaVersion: 1;
63
+ [S in PersistedDefinitionSection]: DefinitionSectionWire<S>;
64
+ }[PersistedDefinitionSection] | {
65
+ readonly schemaVersion: 2;
51
66
  readonly game: Address;
52
67
  readonly section: 'ships';
53
68
  readonly sequenceId: number;
54
- readonly definitions: readonly ShipDefinitionSummary[];
69
+ readonly definitions: readonly (Omit<ShipDefinitionSummary, 'definitionSequenceId' | 'stats'> & {
70
+ readonly stats: ShipStatsJson;
71
+ })[];
55
72
  } | {
56
73
  readonly schemaVersion: 1;
57
74
  readonly game: Address;
@@ -63,9 +80,13 @@ export type DefinitionSectionSnapshot = {
63
80
  *
64
81
  * Implementations may use IndexedDB, a filesystem, or another application-owned
65
82
  * store. Loading remains lazy and begins only with the first definition lookup.
66
- * Schema version 1 persists only the bigint-free ship and cargo sections.
67
- * Crafting Hab and Hab building sections continue to load lazily from Game
68
- * because their exact bigint fields do not yet have a versioned JSON encoding.
83
+ * Ship schema version 2 persists complete configuration stats as JSON-safe data;
84
+ * cargo schema version 1 remains compatible. Older ship snapshots reload lazily.
85
+ * Claim Stake containers/buildings and Crafting Hab containers/buildings each
86
+ * use a strict section-specific v2 schema with exact decimal bigint strings.
87
+ * Malformed snapshots reload from Game; a throwing store load is a ProviderError.
88
+ * XP and research are not persisted. Restored sequences do not prove freshness
89
+ * and carry no observation slot or commitment. Saves are best effort.
69
90
  *
70
91
  * @example
71
92
  * ```ts
@@ -90,6 +111,18 @@ export interface RegistrySnapshotStore {
90
111
  export interface DefinitionLookupOptions {
91
112
  readonly expectedSequenceId?: number;
92
113
  }
114
+ /** Warm selected definition catalogs, retaining each section's own observation.
115
+ * Already usable sections are reused; this is not a freshness refresh.
116
+ * @example
117
+ * ```ts
118
+ * declare const ctx: SageContext;
119
+ * const loaded = await preloadDefinitions(ctx, ['ships', 'claimStakes']);
120
+ * const provenance = readMeta(loaded);
121
+ * ```
122
+ */
123
+ export declare function preloadDefinitions(context: SageContext, sections: readonly DefinitionSection[], options?: {
124
+ readonly signal?: AbortSignal;
125
+ }): Promise<PreloadedDefinitions>;
93
126
  /** Resolves one ship id to an immutable SDK-owned definition summary.
94
127
  *
95
128
  * @example
@@ -100,6 +133,52 @@ export interface DefinitionLookupOptions {
100
133
  * ```
101
134
  */
102
135
  export declare function resolveShip(context: SageContext, shipId: number, options?: DefinitionLookupOptions): Promise<ShipDefinitionSummary>;
136
+ /** Lists every ship configuration in the context's loaded Game definitions section.
137
+ *
138
+ * Entries and the readonly array are retained for the section generation. Each
139
+ * entry is the same immutable object returned by `resolveShip`; loading either
140
+ * route serves the other without another Game read. A section refresh replaces
141
+ * the array and its entries together. Existing returned arrays remain immutable
142
+ * snapshots of their prior generation.
143
+ *
144
+ * `definitionSequenceId` identifies the loaded section, not proven-current chain
145
+ * state. This enumerates existing configurations without grouping by model or
146
+ * filling unallocated ids. The result has no guaranteed sorting order.
147
+ *
148
+ * @example
149
+ * ```ts
150
+ * declare const ctx: SageContext;
151
+ * const configurations = await listShipConfigurations(ctx);
152
+ * for (const ship of configurations) {
153
+ * console.log(ship.id, ship.name, ship.stats.cargo.cargoCapacity);
154
+ * }
155
+ * ```
156
+ */
157
+ export declare function listShipConfigurations(context: SageContext): Promise<readonly ShipDefinitionSummary[]>;
158
+ /** Lists current ship configurations associated with a mint in this context's Game.
159
+ *
160
+ * Groups by each configuration's on-chain `mint`, never display names, id ranges,
161
+ * or historical `mintToId` entries. Use a mint from the selected deployment;
162
+ * this does not map production mints to PTR or provide make/model labels or a
163
+ * default configuration. See `docs/research/ship-model-identity.md` (#395/#397).
164
+ *
165
+ * The frozen result shares objects with `resolveShip` and `listShipConfigurations`.
166
+ * A lazy index is retained with the ships section and replaced on section refresh;
167
+ * building it adds no RPC calls or metadata fetches. Unknown mints return a retained
168
+ * frozen empty array. Results have no guaranteed order or configuration count.
169
+ * `definitionSequenceId` denotes the loaded generation, not proven-current state.
170
+ *
171
+ * @example
172
+ * ```ts
173
+ * declare const ctx: SageContext;
174
+ * declare const shipMint: Address;
175
+ * const configurations = await listShipConfigurationsByMint(ctx, shipMint);
176
+ * for (const ship of configurations) {
177
+ * console.log(ship.id, ship.stats.cargo.cargoCapacity);
178
+ * }
179
+ * ```
180
+ */
181
+ export declare function listShipConfigurationsByMint(context: SageContext, mint: Address): Promise<readonly ShipDefinitionSummary[]>;
103
182
  /** Resolves one cargo id to an immutable SDK-owned definition summary.
104
183
  *
105
184
  * @example
@@ -135,4 +214,32 @@ export declare function listResearchDefinitions(context: SageContext): Promise<{
135
214
  readonly sequenceId: number;
136
215
  }>;
137
216
  export { RegistryOutOfSyncError } from '../client/errors.js';
217
+ /** Internal Claim Stake lookup using the shared section lifecycle. */
218
+ export declare function resolveClaimStakeDefinition(context: SageContext, id: number): Promise<GameClaimStakeDefinitionData>;
219
+ /** Internal canonical Claim Stake catalog. */
220
+ export declare function listClaimStakeDefinitions(context: SageContext): Promise<readonly GameClaimStakeDefinitionData[]>;
221
+ /** Internal canonical Crafting Hab container catalog. */
222
+ export declare function listCraftingHabDefinitions(context: SageContext): Promise<readonly GameCraftingHabDefinitionData[]>;
223
+ /** Internal Building definition lookup using the shared section lifecycle. */
224
+ export declare function resolveClaimStakeBuildingDefinition(context: SageContext, id: number): Promise<GameClaimStakeBuildingDefinitionData>;
225
+ /** Internal canonical Claim Stake building catalog. */
226
+ export declare function listClaimStakeBuildingDefinitions(context: SageContext): Promise<readonly GameClaimStakeBuildingDefinitionData[]>;
227
+ /** Internal canonical Hab building catalog. */
228
+ export declare function listHabBuildingDefinitions(context: SageContext): Promise<readonly GameHabBuildingDefinitionData[]>;
229
+ /** Lists all cargo definitions from the context's retained Game section.
230
+ *
231
+ * The readonly array and its definitions are shared with by-id lookups for one
232
+ * section generation. A refresh replaces the array and id map together; old
233
+ * arrays remain immutable snapshots. Results have no guaranteed sorting order.
234
+ * Loading is lazy and may use a compatible cargo schema-v1 stored snapshot.
235
+ * The retained generation does not prove latest-chain freshness.
236
+ *
237
+ * @example
238
+ * ```ts
239
+ * declare const ctx: SageContext;
240
+ * const definitions = await listCargoDefinitions(ctx);
241
+ * for (const cargo of definitions) console.log(cargo.id, cargo.name);
242
+ * ```
243
+ */
244
+ export declare function listCargoDefinitions(context: SageContext): Promise<readonly CargoDefinitionSummary[]>;
138
245
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"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"}