@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 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"}
@@ -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"}