dredless 0.2.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 (80) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +48 -0
  3. package/docs/API_REFERENCE.md +2481 -0
  4. package/docs/BROWSER_API.md +98 -0
  5. package/docs/NODE_API.md +359 -0
  6. package/package.json +173 -0
  7. package/src/browser.d.ts +212 -0
  8. package/src/browser.js +133 -0
  9. package/src/client/core.js +1202 -0
  10. package/src/client/domains/index.js +1818 -0
  11. package/src/client/index.d.ts +2 -0
  12. package/src/client/index.js +1 -0
  13. package/src/compression/lz4.d.ts +1 -0
  14. package/src/compression/lz4.js +112 -0
  15. package/src/constants.js +74 -0
  16. package/src/crypto/chacha-native.d.ts +9 -0
  17. package/src/crypto/chacha-native.js +48 -0
  18. package/src/crypto/chacha.d.ts +25 -0
  19. package/src/crypto/chacha.js +274 -0
  20. package/src/data/item-schema.js +2235 -0
  21. package/src/data/official-client-data.js +156 -0
  22. package/src/events.js +39 -0
  23. package/src/index.d.ts +2277 -0
  24. package/src/index.js +125 -0
  25. package/src/network/browser-session.js +291 -0
  26. package/src/network/connection.d.ts +1 -0
  27. package/src/network/connection.js +31 -0
  28. package/src/network/cookies.js +85 -0
  29. package/src/network/http.js +34 -0
  30. package/src/network/index.d.ts +4 -0
  31. package/src/network/index.js +4 -0
  32. package/src/network/servers.d.ts +7 -0
  33. package/src/network/servers.js +133 -0
  34. package/src/network/session.d.ts +7 -0
  35. package/src/network/session.js +320 -0
  36. package/src/network/ships.d.ts +12 -0
  37. package/src/network/ships.js +73 -0
  38. package/src/node.d.ts +2 -0
  39. package/src/node.js +8 -0
  40. package/src/protocol/codec/binary.d.ts +3 -0
  41. package/src/protocol/codec/binary.js +52 -0
  42. package/src/protocol/codec/msgpack.d.ts +3 -0
  43. package/src/protocol/codec/msgpack.js +555 -0
  44. package/src/protocol/inbound/frame.d.ts +1 -0
  45. package/src/protocol/inbound/frame.js +8 -0
  46. package/src/protocol/inbound/world-payload.d.ts +3 -0
  47. package/src/protocol/inbound/world-payload.js +21 -0
  48. package/src/protocol/index.d.ts +11 -0
  49. package/src/protocol/index.js +19 -0
  50. package/src/protocol/outbound/blueprint.d.ts +22 -0
  51. package/src/protocol/outbound/blueprint.js +36 -0
  52. package/src/protocol/outbound/commands.d.ts +3 -0
  53. package/src/protocol/outbound/commands.js +149 -0
  54. package/src/protocol/outbound/comms.d.ts +28 -0
  55. package/src/protocol/outbound/comms.js +40 -0
  56. package/src/protocol/outbound/inventory.d.ts +64 -0
  57. package/src/protocol/outbound/inventory.js +147 -0
  58. package/src/protocol/outbound/ship-management.d.ts +84 -0
  59. package/src/protocol/outbound/ship-management.js +221 -0
  60. package/src/protocol/outbound/sign.d.ts +18 -0
  61. package/src/protocol/outbound/sign.js +45 -0
  62. package/src/protocol/outbound/ui-config.d.ts +157 -0
  63. package/src/protocol/outbound/ui-config.js +578 -0
  64. package/src/runtime.js +36 -0
  65. package/src/state/generator-maze.d.ts +32 -0
  66. package/src/state/generator-maze.js +370 -0
  67. package/src/state/index.d.ts +3 -0
  68. package/src/state/index.js +3 -0
  69. package/src/state/items.js +20 -0
  70. package/src/state/model/decoder.js +1554 -0
  71. package/src/state/model/index.d.ts +33 -0
  72. package/src/state/model/index.js +2 -0
  73. package/src/state/model/loader-config.js +1020 -0
  74. package/src/state/model/reader.js +69 -0
  75. package/src/state/model/state.js +1257 -0
  76. package/src/state/overworld.js +72 -0
  77. package/src/state/tilesets.js +53 -0
  78. package/src/state/world/index.d.ts +29 -0
  79. package/src/state/world/index.js +180 -0
  80. package/src/state/world/state.js +297 -0
