@kar-mi/spirit-vale-tools-combat 3.3.5

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 (47) hide show
  1. package/README.md +56 -0
  2. package/dist/actor-directory.d.ts +88 -0
  3. package/dist/actor-directory.d.ts.map +1 -0
  4. package/dist/boss-catalog.d.ts +6 -0
  5. package/dist/boss-catalog.d.ts.map +1 -0
  6. package/dist/combat-tracker.d.ts +295 -0
  7. package/dist/combat-tracker.d.ts.map +1 -0
  8. package/dist/dps-meter.d.ts +115 -0
  9. package/dist/dps-meter.d.ts.map +1 -0
  10. package/dist/effect-display.d.ts +16 -0
  11. package/dist/effect-display.d.ts.map +1 -0
  12. package/dist/history/domain.d.ts +6 -0
  13. package/dist/history/domain.d.ts.map +1 -0
  14. package/dist/history/importer.d.ts +12 -0
  15. package/dist/history/importer.d.ts.map +1 -0
  16. package/dist/history/store.d.ts +90 -0
  17. package/dist/history/store.d.ts.map +1 -0
  18. package/dist/index.d.ts +34 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +3998 -0
  21. package/dist/live-combat.d.ts +80 -0
  22. package/dist/live-combat.d.ts.map +1 -0
  23. package/dist/live-log.d.ts +50 -0
  24. package/dist/live-log.d.ts.map +1 -0
  25. package/dist/position-tracker.d.ts +43 -0
  26. package/dist/position-tracker.d.ts.map +1 -0
  27. package/dist/reducers/damage.d.ts +168 -0
  28. package/dist/reducers/damage.d.ts.map +1 -0
  29. package/dist/reducers/meter.d.ts +29 -0
  30. package/dist/reducers/meter.d.ts.map +1 -0
  31. package/dist/reducers/rows.d.ts +37 -0
  32. package/dist/reducers/rows.d.ts.map +1 -0
  33. package/dist/reducers/timeline.d.ts +29 -0
  34. package/dist/reducers/timeline.d.ts.map +1 -0
  35. package/dist/replay-capture.d.ts +24 -0
  36. package/dist/replay-capture.d.ts.map +1 -0
  37. package/dist/replay-summary.d.ts +14 -0
  38. package/dist/replay-summary.d.ts.map +1 -0
  39. package/dist/replay.d.ts +11 -0
  40. package/dist/replay.d.ts.map +1 -0
  41. package/dist/snapshot.d.ts +67 -0
  42. package/dist/snapshot.d.ts.map +1 -0
  43. package/dist/status-tracker.d.ts +61 -0
  44. package/dist/status-tracker.d.ts.map +1 -0
  45. package/dist/summon-calibration.d.ts +8 -0
  46. package/dist/summon-calibration.d.ts.map +1 -0
  47. package/package.json +33 -0
