@lycoristech/azurapi 0.1.1 → 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.
@@ -8,11 +8,33 @@ import { starsString, wikiUrlFor } from "../translate/strings.js";
8
8
  function isLikelyChinese(s) {
9
9
  return /[\u4e00-\u9fff]/.test(s);
10
10
  }
11
+ /**
12
+ * Pick the thumbnail filename stem for a ship.
13
+ *
14
+ * Shipyard icons in azurlane-images are named after the texture inside the
15
+ * bundle: historically the numeric group id (20212.png), but newer bundles use
16
+ * the skin's painting name (weikesibao.png, z14.png, 2B.png). Prefer the id so
17
+ * existing URLs stay stable, fall back to the default skin's painting name, and
18
+ * keep the id when nothing is known (no images clone at build time).
19
+ */
20
+ export function resolveThumbnail(groupType, defaultPainting, available) {
21
+ if (available === undefined)
22
+ return groupType;
23
+ const byId = available.get(groupType.toLowerCase());
24
+ if (byId !== undefined)
25
+ return byId;
26
+ if (defaultPainting !== undefined) {
27
+ const byPainting = available.get(defaultPainting.toLowerCase());
28
+ if (byPainting !== undefined)
29
+ return byPainting;
30
+ }
31
+ return groupType;
32
+ }
11
33
  // ---------------------------------------------------------------------------
12
34
  // Main
13
35
  // ---------------------------------------------------------------------------
