@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.
- package/LICENSE +202 -0
- package/README.md +124 -0
- package/dist/bindings.d.ts +11 -0
- package/dist/bindings.d.ts.map +1 -0
- package/dist/bindings.js +11 -0
- package/dist/bindings.js.map +1 -0
- package/dist/cargo/actions/index.d.ts +122 -0
- package/dist/cargo/actions/index.d.ts.map +1 -0
- package/dist/cargo/actions/index.js +526 -0
- package/dist/cargo/actions/index.js.map +1 -0
- package/dist/cargo/index.d.ts +77 -0
- package/dist/cargo/index.d.ts.map +1 -0
- package/dist/cargo/index.js +102 -0
- package/dist/cargo/index.js.map +1 -0
- package/dist/claim-stakes/index.d.ts +64 -0
- package/dist/claim-stakes/index.d.ts.map +1 -0
- package/dist/claim-stakes/index.js +97 -0
- package/dist/claim-stakes/index.js.map +1 -0
- package/dist/client/context.d.ts +21 -0
- package/dist/client/context.d.ts.map +1 -0
- package/dist/client/context.js +1374 -0
- package/dist/client/context.js.map +1 -0
- package/dist/client/contracts.d.ts +671 -0
- package/dist/client/contracts.d.ts.map +1 -0
- package/dist/client/contracts.js +2 -0
- package/dist/client/contracts.js.map +1 -0
- package/dist/client/deployments.d.ts +3 -0
- package/dist/client/deployments.d.ts.map +1 -0
- package/dist/client/deployments.js +2 -0
- package/dist/client/deployments.js.map +1 -0
- package/dist/client/errors.d.ts +227 -0
- package/dist/client/errors.d.ts.map +1 -0
- package/dist/client/errors.js +288 -0
- package/dist/client/errors.js.map +1 -0
- package/dist/client/index.d.ts +7 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +5 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/lifecycle.d.ts +4 -0
- package/dist/client/lifecycle.d.ts.map +1 -0
- package/dist/client/lifecycle.js +10 -0
- package/dist/client/lifecycle.js.map +1 -0
- package/dist/client/provider-errors.d.ts +9 -0
- package/dist/client/provider-errors.d.ts.map +1 -0
- package/dist/client/provider-errors.js +12 -0
- package/dist/client/provider-errors.js.map +1 -0
- package/dist/client/reconciliation.d.ts +10 -0
- package/dist/client/reconciliation.d.ts.map +1 -0
- package/dist/client/reconciliation.js +9 -0
- package/dist/client/reconciliation.js.map +1 -0
- package/dist/client/refs.d.ts +23 -0
- package/dist/client/refs.d.ts.map +1 -0
- package/dist/client/refs.js +12 -0
- package/dist/client/refs.js.map +1 -0
- package/dist/combat/index.d.ts +256 -0
- package/dist/combat/index.d.ts.map +1 -0
- package/dist/combat/index.js +222 -0
- package/dist/combat/index.js.map +1 -0
- package/dist/crafting/index.d.ts +308 -0
- package/dist/crafting/index.d.ts.map +1 -0
- package/dist/crafting/index.js +400 -0
- package/dist/crafting/index.js.map +1 -0
- package/dist/factions/index.d.ts +292 -0
- package/dist/factions/index.d.ts.map +1 -0
- package/dist/factions/index.js +334 -0
- package/dist/factions/index.js.map +1 -0
- package/dist/fleets/actions/index.d.ts +200 -0
- package/dist/fleets/actions/index.d.ts.map +1 -0
- package/dist/fleets/actions/index.js +854 -0
- package/dist/fleets/actions/index.js.map +1 -0
- package/dist/fleets/index.d.ts +100 -0
- package/dist/fleets/index.d.ts.map +1 -0
- package/dist/fleets/index.js +124 -0
- package/dist/fleets/index.js.map +1 -0
- package/dist/identity/index.d.ts +225 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/index.js +341 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/index.d.ts +401 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +519 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/c4/adapter.d.ts +6 -0
- package/dist/internal/c4/adapter.d.ts.map +1 -0
- package/dist/internal/c4/adapter.js +2 -0
- package/dist/internal/c4/adapter.js.map +1 -0
- package/dist/internal/c4/bindings.d.ts +4 -0
- package/dist/internal/c4/bindings.d.ts.map +1 -0
- package/dist/internal/c4/bindings.js +4 -0
- package/dist/internal/c4/bindings.js.map +1 -0
- package/dist/internal/c4/character-modifier.d.ts +5 -0
- package/dist/internal/c4/character-modifier.d.ts.map +1 -0
- package/dist/internal/c4/character-modifier.js +100 -0
- package/dist/internal/c4/character-modifier.js.map +1 -0
- package/dist/internal/c4/claim-stake.d.ts +140 -0
- package/dist/internal/c4/claim-stake.d.ts.map +1 -0
- package/dist/internal/c4/claim-stake.js +205 -0
- package/dist/internal/c4/claim-stake.js.map +1 -0
- package/dist/internal/c4/combat.d.ts +98 -0
- package/dist/internal/c4/combat.d.ts.map +1 -0
- package/dist/internal/c4/combat.js +232 -0
- package/dist/internal/c4/combat.js.map +1 -0
- package/dist/internal/c4/crafting.d.ts +170 -0
- package/dist/internal/c4/crafting.d.ts.map +1 -0
- package/dist/internal/c4/crafting.js +387 -0
- package/dist/internal/c4/crafting.js.map +1 -0
- package/dist/internal/c4/factions.d.ts +248 -0
- package/dist/internal/c4/factions.d.ts.map +1 -0
- package/dist/internal/c4/factions.js +589 -0
- package/dist/internal/c4/factions.js.map +1 -0
- package/dist/internal/c4/fleet-crew-binding.d.ts +12 -0
- package/dist/internal/c4/fleet-crew-binding.d.ts.map +1 -0
- package/dist/internal/c4/fleet-crew-binding.js +51 -0
- package/dist/internal/c4/fleet-crew-binding.js.map +1 -0
- package/dist/internal/c4/fleet.d.ts +310 -0
- package/dist/internal/c4/fleet.d.ts.map +1 -0
- package/dist/internal/c4/fleet.js +393 -0
- package/dist/internal/c4/fleet.js.map +1 -0
- package/dist/internal/c4/game.d.ts +192 -0
- package/dist/internal/c4/game.d.ts.map +1 -0
- package/dist/internal/c4/game.js +396 -0
- package/dist/internal/c4/game.js.map +1 -0
- package/dist/internal/c4/identity.d.ts +193 -0
- package/dist/internal/c4/identity.d.ts.map +1 -0
- package/dist/internal/c4/identity.js +180 -0
- package/dist/internal/c4/identity.js.map +1 -0
- package/dist/internal/c4/loot-layout.d.ts +20 -0
- package/dist/internal/c4/loot-layout.d.ts.map +1 -0
- package/dist/internal/c4/loot-layout.js +29 -0
- package/dist/internal/c4/loot-layout.js.map +1 -0
- package/dist/internal/c4/loyalty.d.ts +102 -0
- package/dist/internal/c4/loyalty.d.ts.map +1 -0
- package/dist/internal/c4/loyalty.js +318 -0
- package/dist/internal/c4/loyalty.js.map +1 -0
- package/dist/internal/c4/market.d.ts +112 -0
- package/dist/internal/c4/market.d.ts.map +1 -0
- package/dist/internal/c4/market.js +247 -0
- package/dist/internal/c4/market.js.map +1 -0
- package/dist/internal/c4/pda.d.ts +6 -0
- package/dist/internal/c4/pda.d.ts.map +1 -0
- package/dist/internal/c4/pda.js +45 -0
- package/dist/internal/c4/pda.js.map +1 -0
- package/dist/internal/c4/profile-faction.d.ts +14 -0
- package/dist/internal/c4/profile-faction.d.ts.map +1 -0
- package/dist/internal/c4/profile-faction.js +69 -0
- package/dist/internal/c4/profile-faction.js.map +1 -0
- package/dist/internal/c4/rewards.d.ts +135 -0
- package/dist/internal/c4/rewards.d.ts.map +1 -0
- package/dist/internal/c4/rewards.js +305 -0
- package/dist/internal/c4/rewards.js.map +1 -0
- package/dist/internal/c4/scanning.d.ts +85 -0
- package/dist/internal/c4/scanning.d.ts.map +1 -0
- package/dist/internal/c4/scanning.js +180 -0
- package/dist/internal/c4/scanning.js.map +1 -0
- package/dist/internal/c4/starbase.d.ts +186 -0
- package/dist/internal/c4/starbase.d.ts.map +1 -0
- package/dist/internal/c4/starbase.js +259 -0
- package/dist/internal/c4/starbase.js.map +1 -0
- package/dist/internal/c4/world.d.ts +294 -0
- package/dist/internal/c4/world.d.ts.map +1 -0
- package/dist/internal/c4/world.js +417 -0
- package/dist/internal/c4/world.js.map +1 -0
- package/dist/internal/cargo.d.ts +65 -0
- package/dist/internal/cargo.d.ts.map +1 -0
- package/dist/internal/cargo.js +46 -0
- package/dist/internal/cargo.js.map +1 -0
- package/dist/internal/claim-stake.d.ts +31 -0
- package/dist/internal/claim-stake.d.ts.map +1 -0
- package/dist/internal/claim-stake.js +20 -0
- package/dist/internal/claim-stake.js.map +1 -0
- package/dist/internal/fleet.d.ts +165 -0
- package/dist/internal/fleet.d.ts.map +1 -0
- package/dist/internal/fleet.js +179 -0
- package/dist/internal/fleet.js.map +1 -0
- package/dist/internal/game-context.d.ts +4 -0
- package/dist/internal/game-context.d.ts.map +1 -0
- package/dist/internal/game-context.js +9 -0
- package/dist/internal/game-context.js.map +1 -0
- package/dist/internal/immutable-tree.d.ts +5 -0
- package/dist/internal/immutable-tree.d.ts.map +1 -0
- package/dist/internal/immutable-tree.js +47 -0
- package/dist/internal/immutable-tree.js.map +1 -0
- package/dist/internal/json.d.ts +7 -0
- package/dist/internal/json.d.ts.map +1 -0
- package/dist/internal/json.js +33 -0
- package/dist/internal/json.js.map +1 -0
- package/dist/internal/planning/authorization-adapter.d.ts +63 -0
- package/dist/internal/planning/authorization-adapter.d.ts.map +1 -0
- package/dist/internal/planning/authorization-adapter.js +222 -0
- package/dist/internal/planning/authorization-adapter.js.map +1 -0
- package/dist/internal/read-meta.d.ts +84 -0
- package/dist/internal/read-meta.d.ts.map +1 -0
- package/dist/internal/read-meta.js +28 -0
- package/dist/internal/read-meta.js.map +1 -0
- package/dist/internal/resolved-snapshot.d.ts +3 -0
- package/dist/internal/resolved-snapshot.d.ts.map +1 -0
- package/dist/internal/resolved-snapshot.js +11 -0
- package/dist/internal/resolved-snapshot.js.map +1 -0
- package/dist/internal/zink/provider.d.ts +9 -0
- package/dist/internal/zink/provider.d.ts.map +1 -0
- package/dist/internal/zink/provider.js +213 -0
- package/dist/internal/zink/provider.js.map +1 -0
- package/dist/loyalty/index.d.ts +195 -0
- package/dist/loyalty/index.d.ts.map +1 -0
- package/dist/loyalty/index.js +289 -0
- package/dist/loyalty/index.js.map +1 -0
- package/dist/markets/index.d.ts +195 -0
- package/dist/markets/index.d.ts.map +1 -0
- package/dist/markets/index.js +232 -0
- package/dist/markets/index.js.map +1 -0
- package/dist/mining/index.d.ts +156 -0
- package/dist/mining/index.d.ts.map +1 -0
- package/dist/mining/index.js +236 -0
- package/dist/mining/index.js.map +1 -0
- package/dist/planning/assembly.d.ts +42 -0
- package/dist/planning/assembly.d.ts.map +1 -0
- package/dist/planning/assembly.js +141 -0
- package/dist/planning/assembly.js.map +1 -0
- package/dist/planning/composition.d.ts +4 -0
- package/dist/planning/composition.d.ts.map +1 -0
- package/dist/planning/composition.js +76 -0
- package/dist/planning/composition.js.map +1 -0
- package/dist/planning/execution.d.ts +93 -0
- package/dist/planning/execution.d.ts.map +1 -0
- package/dist/planning/execution.js +549 -0
- package/dist/planning/execution.js.map +1 -0
- package/dist/planning/index.d.ts +219 -0
- package/dist/planning/index.d.ts.map +1 -0
- package/dist/planning/index.js +375 -0
- package/dist/planning/index.js.map +1 -0
- package/dist/planning/plan-instances.d.ts +3 -0
- package/dist/planning/plan-instances.d.ts.map +1 -0
- package/dist/planning/plan-instances.js +8 -0
- package/dist/planning/plan-instances.js.map +1 -0
- package/dist/planning/plan-sequence-checkpoint.d.ts +154 -0
- package/dist/planning/plan-sequence-checkpoint.d.ts.map +1 -0
- package/dist/planning/plan-sequence-checkpoint.js +449 -0
- package/dist/planning/plan-sequence-checkpoint.js.map +1 -0
- package/dist/planning/plan-sequence-execution.d.ts +72 -0
- package/dist/planning/plan-sequence-execution.d.ts.map +1 -0
- package/dist/planning/plan-sequence-execution.js +410 -0
- package/dist/planning/plan-sequence-execution.js.map +1 -0
- package/dist/planning/plan-sequence.d.ts +244 -0
- package/dist/planning/plan-sequence.d.ts.map +1 -0
- package/dist/planning/plan-sequence.js +264 -0
- package/dist/planning/plan-sequence.js.map +1 -0
- package/dist/planning/simulation.d.ts +50 -0
- package/dist/planning/simulation.d.ts.map +1 -0
- package/dist/planning/simulation.js +69 -0
- package/dist/planning/simulation.js.map +1 -0
- package/dist/registry/combat.d.ts +5 -0
- package/dist/registry/combat.d.ts.map +1 -0
- package/dist/registry/combat.js +7 -0
- package/dist/registry/combat.js.map +1 -0
- package/dist/registry/index.d.ts +138 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +397 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/rewards/index.d.ts +202 -0
- package/dist/rewards/index.d.ts.map +1 -0
- package/dist/rewards/index.js +290 -0
- package/dist/rewards/index.js.map +1 -0
- package/dist/scanning/index.d.ts +185 -0
- package/dist/scanning/index.d.ts.map +1 -0
- package/dist/scanning/index.js +207 -0
- package/dist/scanning/index.js.map +1 -0
- package/dist/starbases/actions/index.d.ts +60 -0
- package/dist/starbases/actions/index.d.ts.map +1 -0
- package/dist/starbases/actions/index.js +245 -0
- package/dist/starbases/actions/index.js.map +1 -0
- package/dist/starbases/index.d.ts +165 -0
- package/dist/starbases/index.d.ts.map +1 -0
- package/dist/starbases/index.js +213 -0
- package/dist/starbases/index.js.map +1 -0
- package/dist/world/index.d.ts +180 -0
- package/dist/world/index.d.ts.map +1 -0
- package/dist/world/index.js +265 -0
- package/dist/world/index.js.map +1 -0
- package/package.json +140 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { type Address, type DiscoveryRequest, type EntityRef, type ReadOptions, type SageContext } from '../client/index.js';
|
|
2
|
+
import { type ScanFixedValueData, type ScanNoiseMapData } from '../internal/c4/scanning.js';
|
|
3
|
+
import { type CharacterXpCategoryData } from '../internal/c4/identity.js';
|
|
4
|
+
import { type CargoDefinitionSummary } from '../registry/index.js';
|
|
5
|
+
/** Fixed-point scanning value with exact raw storage.
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* const value: ScanFixedValue = { raw: 65_536n, value: 1 };
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
export type ScanFixedValue = ScanFixedValueData;
|
|
12
|
+
/** One translated noise-map row used by a ScanPattern.
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* declare const noise: ScanNoiseMap;
|
|
16
|
+
* console.log(noise.seedOffset, noise.weight.value);
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export type ScanNoiseMap = ScanNoiseMapData;
|
|
20
|
+
/** Options supported by targeted ScanPattern catalog discovery.
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* const options: ScanPatternDiscoveryOptions = { commitment: 'confirmed' };
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export type ScanPatternDiscoveryOptions = Omit<DiscoveryRequest, 'filters' | 'strategy'>;
|
|
27
|
+
/** One cargo-backed scan cost.
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* declare const cost: ScanPatternCost;
|
|
31
|
+
* console.log(cost.cargo.name, cost.multiplier.value);
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export interface ScanPatternCost {
|
|
35
|
+
readonly cargo: CargoDefinitionSummary;
|
|
36
|
+
readonly multiplier: ScanFixedValue;
|
|
37
|
+
}
|
|
38
|
+
/** One cargo-backed scan outcome and its research-tag requirements.
|
|
39
|
+
* @example
|
|
40
|
+
* ```ts
|
|
41
|
+
* declare const outcome: ScanPatternLootOutcome;
|
|
42
|
+
* console.log(outcome.output.name, outcome.researchRequirementTagIds);
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export interface ScanPatternLootOutcome {
|
|
46
|
+
readonly output: CargoDefinitionSummary;
|
|
47
|
+
readonly outputAmountRaw: bigint;
|
|
48
|
+
readonly threshold: ScanFixedValue;
|
|
49
|
+
readonly rollWeight: ScanFixedValue;
|
|
50
|
+
readonly xpValue: ScanFixedValue;
|
|
51
|
+
readonly researchRequirementTagIds: readonly number[];
|
|
52
|
+
}
|
|
53
|
+
/** Immutable, definition-resolved ScanPattern catalog entry.
|
|
54
|
+
* @example
|
|
55
|
+
* ```ts
|
|
56
|
+
* declare const pattern: ScanPatternSnapshot;
|
|
57
|
+
* console.log(pattern.name, pattern.loot.length);
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export interface ScanPatternSnapshot {
|
|
61
|
+
readonly kind: 'scanPattern';
|
|
62
|
+
readonly address: Address;
|
|
63
|
+
readonly version: number;
|
|
64
|
+
readonly bump: number;
|
|
65
|
+
readonly id: number;
|
|
66
|
+
readonly name: string;
|
|
67
|
+
readonly game: EntityRef<'game'>;
|
|
68
|
+
readonly cooldownMultiplier: ScanFixedValue;
|
|
69
|
+
readonly blankWeight: ScanFixedValue;
|
|
70
|
+
readonly blankXpValue: ScanFixedValue;
|
|
71
|
+
readonly status: 'draft' | 'active';
|
|
72
|
+
readonly costs: readonly ScanPatternCost[];
|
|
73
|
+
readonly loot: readonly ScanPatternLootOutcome[];
|
|
74
|
+
readonly noiseMaps: readonly ScanNoiseMap[];
|
|
75
|
+
toJSON(): unknown;
|
|
76
|
+
}
|
|
77
|
+
/** Focused read-only scanning projection of one Fleet.
|
|
78
|
+
* @example
|
|
79
|
+
* ```ts
|
|
80
|
+
* declare const state: FleetScanningStateSnapshot;
|
|
81
|
+
* console.log(state.stats.power, state.cooldownEndsAtUnixSeconds);
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
export interface FleetScanningStateSnapshot {
|
|
85
|
+
readonly kind: 'fleetScanningState';
|
|
86
|
+
readonly fleet: EntityRef<'fleet'>;
|
|
87
|
+
readonly ownerProfile: EntityRef<'profile'>;
|
|
88
|
+
readonly cooldownEndsAtUnixSeconds: bigint;
|
|
89
|
+
readonly stats: {
|
|
90
|
+
readonly power: number;
|
|
91
|
+
readonly bonus: number;
|
|
92
|
+
readonly cost: number;
|
|
93
|
+
readonly cooldownSeconds: number;
|
|
94
|
+
};
|
|
95
|
+
toJSON(): unknown;
|
|
96
|
+
}
|
|
97
|
+
/** Focused read-only scanning projection of one derived Character.
|
|
98
|
+
* @example
|
|
99
|
+
* ```ts
|
|
100
|
+
* declare const state: CharacterScanningStateSnapshot;
|
|
101
|
+
* console.log(state.dataRunnerXp.level, state.modifiers.power.value);
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
export interface CharacterScanningStateSnapshot {
|
|
105
|
+
readonly kind: 'characterScanningState';
|
|
106
|
+
readonly character: EntityRef<'character'>;
|
|
107
|
+
readonly profile: EntityRef<'profile'>;
|
|
108
|
+
readonly dataRunnerXp: CharacterXpCategoryData & {
|
|
109
|
+
readonly sequenceId: number;
|
|
110
|
+
};
|
|
111
|
+
readonly modifiers: {
|
|
112
|
+
readonly sequenceId: number;
|
|
113
|
+
readonly power: ScanFixedValue;
|
|
114
|
+
readonly cooldown: ScanFixedValue;
|
|
115
|
+
};
|
|
116
|
+
readonly researchTagIds: readonly number[];
|
|
117
|
+
toJSON(): unknown;
|
|
118
|
+
}
|
|
119
|
+
/** Pure Fleet cooldown state at one explicit Unix timestamp.
|
|
120
|
+
* @example
|
|
121
|
+
* ```ts
|
|
122
|
+
* declare const fleet: FleetScanningStateSnapshot;
|
|
123
|
+
* const state: ScanCooldownState = deriveScanCooldownState(
|
|
124
|
+
* fleet,
|
|
125
|
+
* 1_700_000_000n,
|
|
126
|
+
* );
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
export type ScanCooldownState = {
|
|
130
|
+
readonly kind: 'ready';
|
|
131
|
+
} | {
|
|
132
|
+
readonly kind: 'cooldown';
|
|
133
|
+
readonly remainingSeconds: bigint;
|
|
134
|
+
};
|
|
135
|
+
/** Derives and reads one required ScanPattern for the configured Game.
|
|
136
|
+
* @example
|
|
137
|
+
* ```ts
|
|
138
|
+
* declare const ctx: SageContext;
|
|
139
|
+
* const pattern = await getScanPattern(ctx, 2);
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
export declare function getScanPattern(context: SageContext, patternId: number, options?: ReadOptions): Promise<ScanPatternSnapshot>;
|
|
143
|
+
/** Derives and reads one optional ScanPattern for the configured Game.
|
|
144
|
+
* @example
|
|
145
|
+
* ```ts
|
|
146
|
+
* declare const ctx: SageContext;
|
|
147
|
+
* const pattern = await maybeGetScanPattern(ctx, 2);
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
export declare function maybeGetScanPattern(context: SageContext, patternId: number, options?: ReadOptions): Promise<ScanPatternSnapshot | undefined>;
|
|
151
|
+
/** Discovers the configured Game's ScanPattern catalog with targeted filters.
|
|
152
|
+
* @example
|
|
153
|
+
* ```ts
|
|
154
|
+
* declare const ctx: SageContext;
|
|
155
|
+
* const patterns = await getScanPatterns(ctx);
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
export declare function getScanPatterns(context: SageContext, options?: ScanPatternDiscoveryOptions): Promise<readonly ScanPatternSnapshot[]>;
|
|
159
|
+
/** Reads one Fleet and returns only its translated scanning state.
|
|
160
|
+
* @example
|
|
161
|
+
* ```ts
|
|
162
|
+
* declare const ctx: SageContext;
|
|
163
|
+
* declare const fleet: Address;
|
|
164
|
+
* const state = await getFleetScanningState(ctx, fleet);
|
|
165
|
+
* ```
|
|
166
|
+
*/
|
|
167
|
+
export declare function getFleetScanningState(context: SageContext, address: Address, options?: ReadOptions): Promise<FleetScanningStateSnapshot>;
|
|
168
|
+
/** Derives one Character from Profile and returns focused scanning progression.
|
|
169
|
+
* @example
|
|
170
|
+
* ```ts
|
|
171
|
+
* declare const ctx: SageContext;
|
|
172
|
+
* declare const profile: Address;
|
|
173
|
+
* const state = await getCharacterScanningState(ctx, profile);
|
|
174
|
+
* ```
|
|
175
|
+
*/
|
|
176
|
+
export declare function getCharacterScanningState(context: SageContext, profile: Address, options?: ReadOptions): Promise<CharacterScanningStateSnapshot>;
|
|
177
|
+
/** Derives whether a Fleet scan cooldown is ready at an explicit timestamp.
|
|
178
|
+
* @example
|
|
179
|
+
* ```ts
|
|
180
|
+
* declare const fleet: FleetScanningStateSnapshot;
|
|
181
|
+
* const state = deriveScanCooldownState(fleet, 1_700_000_000n);
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
export declare function deriveScanCooldownState(fleet: FleetScanningStateSnapshot, atUnixSeconds: bigint): ScanCooldownState;
|
|
185
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanning/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { AccountDecodeError, entityRef, } from '../client/index.js';
|
|
2
|
+
import { discoverScanPatternAccounts, deriveScanPatternAddress, scanPatternAccountDefinition, } from '../internal/c4/scanning.js';
|
|
3
|
+
import { assertCanonicalFleetAddress, fleetAccountDefinition, } from '../internal/c4/fleet.js';
|
|
4
|
+
import { characterAccountDefinition, findCharacterPda, } from '../internal/c4/identity.js';
|
|
5
|
+
import { requireGameAddress } from '../internal/game-context.js';
|
|
6
|
+
import { attachJsonSerialization } from '../internal/json.js';
|
|
7
|
+
import { attachReadMeta, readMeta } from '../internal/read-meta.js';
|
|
8
|
+
import { freezeResolvedSnapshot } from '../internal/resolved-snapshot.js';
|
|
9
|
+
import { resolveCargo, } from '../registry/index.js';
|
|
10
|
+
const PATTERN_SNAPSHOTS = new WeakMap();
|
|
11
|
+
const FLEET_SNAPSHOTS = new WeakMap();
|
|
12
|
+
const CHARACTER_SNAPSHOTS = new WeakMap();
|
|
13
|
+
function metadata(envelope, strategy = 'direct') {
|
|
14
|
+
return {
|
|
15
|
+
commitment: envelope.commitment,
|
|
16
|
+
slot: envelope.slot,
|
|
17
|
+
source: envelope.source,
|
|
18
|
+
strategy,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
async function createPatternSnapshot(context, envelope, strategy) {
|
|
22
|
+
const game = requireGameAddress(context);
|
|
23
|
+
if (envelope.data.game !== game) {
|
|
24
|
+
throw new AccountDecodeError('scanPattern', envelope.address, new RangeError('The ScanPattern belongs to a different Game.'), `ScanPattern ${envelope.address} belongs to Game ${envelope.data.game}, not configured Game ${game}. Verify the pattern id, address, and cluster before retrying.`);
|
|
25
|
+
}
|
|
26
|
+
return freezeResolvedSnapshot(attachReadMeta(attachJsonSerialization({
|
|
27
|
+
address: envelope.address,
|
|
28
|
+
blankWeight: envelope.data.blankWeight,
|
|
29
|
+
blankXpValue: envelope.data.blankXpValue,
|
|
30
|
+
bump: envelope.data.bump,
|
|
31
|
+
cooldownMultiplier: envelope.data.cooldownMultiplier,
|
|
32
|
+
costs: await Promise.all(envelope.data.costs.map(async (cost) => ({
|
|
33
|
+
cargo: await resolveCargo(context, cost.cargoId),
|
|
34
|
+
multiplier: cost.multiplier,
|
|
35
|
+
}))),
|
|
36
|
+
game: entityRef('game', envelope.data.game),
|
|
37
|
+
id: envelope.data.id,
|
|
38
|
+
kind: 'scanPattern',
|
|
39
|
+
loot: await Promise.all(envelope.data.loot.map(async (outcome) => ({
|
|
40
|
+
output: await resolveCargo(context, outcome.outputCargoId),
|
|
41
|
+
outputAmountRaw: outcome.outputAmountRaw,
|
|
42
|
+
researchRequirementTagIds: outcome.researchRequirementTagIds,
|
|
43
|
+
rollWeight: outcome.rollWeight,
|
|
44
|
+
threshold: outcome.threshold,
|
|
45
|
+
xpValue: outcome.xpValue,
|
|
46
|
+
}))),
|
|
47
|
+
name: envelope.data.name,
|
|
48
|
+
noiseMaps: envelope.data.noiseMaps,
|
|
49
|
+
status: envelope.data.status,
|
|
50
|
+
version: envelope.data.version,
|
|
51
|
+
}), metadata(envelope, strategy)));
|
|
52
|
+
}
|
|
53
|
+
function patternSnapshot(context, envelope, strategy) {
|
|
54
|
+
let cache = PATTERN_SNAPSHOTS.get(envelope);
|
|
55
|
+
if (cache === undefined) {
|
|
56
|
+
cache = new Map();
|
|
57
|
+
PATTERN_SNAPSHOTS.set(envelope, cache);
|
|
58
|
+
}
|
|
59
|
+
const existing = cache.get(strategy);
|
|
60
|
+
if (existing !== undefined)
|
|
61
|
+
return existing;
|
|
62
|
+
const pending = createPatternSnapshot(context, envelope, strategy);
|
|
63
|
+
cache.set(strategy, pending);
|
|
64
|
+
void pending.catch(() => cache.delete(strategy));
|
|
65
|
+
return pending;
|
|
66
|
+
}
|
|
67
|
+
/** Derives and reads one required ScanPattern for the configured Game.
|
|
68
|
+
* @example
|
|
69
|
+
* ```ts
|
|
70
|
+
* declare const ctx: SageContext;
|
|
71
|
+
* const pattern = await getScanPattern(ctx, 2);
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export async function getScanPattern(context, patternId, options) {
|
|
75
|
+
const game = requireGameAddress(context);
|
|
76
|
+
const address = await deriveScanPatternAddress(game, patternId);
|
|
77
|
+
const envelope = await context.data.read(scanPatternAccountDefinition, address, options);
|
|
78
|
+
if (envelope.data.id !== patternId) {
|
|
79
|
+
throw new AccountDecodeError('scanPattern', address, new RangeError('The ScanPattern id contradicted its derived seeds.'), `ScanPattern ${address} stores id ${String(envelope.data.id)}, not derived id ${String(patternId)}. Verify the configured cluster and pinned PDA recipe before retrying.`);
|
|
80
|
+
}
|
|
81
|
+
return patternSnapshot(context, envelope, 'derived');
|
|
82
|
+
}
|
|
83
|
+
/** Derives and reads one optional ScanPattern for the configured Game.
|
|
84
|
+
* @example
|
|
85
|
+
* ```ts
|
|
86
|
+
* declare const ctx: SageContext;
|
|
87
|
+
* const pattern = await maybeGetScanPattern(ctx, 2);
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
export async function maybeGetScanPattern(context, patternId, options) {
|
|
91
|
+
const game = requireGameAddress(context);
|
|
92
|
+
const address = await deriveScanPatternAddress(game, patternId);
|
|
93
|
+
const [envelope] = await context.data.readMany(scanPatternAccountDefinition, [address], options);
|
|
94
|
+
if (envelope === undefined)
|
|
95
|
+
return undefined;
|
|
96
|
+
if (envelope.data.id !== patternId) {
|
|
97
|
+
throw new AccountDecodeError('scanPattern', address, new RangeError('The ScanPattern id contradicted its derived seeds.'));
|
|
98
|
+
}
|
|
99
|
+
return patternSnapshot(context, envelope, 'derived');
|
|
100
|
+
}
|
|
101
|
+
/** Discovers the configured Game's ScanPattern catalog with targeted filters.
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* declare const ctx: SageContext;
|
|
105
|
+
* const patterns = await getScanPatterns(ctx);
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
export async function getScanPatterns(context, options) {
|
|
109
|
+
requireGameAddress(context);
|
|
110
|
+
const envelopes = await discoverScanPatternAccounts(context, options);
|
|
111
|
+
const snapshots = await Promise.all(envelopes.map((envelope) => patternSnapshot(context, envelope, 'targeted-program-accounts')));
|
|
112
|
+
return Object.freeze(attachReadMeta(snapshots, readMeta(envelopes)));
|
|
113
|
+
}
|
|
114
|
+
/** Reads one Fleet and returns only its translated scanning state.
|
|
115
|
+
* @example
|
|
116
|
+
* ```ts
|
|
117
|
+
* declare const ctx: SageContext;
|
|
118
|
+
* declare const fleet: Address;
|
|
119
|
+
* const state = await getFleetScanningState(ctx, fleet);
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
export async function getFleetScanningState(context, address, options) {
|
|
123
|
+
const game = requireGameAddress(context);
|
|
124
|
+
const envelope = await context.data.read(fleetAccountDefinition, address, options);
|
|
125
|
+
if (envelope.data.game !== game) {
|
|
126
|
+
throw new AccountDecodeError('fleet', address, new RangeError('The Fleet belongs to a different Game.'), `Fleet ${address} belongs to Game ${envelope.data.game}, not configured Game ${game}. Verify the Fleet address and cluster before retrying.`);
|
|
127
|
+
}
|
|
128
|
+
await assertCanonicalFleetAddress(envelope);
|
|
129
|
+
const existing = FLEET_SNAPSHOTS.get(envelope);
|
|
130
|
+
if (existing !== undefined)
|
|
131
|
+
return existing;
|
|
132
|
+
const misc = envelope.data.stats.misc;
|
|
133
|
+
const snapshot = freezeResolvedSnapshot(attachReadMeta(attachJsonSerialization({
|
|
134
|
+
cooldownEndsAtUnixSeconds: envelope.data.scanCooldownExpiresAt,
|
|
135
|
+
fleet: entityRef('fleet', envelope.address),
|
|
136
|
+
kind: 'fleetScanningState',
|
|
137
|
+
ownerProfile: entityRef('profile', envelope.data.ownerProfile),
|
|
138
|
+
stats: {
|
|
139
|
+
bonus: misc.scanBonus,
|
|
140
|
+
cooldownSeconds: misc.scanCoolDownSeconds,
|
|
141
|
+
cost: misc.scanCost,
|
|
142
|
+
power: misc.scanPower,
|
|
143
|
+
},
|
|
144
|
+
}), metadata(envelope)));
|
|
145
|
+
FLEET_SNAPSHOTS.set(envelope, snapshot);
|
|
146
|
+
return snapshot;
|
|
147
|
+
}
|
|
148
|
+
/** Derives one Character from Profile and returns focused scanning progression.
|
|
149
|
+
* @example
|
|
150
|
+
* ```ts
|
|
151
|
+
* declare const ctx: SageContext;
|
|
152
|
+
* declare const profile: Address;
|
|
153
|
+
* const state = await getCharacterScanningState(ctx, profile);
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
export async function getCharacterScanningState(context, profile, options) {
|
|
157
|
+
const game = requireGameAddress(context);
|
|
158
|
+
const address = await findCharacterPda(profile, game);
|
|
159
|
+
const envelope = await context.data.read(characterAccountDefinition, address, options);
|
|
160
|
+
if (envelope.data.game !== game || envelope.data.playerProfile !== profile) {
|
|
161
|
+
throw new AccountDecodeError('character', address, new RangeError('The Character contradicted its derived Game/Profile.'), `Character ${address} does not match Profile ${profile} and configured Game ${game}. Verify the Profile address and cluster before retrying.`);
|
|
162
|
+
}
|
|
163
|
+
const existing = CHARACTER_SNAPSHOTS.get(envelope);
|
|
164
|
+
if (existing !== undefined)
|
|
165
|
+
return existing;
|
|
166
|
+
const modifiers = envelope.data.modifiers;
|
|
167
|
+
const snapshot = freezeResolvedSnapshot(attachReadMeta(attachJsonSerialization({
|
|
168
|
+
character: entityRef('character', envelope.address),
|
|
169
|
+
dataRunnerXp: {
|
|
170
|
+
...envelope.data.xp.dataRunner,
|
|
171
|
+
sequenceId: envelope.data.xp.seqId,
|
|
172
|
+
},
|
|
173
|
+
kind: 'characterScanningState',
|
|
174
|
+
modifiers: {
|
|
175
|
+
cooldown: {
|
|
176
|
+
raw: modifiers.values.scanCoolDownModifierRaw,
|
|
177
|
+
value: modifiers.values.scanCoolDownModifier,
|
|
178
|
+
},
|
|
179
|
+
power: {
|
|
180
|
+
raw: modifiers.values.scanPowerModifierRaw,
|
|
181
|
+
value: modifiers.values.scanPowerModifier,
|
|
182
|
+
},
|
|
183
|
+
sequenceId: modifiers.seqId,
|
|
184
|
+
},
|
|
185
|
+
profile: entityRef('profile', profile),
|
|
186
|
+
researchTagIds: modifiers.values.researchTags,
|
|
187
|
+
}), metadata(envelope, 'derived')));
|
|
188
|
+
CHARACTER_SNAPSHOTS.set(envelope, snapshot);
|
|
189
|
+
return snapshot;
|
|
190
|
+
}
|
|
191
|
+
/** Derives whether a Fleet scan cooldown is ready at an explicit timestamp.
|
|
192
|
+
* @example
|
|
193
|
+
* ```ts
|
|
194
|
+
* declare const fleet: FleetScanningStateSnapshot;
|
|
195
|
+
* const state = deriveScanCooldownState(fleet, 1_700_000_000n);
|
|
196
|
+
* ```
|
|
197
|
+
*/
|
|
198
|
+
export function deriveScanCooldownState(fleet, atUnixSeconds) {
|
|
199
|
+
if (atUnixSeconds >= fleet.cooldownEndsAtUnixSeconds) {
|
|
200
|
+
return { kind: 'ready' };
|
|
201
|
+
}
|
|
202
|
+
return {
|
|
203
|
+
kind: 'cooldown',
|
|
204
|
+
remainingSeconds: fleet.cooldownEndsAtUnixSeconds - atUnixSeconds,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanning/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { type Address } from '@solana/kit';
|
|
2
|
+
import type { SageContext } from '../../client/contracts.js';
|
|
3
|
+
import type { EntityRef } from '../../client/refs.js';
|
|
4
|
+
import { type WorldStarbaseData } from '../../internal/c4/world.js';
|
|
5
|
+
import { type Plan } from '../../planning/index.js';
|
|
6
|
+
interface CharacterSnapshot {
|
|
7
|
+
readonly kind: 'character';
|
|
8
|
+
readonly address: Address;
|
|
9
|
+
readonly game: Address;
|
|
10
|
+
readonly profile: EntityRef<'profile'>;
|
|
11
|
+
}
|
|
12
|
+
interface StarSystemSnapshot {
|
|
13
|
+
readonly kind: 'starSystem';
|
|
14
|
+
readonly address: Address;
|
|
15
|
+
readonly game: Address;
|
|
16
|
+
readonly systemId: number;
|
|
17
|
+
readonly name: string;
|
|
18
|
+
readonly starbase?: WorldStarbaseData;
|
|
19
|
+
}
|
|
20
|
+
/** Address-only StarbasePlayer registration input.
|
|
21
|
+
*
|
|
22
|
+
* The funder is the sole required signer and pays account rent. Reusing the
|
|
23
|
+
* later assembly fee payer is convenient, but the planner does not require the
|
|
24
|
+
* two addresses to match.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* declare const funder: Address;
|
|
29
|
+
* const options: PlanRegisterStarbasePlayerOptions = { funder };
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export interface PlanRegisterStarbasePlayerOptions {
|
|
33
|
+
readonly funder: Address;
|
|
34
|
+
}
|
|
35
|
+
/** Plans one StarbasePlayer registration without signing, assembly, or writes.
|
|
36
|
+
*
|
|
37
|
+
* The Character and Star System must already be loaded public snapshots. The
|
|
38
|
+
* planner derives and directly validates every plumbing account, requires the
|
|
39
|
+
* current fail-closed Starbase FactionOwnership sidecar, and returns a Plan only
|
|
40
|
+
* when the canonical StarbasePlayer address is absent. Optional faction
|
|
41
|
+
* expansion accounts use the generated omitted-account convention.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* declare const ctx: SageContext;
|
|
46
|
+
* declare const character: CharacterSnapshot;
|
|
47
|
+
* declare const system: StarSystemSnapshot;
|
|
48
|
+
* declare const funder: Address;
|
|
49
|
+
* const plan = await planRegisterStarbasePlayer(
|
|
50
|
+
* ctx,
|
|
51
|
+
* character,
|
|
52
|
+
* system,
|
|
53
|
+
* { funder },
|
|
54
|
+
* );
|
|
55
|
+
* console.log(plan.describe());
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare function planRegisterStarbasePlayer(ctx: SageContext, character: CharacterSnapshot, system: StarSystemSnapshot, input: PlanRegisterStarbasePlayerOptions): Promise<Plan>;
|
|
59
|
+
export {};
|
|
60
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/starbases/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAIzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAoBtD,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAEL,KAAK,IAAI,EAEV,MAAM,yBAAyB,CAAC;AAEjC,UAAU,iBAAiB;IACzB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACxC;AAED,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAuGD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,iCAAiC,GACvC,OAAO,CAAC,IAAI,CAAC,CAiQf"}
|