@xivdyetools/core 4.0.2 → 4.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 (49) hide show
  1. package/dist/blending/conversions.d.ts +24 -0
  2. package/dist/blending/conversions.d.ts.map +1 -1
  3. package/dist/blending/conversions.js +36 -3
  4. package/dist/blending/conversions.js.map +1 -1
  5. package/dist/constants/index.d.ts +24 -0
  6. package/dist/constants/index.d.ts.map +1 -1
  7. package/dist/constants/index.js +38 -0
  8. package/dist/constants/index.js.map +1 -1
  9. package/dist/data/locales/de.json +16 -3
  10. package/dist/data/locales/en.json +15 -2
  11. package/dist/data/locales/fr.json +15 -2
  12. package/dist/data/locales/ja.json +17 -4
  13. package/dist/data/locales/ko.json +15 -2
  14. package/dist/data/locales/zh.json +15 -2
  15. package/dist/index.d.ts +10 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +2 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/services/APIService.d.ts.map +1 -1
  20. package/dist/services/APIService.js +23 -9
  21. package/dist/services/APIService.js.map +1 -1
  22. package/dist/services/CharacterColorService.d.ts.map +1 -1
  23. package/dist/services/CharacterColorService.js +13 -2
  24. package/dist/services/CharacterColorService.js.map +1 -1
  25. package/dist/services/LocalizationService.d.ts +23 -1
  26. package/dist/services/LocalizationService.d.ts.map +1 -1
  27. package/dist/services/LocalizationService.js +28 -2
  28. package/dist/services/LocalizationService.js.map +1 -1
  29. package/dist/services/PaletteService.d.ts +6 -1
  30. package/dist/services/PaletteService.d.ts.map +1 -1
  31. package/dist/services/PaletteService.js +7 -2
  32. package/dist/services/PaletteService.js.map +1 -1
  33. package/dist/services/dye/HarmonyGenerator.d.ts +3 -1
  34. package/dist/services/dye/HarmonyGenerator.d.ts.map +1 -1
  35. package/dist/services/dye/HarmonyGenerator.js +41 -8
  36. package/dist/services/dye/HarmonyGenerator.js.map +1 -1
  37. package/dist/services/dye/HarmonySelector.d.ts +107 -0
  38. package/dist/services/dye/HarmonySelector.d.ts.map +1 -0
  39. package/dist/services/dye/HarmonySelector.js +176 -0
  40. package/dist/services/dye/HarmonySelector.js.map +1 -0
  41. package/dist/services/localization/TranslationProvider.d.ts +21 -6
  42. package/dist/services/localization/TranslationProvider.d.ts.map +1 -1
  43. package/dist/services/localization/TranslationProvider.js +59 -28
  44. package/dist/services/localization/TranslationProvider.js.map +1 -1
  45. package/dist/types/index.d.ts +13 -0
  46. package/dist/types/index.d.ts.map +1 -1
  47. package/dist/types/index.js +14 -1
  48. package/dist/types/index.js.map +1 -1
  49. package/package.json +3 -3
@@ -15,6 +15,30 @@ export declare function oklabToRgb(oklab: {
15
15
  a: number;
16
16
  b: number;
17
17
  }): RGB;