@@ -0,0 +1,212 @@
1
+ export {
2
+ Connection,
3
+ DredlessClient,
4
+ WrenchMode,
5
+ TurretMode,
6
+ WorldStore,
7
+ WorldState,
8
+ ModelState,
9
+ FabricatorType,
10
+ decodeModelData,
11
+ generateGeneratorMaze,
12
+ solveGeneratorMazeSeed,
13
+ maybeSolveGeneratorMazeSeed,
14
+ buildBlueprintPlacementMessage,
15
+ decodeMsgpack,
16
+ encodeMsgpack,
17
+ buildCommsMessage,
18
+ flattenRichText,
19
+ normalizeCommsEvent,
20
+ buildSignedCommandPacket,
21
+ buildEquipItemCommand,
22
+ buildInventoryDragCommand,
23
+ buildUnequipItemCommand,
24
+ equipmentSlotName,
25
+ normalizeEquipmentSlot,
26
+ normalizeInventoryEvent,
27
+ EquipmentSlot,
28
+ buildBanPlayerMessage,
29
+ buildDemoteSelfMessage,
30
+ buildInviteResetMessage,
31
+ buildKickPlayerMessage,
32
+ buildPlayerListMessage,
33
+ buildShipManagementMessage,
34
+ buildSetPlayerRankMessage,
35
+ buildShipPrivacyMessage,
36
+ buildStarterRecoveryMessage,
37
+ normalizeCaptainSubrank,
38
+ normalizeShipPlayerList,
39
+ normalizePlayerRank,
40
+ normalizePrivacy,
41
+ normalizeShipConfig,
42
+ SignDisplayMode,
43
+ buildSignTextMessage,
44
+ normalizeSignDisplayMode,
45
+ signDisplayModeName,
46
+ buildCargoEjectorClipboardDirectionData,
47
+ buildCargoEjectorCopyConfigData,
48
+ buildCargoEjectorDirectionData,
49
+ buildCargoEjectorPasteConfigData,
50
+ buildCargoHatchCopyConfigData,
51
+ buildCargoHatchFilterConfigData,
52
+ buildCargoHatchFilterItemsData,
53
+ buildCargoHatchFullConfigData,
54
+ buildClipboardConfigData,
55
+ buildClipboardFixedAngleData,
56
+ buildExpandoClipboardAngleData,
57
+ buildGeneratorClipboardDirectionData,
58
+ buildGeneratorMazePuzzleData,
59
+ buildLoaderClipboardConfigData,
60
+ buildLoaderConfigData,
61
+ buildLoaderCopyConfigData,
62
+ buildLoaderFilterConfigData,
63
+ buildLoaderFilterItemsData,
64
+ buildLoaderFullConfigData,
65
+ buildNavigationUnitClipboardConfigData,
66
+ buildNavigationUnitConfigData,
67
+ buildNavigationUnitPasteConfigData,
68
+ buildPusherConfigData,
69
+ buildPusherFilterItemsData,
70
+ PusherMode,
71
+ LoaderPosition,
72
+ LoaderFilterMode,
73
+ FixedAngleDirection,
74
+ LoaderPriority,
75
+ decryptPayload,
76
+ decompressLz4Frame,
77
+ fetchNoticeVersion,
78
+ fetchGameVersion,
79
+ fetchServers
80
+ } from "./index.js";
81
+
82
+ export type {
83
+ Server,
84
+ Ship,
85
+ ShipList,
86
+ ShipRef,
87
+ ShipSpec,
88
+ ServerRef,
89
+ SessionSnapshot,
90
+ Account,
91
+ ConnectionSnapshot,
92
+ BlueprintPlacement,
93
+ BlueprintPlacementMessage,
94
+ Command,
95
+ DredlessClientSnapshot,
96
+ WorldSnapshot,
97
+ EntitySummary,
98
+ EntityDebugSummary,
99
+ InventorySnapshot,
100
+ ReadWorldScope
101
+ } from "./index.js";
102
+
103
+ import type {Connection, DredlessClient, Server, ServerRef, SessionSnapshot, Ship, ShipList, ShipRef} from "./index.js";
104
+
105
+
106
+ export class BrowserSession {
107
+ constructor(baseUrl?: string);
108
+
109
+ baseUrl: string;
110
+ gameVersion: string | null;
111
+ ambientAuth: true;
112
+ account: unknown | null;
113
+ geoServer: number | null;
114
+ upgraded: boolean;
115
+ isRegistered: boolean;
116
+ showAds: boolean;
117
+ forceTutorial: boolean;
118
+ ban: unknown;
119
+
120
+ get gameSession(): string;
121
+
122
+ get gameToken(): string;
123
+
124
+ get anonKey(): string;
125
+
126
+ get noticeVersion(): number | string | null;
127
+ set noticeVersion(value: number | string | null);
128
+
129
+ request(path: string, init?: RequestInit & { body?: BodyInit | Record<string, unknown> | null }): Promise<Response>;
130
+
131
+ readAnonKey(): Promise<string>;
132
+
133
+ fetchAnonKey(noticeVersion?: number | null): Promise<string>;
134
+
135
+ fetchAccountStatus(): Promise<unknown>;
136
+
137
+ fetchShips(server: ServerRef): Promise<Ship[]>;
138
+
139
+ fetchShipList(server: ServerRef): Promise<ShipList>;
140
+
141
+ joinShipConnection(server: ServerRef, ship?: ShipRef): Promise<Connection>;
142
+
143
+ startShipConnection(server: ServerRef, ship?: ShipRef): Promise<Connection>;
144
+
145
+ startNewShipConnection(server: ServerRef, name?: string, color?: string): Promise<Connection>;
146
+
147
+ joinInviteConnection(server: ServerRef, code: string): Promise<Connection>;
148
+
149
+ joinShip(server: ServerRef, ship?: ShipRef): Promise<DredlessClient>;
150
+
151
+ startShip(server: ServerRef, ship?: ShipRef): Promise<DredlessClient>;
152
+
153
+ startNewShip(server: ServerRef, name?: string, color?: string): Promise<DredlessClient>;
154
+
155
+ joinInvite(server: ServerRef, code: string): Promise<DredlessClient>;
156
+
157
+ toJSON(): SessionSnapshot & { ambientAuth: true };
158
+ }
159
+
160
+ export function browserSession(baseUrl?: string): BrowserSession;
161
+
162
+ export function createBrowserSession(baseUrl?: string): BrowserSession;
163
+
164
+ export function createSession(noticeVersion?: number | null, baseUrl?: string): Promise<BrowserSession>;
165
+
166
+ export function createAnonSession(anonKey?: string | null, noticeVersion?: number | null, baseUrl?: string): Promise<BrowserSession>;
167
+
168
+ export function createAnonToken(noticeVersion?: number | null, baseUrl?: string): Promise<string>;
169
+
170
+ export function fetchAnonKey(noticeVersion?: number | null, baseUrl?: string): Promise<string>;
171
+
172
+ export function setBrowserSession(session?: BrowserSession | null): BrowserSession | null;
173
+
174
+ export function fetchAccountStatus(session?: BrowserSession | null): Promise<unknown>;
175
+
176
+ export function fetchShips(server: ServerRef, session?: BrowserSession | null): Promise<Ship[]>;
177
+
178
+ export function fetchShipList(server: ServerRef, session?: BrowserSession | null): Promise<ShipList>;
179
+
180
+ export function joinShip(server: ServerRef, ship?: ShipRef, session?: BrowserSession | null): Promise<DredlessClient>;
181
+
182
+ export function startShip(server: ServerRef, ship?: ShipRef, session?: BrowserSession | null): Promise<DredlessClient>;
183
+
184
+ export function startNewShip(server: ServerRef, name?: string, color?: string, session?: BrowserSession | null): Promise<DredlessClient>;
185
+
186
+ export function joinInvite(server: ServerRef, code: string, session?: BrowserSession | null): Promise<DredlessClient>;
187
+
188
+ export interface DredlessBrowserNamespace {
189
+ BrowserSession: typeof BrowserSession;
190
+ Connection: typeof import("./index.js").Connection;
191
+ DredlessClient: typeof import("./index.js").DredlessClient;
192
+ browserSession: typeof browserSession;
193
+ createBrowserSession: typeof createBrowserSession;
194
+ createSession: typeof createSession;
195
+ createAnonSession: typeof createAnonSession;
196
+ createAnonToken: typeof createAnonToken;
197
+ fetchAnonKey: typeof fetchAnonKey;
198
+ setBrowserSession: typeof setBrowserSession;
199
+ fetchAccountStatus: typeof fetchAccountStatus;
200
+ fetchNoticeVersion: typeof import("./index.js").fetchNoticeVersion;
201
+ fetchGameVersion: typeof import("./index.js").fetchGameVersion;
202
+ fetchServers: typeof import("./index.js").fetchServers;
203
+ fetchShips: typeof fetchShips;
204
+ fetchShipList: typeof fetchShipList;
205
+ joinShip: typeof joinShip;
206
+ startShip: typeof startShip;
207
+ startNewShip: typeof startNewShip;
208
+ joinInvite: typeof joinInvite;
209
+ }
210
+
211
+ export const DredlessBrowser: DredlessBrowserNamespace;
212
+ export default DredlessBrowser;
package/src/browser.js ADDED
@@ -0,0 +1,133 @@
1
+ export {Connection} from "./network/connection.js";
2
+ export {DredlessClient, WrenchMode, TurretMode} from "./client/index.js";
3
+ export {WorldStore, WorldState} from "./state/world/index.js";
4
+ export {FabricatorType, ModelState, decodeModelData} from "./state/model/index.js";
5
+ export {generateGeneratorMaze, solveGeneratorMazeSeed, maybeSolveGeneratorMazeSeed} from "./state/generator-maze.js";
6
+ export {buildBlueprintPlacementMessage} from "./protocol/outbound/blueprint.js";
7
+ export {decodeMsgpack, encodeMsgpack} from "./protocol/codec/msgpack.js";
8
+ export {buildCommsMessage, flattenRichText, normalizeCommsEvent} from "./protocol/outbound/comms.js";
9
+ export {buildSignedCommandPacket} from "./protocol/outbound/commands.js";
10
+ export {
11
+ buildEquipItemCommand,
12
+ buildInventoryDragCommand,
13
+ buildUnequipItemCommand,
14
+ equipmentSlotName,
15
+ normalizeEquipmentSlot,
16
+ normalizeInventoryEvent,
17
+ EquipmentSlot
18
+ } from "./protocol/outbound/inventory.js";
19
+ export {
20
+ buildBanPlayerMessage,
21
+ buildDemoteSelfMessage,
22
+ buildInviteResetMessage,
23
+ buildKickPlayerMessage,
24
+ buildPlayerListMessage,
25
+ buildShipManagementMessage,
26
+ buildSetPlayerRankMessage,
27
+ buildShipPrivacyMessage,
28
+ buildStarterRecoveryMessage,
29
+ normalizeCaptainSubrank,
30
+ normalizeShipPlayerList,
31
+ normalizePlayerRank,
32
+ normalizePrivacy,
33
+ normalizeShipConfig
34
+ } from "./protocol/outbound/ship-management.js";
35
+ export {SignDisplayMode, buildSignTextMessage, normalizeSignDisplayMode, signDisplayModeName} from "./protocol/outbound/sign.js";
36
+ export {
37
+ buildCargoEjectorClipboardDirectionData,
38
+ buildCargoEjectorCopyConfigData,
39
+ buildCargoEjectorDirectionData,
40
+ buildCargoEjectorPasteConfigData,
41
+ buildCargoHatchCopyConfigData,
42
+ buildCargoHatchFilterConfigData,
43
+ buildCargoHatchFilterItemsData,
44
+ buildCargoHatchFullConfigData,
45
+ buildClipboardConfigData,
46
+ buildClipboardFixedAngleData,
47
+ buildExpandoClipboardAngleData,
48
+ buildGeneratorClipboardDirectionData,
49
+ buildGeneratorMazePuzzleData,
50
+ buildLoaderClipboardConfigData,
51
+ buildLoaderConfigData,
52
+ buildLoaderCopyConfigData,
53
+ buildLoaderFilterConfigData,
54
+ buildLoaderFilterItemsData,
55
+ buildLoaderFullConfigData,
56
+ buildNavigationUnitClipboardConfigData,
57
+ buildNavigationUnitConfigData,
58
+ buildNavigationUnitPasteConfigData,
59
+ buildPusherConfigData,
60
+ buildPusherFilterItemsData,
61
+ PusherMode,
62
+ LoaderPosition,
63
+ LoaderFilterMode,
64
+ FixedAngleDirection,
65
+ LoaderPriority
66
+ } from "./protocol/outbound/ui-config.js";
67
+ export {decryptPayload} from "./crypto/chacha.js";
68
+ export {decompressLz4Frame} from "./compression/lz4.js";
69
+ export {fetchNoticeVersion, fetchGameVersion, fetchServers} from "./network/servers.js";
70
+ export {fetchShips as fetchShipsWithSession, fetchShipList as fetchShipListWithSession} from "./network/ships.js";
71
+ export {
72
+ BrowserSession,
73
+ browserSession,
74
+ createBrowserSession,
75
+ createSession,
76
+ createAnonSession,
77
+ createAnonToken,
78
+ fetchAnonKey,
79
+ setBrowserSession,
80
+ fetchAccountStatus,
81
+ fetchShips,
82
+ fetchShipListForBrowser as fetchShipList,
83
+ joinShip,
84
+ startShip,
85
+ startNewShip,
86
+ joinInvite
87
+ } from "./network/browser-session.js";
88
+
89
+ import {Connection} from "./network/connection.js";
90
+ import {DredlessClient} from "./client/index.js";
91
+ import {fetchGameVersion, fetchNoticeVersion, fetchServers} from "./network/servers.js";
92
+ import {
93
+ BrowserSession,
94
+ browserSession,
95
+ createAnonSession,
96
+ createAnonToken,
97
+ createBrowserSession,
98
+ createSession,
99
+ fetchAccountStatus,
100
+ fetchAnonKey,
101
+ fetchShipListForBrowser,
102
+ fetchShips,
103
+ joinInvite,
104
+ joinShip,
105
+ setBrowserSession,
106
+ startNewShip,
107
+ startShip
108
+ } from "./network/browser-session.js";
109
+
110
+ export const DredlessBrowser = {
111
+ BrowserSession,
112
+ Connection,
113
+ DredlessClient,
114
+ browserSession,
115
+ createBrowserSession,
116
+ createSession,
117
+ createAnonSession,
118
+ createAnonToken,
119
+ fetchAnonKey,
120
+ setBrowserSession,
121
+ fetchAccountStatus,
122
+ fetchNoticeVersion,
123
+ fetchGameVersion,
124
+ fetchServers,
125
+ fetchShips,
126
+ fetchShipList: fetchShipListForBrowser,
127
+ joinShip,
128
+ startShip,
129
+ startNewShip,
130
+ joinInvite
131
+ };
132
+
133
+ export default DredlessBrowser;