@kar-mi/spirit-vale-tools-capture 2.4.1 → 2.5.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/README.md +20 -20
- package/dist/capture/adapter-selection.d.ts +1 -1
- package/dist/capture/adapter-selection.d.ts.map +1 -1
- package/dist/capture/npcap.d.ts +2 -1
- package/dist/capture/npcap.d.ts.map +1 -1
- package/dist/capture/target-tracker.d.ts +2 -8
- package/dist/capture/target-tracker.d.ts.map +1 -1
- package/dist/capture/win32-system.d.ts +11 -0
- package/dist/capture/win32-system.d.ts.map +1 -0
- package/dist/capture.js +328 -149
- package/dist/fishnet/builtin-maps.d.ts +63 -0
- package/dist/fishnet/builtin-maps.d.ts.map +1 -1
- package/dist/fishnet/definitions/codecs.d.ts +1 -1
- package/dist/fishnet/definitions/codecs.d.ts.map +1 -1
- package/dist/fishnet/rpc-definitions/generated/index.d.ts +63 -0
- package/dist/fishnet/rpc-definitions/generated/index.d.ts.map +1 -1
- package/dist/fishnet/rpc-definitions/generated/player-controller.d.ts +4 -0
- package/dist/fishnet/rpc-definitions/generated/player-controller.d.ts.map +1 -1
- package/dist/fishnet/rpc-definitions/generated/player-save.d.ts +27 -0
- package/dist/fishnet/rpc-definitions/generated/player-save.d.ts.map +1 -1
- package/dist/fishnet/rpc-definitions/generated/skills-component.d.ts +1 -0
- package/dist/fishnet/rpc-definitions/generated/skills-component.d.ts.map +1 -1
- package/dist/fishnet/rpc-definitions/generated/summoning-component.d.ts +31 -0
- package/dist/fishnet/rpc-definitions/generated/summoning-component.d.ts.map +1 -1
- package/dist/fishnet/rpc-definitions/index.d.ts +63 -0
- package/dist/fishnet/rpc-definitions/index.d.ts.map +1 -1
- package/dist/index.js +94 -12
- package/package.json +9 -9
- package/dist/fishnet/rpc-definitions/broadcasts.d.ts +0 -23
- package/dist/fishnet/rpc-definitions/broadcasts.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/current-build.d.ts +0 -8501
- package/dist/fishnet/rpc-definitions/current-build.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/fishnet/network-animator.d.ts +0 -42
- package/dist/fishnet/rpc-definitions/fishnet/network-animator.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/fishnet/network-transform.d.ts +0 -138
- package/dist/fishnet/rpc-definitions/fishnet/network-transform.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/fishnet/predicted-owner.d.ts +0 -26
- package/dist/fishnet/rpc-definitions/fishnet/predicted-owner.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/base-unit-controller.d.ts +0 -122
- package/dist/fishnet/rpc-definitions/game/base-unit-controller.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/combat-component.d.ts +0 -44
- package/dist/fishnet/rpc-definitions/game/combat-component.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/health-component.d.ts +0 -306
- package/dist/fishnet/rpc-definitions/game/health-component.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/loot-drop.d.ts +0 -104
- package/dist/fishnet/rpc-definitions/game/loot-drop.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/monster-controller.d.ts +0 -144
- package/dist/fishnet/rpc-definitions/game/monster-controller.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/move-component.d.ts +0 -74
- package/dist/fishnet/rpc-definitions/game/move-component.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/player-controller/chat-presence.d.ts +0 -332
- package/dist/fishnet/rpc-definitions/game/player-controller/chat-presence.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/player-controller/endgame-pvp.d.ts +0 -89
- package/dist/fishnet/rpc-definitions/game/player-controller/endgame-pvp.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/player-controller/guild.d.ts +0 -393
- package/dist/fishnet/rpc-definitions/game/player-controller/guild.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/player-controller/index.d.ts +0 -23
- package/dist/fishnet/rpc-definitions/game/player-controller/index.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/player-controller/party.d.ts +0 -168
- package/dist/fishnet/rpc-definitions/game/player-controller/party.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/player-controller/trade-market.d.ts +0 -232
- package/dist/fishnet/rpc-definitions/game/player-controller/trade-market.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/player-controller/traversal-session.d.ts +0 -58
- package/dist/fishnet/rpc-definitions/game/player-controller/traversal-session.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/player-save/character-build.d.ts +0 -266
- package/dist/fishnet/rpc-definitions/game/player-save/character-build.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/player-save/character-data.d.ts +0 -991
- package/dist/fishnet/rpc-definitions/game/player-save/character-data.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/player-save/cosmetics-progression.d.ts +0 -126
- package/dist/fishnet/rpc-definitions/game/player-save/cosmetics-progression.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/player-save/debug.d.ts +0 -46
- package/dist/fishnet/rpc-definitions/game/player-save/debug.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/player-save/economy-world-storage.d.ts +0 -224
- package/dist/fishnet/rpc-definitions/game/player-save/economy-world-storage.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/player-save/index.d.ts +0 -1860
- package/dist/fishnet/rpc-definitions/game/player-save/index.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/player-save/session-character.d.ts +0 -72
- package/dist/fishnet/rpc-definitions/game/player-save/session-character.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/player-save/social-account.d.ts +0 -107
- package/dist/fishnet/rpc-definitions/game/player-save/social-account.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/player-save/vending.d.ts +0 -98
- package/dist/fishnet/rpc-definitions/game/player-save/vending.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/skills-component.d.ts +0 -453
- package/dist/fishnet/rpc-definitions/game/skills-component.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/status-component.d.ts +0 -146
- package/dist/fishnet/rpc-definitions/game/status-component.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/game/summoning-component.d.ts +0 -82
- package/dist/fishnet/rpc-definitions/game/summoning-component.d.ts.map +0 -1
- package/dist/fishnet/rpc-definitions/prefabs.d.ts +0 -112
- package/dist/fishnet/rpc-definitions/prefabs.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -41,31 +41,31 @@ for replay and testing without a live capture.
|
|
|
41
41
|
|
|
42
42
|
### Eternal Tower state
|
|
43
43
|
|
|
44
|
-
`FishNetEternalTowerTracker` consumes decoded capture packets and exposes the
|
|
45
|
-
best-known tower name, floor, and instance information:
|
|
44
|
+
`FishNetEternalTowerTracker` consumes decoded capture packets and exposes the
|
|
45
|
+
best-known tower name, floor, and instance information:
|
|
46
46
|
|
|
47
47
|
```ts
|
|
48
48
|
import { FishNetEternalTowerTracker } from "@kar-mi/spirit-vale-tools-capture";
|
|
49
49
|
|
|
50
50
|
const tower = new FishNetEternalTowerTracker();
|
|
51
51
|
capture.on("fishNetPacket", (packet) => {
|
|
52
|
-
if (!tower.consume(packet)) return;
|
|
53
|
-
const state = tower.current();
|
|
54
|
-
console.log(state.known, state.inTower, state.towerName, state.floor, state.instanceId);
|
|
55
|
-
});
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
`known` remains false until either a `DrawTitle` banner matching
|
|
59
|
-
`"<tower name>\nFloor <n>"` or a `ClientInstancedMapReady` with
|
|
60
|
-
`bindingSlot === "et"` arrives. The former supplies `towerName` and `floor`;
|
|
61
|
-
the latter confirms tower entry and can supply `instanceId` and
|
|
62
|
-
`instancedMapId`. The tracker preserves tower state across reconnects because
|
|
63
|
-
the server may not repeat either signal when reattaching to the same floor. A
|
|
64
|
-
non-tower `ClientInstancedMapReady` clears the state.
|
|
65
|
-
|
|
66
|
-
The assembly-derived RPC map still registers `PlayerController.ETUpdateRun`
|
|
67
|
-
and `ETAdvanceFloor` at wire hashes 95 and 96, but observed Eternal Tower
|
|
68
|
-
captures contain no invocations of either method. Registration proves that the
|
|
69
|
-
methods remain in the build; it does not prove that the server calls them.
|
|
52
|
+
if (!tower.consume(packet)) return;
|
|
53
|
+
const state = tower.current();
|
|
54
|
+
console.log(state.known, state.inTower, state.towerName, state.floor, state.instanceId);
|
|
55
|
+
});
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
`known` remains false until either a `DrawTitle` banner matching
|
|
59
|
+
`"<tower name>\nFloor <n>"` or a `ClientInstancedMapReady` with
|
|
60
|
+
`bindingSlot === "et"` arrives. The former supplies `towerName` and `floor`;
|
|
61
|
+
the latter confirms tower entry and can supply `instanceId` and
|
|
62
|
+
`instancedMapId`. The tracker preserves tower state across reconnects because
|
|
63
|
+
the server may not repeat either signal when reattaching to the same floor. A
|
|
64
|
+
non-tower `ClientInstancedMapReady` clears the state.
|
|
65
|
+
|
|
66
|
+
The assembly-derived RPC map still registers `PlayerController.ETUpdateRun`
|
|
67
|
+
and `ETAdvanceFloor` at wire hashes 95 and 96, but observed Eternal Tower
|
|
68
|
+
captures contain no invocations of either method. Registration proves that the
|
|
69
|
+
methods remain in the build; it does not prove that the server calls them.
|
|
70
70
|
|
|
71
71
|
See the [package guide](https://github.com/kar-mi/spirit-vale-tools/blob/main/docs/packages.md) for registry setup and usage.
|
|
@@ -5,5 +5,5 @@ export interface AdapterResolution {
|
|
|
5
5
|
detail?: string;
|
|
6
6
|
}
|
|
7
7
|
export declare function resolveCaptureDevice(devices: readonly NpcapDevice[], requestedName?: string): Promise<AdapterResolution>;
|
|
8
|
-
export declare function
|
|
8
|
+
export declare function chooseDeviceByRouteAddress(devices: readonly NpcapDevice[], address: string): NpcapDevice | undefined;
|
|
9
9
|
//# sourceMappingURL=adapter-selection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-selection.d.ts","sourceRoot":"","sources":["../../src/capture/adapter-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter-selection.d.ts","sourceRoot":"","sources":["../../src/capture/adapter-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,SAAS,WAAW,EAAE,EAC/B,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAa5B;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,SAAS,WAAW,EAAE,EAC/B,OAAO,EAAE,MAAM,GACd,WAAW,GAAG,SAAS,CAEzB"}
|
package/dist/capture/npcap.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type NpcapAvailability = "ready" | "missing" | "
|
|
1
|
+
export type NpcapAvailability = "ready" | "missing" | "error";
|
|
2
2
|
export interface NpcapStatus {
|
|
3
3
|
availability: NpcapAvailability;
|
|
4
4
|
detail: string;
|
|
@@ -32,6 +32,7 @@ export declare class SystemNpcapRuntime implements NpcapRuntime {
|
|
|
32
32
|
private readyStatus?;
|
|
33
33
|
status(): Promise<NpcapStatus>;
|
|
34
34
|
listDevices(): Promise<NpcapDevice[]>;
|
|
35
|
+
private enumerateDevices;
|
|
35
36
|
open(device: NpcapDevice, filter: string): Promise<NpcapSession>;
|
|
36
37
|
private load;
|
|
37
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npcap.d.ts","sourceRoot":"","sources":["../../src/capture/npcap.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,SAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"npcap.d.ts","sourceRoot":"","sources":["../../src/capture/npcap.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,iBAAiB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,IAAI,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,UAAU,IAAI,WAAW,GAAG,SAAS,CAAC;IACtC,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/B,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAClE;AAKD,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,GAAG,CAAC,CAAc;IAC1B,OAAO,CAAC,WAAW,CAAC,CAAc;IAE5B,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,CA4BnC;IAEK,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAI1C;IAED,OAAO,CAAC,gBAAgB;IAgClB,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAsCrE;IAED,OAAO,CAAC,IAAI;CAyBb"}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import type { CaptureProtocol, CapturedTransportPacket, CaptureTargetStatus } from "../types.ts";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
address: string;
|
|
5
|
-
port: number;
|
|
6
|
-
processId: number;
|
|
7
|
-
}
|
|
2
|
+
import type { WindowsOwnedEndpoint } from "./win32-system.ts";
|
|
3
|
+
type OwnedEndpoint = WindowsOwnedEndpoint;
|
|
8
4
|
export interface TargetSnapshotProvider {
|
|
9
5
|
snapshot(processName: string, protocols: readonly CaptureProtocol[]): Promise<{
|
|
10
6
|
processIds: number[];
|
|
@@ -31,7 +27,5 @@ export declare class WindowsTargetTracker {
|
|
|
31
27
|
private matches;
|
|
32
28
|
private refresh;
|
|
33
29
|
}
|
|
34
|
-
export declare function parseTaskList(output: string): number[];
|
|
35
|
-
export declare function parseNetstat(output: string, protocol: CaptureProtocol): OwnedEndpoint[];
|
|
36
30
|
export {};
|
|
37
31
|
//# sourceMappingURL=target-tracker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"target-tracker.d.ts","sourceRoot":"","sources":["../../src/capture/target-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEjG,
|
|
1
|
+
{"version":3,"file":"target-tracker.d.ts","sourceRoot":"","sources":["../../src/capture/target-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEjG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,KAAK,aAAa,GAAG,oBAAoB,CAAC;AAI1C,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,eAAe,EAAE,GAAG,OAAO,CAAC;QAC5E,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,EAAE,aAAa,EAAE,CAAC;KAC5B,CAAC,CAAC;CACJ;AAED,qBAAa,oBAAoB;IAS7B,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAbpC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,KAAK,CAAC,CAAiC;IAC/C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAElC,YACW,WAAW,EAAE,MAAM,EACX,SAAS,EAAE,SAAS,eAAe,EAAE,EACrC,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,EAC/C,QAAQ,GAAE,sBAA4D,EACtE,SAAS,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAe,EAC/C,iBAAiB,SAA6B,EAC7D;IAEE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3B;IAED,IAAI,IAAI,IAAI,CAGX;IAED,QAAQ,CAAC,MAAM,EAAE,uBAAuB,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAM5E;IAED,OAAO,CAAC,OAAO;YAMD,OAAO;CAgCtB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { CaptureProtocol } from "../types.ts";
|
|
2
|
+
export interface WindowsOwnedEndpoint {
|
|
3
|
+
protocol: CaptureProtocol;
|
|
4
|
+
address: string;
|
|
5
|
+
port: number;
|
|
6
|
+
processId: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function findProcessIdsByName(processName: string): number[];
|
|
9
|
+
export declare function listOwnedEndpoints(protocols: readonly CaptureProtocol[]): WindowsOwnedEndpoint[];
|
|
10
|
+
export declare function defaultRouteIpv4Address(): string | undefined;
|
|
11
|
+
//# sourceMappingURL=win32-system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"win32-system.d.ts","sourceRoot":"","sources":["../../src/capture/win32-system.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAmDD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAsBlE;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,GAAG,oBAAoB,EAAE,CAIhG;AAED,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,SAAS,CAe5D"}
|