18
+ /**
19
+ * RGB → RYB, the exact inverse of {@link rybToRgb}.
20
+ *
21
+ * BUG-006 (2026-09-02 deep-dive): the previous implementation credited the
22
+ * leftover green to BLUE only (`b__ = (b_ + (g_ - y)) / 2`) and never added any
23
+ * of it back to yellow. Green therefore collapsed onto the blue axis: pure
24
+ * green and pure blue both mapped to `{r:0, y:0, b:1}`, so every green and teal
25
+ * that made a round trip came back blue — visibly, on the Discord bot's DEFAULT
26
+ * `/mix` and `/gradient` mode.
27
+ *
28
+ * Reducing {@link rybToRgb} to its chromatic parts (white `w` removed) gives
29
+ *
30
+ * R = r + y - min(y, b), G = y, B = b - min(y, b)
31
+ *
32
+ * which inverts to `y = G` plus two cases on whether any blue survives:
33
+ *
34
+ * - `B > 0` — blue dominates the yellow it was mixed with, so `r = R` and the
35
+ * green we owe comes back out of blue: `b = B + G`.
36
+ * - `B == 0` — all the blue was consumed making green, so red and blue trade
37
+ * against `R - G`: a surplus is red, a deficit is blue.
38
+ *
39
+ * The final rescale mirrors the forward direction's, which normalises the
40
+ * result back to the input's maximum chroma.
41
+ */
18
42
  export declare function rgbToRyb(rgb: RGB): {
19
43
  r: number;
20
44
  y: number;
@@ -1 +1 @@
1
- {"version":3,"file":"conversions.d.ts","sourceRoot":"","sources":["../../src/blending/conversions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAOhD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAyBtC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CA8BtC;AAMD,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAwBxE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAuB1E;AAMD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAwBtE;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CA0BtE;AAMD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CA8BtC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CA2BtC;AAMD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAE9E;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAM9E;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAGlD;AAMD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAiBzC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAGzC"}
1
+ {"version":3,"file":"conversions.d.ts","sourceRoot":"","sources":["../../src/blending/conversions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAOhD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAyBtC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CA8BtC;AAMD,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAwBxE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAuB1E;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CA+BtE;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CA0BtE;AAMD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CA8BtC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CA2BtC;AAMD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAE9E;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAM9E;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAGlD;AAMD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAiBzC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAGzC"}
@@ -100,6 +100,30 @@ export function oklabToRgb(oklab) {
100
100
  // ============================================================================
101
101
  // RYB (Red-Yellow-Blue, approximate)
102
102
  // ============================================================================
103
+ /**
104
+ * RGB → RYB, the exact inverse of {@link rybToRgb}.
105
+ *
106
+ * BUG-006 (2026-09-02 deep-dive): the previous implementation credited the
107
+ * leftover green to BLUE only (`b__ = (b_ + (g_ - y)) / 2`) and never added any
108
+ * of it back to yellow. Green therefore collapsed onto the blue axis: pure
109
+ * green and pure blue both mapped to `{r:0, y:0, b:1}`, so every green and teal
110
+ * that made a round trip came back blue — visibly, on the Discord bot's DEFAULT
111
+ * `/mix` and `/gradient` mode.
112
+ *
113
+ * Reducing {@link rybToRgb} to its chromatic parts (white `w` removed) gives
114
+ *
115
+ * R = r + y - min(y, b), G = y, B = b - min(y, b)
116
+ *
117
+ * which inverts to `y = G` plus two cases on whether any blue survives:
118
+ *
119
+ * - `B > 0` — blue dominates the yellow it was mixed with, so `r = R` and the
120
+ * green we owe comes back out of blue: `b = B + G`.
121
+ * - `B == 0` — all the blue was consumed making green, so red and blue trade
122
+ * against `R - G`: a surplus is red, a deficit is blue.
123
+ *
124
+ * The final rescale mirrors the forward direction's, which normalises the
125
+ * result back to the input's maximum chroma.
126
+ */
103
127
  export function rgbToRyb(rgb) {
104
128
  const r = rgb.r / 255;
105
129
  const g = rgb.g / 255;
@@ -109,9 +133,18 @@ export function rgbToRyb(rgb) {
109
133
  const g_ = g - w;
110
134
  const b_ = b - w;
111
135
  const mg = Math.max(r_, g_, b_);
112
- const y = Math.min(r_, g_);
113
- const r__ = r_ - y;
114
- const b__ = (b_ + (g_ - y)) / 2;
136
+ const y = g_;
137
+ let r__;
138
+ let b__;
139
+ if (b_ > 0) {
140
+ r__ = r_;
141
+ b__ = b_ + g_;
142
+ }
143
+ else {
144
+ const surplus = r_ - g_;
145
+ r__ = surplus >= 0 ? surplus : 0;
146
+ b__ = surplus >= 0 ? 0 : -surplus;
147
+ }
115
148
  const n = Math.max(r__, y, b__) / Math.max(mg, 0.001);
116
149
  return {
117
150
  r: r__ / Math.max(n, 0.001) + w,
@@ -1 +1 @@
1
- {"version":3,"file":"conversions.js","sourceRoot":"","sources":["../../src/blending/conversions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversions.js","sourceRoot":"","sources":["../../src/blending/conversions.ts"],"names":[],"mappings":"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"}
@@ -59,4 +59,28 @@ export declare const API_CACHE_TTL: number;
59
59
  export declare const API_CACHE_VERSION = "1.0.0";
60
60
  export declare const API_MAX_RESPONSE_SIZE: number;
61
61
  export declare const API_RATE_LIMIT_DELAY = 200;
62
+ /**
63
+ * The hue offset, in degrees, each harmony type asks for — THE table.
64
+ *
65
+ * BUG-022 (deep dive 2026-09-02): og-worker carried a private copy that
66
+ * diverged from the page's in three of the ten rows, so the card unfurled for
67
+ * a share link drew dyes the page it opened never shows: `analogous` gained a
68
+ * 180° complement band, `compound` was a different scheme entirely
69
+ * (`[30,150,210]` vs `[30,180,330]`), and `shades` was missing altogether and
70
+ * silently fell through to a nearest-dye path. This table is the web app's,
71
+ * which is what a reader actually sees after clicking; `analogous` also
72
+ * matches `HarmonyGenerator.findAnalogousDyes`'s `[angle, -angle]`.
73
+ *
74
+ * 330 ≡ -30 and 345 ≡ -15; the positive spellings are kept because that is
75
+ * how the page has always expressed them.
76
+ *
77
+ * NOTE: `@xivdyetools/bot-logic`'s own `IDEAL_OFFSETS` still carries the old
78
+ * `analogous: [30, -30, 180]` and knows neither `compound` nor `shades`.
79
+ * That is a divergence, not this bug: the bot's embed and its card agree with
80
+ * each other, and reconciling them changes what `/harmony` returns for every
81
+ * user — a product decision, filed rather than folded in here.
82
+ *
83
+ * @public published `@xivdyetools/core` API.
84
+ */
85
+ export declare const HARMONY_OFFSETS: Record<string, number[]>;
62
86
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAM7D;;GAEG;AACH,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,OAAO,MAAM,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,OAAO,MAAM,CAAC;AAC3B,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,SAAS,MAAM,CAAC;AAY7B;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBAqB9B,CAAC;AAMF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBAqB9B,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,QAAQ;;CAEX,CAAC;AAMX;;GAEG;AACH,eAAO,MAAM,oBAAoB,mCAAmC,CAAC;AACrE,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAC7C,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,aAAa,QAAgB,CAAC;AAC3C,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,eAAO,MAAM,qBAAqB,QAAc,CAAC;AACjD,eAAO,MAAM,oBAAoB,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAM7D;;GAEG;AACH,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,OAAO,MAAM,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,OAAO,MAAM,CAAC;AAC3B,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,SAAS,MAAM,CAAC;AAY7B;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBAqB9B,CAAC;AAMF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBAqB9B,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,QAAQ;;CAEX,CAAC;AAMX;;GAEG;AACH,eAAO,MAAM,oBAAoB,mCAAmC,CAAC;AACrE,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAC7C,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,aAAa,QAAgB,CAAC;AAC3C,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,eAAO,MAAM,qBAAqB,QAAc,CAAC;AACjD,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAMxC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAWpD,CAAC"}
@@ -120,4 +120,42 @@ export const API_CACHE_TTL = 5 * 60 * 1000; // 5 minutes
120
120
  export const API_CACHE_VERSION = '1.0.0'; // Increment to invalidate all cached data
121
121
  export const API_MAX_RESPONSE_SIZE = 1024 * 1024; // 1 MB maximum response size
122
122
  export const API_RATE_LIMIT_DELAY = 200; // milliseconds between requests
123
+ // ============================================================================
124
+ // Harmony Hue Offsets
125
+ // ============================================================================
126
+ /**
127
+ * The hue offset, in degrees, each harmony type asks for — THE table.
128
+ *
129
+ * BUG-022 (deep dive 2026-09-02): og-worker carried a private copy that
130
+ * diverged from the page's in three of the ten rows, so the card unfurled for
131
+ * a share link drew dyes the page it opened never shows: `analogous` gained a
132
+ * 180° complement band, `compound` was a different scheme entirely
133
+ * (`[30,150,210]` vs `[30,180,330]`), and `shades` was missing altogether and
134
+ * silently fell through to a nearest-dye path. This table is the web app's,
135
+ * which is what a reader actually sees after clicking; `analogous` also
136
+ * matches `HarmonyGenerator.findAnalogousDyes`'s `[angle, -angle]`.
137
+ *
138
+ * 330 ≡ -30 and 345 ≡ -15; the positive spellings are kept because that is
139
+ * how the page has always expressed them.
140
+ *
141
+ * NOTE: `@xivdyetools/bot-logic`'s own `IDEAL_OFFSETS` still carries the old
142
+ * `analogous: [30, -30, 180]` and knows neither `compound` nor `shades`.
143
+ * That is a divergence, not this bug: the bot's embed and its card agree with
144
+ * each other, and reconciling them changes what `/harmony` returns for every
145
+ * user — a product decision, filed rather than folded in here.
146
+ *
147
+ * @public published `@xivdyetools/core` API.
148
+ */
149
+ export const HARMONY_OFFSETS = {
150
+ complementary: [180],
151
+ analogous: [30, 330],
152
+ triadic: [120, 240],
153
+ 'split-complementary': [150, 210],
154
+ tetradic: [60, 180, 240],
155
+ 'inverted-tetradic': [120, 180, 300],
156
+ square: [90, 180, 270],
157
+ monochromatic: [0],
158
+ compound: [30, 180, 330],
159
+ shades: [15, 345],
160
+ };
123
161
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  "locale": "de",
3
3
  "meta": {
4
4
  "version": "1.0.0",
5
- "generated": "2026-08-18T19:07:42.757Z",
5
+ "generated": "2026-09-03T12:01:42.834Z",
6
6
  "dyeCount": 125
7
7
  },
8
8
  "labels": {
@@ -127,7 +127,7 @@
127
127
  "30120": "Dragoonblauer",
128
128
  "30121": "Cyanblauer",
129
129
  "30122": "Cermetgrauer",
130
- "30123": "Perlmutt-",
130
+ "30123": "Perlmutt",
131
131
  "30124": "Metallic messingfarbener",
132
132
  "48163": "Neonpinker",
133
133
  "48164": "Knalloranger",
@@ -246,5 +246,18 @@
246
246
  "theLost": "Losgesagter",
247
247
  "rava": "Rava-Viera",
248
248
  "veena": "Veena-Viera"
249
+ },
250
+ "facewearColors": {
251
+ "silver": "Silber",
252
+ "gold": "Gold",
253
+ "black": "Schwarz",
254
+ "white": "Weiß",
255
+ "grey": "Grau",
256
+ "red": "Rot",
257
+ "blue": "Blau",
258
+ "green": "Grün",
259
+ "brass": "Messing",
260
+ "purple": "Violett",
261
+ "brown": "Braun"
249
262
  }
250
- }
263
+ }
@@ -2,7 +2,7 @@
2
2
  "locale": "en",
3
3
  "meta": {
4
4
  "version": "1.0.0",
5
- "generated": "2026-08-18T19:07:42.753Z",
5
+ "generated": "2026-09-03T12:01:42.830Z",
6
6
  "dyeCount": 125
7
7
  },
8
8
  "labels": {
@@ -246,5 +246,18 @@
246
246
  "theLost": "The Lost",
247
247
  "rava": "Rava",
248
248
  "veena": "Veena"
249
+ },
250
+ "facewearColors": {
251
+ "silver": "Silver",
252
+ "gold": "Gold",
253
+ "black": "Black",
254
+ "white": "White",
255
+ "grey": "Grey",
256
+ "red": "Red",
257
+ "blue": "Blue",
258
+ "green": "Green",
259
+ "brass": "Brass",
260
+ "purple": "Purple",
261
+ "brown": "Brown"
249
262
  }
250
- }
263
+ }
@@ -2,7 +2,7 @@
2
2
  "locale": "fr",
3
3
  "meta": {
4
4
  "version": "1.0.0",
5
- "generated": "2026-08-18T19:07:42.758Z",
5
+ "generated": "2026-09-03T12:01:42.835Z",
6
6
  "dyeCount": 125
7
7
  },
8
8
  "labels": {
@@ -246,5 +246,18 @@
246
246
  "theLost": "Égaré",
247
247
  "rava": "Rava",
248
248
  "veena": "Veena"
249
+ },
250
+ "facewearColors": {
251
+ "silver": "Argent",
252
+ "gold": "Or",
253
+ "black": "Noir",
254
+ "white": "Blanc",
255
+ "grey": "Gris",
256
+ "red": "Rouge",
257
+ "blue": "Bleu",
258
+ "green": "Vert",
259
+ "brass": "Laiton",
260
+ "purple": "Violet",
261
+ "brown": "Marron"
249
262
  }
250
- }
263
+ }
@@ -2,7 +2,7 @@
2
2
  "locale": "ja",
3
3
  "meta": {
4
4
  "version": "1.0.0",
5
- "generated": "2026-08-18T19:07:42.755Z",
5
+ "generated": "2026-09-03T12:01:42.833Z",
6
6
  "dyeCount": 125
7
7
  },
8
8
  "labels": {
@@ -142,7 +142,7 @@
142
142
  "48227": "カーマインレッド"
143
143
  },
144
144
  "categories": {
145
- "Neutral": "ニュートラル",
145
+ "Neutral": "無彩色系",
146
146
  "Reds": "赤系",
147
147
  "Blues": "青系",
148
148
  "Browns": "茶系",
@@ -153,7 +153,7 @@
153
153
  "Facewear": "フェイスウェア"
154
154
  },
155
155
  "acquisitions": {
156
- "Dye Vendor": "染料販売業者",
156
+ "Dye Vendor": "染色師",
157
157
  "Crafting": "製作",
158
158
  "Cosmic Exploration": "コスモエクスプローラー",
159
159
  "Cosmic Fortunes": "コスモフォーチュン",
@@ -246,5 +246,18 @@
246
246
  "theLost": "ロスト",
247
247
  "rava": "ラヴァ・ヴィエラ",
248
248
  "veena": "ヴィナ・ヴィエラ"
249
+ },
250
+ "facewearColors": {
251
+ "silver": "シルバー",
252
+ "gold": "ゴールド",
253
+ "black": "ブラック",
254
+ "white": "ホワイト",
255
+ "grey": "グレー",
256
+ "red": "レッド",
257
+ "blue": "ブルー",
258
+ "green": "グリーン",
259
+ "brass": "ブラス",
260
+ "purple": "パープル",
261
+ "brown": "ブラウン"
249
262
  }
250
- }
263
+ }
@@ -2,7 +2,7 @@
2
2
  "locale": "ko",