14
36
  export function normalizeIdentity(inputs) {
15
- const { groupType, rowIds, en, cn, jp, isEnReleased, isResearch, groupRow, lookups, } = inputs;
37
+ const { groupType, rowIds, en, cn, jp, isEnReleased, isResearch, groupRow, lookups, availableThumbnails, } = inputs;
16
38
  // ------------------------------------------------------------------
17
39
  // Resolve the LB3 row ID — the row whose key ends with "4", or last entry.
18
40
  // ------------------------------------------------------------------
@@ -32,11 +54,12 @@ export function normalizeIdentity(inputs) {
32
54
  let nameEn;
33
55
  const rawName = enStats.name;
34
56
  const rawEnglishName = enStats.english_name;
57
+ // Names are trimmed: upstream has trailing spaces on ~40 rows ("Foch ", "Le Malin μ ", ...)
35
58
  if (!isLikelyChinese(rawName) && rawName.trim().length > 0) {
36
- nameEn = rawName;
59
+ nameEn = rawName.trim();
37
60
  }
38
61
  else if (rawEnglishName !== undefined && rawEnglishName.trim().length > 0 && !isLikelyChinese(rawEnglishName)) {
39
- nameEn = rawEnglishName;
62
+ nameEn = rawEnglishName.trim();
40
63
  }
41
64
  // else: both are Chinese/empty → nameEn stays undefined
42
65
  // CN name: from cn.statistics matching row if it looks Chinese; else fall back
@@ -45,22 +68,22 @@ export function normalizeIdentity(inputs) {
45
68
  if (cn !== undefined) {
46
69
  const cnStats = cn.statistics[lb3RowId];
47
70
  if (cnStats !== undefined && cnStats.name.trim().length > 0 && isLikelyChinese(cnStats.name)) {
48
- nameCn = cnStats.name;
71
+ nameCn = cnStats.name.trim();
49
72
  }
50
73
  }
51
74
  if (nameCn === undefined && isLikelyChinese(rawName)) {
52
- nameCn = rawName;
75
+ nameCn = rawName.trim();
53
76
  }
54
77
  // JP name: from jp.statistics matching row if provided
55
78
  let nameJp;
56
79
  if (jp !== undefined) {
57
80
  const jpStats = jp.statistics[lb3RowId];
58
81
  if (jpStats !== undefined && jpStats.name.trim().length > 0) {
59
- nameJp = jpStats.name;
82
+ nameJp = jpStats.name.trim();
60
83
  }
61
84
  }
62
85
  // Code: english_name from EN statistics
63
- const nameCode = rawEnglishName !== undefined && rawEnglishName.trim().length > 0 ? rawEnglishName : undefined;
86
+ const nameCode = rawEnglishName !== undefined && rawEnglishName.trim().length > 0 ? rawEnglishName.trim() : undefined;
64
87
  const names = {};
65
88
  if (nameEn !== undefined)
66
89
  names.en = nameEn;
@@ -95,7 +118,10 @@ export function normalizeIdentity(inputs) {
95
118
  // ------------------------------------------------------------------
96
119
  // Nationality
97
120
  // ------------------------------------------------------------------
98
- 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);
99
125
  // ------------------------------------------------------------------
100
126
  // Wiki URL
101
127
  // ------------------------------------------------------------------
@@ -103,7 +129,8 @@ export function normalizeIdentity(inputs) {
103
129
  // ------------------------------------------------------------------
104
130
  // Thumbnail (shipyard icon from azurlane-images repo)
105
131
  // ------------------------------------------------------------------
106
- const thumbnail = `${THUMBNAILS_URL}/${groupType}.png`;
132
+ const defaultPainting = en.skinTemplate?.[`${groupType}0`]?.painting;
133
+ const thumbnail = `${THUMBNAILS_URL}/${resolveThumbnail(groupType, defaultPainting, availableThumbnails)}.png`;
107
134
  // ------------------------------------------------------------------
108
135
  // Build output
109
136
  // ------------------------------------------------------------------
@@ -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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"}
@@ -43,7 +43,21 @@ export interface BuildContext {
43
43
  thumbnailBaseUrl?: string;
44
44
  /** Set of available painting filenames (lowercase, no extension) for skin variant lookup. */
45
45
  availablePaintings?: Set<string>;
46
+ /** Thumbnail stems present in the images repo (lowercase -> actual), for identity.thumbnail */
47
+ availableThumbnails?: Map<string, string>;
46
48
  }
49
+ /**
50
+ * True when `key` is one of a group's real limit-break rows: the group_type
51
+ * followed by a single LB digit (1-4), e.g. 20212 -> 202121..202124.
52
+ *
53
+ * Anything else is an alt/promo form of a ship that also has real LB rows
54
+ * (the 900xxx block: 900004 -> Suffolk, 900465 -> Adventure Galley, ...).
55
+ *
56
+ * Do NOT filter on a "9" prefix instead: Vichya Dominion (9xxxx), Tempesta
57
+ * (960xxx) and META (97xxxx) ships all have their real LB rows at 9-prefixed
58
+ * ids. That heuristic silently dropped all 99 of them (issue #2).
59
+ */
60
+ export declare function isLimitBreakRow(key: string, groupType: string): boolean;
47
61
  interface BuildIndexes {
48
62
  /** group_type (string) → group row */
49
63
  groupByGroupType: Map<string, ShipDataGroupValue>;
@@ -1 +1 @@
1
- {"version":3,"file":"ship.d.ts","sourceRoot":"","sources":["../../src/normalize/ship.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ship.d.ts","sourceRoot":"","sources":["../../src/normalize/ship.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,26 @@ import { normalizeConstruction } from "./construction.js";
7
7
  import { normalizeRetrofit } from "./retrofit.js";
8
8
  import { normalizeMisc } from "./misc.js";
9
9
  import { normalizeSkins } from "./skins.js";
10
+ // ---------------------------------------------------------------------------
11
+ // Limit-break row detection
12
+ // ---------------------------------------------------------------------------
13
+ /**
14
+ * True when `key` is one of a group's real limit-break rows: the group_type
15
+ * followed by a single LB digit (1-4), e.g. 20212 -> 202121..202124.
16
+ *
17
+ * Anything else is an alt/promo form of a ship that also has real LB rows
18
+ * (the 900xxx block: 900004 -> Suffolk, 900465 -> Adventure Galley, ...).
19
+ *
20
+ * Do NOT filter on a "9" prefix instead: Vichya Dominion (9xxxx), Tempesta
21
+ * (960xxx) and META (97xxxx) ships all have their real LB rows at 9-prefixed
22
+ * ids. That heuristic silently dropped all 99 of them (issue #2).
23
+ */
24
+ export function isLimitBreakRow(key, groupType) {
25
+ if (key.length !== groupType.length + 1 || !key.startsWith(groupType))
26
+ return false;
27
+ const lb = key[key.length - 1];
28
+ return lb === "1" || lb === "2" || lb === "3" || lb === "4";
29
+ }
10
30
  function buildIndexes(ctx) {
11
31
  // Build groupByGroupType: scan ship_data_group and index by group_type
12
32
  const groupByGroupType = new Map();
@@ -37,8 +57,8 @@ export function buildShip(groupType, ctx, indexes) {
37
57
  continue;
38
58
  if (String(row.group_type) !== groupType)
39
59
  continue;
40
- // Skip 9-prefix rows (promo/alt forms)
41
- if (key.startsWith("9"))
60
+ // Keep only the real LB rows; skips the 900xxx alt/promo forms
61
+ if (!isLimitBreakRow(key, groupType))
42
62
  continue;
43
63
  rowIds.push(key);
44
64
  }
@@ -108,7 +128,9 @@ export function buildShip(groupType, ctx, indexes) {
108
128
  fleetTechShipTemplate: ctx.en.fleetTechShipTemplate,
109
129
  fleetTechShipClass: ctx.en.fleetTechShipClass,
110
130
  shipDataByType: ctx.en.shipDataByType,
131
+ skinTemplate: ctx.en.skinTemplate,
111
132
  },
133
+ availableThumbnails: ctx.availableThumbnails,
112
134
  cn: ctx.cn !== undefined ? { statistics: ctx.cn.statistics } : undefined,
113
135
  jp: ctx.jp !== undefined ? { statistics: ctx.jp.statistics } : undefined,
114
136
  isEnReleased,
@@ -251,14 +273,16 @@ export function buildShip(groupType, ctx, indexes) {
251
273
  export function buildAllShips(ctx) {
252
274
  // Pre-build shared indexes once for O(n) total cost
253
275
  const indexes = buildIndexes(ctx);
254
- // Collect all unique group_types from EN template, excluding 9-prefix rows
276
+ // Collect all unique group_types that have real LB rows in the EN template
277
+ // (alt/promo 900xxx rows are ignored; see isLimitBreakRow)
255
278
  const groupTypeSet = new Set();
256
279
  for (const [key, row] of Object.entries(ctx.en.template)) {
257
280
  if (row === undefined)
258
281
  continue;
259
- if (key.startsWith("9"))
282
+ const groupType = String(row.group_type);
283
+ if (!isLimitBreakRow(key, groupType))
260
284
  continue;
261
- groupTypeSet.add(String(row.group_type));
285
+ groupTypeSet.add(groupType);
262
286
  }
263
287
  const ships = [];
264
288
  let failCount = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"ship.js","sourceRoot":"","sources":["../../src/normalize/ship.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ship.js","sourceRoot":"","sources":["../../src/normalize/ship.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,26 @@
1
1
  import type { Ship } from "../schema/output/ship.js";
2
+ import type { IdMap } from "../schema/output/ship.js";
2
3
  /**
3
- * Write a name/alias → canonical id map to disk.
4
+ * Build the name/alias → canonical id map.
4
5
  *
5
6
  * Shape: Record<string, string>
6
7
  *
7
8
  * For each ship: emits names.en → id, names.cn → id, names.jp → id, names.code → id
8
9
  * For each groupRow: emits padded code → group_type string (legacy AzurAPI lookup)
9
10
  *
10
- * Last-writer-wins for duplicate names.
11
+ * Collisions: first-writer-wins, with ships visited in ascending numeric id order.
12
+ * Core factions have 5-digit ids, META 6-digit (97xxxx) and collabs 7-digit, so a
13
+ * shared display name resolves to the core-faction ship: "Enterprise" → USS
14
+ * Enterprise (10706) not HMS Enterprise (20232), "Neptune" → HMS Neptune (29901)
15
+ * not the Neptunia collab (1010001), likewise Fubuki and Kasumi. The other ship
16
+ * stays reachable through its names.code ("HMS Enterprise", "HDN Neptune", ...)
17
+ * or its id. Code names never shadow another ship's display name.
11
18
  */
19
+ export declare function buildIdMap(ships: Ship[], groupRows: Array<{
20
+ code: number;
21
+ group_type: number;
22
+ }>): IdMap;
23
+ /** Write the id map (see buildIdMap) to disk. */
12
24
  export declare function writeIdMap(ships: Ship[], groupRows: Array<{
13
25
  code: number;
14
26
  group_type: number;
@@ -1 +1 @@
1
- {"version":3,"file":"writeIdMap.d.ts","sourceRoot":"","sources":["../../src/output/writeIdMap.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAOrD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,IAAI,EAAE,EACb,SAAS,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,EACtD,UAAU,SAAqB,GAC9B,IAAI,CA+BN"}
1
+ {"version":3,"file":"writeIdMap.d.ts","sourceRoot":"","sources":["../../src/output/writeIdMap.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAMtD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,IAAI,EAAE,EACb,SAAS,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,GACrD,KAAK,CA2BP;AAED,iDAAiD;AACjD,wBAAgB,UAAU,CACxB,KAAK,EAAE,IAAI,EAAE,EACb,SAAS,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,EACtD,UAAU,SAAqB,GAC9B,IAAI,CAMN"}
@@ -4,27 +4,33 @@ import path from "path";
4
4
  // writeIdMap
5
5
  // ---------------------------------------------------------------------------
6
6
  /**
7
- * Write a name/alias → canonical id map to disk.
7
+ * Build the name/alias → canonical id map.
8
8
  *
9
9
  * Shape: Record<string, string>
10
10
  *
11
11
  * For each ship: emits names.en → id, names.cn → id, names.jp → id, names.code → id
12
12
  * For each groupRow: emits padded code → group_type string (legacy AzurAPI lookup)
13
13
  *
14
- * Last-writer-wins for duplicate names.
14
+ * Collisions: first-writer-wins, with ships visited in ascending numeric id order.
15
+ * Core factions have 5-digit ids, META 6-digit (97xxxx) and collabs 7-digit, so a
16
+ * shared display name resolves to the core-faction ship: "Enterprise" → USS
17
+ * Enterprise (10706) not HMS Enterprise (20232), "Neptune" → HMS Neptune (29901)
18
+ * not the Neptunia collab (1010001), likewise Fubuki and Kasumi. The other ship
19
+ * stays reachable through its names.code ("HMS Enterprise", "HDN Neptune", ...)
20
+ * or its id. Code names never shadow another ship's display name.
15
21
  */
16
- export function writeIdMap(ships, groupRows, outputPath = "data/id-map.json") {
22
+ export function buildIdMap(ships, groupRows) {
17
23
  const map = {};
24
+ const ordered = [...ships].sort((a, b) => Number(a.id) - Number(b.id));
18
25
  // Collect all EN names first so we don't let names.code overwrite a real ship name
19
26
  const enNames = new Set();
20
- for (const ship of ships) {
27
+ for (const ship of ordered) {
21
28
  if (ship.names.en !== undefined)
22
29
  enNames.add(ship.names.en);
23
30
  }
24
- // Per-ship name entries (first-writer-wins for code names to avoid collisions)
25
- for (const ship of ships) {
31
+ for (const ship of ordered) {
26
32
  const { id, names } = ship;
27
- if (names.en !== undefined)
33
+ if (names.en !== undefined && !(names.en in map))
28
34
  map[names.en] = id;
29
35
  if (names.cn !== undefined && !(names.cn in map))
30
36
  map[names.cn] = id;
@@ -39,7 +45,11 @@ export function writeIdMap(ships, groupRows, outputPath = "data/id-map.json") {
39
45
  const paddedCode = String(row.code).padStart(3, "0");
40
46
  map[paddedCode] = String(row.group_type);
41
47
  }
42
- const json = JSON.stringify(map, null, 2);
48
+ return map;
49
+ }
50
+ /** Write the id map (see buildIdMap) to disk. */
51
+ export function writeIdMap(ships, groupRows, outputPath = "data/id-map.json") {
52
+ const json = JSON.stringify(buildIdMap(ships, groupRows), null, 2);
43
53
  const dir = path.dirname(path.resolve(outputPath));
44
54
  fs.mkdirSync(dir, { recursive: true });
45
55
  fs.writeFileSync(outputPath, json, "utf-8");
@@ -1 +1 @@
1
- {"version":3,"file":"writeIdMap.js","sourceRoot":"","sources":["../../src/output/writeIdMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CACxB,KAAa,EACb,SAAsD,EACtD,UAAU,GAAG,kBAAkB;IAE/B,MAAM,GAAG,GAAU,EAAE,CAAC;IAEtB,mFAAmF;IACnF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,+EAA+E;IAC/E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC3B,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS;YAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QACrE,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QACrE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACjF,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE1C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACnD,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"writeIdMap.js","sourceRoot":"","sources":["../../src/output/writeIdMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU,CACxB,KAAa,EACb,SAAsD;IAEtD,MAAM,GAAG,GAAU,EAAE,CAAC;IACtB,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvE,mFAAmF;IACnF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC3B,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QACrE,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QACrE,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QACrE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACjF,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,UAAU,CACxB,KAAa,EACb,SAAsD,EACtD,UAAU,GAAG,kBAAkB;IAE/B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEnE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACnD,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC"}
@@ -10,7 +10,14 @@ export declare const RARITY_MAP: Record<number, "Normal" | "Rare" | "Elite" | "S
10
10
  * - else → RARITY_MAP[rarity] ?? "Normal"
11
11
  */
12
12
  export declare function rarityName(rarity: number, isResearch: boolean): string;
13
- /** Nationality int → display string. Matches Azur Lane wiki convention. */
13
+ /**
14
+ * Nationality int → display string. Matches Azur Lane wiki convention.
15
+ *
16
+ * Codes verified against upstream ship_data_group.json + ship_data_statistics.json
17
+ * (AzurLaneTools/AzurLaneData 4cca5c24, 2026-05-08) and the game's own faction list in
18
+ * sharecfgdata/gametip.lua (EN 9.3.384); see tests/translate/enums.test.ts.
19
+ * Each collab has its own code from 101 upward, in release order.
20
+ */
14
21
  export declare const NATIONALITY_MAP: Record<number, string>;
15
22
  /** Look up a nationality code; falls back to "Universal". */
16
23
  export declare function nationalityName(code: number): string;
@@ -1 +1 @@
1
- {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../src/translate/enums.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAM1D,kDAAkD;AAClD,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,YAAY,CAOhG,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,CAMtE;AAMD,2EAA2E;AAC3E,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA4BlD,CAAC;AAEF,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAMD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAKrE,CAAC;AAEF,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAElE;AAMD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,SAAS,GAAG,SAAS,CAa3E,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAatD,CAAC"}
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../src/translate/enums.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAM1D,kDAAkD;AAClD,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,YAAY,CAOhG,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,CAMtE;AAMD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiClD,CAAC;AAEF,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAMD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAKrE,CAAC;AAEF,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAElE;AAMD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,SAAS,GAAG,SAAS,CAa3E,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAatD,CAAC"}
@@ -30,7 +30,14 @@ export function rarityName(rarity, isResearch) {
30
30
  // ---------------------------------------------------------------------------
31
31
  // Nationality
32
32
  // ---------------------------------------------------------------------------
33
- /** Nationality int → display string. Matches Azur Lane wiki convention. */
33
+ /**
34
+ * Nationality int → display string. Matches Azur Lane wiki convention.
35
+ *
36
+ * Codes verified against upstream ship_data_group.json + ship_data_statistics.json
37
+ * (AzurLaneTools/AzurLaneData 4cca5c24, 2026-05-08) and the game's own faction list in
38
+ * sharecfgdata/gametip.lua (EN 9.3.384); see tests/translate/enums.test.ts.
39
+ * Each collab has its own code from 101 upward, in release order.
40
+ */
34
41
  export const NATIONALITY_MAP = {
35
42
  0: "Universal",
36
43
  1: "Eagle Union",
@@ -44,21 +51,26 @@ export const NATIONALITY_MAP = {
44
51
  9: "Vichya Dominion",
45
52
  10: "Iris Orthodoxy",
46
53
  11: "Kingdom of Tulipa",
47
- 96: "Universal",
48
- 97: "Tempesta",
49
- 98: "Universal",
50
- 101: "META",
51
- 102: "Universal",
52
- 103: "Universal",
53
- 104: "Universal",
54
- 105: "Neptunia",
55
- 106: "KizunaAI",
56
- 107: "Hololive",
57
- 108: "Venus Vacation",
58
- 109: "The Idolmaster",
59
- 110: "SSSS",
60
- 111: "Atelier Ryza",
61
- 112: "Senran Kagura",
54
+ 12: "Liga de Pedrería", // Valparaíso (new faction, EN 9.3.384)
55
+ 96: "Tempesta", // MOT Royal Fortune, Golden Hind, ...
56
+ 97: "META", // Hunter.META, Fortune.META, ...
57
+ 98: "Universal", // Bulins
58
+ 101: "Neptunia", // HDN Neptune, Noire, Blanc, ...
59
+ 102: "Bilibili", // 22, 33 (CN only)
60
+ 103: "Utawarerumono", // Kuon, Nekone, Rurutie, ... (CN/JP only)
61
+ 104: "KizunaAI",
62
+ 105: "Hololive", // Shirakami Fubuki, Tokino Sora, ...
63
+ 106: "Venus Vacation", // Marie Rose, Honoka, ...
64
+ 107: "The Idolmaster", // Haruka Amami, ...
65
+ 108: "SSSS", // Rikka Takarada, ...
66
+ 109: "Atelier Ryza", // Reisalin Stout, ...
67
+ 110: "Senran Kagura", // Asuka, Ikaruga, ...
68
+ 111: "To LOVE-Ru", // Lala Satalin Deviluke, ...
69
+ 112: "Black Rock Shooter", // BLACK★ROCK SHOOTER, DEAD MASTER
70
+ 113: "Atelier Yumia", // Yumia Liessfeldt, ...
71
+ 114: "DanMachi", // Hestia, Ryu Lion
72
+ 115: "Date A Live", // Tohka Yatogami, ...
73
+ 117: "NieR:Automata", // A2, 2B (EN 9.3.384)
62
74
  };
63
75
  /** Look up a nationality code; falls back to "Universal". */
64
76
  export function nationalityName(code) {
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/translate/enums.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,kDAAkD;AAClD,MAAM,CAAC,MAAM,UAAU,GAA8E;IACnG,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,YAAY;CAChB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,UAAmB;IAC5D,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,MAAM,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC;QACpC,IAAI,MAAM,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC;IACtC,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC;AACxC,CAAC;AAED,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,2EAA2E;AAC3E,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,aAAa;IAChB,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,eAAe;IAClB,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,eAAe;IAClB,CAAC,EAAE,iBAAiB;IACpB,CAAC,EAAE,qBAAqB;IACxB,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,iBAAiB;IACpB,EAAE,EAAE,gBAAgB;IACpB,EAAE,EAAE,mBAAmB;IACvB,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,WAAW;IACf,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,gBAAgB;IACrB,GAAG,EAAE,gBAAgB;IACrB,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,eAAe;CACrB,CAAC;AAEF,6DAA6D;AAC7D,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC;AAC9C,CAAC;AAED,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,eAAe,GAA8C;IACxE,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,QAAQ;CACZ,CAAC;AAEF,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;AACzC,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAgD;IAC9E,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS,EAAI,yBAAyB;IACzC,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,SAAS,EAAI,2BAA2B;IAC3C,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,OAAO;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,SAAS,EAAG,6BAA6B;CAC9C,CAAC;AAEF,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACzD,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,cAAc;IACjB,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,SAAS;IACZ,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,SAAS;CACd,CAAC"}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/translate/enums.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.1",
3
+ "version": "0.1.3",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -17,6 +17,7 @@
17
17
  ],
18
18
  "scripts": {
19
19
  "build": "tsc -p tsconfig.build.json && tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json",
20
+ "convert:lua": "python3 -I scripts/lua2json.py upstream/azurlane-lua upstream/azurlane-data --regions EN,CN,JP",
20
21
  "build:data": "tsx scripts/build-data.ts",
21
22
  "verify": "tsx scripts/verify.ts",
22
23
  "test": "vitest run",