@kar-mi/spirit-vale-tools-market 2.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/README.md +46 -0
- package/dist/event-log.d.ts +7 -0
- package/dist/event-log.d.ts.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1340 -0
- package/dist/live-log.d.ts +36 -0
- package/dist/live-log.d.ts.map +1 -0
- package/dist/market-item-substats.d.ts +4 -0
- package/dist/market-item-substats.d.ts.map +1 -0
- package/dist/market-stat-values.d.ts +10 -0
- package/dist/market-stat-values.d.ts.map +1 -0
- package/dist/market-stats.d.ts +13 -0
- package/dist/market-stats.d.ts.map +1 -0
- package/dist/market.d.ts +205 -0
- package/dist/market.d.ts.map +1 -0
- package/dist/replay.d.ts +11 -0
- package/dist/replay.d.ts.map +1 -0
- package/package.json +30 -0
package/README.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# @kar-mi/spirit-vale-tools-market
|
|
2
|
+
|
|
3
|
+
Spirit Vale market decoding and replay utilities.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
bun add @kar-mi/spirit-vale-tools-market
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import { FishNetMarketTracker } from "@kar-mi/spirit-vale-tools-market";
|
|
15
|
+
|
|
16
|
+
const tracker = new FishNetMarketTracker();
|
|
17
|
+
|
|
18
|
+
// packet: DecodedFishNetPacket from @kar-mi/spirit-vale-tools-capture
|
|
19
|
+
tracker.consume(packet);
|
|
20
|
+
|
|
21
|
+
const listings = tracker.query({ text: "sword", statMode: "all" });
|
|
22
|
+
for (const listing of listings) {
|
|
23
|
+
console.log(listing.displayName, listing.shopName);
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
The tracker understands fresh and cursor-based search pages, overview and
|
|
28
|
+
collection results, vending-stall lifecycle events, and stall listing details.
|
|
29
|
+
It accepts only RPCs resolved against the supported build. Numeric identifiers,
|
|
30
|
+
prices, versions, and timestamps that use 64-bit wire values remain `bigint`.
|
|
31
|
+
|
|
32
|
+
Use `replayMarketCapture` to rebuild tracker state from a recorded log session
|
|
33
|
+
and `MarketSessionLogFollower` to follow a live session — either by polling it,
|
|
34
|
+
or by iterating it (`MarketSessionLogFollower.watch()`), which wakes on a
|
|
35
|
+
filesystem event instead of a timer and yields only batches that carry
|
|
36
|
+
something. Call `close()` when done.
|
|
37
|
+
|
|
38
|
+
Serialized market events retain `sellerDisplayName` for presentation but omit
|
|
39
|
+
`sellerAccountId`. A decoded log event represents the omitted identifier as
|
|
40
|
+
`null`. Stall events likewise omit `accountId` and `visualSnapshotJson`; the
|
|
41
|
+
derived `archetype` is omitted as well. Decoded logs represent these redacted
|
|
42
|
+
stall fields as `null`. Item `compatibilityFingerprint` and
|
|
43
|
+
`payloadSchemaVersion` values are emitted once in a `market.metadata` record,
|
|
44
|
+
then omitted from individual listings and represented as `null` when decoded.
|
|
45
|
+
|
|
46
|
+
See the [package guide](https://github.com/kar-mi/spirit-vale-tools/blob/main/docs/packages.md) for registry setup and usage.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { JsonObject } from "@kar-mi/spirit-vale-tools-logging";
|
|
2
|
+
import type { FishNetMarketEvent } from "./market.ts";
|
|
3
|
+
export declare function marketEventLogData(event: FishNetMarketEvent): JsonObject;
|
|
4
|
+
/** Collects unique item-payload metadata for one session-level `market.metadata` record. */
|
|
5
|
+
export declare function marketLogMetadataData(value: unknown): JsonObject | undefined;
|
|
6
|
+
export declare function parseMarketEventLogData(value: unknown): FishNetMarketEvent | undefined;
|
|
7
|
+
//# sourceMappingURL=event-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-log.d.ts","sourceRoot":"","sources":["../src/event-log.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAA2C,MAAM,aAAa,CAAC;AAE/F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,UAAU,CAMxE;AAED,4FAA4F;AAC5F,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAS5E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,GAAG,SAAS,CA4DtF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { catalogItemType, decodeFishNetMarketPacket, FishNetMarketTracker, marketListingKey, parseFishNetMarketStats, queryFishNetMarketListings, resolveFishNetMarketListingDisplayName, } from "./market.ts";
|
|
2
|
+
export { MarketLogFollower, MarketSessionLogFollower } from "./live-log.ts";
|
|
3
|
+
export type { MarketLogBatch, MarketLogStatus, MarketSessionLogFollowerOptions } from "./live-log.ts";
|
|
4
|
+
export { decodeMarketCaptureJsonLines, replayMarketCapture } from "./replay.ts";
|
|
5
|
+
export type { MarketReplayResult } from "./replay.ts";
|
|
6
|
+
export { marketEventLogData, marketLogMetadataData, parseMarketEventLogData } from "./event-log.ts";
|
|
7
|
+
export { FISHNET_MARKET_STAT_NAMES, fishNetMarketStatName, parseFishNetMarketStatExpression, resolveFishNetMarketStat, } from "./market-stats.ts";
|
|
8
|
+
export type { FishNetMarketStatName, ResolvedFishNetMarketStat } from "./market-stats.ts";
|
|
9
|
+
export type { FishNetMarketCollectable, FishNetMarketEvent, FishNetMarketItem, FishNetMarketListing, FishNetMarketListingView, FishNetMarketOverview, FishNetMarketQuery, FishNetMarketSale, FishNetMarketSearchPage, FishNetMarketSearchRequest, FishNetMarketSearchState, FishNetMarketSnapshot, FishNetMarketStall, FishNetMarketStallStatus, FishNetMarketStat, FishNetMarketStatFilter, FishNetMarketTrackerOptions, } from "./market.ts";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,0BAA0B,EAC1B,sCAAsC,GACvC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC5E,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AACtG,OAAO,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAChF,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACpG,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,gCAAgC,EAChC,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC1F,YAAY,EACV,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,aAAa,CAAC"}
|