3
3
  "meta": {
4
4
  "version": "1.0.0",
5
- "generated": "2026-08-18T19:07:42.759Z",
5
+ "generated": "2026-09-03T12:01:42.836Z",
6
6
  "dyeCount": 125
7
7
  },
8
8
  "labels": {
@@ -246,5 +246,18 @@
246
246
  "theLost": "로스트",
247
247
  "rava": "라바",
248
248
  "veena": "비나"
249
+ },
250
+ "facewearColors": {
251
+ "silver": "은색",
252
+ "gold": "금색",
253
+ "black": "검은색",
254
+ "white": "흰색",
255
+ "grey": "회색",
256
+ "red": "빨간색",
257
+ "blue": "파란색",
258
+ "green": "초록색",
259
+ "brass": "황동색",
260
+ "purple": "보라색",
261
+ "brown": "갈색"
249
262
  }
250
- }
263
+ }
@@ -2,7 +2,7 @@
2
2
  "locale": "zh",
3
3
  "meta": {
4
4
  "version": "1.0.0",
5
- "generated": "2026-08-18T19:07:42.760Z",
5
+ "generated": "2026-09-03T12:01:42.837Z",
6
6
  "dyeCount": 125
7
7
  },
8
8
  "labels": {
@@ -246,5 +246,18 @@
246
246
  "theLost": "迷失之民",
247
247
  "rava": "拉瓦族",
248
248
  "veena": "维纳族"
249
+ },
250
+ "facewearColors": {
251
+ "silver": "银色",
252
+ "gold": "金色",
253
+ "black": "黑色",
254
+ "white": "白色",
255
+ "grey": "灰色",
256
+ "red": "红色",
257
+ "blue": "蓝色",
258
+ "green": "绿色",
259
+ "brass": "黄铜色",
260
+ "purple": "紫色",
261
+ "brown": "棕色"
249
262
  }