@@ -0,0 +1,90 @@
1
+ import type { ReadModel } from "@kar-mi/spirit-vale-tools-sqlite";
2
+ import type { FishNetDpsEncounterSnapshot } from "../snapshot.ts";
3
+ import type { RenderOptions } from "../reducers/rows.ts";
4
+ export interface Page<T> {
5
+ items: T[];
6
+ nextCursor?: string;
7
+ }
8
+ /** Which meter to read an encounter as: outgoing party damage, incoming damage grouped by the party member taking it, or restored health grouped by the healer. */
9
+ export type StoredMeter = "dps" | "tanked" | "healing";
10
+ export interface GetEncounterOptions extends RenderOptions {
11
+ /** Defaults to `"dps"`. */
12
+ meter?: StoredMeter;
13
+ }
14
+ export interface CombatEncounterSummary {
15
+ sessionId: string;
16
+ encounterId: string;
17
+ startedAtMs: number;
18
+ lastDamageAtMs: number;
19
+ endedAtMs?: number;
20
+ durationMs: number;
21
+ totalDamage: number;
22
+ }
23
+ export interface ListEncountersQuery {
24
+ sessionId: string;
25
+ cursor?: string;
26
+ limit?: number;
27
+ }
28
+ export interface DeathLogQuery {
29
+ sessionId: string;
30
+ cursor?: string;
31
+ limit?: number;
32
+ }
33
+ export interface CombatEnemyOption {
34
+ targetId: number;
35
+ label: string;
36
+ }
37
+ export interface CombatEnemySkillRow {
38
+ attackerRowId: string;
39
+ targetId: number;
40
+ sourceId: string;
41
+ sourceLabel: string;
42
+ damage: number;
43
+ hits: number;
44
+ criticalHits: number;
45
+ }
46
+ export interface CombatEnemyBreakdown {
47
+ encounterId: string;
48
+ enemies: CombatEnemyOption[];
49
+ skills: CombatEnemySkillRow[];
50
+ }
51
+ export interface CombatDeathHit {
52
+ /** Milliseconds before the death; zero is the lethal hit. */
53
+ beforeDeathMs: number;
54
+ attackerActorId: number;
55
+ attackerLabel: string;
56
+ attackerIsMonster: boolean;
57
+ sourceLabel: string;
58
+ damage: number;
59
+ critical: boolean;
60
+ }
61
+ export interface CombatDeathRecord {
62
+ encounterId: string;
63
+ deathIndex: number;
64
+ victimName: string;
65
+ targetId: number;
66
+ diedAtMs: number;
67
+ totalDamage: number;
68
+ hits: CombatDeathHit[];
69
+ }
70
+ /** Paged reads over the indexed combat history. */
71
+ export declare class CombatHistoryStore {
72
+ private readonly model;
73
+ constructor(model: ReadModel);
74
+ /** Lines of this session's combat log that were not a valid record, across every indexing pass. */
75
+ invalidLines(sessionId: string): number;
76
+ listEncounters(query: ListEncountersQuery): Page<CombatEncounterSummary>;
77
+ /** Per-attacker, per-enemy, per-skill damage for one encounter, with the enemy picker ordered by first sighting and duplicate monster names disambiguated. */
78
+ getEnemyBreakdown(sessionId: string, encounterId: string): CombatEnemyBreakdown;
79
+ /** Player deaths, newest first, paged so a long session never loads at once. */
80
+ getDeathLog(query: DeathLogQuery): Page<CombatDeathRecord>;
81
+ /**
82
+ * Renders one encounter in the same shape the legacy meter produces.
83
+ *
84
+ * Tanked and healing rates divide by the encounter's own duration, taken from the encounter row,
85
+ * so they stay comparable with the damage figure even when incoming hits span a shorter window.
86
+ */
87
+ getEncounter(sessionId: string, encounterId: string, options?: GetEncounterOptions): FishNetDpsEncounterSnapshot | undefined;
88
+ private loadEncounter;
89
+ }
90
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/history/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export { FishNetCombatTracker } from "./combat-tracker.ts";
2
+ export { createBossCatalog, CURRENT_BOSS_SKILL_NAMES } from "./boss-catalog.ts";
3
+ export { FishNetActorDirectory } from "./actor-directory.ts";
4
+ export { FishNetStatusTracker } from "./status-tracker.ts";
5
+ export type { FishNetActiveStatus, FishNetStatusTrackerOptions } from "./status-tracker.ts";
6
+ export { loadDpsReplay, parseDpsLogRecord } from "./replay.ts";
7
+ export type { DpsReplayResult } from "./replay.ts";
8
+ export { decodeCombatCaptureJsonLines, replayCombatCapture, replayCombatCaptures } from "./replay-capture.ts";
9
+ export type { CombatCaptureReplayOptions, CombatCaptureReplayResult } from "./replay-capture.ts";
10
+ export { formatCombatReplaySummary, inspectCombatReplaySummary, readCombatReplaySummary } from "./replay-summary.ts";
11
+ export type { CombatReplayInspection, CombatReplaySummary } from "./replay-summary.ts";
12
+ export { COMBAT_DOMAIN_NAME, COMBAT_DOMAIN_VERSION, createCombatDomain } from "./history/domain.ts";
13
+ export { indexCombatStream } from "./history/importer.ts";
14
+ export type { IndexCombatStreamOptions } from "./history/importer.ts";
15
+ export { CombatHistoryStore } from "./history/store.ts";
16
+ export type { CombatDeathHit, CombatDeathRecord, CombatEncounterSummary, CombatEnemyBreakdown, CombatEnemyOption, CombatEnemySkillRow, DeathLogQuery, GetEncounterOptions, ListEncountersQuery, Page, StoredMeter, } from "./history/store.ts";
17
+ export { DamageReducer } from "./reducers/damage.ts";
18
+ export type { ActorAggregate, CombatIdentity, DamageReducerOptions, EncounterAggregate, EnemySkillStats, SkillAggregate, } from "./reducers/damage.ts";
19
+ export { MeterReducer } from "./reducers/meter.ts";
20
+ export type { MeterKind, MeterReducerOptions } from "./reducers/meter.ts";
21
+ export { LiveCombatService } from "./live-combat.ts";
22
+ export type { CombatEncounterRecord, LiveCombatOptions, LiveCombatState, MeterEncounterSnapshot, MeterRow, } from "./live-combat.ts";
23
+ export { actorRowId, displayActorAggregates, normalizeName, renderEncounter } from "./reducers/rows.ts";
24
+ export type { DisplayActorAggregate, DisplayActorOptions, RenderOptions } from "./reducers/rows.ts";
25
+ export { ANALYSIS_BUCKET_MS } from "./reducers/timeline.ts";
26
+ export type { BucketSeries, TimelinePoint } from "./reducers/timeline.ts";
27
+ export { DpsLogFollower, DpsSessionLogFollower } from "./live-log.ts";
28
+ export type { DpsLogBatch, TimedDpsLogEvent } from "./live-log.ts";
29
+ export type { FishNetDpsActorRow, FishNetDpsEncounterSnapshot, FishNetDpsSkillRow, FishNetDpsTimelinePoint, FishNetPersonalMatch, } from "./snapshot.ts";
30
+ export type { FishNetActorDirectoryOptions, FishNetActorIdentity, FishNetActorIdentityEvent, FishNetActorIdentityRemoveEvent, FishNetActorIdentityResetEvent, FishNetActorIdentityUpsertEvent, FishNetKnownIdentity, FishNetLocalIdentity, } from "./actor-directory.ts";
31
+ export type { FishNetCombatActionKind, FishNetCombatActionPhase, FishNetCombatActivationEvent, FishNetCombatDamageEvent, FishNetCombatDeathEvent, FishNetCombatEvent, FishNetCombatHealEvent, FishNetCombatMonsterIdentityEvent, FishNetCombatStatusEvent, FishNetCombatSummonEvent, FishNetCombatTrackerOptions, FishNetDamageAttribution, FishNetBossCatalog, FishNetMonsterCatalog, FishNetHealAttribution, FishNetHealingTraits, FishNetHitResult, } from "./combat-tracker.ts";
32
+ export { FishNetPositionTracker } from "./position-tracker.ts";
33
+ export type { FishNetPosition, FishNetPositionEvent, FishNetPositionTrackerOptions, } from "./position-tracker.ts";
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}