@lycoristech/azurapi 0.1.2 → 0.1.3

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/data/ships.json CHANGED
@@ -82961,7 +82961,7 @@
82961
82961
  "wikiUrl": "https://azurlane.koumakan.jp/wiki/Musashi-chan",
82962
82962
  "class": "Yamato-Class",
82963
82963
  "hullType": "Battleship",
82964
- "nationality": "Iron Blood",
82964
+ "nationality": "Sakura Empire",
82965
82965
  "stats": {
82966
82966
  "level100": {
82967
82967
  "health": 7840,
package/data/version.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "generatedAt": "2026-10-11T00:29:32.186Z",
2
+ "generatedAt": "2026-10-11T04:44:04.078Z",
3
3
  "shipCount": 889,
4
4
  "schemaVersion": "0.0.1"
5
5
  }
@@ -6,12 +6,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.AzurData = void 0;
7
7
  const node_fs_1 = __importDefault(require("node:fs"));
8
8
  const node_path_1 = __importDefault(require("node:path"));
9
+ const node_url_1 = require("node:url");
9
10
  const ships_js_1 = require("./ships.js");
10
11
  const fetcher_js_1 = require("./fetcher.js");
12
+ /**
13
+ * Path of this source file as seen in a stack trace: a file:// URL under ESM,
14
+ * a plain path under CJS. This file is compiled to both formats from one
15
+ * source, so `import.meta.url` cannot be written here (it is a syntax error
16
+ * in the CJS build), and `__dirname` only exists in CJS.
17
+ */
18
+ function thisFileFromStack() {
19
+ const stack = new Error().stack ?? "";
20
+ for (const line of stack.split("\n").slice(1)) {
21
+ const m = line.match(/\(?((?:file:\/\/)?\/[^):]+?\.[cm]?[jt]s):\d+:\d+\)?$/);
22
+ if (m?.[1] !== undefined)
23
+ return m[1].startsWith("file://") ? (0, node_url_1.fileURLToPath)(m[1]) : m[1];
24
+ }
25
+ return undefined;
26
+ }
11
27
  function resolveThisDir() {
12
- // CJS: __dirname is injected by Node
13
- // ESM under tsx/ts-node: __dirname is polyfilled
14
- // Pure ESM: falls back to cwd
15
28
  try {
16
29
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
17
30
  // @ts-ignore __dirname exists in CJS but not in ESM type defs
@@ -19,7 +32,10 @@ function resolveThisDir() {
19
32
  return __dirname; // eslint-disable-line no-undef
20
33
  }
21
34
  catch { /* not CJS */ }
22
- return process.cwd();
35
+ const file = thisFileFromStack();
36
+ if (file !== undefined)
37
+ return node_path_1.default.dirname(file);
38
+ return process.cwd(); // last resort; resolveDefaultDataPath walks up from here
23
39
  }
24
40
  class AzurData {
25
41
  ships;
@@ -4,7 +4,44 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Ships = void 0;
7
+ exports.isCloseName = isCloseName;
7
8
  const fuse_js_1 = __importDefault(require("fuse.js"));
9
+ /** Optimal-string-alignment distance (Levenshtein + adjacent transposition). */
10
+ function editDistance(a, b) {
11
+ const rows = a.length + 1, cols = b.length + 1;
12
+ const d = Array.from({ length: rows }, (_, i) => Array.from({ length: cols }, (_, j) => (i === 0 ? j : j === 0 ? i : 0)));
13
+ for (let i = 1; i < rows; i++) {
14
+ for (let j = 1; j < cols; j++) {
15
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
16
+ d[i][j] = Math.min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost);
17
+ if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) {
18
+ d[i][j] = Math.min(d[i][j], d[i - 2][j - 2] + 1);
19
+ }
20
+ }
21
+ }
22
+ return d[rows - 1][cols - 1];
23
+ }
24
+ /**
25
+ * True when `query` is a prefix of one of the ship's names (3+ chars) or within
26
+ * typo distance of one: 1 edit for 4-5 chars, 2 edits for 6+. Shorter queries
27
+ * never fuzzy-match; they must hit an id or a name exactly.
28
+ */
29
+ function isCloseName(query, ship) {
30
+ const q = query.trim().toLowerCase();
31
+ if (q.length < 3)
32
+ return false;
33
+ const maxEdits = q.length >= 6 ? 2 : q.length >= 4 ? 1 : 0;
34
+ for (const raw of Object.values(ship.names)) {
35
+ if (typeof raw !== "string")
36
+ continue;
37
+ const n = raw.toLowerCase();
38
+ if (n.startsWith(q))
39
+ return true;
40
+ if (maxEdits > 0 && Math.abs(n.length - q.length) <= maxEdits && editDistance(q, n) <= maxEdits)
41
+ return true;
42
+ }
43
+ return false;
44
+ }
8
45
  class Ships {
9
46
  data;
10
47
  idMap;
@@ -45,10 +82,13 @@ class Ships {
45
82
  const ciId = ciIdMap[lower];
46
83
  if (ciId && this.data[ciId])
47
84
  return this.data[ciId];
48
- // 4. Fuse.js fuzzy
85
+ // 4. Fuse.js fuzzy, but only for a typo-level edit distance or a name prefix.
86
+ // Fuse scores substrings as perfect matches ("22" -> U-522 at 0.000, "Kuon"
87
+ // -> Kronshtadt at 0.003), which a lookup must not return.
49
88
  const results = this.fuse.search(nameOrId, { limit: 1 });
50
- if (results.length > 0 && results[0].score !== undefined && results[0].score < 0.5) {
51
- return results[0].item;
89
+ const hit = results[0];
90
+ if (hit !== undefined && hit.score !== undefined && hit.score < 0.5 && isCloseName(nameOrId, hit.item)) {
91
+ return hit.item;
52
92
  }
53
93
  return undefined;
54
94
  }
@@ -122,7 +122,10 @@ function normalizeIdentity(inputs) {
122
122
  // ------------------------------------------------------------------
123
123
  // Nationality
124
124
  // ------------------------------------------------------------------
125
- const nationality = (0, enums_js_1.nationalityName)(groupRow.nationality);
125
+ // The per-ship statistics row is authoritative; ship_data_group is the fallback.
126
+ // They disagree for exactly one ship in EN 9.3.384: Musashi-chan (30517), where the
127
+ // group row says Iron Blood and the ship row says Sakura Empire.
128
+ const nationality = (0, enums_js_1.nationalityName)(enStats.nationality ?? groupRow.nationality);
126
129
  // ------------------------------------------------------------------
127
130
  // Wiki URL
128
131
  // ------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"AzurData.d.ts","sourceRoot":"","sources":["../../src/client/AzurData.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAGlE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAcD,qBAAa,QAAQ;IACnB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAEtB,iEAAiE;gBACrD,OAAO,GAAE,eAAoB;IAWzC;;;;;;;OAOG;WACU,IAAI,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAmBvE,OAAO,CAAC,MAAM,CAAC,sBAAsB;CAUtC"}
1
+ {"version":3,"file":"AzurData.d.ts","sourceRoot":"","sources":["../../src/client/AzurData.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAGlE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA4BD,qBAAa,QAAQ;IACnB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAEtB,iEAAiE;gBACrD,OAAO,GAAE,eAAoB;IAWzC;;;;;;;OAOG;WACU,IAAI,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAmBvE,OAAO,CAAC,MAAM,CAAC,sBAAsB;CAUtC"}
@@ -1,11 +1,24 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
+ import { fileURLToPath } from "node:url";
3
4
  import { Ships } from "./ships.js";
4
5
  import { fetchLatestData } from "./fetcher.js";
6
+ /**
7
+ * Path of this source file as seen in a stack trace: a file:// URL under ESM,
8
+ * a plain path under CJS. This file is compiled to both formats from one
9
+ * source, so `import.meta.url` cannot be written here (it is a syntax error
10
+ * in the CJS build), and `__dirname` only exists in CJS.
11
+ */
12
+ function thisFileFromStack() {
13
+ const stack = new Error().stack ?? "";
14
+ for (const line of stack.split("\n").slice(1)) {
15
+ const m = line.match(/\(?((?:file:\/\/)?\/[^):]+?\.[cm]?[jt]s):\d+:\d+\)?$/);
16
+ if (m?.[1] !== undefined)
17
+ return m[1].startsWith("file://") ? fileURLToPath(m[1]) : m[1];
18
+ }
19
+ return undefined;
20
+ }
5
21
  function resolveThisDir() {
6
- // CJS: __dirname is injected by Node
7
- // ESM under tsx/ts-node: __dirname is polyfilled
8
- // Pure ESM: falls back to cwd
9
22
  try {
10
23
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
11
24
  // @ts-ignore __dirname exists in CJS but not in ESM type defs
@@ -13,7 +26,10 @@ function resolveThisDir() {
13
26
  return __dirname; // eslint-disable-line no-undef
14
27
  }
15
28
  catch { /* not CJS */ }
16
- return process.cwd();
29
+ const file = thisFileFromStack();
30
+ if (file !== undefined)
31
+ return path.dirname(file);
32
+ return process.cwd(); // last resort; resolveDefaultDataPath walks up from here
17
33
  }
18
34
  export class AzurData {
19
35
  ships;
@@ -1 +1 @@
1
- {"version":3,"file":"AzurData.js","sourceRoot":"","sources":["../../src/client/AzurData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,eAAe,EAAqB,MAAM,cAAc,CAAC;AAYlE,SAAS,cAAc;IACrB,qCAAqC;IACrC,iDAAiD;IACjD,8BAA8B;IAC9B,IAAI,CAAC;QACH,6DAA6D;QAC7D,8DAA8D;QAC9D,IAAI,OAAO,SAAS,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC,CAAC,+BAA+B;IACtF,CAAC;IAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;IACzB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,OAAO,QAAQ;IACV,KAAK,CAAQ;IAEtB,iEAAiE;IACjE,YAAY,UAA2B,EAAE;QACvC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAC1B,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,CAClC,CAAC;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAC1B,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CACjC,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAA+B,EAAE;QACjD,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC;QAErD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAa,CAAC;gBAC9D,QAA6B,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC;oBAC/C,IAAI,EAAE,OAAO,CAAC,KAAK;oBACnB,KAAK,EAAE,OAAO,CAAC,KAAK;iBACrB,CAAC,CAAC;gBACH,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,OAAO,IAAI,QAAQ,EAAE,CAAC;IACxB,CAAC;IAEO,MAAM,CAAC,sBAAsB;QACnC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;QACjC,IAAI,SAAS,GAAG,OAAO,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACjD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAAE,OAAO,QAAQ,CAAC;YACtE,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;CACF"}
1
+ {"version":3,"file":"AzurData.js","sourceRoot":"","sources":["../../src/client/AzurData.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,12 @@ export interface ShipsOptions {
4
4
  idMap: Record<string, string>;
5
5
  fuseThreshold?: number;
6
6
  }
7
+ /**
8
+ * True when `query` is a prefix of one of the ship's names (3+ chars) or within
9
+ * typo distance of one: 1 edit for 4-5 chars, 2 edits for 6+. Shorter queries
10
+ * never fuzzy-match; they must hit an id or a name exactly.
11
+ */
12
+ export declare function isCloseName(query: string, ship: Ship): boolean;
7
13
  export declare class Ships {
8
14
  private readonly data;
9
15
  private readonly idMap;
@@ -1 +1 @@
1
- {"version":3,"file":"ships.d.ts","sourceRoot":"","sources":["../../src/client/ships.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;gBAEtB,OAAO,EAAE,YAAY;IAoBjC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAyBvC,OAAO,CAAC,QAAQ,CAAC,CAAyB;IAC1C,OAAO,CAAC,UAAU;IAUlB,MAAM,IAAI,IAAI,EAAE;IAIhB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIrC,KAAK,IAAI,MAAM;IAKf,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,IAAI,EAAE;CAI1C"}
1
+ {"version":3,"file":"ships.d.ts","sourceRoot":"","sources":["../../src/client/ships.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAkBD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAW9D;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;gBAEtB,OAAO,EAAE,YAAY;IAoBjC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IA4BvC,OAAO,CAAC,QAAQ,CAAC,CAAyB;IAC1C,OAAO,CAAC,UAAU;IAUlB,MAAM,IAAI,IAAI,EAAE;IAIhB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIrC,KAAK,IAAI,MAAM;IAKf,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,IAAI,EAAE;CAI1C"}
@@ -1,4 +1,40 @@
1
1
  import Fuse from "fuse.js";
2
+ /** Optimal-string-alignment distance (Levenshtein + adjacent transposition). */
3
+ function editDistance(a, b) {
4
+ const rows = a.length + 1, cols = b.length + 1;
5
+ const d = Array.from({ length: rows }, (_, i) => Array.from({ length: cols }, (_, j) => (i === 0 ? j : j === 0 ? i : 0)));
6
+ for (let i = 1; i < rows; i++) {
7
+ for (let j = 1; j < cols; j++) {
8
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
9
+ d[i][j] = Math.min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost);
10
+ if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) {
11
+ d[i][j] = Math.min(d[i][j], d[i - 2][j - 2] + 1);
12
+ }
13
+ }
14
+ }
15
+ return d[rows - 1][cols - 1];
16
+ }
17
+ /**
18
+ * True when `query` is a prefix of one of the ship's names (3+ chars) or within
19
+ * typo distance of one: 1 edit for 4-5 chars, 2 edits for 6+. Shorter queries
20
+ * never fuzzy-match; they must hit an id or a name exactly.
21
+ */
22
+ export function isCloseName(query, ship) {
23
+ const q = query.trim().toLowerCase();
24
+ if (q.length < 3)
25
+ return false;
26
+ const maxEdits = q.length >= 6 ? 2 : q.length >= 4 ? 1 : 0;
27
+ for (const raw of Object.values(ship.names)) {
28
+ if (typeof raw !== "string")
29
+ continue;
30
+ const n = raw.toLowerCase();
31
+ if (n.startsWith(q))
32
+ return true;
33
+ if (maxEdits > 0 && Math.abs(n.length - q.length) <= maxEdits && editDistance(q, n) <= maxEdits)
34
+ return true;
35
+ }
36
+ return false;
37
+ }
2
38
  export class Ships {
3
39
  data;
4
40
  idMap;
@@ -39,10 +75,13 @@ export class Ships {
39
75
  const ciId = ciIdMap[lower];
40
76
  if (ciId && this.data[ciId])
41
77
  return this.data[ciId];
42
- // 4. Fuse.js fuzzy
78
+ // 4. Fuse.js fuzzy, but only for a typo-level edit distance or a name prefix.
79
+ // Fuse scores substrings as perfect matches ("22" -> U-522 at 0.000, "Kuon"
80
+ // -> Kronshtadt at 0.003), which a lookup must not return.
43
81
  const results = this.fuse.search(nameOrId, { limit: 1 });
44
- if (results.length > 0 && results[0].score !== undefined && results[0].score < 0.5) {
45
- return results[0].item;
82
+ const hit = results[0];
83
+ if (hit !== undefined && hit.score !== undefined && hit.score < 0.5 && isCloseName(nameOrId, hit.item)) {
84
+ return hit.item;
46
85
  }
47
86
  return undefined;
48
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ships.js","sourceRoot":"","sources":["../../src/client/ships.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ships.js","sourceRoot":"","sources":["../../src/client/ships.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/normalize/identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAQvD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,EAAE,EAAE;QACF,QAAQ,EAAE,gBAAgB,CAAC;QAC3B,UAAU,EAAE,kBAAkB,CAAC;QAC/B,KAAK,EAAE,aAAa,CAAC;QACrB,SAAS,EAAE,iBAAiB,CAAC;QAC7B,qBAAqB,EAAE,qBAAqB,CAAC;QAC7C,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,cAAc,EAAE,cAAc,CAAC;QAC/B,2EAA2E;QAC3E,YAAY,CAAC,EAAE,gBAAgB,CAAC;KACjC,CAAC;IACF;;;OAGG;IACH,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,EAAE,CAAC,EAAE;QACH,UAAU,EAAE,kBAAkB,CAAC;KAChC,CAAC;IACF,EAAE,CAAC,EAAE;QACH,UAAU,EAAE,kBAAkB,CAAC;KAChC,CAAC;IACF,wDAAwD;IACxD,YAAY,EAAE,OAAO,CAAC;IACtB,oEAAoE;IACpE,UAAU,EAAE,OAAO,CAAC;IACpB,mFAAmF;IACnF,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAWD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GACzC,MAAM,CASR;AAMD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAmJxE"}
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/normalize/identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAQvD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,EAAE,EAAE;QACF,QAAQ,EAAE,gBAAgB,CAAC;QAC3B,UAAU,EAAE,kBAAkB,CAAC;QAC/B,KAAK,EAAE,aAAa,CAAC;QACrB,SAAS,EAAE,iBAAiB,CAAC;QAC7B,qBAAqB,EAAE,qBAAqB,CAAC;QAC7C,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,cAAc,EAAE,cAAc,CAAC;QAC/B,2EAA2E;QAC3E,YAAY,CAAC,EAAE,gBAAgB,CAAC;KACjC,CAAC;IACF;;;OAGG;IACH,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,EAAE,CAAC,EAAE;QACH,UAAU,EAAE,kBAAkB,CAAC;KAChC,CAAC;IACF,EAAE,CAAC,EAAE;QACH,UAAU,EAAE,kBAAkB,CAAC;KAChC,CAAC;IACF,wDAAwD;IACxD,YAAY,EAAE,OAAO,CAAC;IACtB,oEAAoE;IACpE,UAAU,EAAE,OAAO,CAAC;IACpB,mFAAmF;IACnF,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAWD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GACzC,MAAM,CASR;AAMD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAsJxE"}
@@ -118,7 +118,10 @@ export function normalizeIdentity(inputs) {
118
118
  // ------------------------------------------------------------------
119
119
  // Nationality
120
120
  // ------------------------------------------------------------------
121
- const nationality = nationalityName(groupRow.nationality);
121
+ // The per-ship statistics row is authoritative; ship_data_group is the fallback.
122
+ // They disagree for exactly one ship in EN 9.3.384: Musashi-chan (30517), where the
123
+ // group row says Iron Blood and the ship row says Sakura Empire.
124
+ const nationality = nationalityName(enStats.nationality ?? groupRow.nationality);
122
125
  // ------------------------------------------------------------------
123
126
  // Wiki URL
124
127
  // ------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/normalize/identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/normalize/identity.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lycoristech/azurapi",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",