250
- }
263
+ }
package/dist/index.d.ts CHANGED
@@ -26,6 +26,15 @@ export type { MatchingMethod } from './types/index.js';
26
26
  export type { HarmonyOptions,
27
27
  /** @public */
28
28
  HarmonyMatchingAlgorithm, HarmonyColorSpace, } from './services/dye/HarmonyGenerator.js';
29
+ /**
30
+ * Harmony slot selection — the ONE implementation the page, the bot and the OG
31
+ * card share. Before this, the page walked HARMONY_OFFSETS with an
32
+ * S/V-preserving target while the bot called a named find*Dyes() per type, and
33
+ * the two disagreed for 89-100% of base dyes on every harmony type.
34
+ */
35
+ export type { HarmonySelectionConfig,
36
+ /** @public */ HarmonySelectionOptions, HarmonySlot, } from './services/dye/HarmonySelector.js';
37
+ export { generateHarmonySlots, isKnownHarmonyType, } from './services/dye/HarmonySelector.js';
29
38
  export type { /** @public */ DeltaEFormula } from './services/color/ColorConverter.js';
30
39
  export type { /** @public */ RYB } from './services/ColorService.js';
31
40
  export type { FindClosestOptions, FindWithinDistanceOptions } from './services/dye/DyeSearch.js';
