@axiapps/axilog 0.1.1 → 0.3.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 (4) hide show
  1. package/index.d.ts +27 -4
  2. package/index.js +54 -54
  3. package/package.json +6 -6
  4. package/types.d.ts +162 -3
package/index.d.ts CHANGED
@@ -40,10 +40,22 @@ export declare function parseFile(path: string, opts?: ParseOptions | undefined
40
40
  * the native `Report` this function builds internally; previously this
41
41
  * function always built that `Report` with both flags forced `false`,
42
42
  * silently discarding any M12 detail regardless of what a caller wanted
43
- * (axibridge consumes ei-json exclusively through this function). `opts.
44
- * replay`/`opts.missiles` are accepted for parity with `parseFile` but
45
- * have no effect on the output -- EI's JSON shape has no comparable field
46
- * for either (see `axilog_ei::to_ei_json`'s module doc). Omitting `opts`
43
+ * (axibridge consumes ei-json exclusively through this function).
44
+ * As of MEIGAP2 those two flags gate three more GW2EI surfaces:
45
+ * `opts.skill_damage` additionally carries the player distributions'
46
+ * outcome columns (`connectedHits`/`glance`/`missed`/`evaded`/`blocked`/
47
+ * `invulned`/`interrupted`/`indirectDamage`, plus per-skill
48
+ * `downContribution` on the outgoing one), and `opts.timeseries`
49
+ * additionally carries `healthPercents` and `boonsStates` -- GW2EI's own
50
+ * `RawFormatTimelineArrays` gate on both. `instanceID`,
51
+ * `dpsAll[0].breakbarDamage` and `targets[].dpsAll` need no flag, matching
52
+ * GW2EI, which always emits them.
53
+ * `opts.replay` (M15, Task 3) adds GW2EI's own combat-replay surface --
54
+ * per-actor `combatReplayData.{positions, orientations, dc, iconURL}` plus
55
+ * the top-level `combatReplayMetaData` (see `axilog_ei::to_ei_json`; it
56
+ * roughly triples the payload, hence opt-in). `opts.missiles` is accepted
57
+ * for parity with `parseFile` but has no effect on the output -- EI's JSON
58
+ * shape has no comparable field for it. Omitting `opts`
47
59
  * entirely keeps every existing zero-arg call site's behavior unchanged.
48
60
  */
49
61
  export declare function parseFileEi(path: string, opts?: ParseOptions | undefined | null): any
@@ -81,6 +93,16 @@ export declare function parseFileEi(path: string, opts?: ParseOptions | undefine
81
93
  * `PlayerOut::rotation` doc comment for why this defaults to opt-in
82
94
  * (well past the ~30% size-discipline guideline on the committed fixture
83
95
  * when always-on).
96
+ * `modifiers: true` (M16) opts into the per-player damage-modifier stats
97
+ * -- `players[].damage_mods.{outgoing, incoming}` plus the top-level
98
+ * `damage_mod_map` on the native `Report` (`parseFile`/`parseBuffer`), and
99
+ * EI's own `damageModifiers`/`incomingDamageModifiers`/
100
+ * `damageModifiersTarget`/`incomingDamageModifiersTarget` plus
101
+ * `damageModMap` on `parseFileEi`. Unlike every other option here this one
102
+ * gates a COMPUTATION rather than a copy: `analyze()` never runs the
103
+ * modifier engine, which is a separate pass over every damage event
104
+ * crossed with ~200 catalogued definitions (see
105
+ * `axilog_schema::DamageModsOut`'s doc comment). Off by default.
84
106
  */
85
107
  export interface ParseOptions {
86
108
  replay?: boolean
@@ -88,4 +110,5 @@ export interface ParseOptions {
88
110
  timeseries?: boolean
89
111
  missiles?: boolean
90
112
  rotation?: boolean
113
+ modifiers?: boolean
91
114
  }
package/index.js CHANGED
@@ -77,8 +77,8 @@ function requireNative() {
77
77
  try {
78
78
  const binding = require('@axiapps/axilog-android-arm64')
79
79
  const bindingPackageVersion = require('@axiapps/axilog-android-arm64/package.json').version
80
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
81
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
80
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
81
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
82
82
  }
83
83
  return binding
84
84
  } catch (e) {
@@ -93,8 +93,8 @@ function requireNative() {
93
93
  try {
94
94
  const binding = require('@axiapps/axilog-android-arm-eabi')
95
95
  const bindingPackageVersion = require('@axiapps/axilog-android-arm-eabi/package.json').version
96
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
97
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
96
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
97
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
98
98
  }
99
99
  return binding
100
100
  } catch (e) {
@@ -114,8 +114,8 @@ function requireNative() {
114
114
  try {
115
115
  const binding = require('@axiapps/axilog-win32-x64-gnu')
116
116
  const bindingPackageVersion = require('@axiapps/axilog-win32-x64-gnu/package.json').version
117
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
118
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
117
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
118
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
119
119
  }
120
120
  return binding
121
121
  } catch (e) {
@@ -130,8 +130,8 @@ function requireNative() {
130
130
  try {
131
131
  const binding = require('@axiapps/axilog-win32-x64-msvc')
132
132
  const bindingPackageVersion = require('@axiapps/axilog-win32-x64-msvc/package.json').version
133
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
134
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
133
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
134
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
135
135
  }
136
136
  return binding
137
137
  } catch (e) {
@@ -147,8 +147,8 @@ function requireNative() {
147
147
  try {
148
148
  const binding = require('@axiapps/axilog-win32-ia32-msvc')
149
149
  const bindingPackageVersion = require('@axiapps/axilog-win32-ia32-msvc/package.json').version
150
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
151
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
150
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
151
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
152
152
  }
153
153
  return binding
154
154
  } catch (e) {
@@ -163,8 +163,8 @@ function requireNative() {
163
163
  try {
164
164
  const binding = require('@axiapps/axilog-win32-arm64-msvc')
165
165
  const bindingPackageVersion = require('@axiapps/axilog-win32-arm64-msvc/package.json').version
166
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
167
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
166
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
167
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
168
168
  }
169
169
  return binding
170
170
  } catch (e) {
@@ -182,8 +182,8 @@ function requireNative() {
182
182
  try {
183
183
  const binding = require('@axiapps/axilog-darwin-universal')
184
184
  const bindingPackageVersion = require('@axiapps/axilog-darwin-universal/package.json').version
185
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
186
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
185
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
186
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
187
187
  }
188
188
  return binding
189
189
  } catch (e) {
@@ -198,8 +198,8 @@ function requireNative() {
198
198
  try {
199
199
  const binding = require('@axiapps/axilog-darwin-x64')
200
200
  const bindingPackageVersion = require('@axiapps/axilog-darwin-x64/package.json').version
201
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
202
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
201
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
202
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
203
203
  }
204
204
  return binding
205
205
  } catch (e) {
@@ -214,8 +214,8 @@ function requireNative() {
214
214
  try {
215
215
  const binding = require('@axiapps/axilog-darwin-arm64')
216
216
  const bindingPackageVersion = require('@axiapps/axilog-darwin-arm64/package.json').version
217
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
218
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
217
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
218
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
219
219
  }
220
220
  return binding
221
221
  } catch (e) {
@@ -234,8 +234,8 @@ function requireNative() {
234
234
  try {
235
235
  const binding = require('@axiapps/axilog-freebsd-x64')
236
236
  const bindingPackageVersion = require('@axiapps/axilog-freebsd-x64/package.json').version
237
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
238
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
237
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
238
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
239
239
  }
240
240
  return binding
241
241
  } catch (e) {
@@ -250,8 +250,8 @@ function requireNative() {
250
250
  try {
251
251
  const binding = require('@axiapps/axilog-freebsd-arm64')
252
252
  const bindingPackageVersion = require('@axiapps/axilog-freebsd-arm64/package.json').version
253
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
254
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
253
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
254
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
255
255
  }
256
256
  return binding
257
257
  } catch (e) {
@@ -271,8 +271,8 @@ function requireNative() {
271
271
  try {
272
272
  const binding = require('@axiapps/axilog-linux-x64-musl')
273
273
  const bindingPackageVersion = require('@axiapps/axilog-linux-x64-musl/package.json').version
274
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
275
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
274
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
275
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
276
276
  }
277
277
  return binding
278
278
  } catch (e) {
@@ -287,8 +287,8 @@ function requireNative() {
287
287
  try {
288
288
  const binding = require('@axiapps/axilog-linux-x64-gnu')
289
289
  const bindingPackageVersion = require('@axiapps/axilog-linux-x64-gnu/package.json').version
290
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
291
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
290
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
291
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
292
292
  }
293
293
  return binding
294
294
  } catch (e) {
@@ -305,8 +305,8 @@ function requireNative() {
305
305
  try {
306
306
  const binding = require('@axiapps/axilog-linux-arm64-musl')
307
307
  const bindingPackageVersion = require('@axiapps/axilog-linux-arm64-musl/package.json').version
308
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
309
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
308
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
309
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
310
310
  }
311
311
  return binding
312
312
  } catch (e) {
@@ -321,8 +321,8 @@ function requireNative() {
321
321
  try {
322
322
  const binding = require('@axiapps/axilog-linux-arm64-gnu')
323
323
  const bindingPackageVersion = require('@axiapps/axilog-linux-arm64-gnu/package.json').version
324
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
325
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
324
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
325
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
326
326
  }
327
327
  return binding
328
328
  } catch (e) {
@@ -339,8 +339,8 @@ function requireNative() {
339
339
  try {
340
340
  const binding = require('@axiapps/axilog-linux-arm-musleabihf')
341
341
  const bindingPackageVersion = require('@axiapps/axilog-linux-arm-musleabihf/package.json').version
342
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
343
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
342
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
343
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
344
344
  }
345
345
  return binding
346
346
  } catch (e) {
@@ -355,8 +355,8 @@ function requireNative() {
355
355
  try {
356
356
  const binding = require('@axiapps/axilog-linux-arm-gnueabihf')
357
357
  const bindingPackageVersion = require('@axiapps/axilog-linux-arm-gnueabihf/package.json').version
358
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
359
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
358
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
359
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
360
360
  }
361
361
  return binding
362
362
  } catch (e) {
@@ -373,8 +373,8 @@ function requireNative() {
373
373
  try {
374
374
  const binding = require('@axiapps/axilog-linux-loong64-musl')
375
375
  const bindingPackageVersion = require('@axiapps/axilog-linux-loong64-musl/package.json').version
376
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
377
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
376
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
377
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
378
378
  }
379
379
  return binding
380
380
  } catch (e) {
@@ -389,8 +389,8 @@ function requireNative() {
389
389
  try {
390
390
  const binding = require('@axiapps/axilog-linux-loong64-gnu')
391
391
  const bindingPackageVersion = require('@axiapps/axilog-linux-loong64-gnu/package.json').version
392
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
393
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
392
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
393
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
394
394
  }
395
395
  return binding
396
396
  } catch (e) {
@@ -407,8 +407,8 @@ function requireNative() {
407
407
  try {
408
408
  const binding = require('@axiapps/axilog-linux-riscv64-musl')
409
409
  const bindingPackageVersion = require('@axiapps/axilog-linux-riscv64-musl/package.json').version
410
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
411
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
410
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
411
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
412
412
  }
413
413
  return binding
414
414
  } catch (e) {
@@ -423,8 +423,8 @@ function requireNative() {
423
423
  try {
424
424
  const binding = require('@axiapps/axilog-linux-riscv64-gnu')
425
425
  const bindingPackageVersion = require('@axiapps/axilog-linux-riscv64-gnu/package.json').version
426
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
427
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
426
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
427
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
428
428
  }
429
429
  return binding
430
430
  } catch (e) {
@@ -440,8 +440,8 @@ function requireNative() {
440
440
  try {
441
441
  const binding = require('@axiapps/axilog-linux-ppc64-gnu')
442
442
  const bindingPackageVersion = require('@axiapps/axilog-linux-ppc64-gnu/package.json').version
443
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
444
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
443
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
444
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
445
445
  }
446
446
  return binding
447
447
  } catch (e) {
@@ -456,8 +456,8 @@ function requireNative() {
456
456
  try {
457
457
  const binding = require('@axiapps/axilog-linux-s390x-gnu')
458
458
  const bindingPackageVersion = require('@axiapps/axilog-linux-s390x-gnu/package.json').version
459
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
460
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
459
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
460
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
461
461
  }
462
462
  return binding
463
463
  } catch (e) {
@@ -476,8 +476,8 @@ function requireNative() {
476
476
  try {
477
477
  const binding = require('@axiapps/axilog-openharmony-arm64')
478
478
  const bindingPackageVersion = require('@axiapps/axilog-openharmony-arm64/package.json').version
479
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
480
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
479
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
480
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
481
481
  }
482
482
  return binding
483
483
  } catch (e) {
@@ -492,8 +492,8 @@ function requireNative() {
492
492
  try {
493
493
  const binding = require('@axiapps/axilog-openharmony-x64')
494
494
  const bindingPackageVersion = require('@axiapps/axilog-openharmony-x64/package.json').version
495
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
496
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
495
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
496
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
497
497
  }
498
498
  return binding
499
499
  } catch (e) {
@@ -508,8 +508,8 @@ function requireNative() {
508
508
  try {
509
509
  const binding = require('@axiapps/axilog-openharmony-arm')
510
510
  const bindingPackageVersion = require('@axiapps/axilog-openharmony-arm/package.json').version
511
- if (bindingPackageVersion !== '0.1.1' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
512
- throw new Error(`Native binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
511
+ if (bindingPackageVersion !== '0.3.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
512
+ throw new Error(`Native binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
513
513
  }
514
514
  return binding
515
515
  } catch (e) {
@@ -648,8 +648,8 @@ if (!nativeBinding || forceWasi) {
648
648
  if (!candidateFailed) {
649
649
  if (process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
650
650
  const bindingPackageVersion = require('@axiapps/axilog-wasm32-wasi/package.json').version
651
- if (bindingPackageVersion !== '0.1.1') {
652
- throw new Error(`WASI binding package version mismatch, expected 0.1.1 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
651
+ if (bindingPackageVersion !== '0.3.0') {
652
+ throw new Error(`WASI binding package version mismatch, expected 0.3.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
653
653
  }
654
654
  }
655
655
  wasiBinding = require('@axiapps/axilog-wasm32-wasi')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axiapps/axilog",
3
- "version": "0.1.1",
3
+ "version": "0.3.0",
4
4
  "description": "Node bindings (napi-rs) for axilog's Rust GW2 arcdps WvW parsing core",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -28,11 +28,11 @@
28
28
  "node": ">= 18"
29
29
  },
30
30
  "optionalDependencies": {
31
- "@axiapps/axilog-linux-x64-gnu": "0.1.1",
32
- "@axiapps/axilog-linux-arm64-gnu": "0.1.1",
33
- "@axiapps/axilog-win32-x64-msvc": "0.1.1",
34
- "@axiapps/axilog-darwin-x64": "0.1.1",
35
- "@axiapps/axilog-darwin-arm64": "0.1.1"
31
+ "@axiapps/axilog-linux-x64-gnu": "0.3.0",
32
+ "@axiapps/axilog-linux-arm64-gnu": "0.3.0",
33
+ "@axiapps/axilog-win32-x64-msvc": "0.3.0",
34
+ "@axiapps/axilog-darwin-x64": "0.3.0",
35
+ "@axiapps/axilog-darwin-arm64": "0.3.0"
36
36
  },
37
37
  "scripts": {
38
38
  "build": "napi build --platform --release && node scripts/patch-dts.mjs",
package/types.d.ts CHANGED
@@ -65,6 +65,26 @@ export interface PerEnemyOut {
65
65
  total: number
66
66
  }
67
67
 
68
+ /**
69
+ * One `(player, enemy)` pair's offensive split -- mirrors
70
+ * `axilog_schema::PerTargetStatsOut` / EI's `statsTargets[i][0]`.
71
+ * `connected_hits`/`against_downed_count` are the actor-only hit-quality
72
+ * counts restricted to that enemy; `downed`/`killed` are minion-inclusive
73
+ * last-hit attributions, matching GW2EI. `downs_contribution_damage` is the
74
+ * arcdps-methodology per-target down-contribution, NOT EI's own
75
+ * 90%-to-downstate-window algorithm.
76
+ */
77
+ export interface PerTargetStatsOut {
78
+ enemy_id: number
79
+ connected_hits: number
80
+ connected_damage: number
81
+ against_downed_count: number
82
+ downed: number
83
+ killed: number
84
+ interrupts: number
85
+ downs_contribution_damage: number
86
+ }
87
+
68
88
  export interface DamageOut {
69
89
  total: number
70
90
  dps: number
@@ -114,19 +134,36 @@ export interface SkillDamageOut {
114
134
  export interface PlayerTargetSeriesOut {
115
135
  enemy_id: number
116
136
  damage: number[]
137
+ /**
138
+ * The non-condition half of `damage` (MEIGAP Task 2a), GW2EI's
139
+ * `targetPowerDamage1S` -- same buckets, same cumulative shape,
140
+ * element-wise `<= damage`. "Power" is GW2EI's `DamageType.Power`: every
141
+ * row whose skill id is NOT in its Condition buff catalog, i.e. strike
142
+ * damage AND life-leech AND the non-catalogued `buff == 1` bucket.
143
+ */
144
+ power_damage: number[]
117
145
  }
118
146
 
119
147
  /**
120
148
  * A player's per-second detail block (M12, Task 2), opt-in -- see
121
149
  * `PlayerOut.per_second`. `damage`/`damage_taken`/every `per_target[].damage`
122
150
  * are CUMULATIVE running totals, one entry per second, bucketed the same way
123
- * `Report.timeline` is (`resolution_ms = 1000`, from the log's first event)
124
- * -- mirrors GW2EI's `damage1S`/`damageTaken1S`/`targetDamage1S` cumulative
125
- * (not instant-delta) shape.
151
+ * GW2EI itself buckets them (`InterpolatedGraph`: `durationInS + 2` slots
152
+ * when the log is not a whole number of seconds, `+ 1` when it is; bucket
153
+ * index `ceil((t - logStart) / 1000)`) -- mirrors GW2EI's
154
+ * `damage1S`/`damageTaken1S`/`targetDamage1S` cumulative (not
155
+ * instant-delta) shape. NOTE: as of MEIGAP Task 2 this grid is no longer
156
+ * the same one `Report.timeline` uses; that one keeps its own
157
+ * floor-bucketed `duration/1000 + 1` scheme.
126
158
  */
127
159
  export interface PlayerPerSecondOut {
128
160
  damage: number[]
129
161
  damage_taken: number[]
162
+ /**
163
+ * The non-condition half of `damage_taken` (MEIGAP Task 2a), GW2EI's
164
+ * `powerDamageTaken1S` -- see `PlayerTargetSeriesOut.power_damage`.
165
+ */
166
+ power_damage_taken: number[]
130
167
  per_target: PlayerTargetSeriesOut[]
131
168
  }
132
169
 
@@ -171,6 +208,13 @@ export interface SupportOut {
171
208
  cleanses: number
172
209
  cleanses_self: number
173
210
  strips: number
211
+ /**
212
+ * True total remaining duration (ms) of every boon counted by `strips`
213
+ * (MEIGAP Task 3e). NOT the same number as EI's own
214
+ * `support[0].boonStripsTime`, whose accumulator is buggy -- see the
215
+ * Rust doc on `SupportMetrics::strips_duration_ms`.
216
+ */
217
+ strips_duration_ms: number
174
218
  resurrects: number
175
219
  }
176
220
 
@@ -244,6 +288,13 @@ export interface HitStatsOut {
244
288
  * counting bug in its own `lifeLeechDamageTakenCount` is deliberately not
245
289
  * reproduced). Purely additive alongside `downs_taken`/`deaths`/
246
290
  * `damage_taken`/`cc`. Always present (not gated), like `hit_stats`.
291
+ *
292
+ * `received_cc_count`/`received_cc_duration_ms` (ms) are the INCOMING
293
+ * mirror of the outgoing `cc` block, and count CC from every source
294
+ * (friendly included) with no pet/minion fold -- GW2EI's own two
295
+ * asymmetries. `boon_strips_taken`/`boon_strips_taken_duration_ms` (ms) are
296
+ * boons stripped OFF this player; the duration is the TRUE sum, not a
297
+ * reproduction of GW2EI's own (verified buggy) `boonStripsTime`.
247
298
  */
248
299
  export interface DefensesOut {
249
300
  blocked_count: number
@@ -264,6 +315,10 @@ export interface DefensesOut {
264
315
  barrier_damage: number
265
316
  breakbar_count: number
266
317
  breakbar_damage: number
318
+ received_cc_count: number
319
+ received_cc_duration_ms: number
320
+ boon_strips_taken: number
321
+ boon_strips_taken_duration_ms: number
267
322
  }
268
323
 
269
324
  export interface PlayerOut {
@@ -279,6 +334,12 @@ export interface PlayerOut {
279
334
  marker?: string
280
335
  /** Present when `commander` is true. */
281
336
  commander_tag?: CommanderTagOut
337
+ /**
338
+ * Guild GUID from `CBTS_GUILD` (MEIGAP Task 3c), uppercase
339
+ * dash-separated. Omitted when the log carries no guild row for this
340
+ * account.
341
+ */
342
+ guild_id?: string
282
343
  damage: DamageOut
283
344
  downs_dealt: number
284
345
  kills_dealt: number
@@ -299,6 +360,14 @@ export interface PlayerOut {
299
360
  downed_by: ContributionOut
300
361
  /** One entry per tracked boon id, in `axilog_core::analysis::buffs::BOON_IDS` order. */
301
362
  boons: BoonOut[]
363
+ /**
364
+ * Per-enemy offensive split (MEIGAP, Task 1d), sorted by `enemy_id` and
365
+ * SPARSE (only enemies this player interacted with). Rides the same
366
+ * `skillDamage: true` flag as `skill_damage` itself -- omitted entirely
367
+ * unless requested; measured +56.5% rendered-HTML size when always-on.
368
+ * The underlying pass always runs; only this serialized key is gated.
369
+ */
370
+ per_target?: PerTargetStatsOut[]
302
371
  support: SupportOut
303
372
  /**
304
373
  * arcdps healing-extension totals (M10, Task 1). Omitted entirely (not
@@ -343,6 +412,83 @@ export interface PlayerOut {
343
412
  * Task 2). Always present, same as `hit_stats`. See `DefensesOut`.
344
413
  */
345
414
  defenses: DefensesOut
415
+ /**
416
+ * Per-skill cast list (M14, Task 1), opt-in like `skill_damage` --
417
+ * present only when requested (`{ rotation: true }`, see
418
+ * `ParseOptions.rotation` in `index.d.ts`). Omitted entirely (not
419
+ * `null`) when not requested.
420
+ */
421
+ rotation?: SkillRotationOut[]
422
+ /**
423
+ * Per-modifier outgoing/incoming damage-modifier stats (M16), opt-in --
424
+ * present only when requested (`{ modifiers: true }`, see
425
+ * `ParseOptions.modifiers` in `index.d.ts`). Omitted entirely (not
426
+ * `null`) when not requested. The ids index `Report.damage_mod_map`.
427
+ */
428
+ damage_mods?: DamageModsOut
429
+ }
430
+
431
+ /** One skill's cast list (M14, Task 1). */
432
+ export interface SkillRotationOut {
433
+ skill_id: number
434
+ casts: CastOut[]
435
+ }
436
+
437
+ /** One animated cast (M14, Task 1). */
438
+ export interface CastOut {
439
+ cast_time_ms: number
440
+ duration_ms: number
441
+ /** Negative when the cast was interrupted/cancelled early. */
442
+ time_gained_ms: number
443
+ quickness: boolean
444
+ }
445
+
446
+ /**
447
+ * A player's damage-modifier block (M16), split by direction exactly as
448
+ * Elite Insights' own `damageModifiers`/`incomingDamageModifiers` are.
449
+ * Only modifiers with at least one qualifying hit appear (EI's own
450
+ * emission rule).
451
+ */
452
+ export interface DamageModsOut {
453
+ outgoing: DamageModEntryOut[]
454
+ /** Ids here are NEGATIVE -- the sign is the direction. */
455
+ incoming: DamageModEntryOut[]
456
+ }
457
+
458
+ /** One `(player, damage modifier)` row (M16). */
459
+ export interface DamageModEntryOut {
460
+ /** Signed modifier id; negative means incoming. Key into `Report.damage_mod_map`. */
461
+ id: number
462
+ /** Hits the modifier actually applied to. */
463
+ hit_count: number
464
+ /** Hits that were eligible for it at all. */
465
+ total_hit_count: number
466
+ /** `sum(gain * damage)`, rounded to 3 decimals. */
467
+ damage_gain: number
468
+ /** The damage aggregate `damage_gain` is measured against. */
469
+ total_damage: number
470
+ }
471
+
472
+ /** One `Report.damage_mod_map` entry (M16) -- EI's `DamageModDesc`. */
473
+ export interface DamageModDescOut {
474
+ name: string
475
+ icon: string
476
+ /** EI's full tooltip: the base description plus the derived `<br>...` suffixes. */
477
+ description: string
478
+ non_multiplier: boolean
479
+ is_counter: boolean
480
+ skill_based: boolean
481
+ approximate: boolean
482
+ incoming: boolean
483
+ }
484
+
485
+ /** One `Report.skill_map` entry (M14, Task 2), best-effort. */
486
+ export interface SkillMapEntryOut {
487
+ name: string
488
+ /** Omitted entirely -- never derivable without the external GW2 API. */
489
+ auto_attack?: boolean
490
+ is_swap: boolean
491
+ can_crit: boolean
346
492
  }
347
493
 
348
494
  export interface EnemyOut {
@@ -484,4 +630,17 @@ export interface Report {
484
630
  * added final-review fix wave). Omitted entirely (not `null`) otherwise.
485
631
  */
486
632
  missiles?: MissilesOut
633
+ /**
634
+ * Best-effort skill name table (M14, Task 2), keyed by skill id as a
635
+ * string. Always present (never opt-in), possibly empty.
636
+ */
637
+ skill_map: Record<string, SkillMapEntryOut>
638
+ /**
639
+ * Definition metadata for every damage-modifier id referenced by any
640
+ * `players[].damage_mods` row (M16), keyed by the SIGNED id as a decimal
641
+ * string (`"174"`, `"-431"`) -- WITHOUT Elite Insights' `"d"` prefix.
642
+ * Present exactly when `players[].damage_mods` is, i.e. only under
643
+ * `{ modifiers: true }`; scoped to referenced ids, not the whole catalog.
644
+ */
645
+ damage_mod_map?: Record<string, DamageModDescOut>
487
646
  }