@@ -143,7 +152,7 @@ API_CACHE_VERSION,
143
152
  /** @public */
144
153
  API_MAX_RESPONSE_SIZE,
145
154
  /** @public */
146
- API_RATE_LIMIT_DELAY, } from './constants/index.js';
155
+ API_RATE_LIMIT_DELAY, HARMONY_OFFSETS, } from './constants/index.js';
147
156
  export {
148
157
  /** @public */
149
158
  clamp,
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -21,6 +21,7 @@ export { TranslationProvider } from './services/localization/TranslationProvider
21
21
  export { PresetService } from './services/PresetService.js';
22
22
  export { PaletteService } from './services/PaletteService.js';
23
23
  export { CharacterColorService, } from './services/CharacterColorService.js';
24
+ export { generateHarmonySlots, isKnownHarmonyType, } from './services/dye/HarmonySelector.js';
24
25
  // Dye filtering
25
26
  export { isDyeExcluded, filterDyes, hasActiveFilters, EXPENSIVE_DYE_IDS, VENDOR_ACQUISITIONS, CRAFT_ACQUISITIONS, } from './services/dye/DyeFilter.js';
26
27
  export {
@@ -108,7 +109,7 @@ API_CACHE_VERSION,
108
109
  /** @public */
109
110
  API_MAX_RESPONSE_SIZE,
110
111
  /** @public */
111
- API_RATE_LIMIT_DELAY, } from './constants/index.js';
112
+ API_RATE_LIMIT_DELAY, HARMONY_OFFSETS, } from './constants/index.js';
112
113
  // Utils
113
114
  export {
114
115
  /** @public */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"APIService.d.ts","sourceRoot":"","sources":["../../src/services/APIService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"APIService.d.ts","sourceRoot":"","sources":["../../src/services/APIService.ts"],"names":[],"mappings":"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"}
@@ -691,27 +691,41 @@ export class APIService {
691
691
  * Uses injected fetch client
692
692
  */
693
693
  async isAPIAvailable() {
694
+ // BUG-057: this was the only fetch in the file without a timeout, so an
695
+ // upstream that accepts the connection and then stalls left the
696
+ // availability probe hanging indefinitely — the one call whose entire job
697
+ // is to answer quickly. Every other request goes through fetchWithTimeout,
698
+ // which is not reusable here because it also parses a JSON body.
699
+ const controller = new AbortController();
700
+ const timeoutId = setTimeout(() => controller.abort(), UNIVERSALIS_API_TIMEOUT);
694
701
  try {
695
- const response = await this.fetchClient.fetch(`${this.baseUrl}/data-centers`);
702
+ const response = await this.fetchClient.fetch(`${this.baseUrl}/data-centers`, {
703
+ signal: controller.signal,
704
+ });
696
705
  return response.ok;
697
706
  }
698
707
  catch {
699
708
  return false;
700
709
  }
710
+ finally {
711
+ clearTimeout(timeoutId);
712
+ }
701
713
  }
702
714
  /**
703
715
  * Get API status information
704
716
  */
705
717
  async getAPIStatus() {
718
+ // core-data-15: this used to wrap the call in a try/catch returning
719
+ // `{ available: false, latency: -1 }`. That branch was UNREACHABLE:
720
+ // `isAPIAvailable()` has its own catch-all returning `false`, so it cannot
721
+ // reject. The only test that reached it did so by mocking `isAPIAvailable`
722
+ // to reject, which proves the dead branch works rather than that anything
723
+ // can get to it -- and the sentinel latency of -1 would have masked a real
724
+ // failure as a value rather than surfacing it. Removed: if
725
+ // `isAPIAvailable` ever does start throwing, the caller should see it.
706
726
  const start = Date.now();
707
- try {
708
- const available = await this.isAPIAvailable();
709
- const latency = Date.now() - start;
710
- return { available, latency };
711
- }
712
- catch {
713
- return { available: false, latency: -1 };
714
- }
727
+ const available = await this.isAPIAvailable();
728
+ return { available, latency: Date.now() - start };
715
729
  }
716
730
  // ============================================================================
717
731
  // Utility Methods