@xivdyetools/core 1.12.6 → 1.15.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 (47) hide show
  1. package/dist/data/character_colors/index.json +40 -0
  2. package/dist/data/character_colors/race_specific/hair_colors.json +55394 -0
  3. package/dist/data/character_colors/race_specific/skin_colors.json +55394 -0
  4. package/dist/data/character_colors/shared/eye_colors.json +1730 -0
  5. package/dist/data/character_colors/shared/face_paint_dark.json +866 -0
  6. package/dist/data/character_colors/shared/face_paint_light.json +866 -0
  7. package/dist/data/character_colors/shared/highlight_colors.json +1730 -0
  8. package/dist/data/character_colors/shared/lip_colors_dark.json +866 -0
  9. package/dist/data/character_colors/shared/lip_colors_light.json +866 -0
  10. package/dist/data/character_colors/shared/tattoo_colors.json +1730 -0
  11. package/dist/data/locales/de.json +1 -1
  12. package/dist/data/locales/en.json +1 -1
  13. package/dist/data/locales/fr.json +1 -1
  14. package/dist/data/locales/ja.json +1 -1
  15. package/dist/data/locales/ko.json +1 -1
  16. package/dist/data/locales/zh.json +1 -1
  17. package/dist/index.d.ts +16 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +17 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/services/APIService.d.ts +43 -0
  22. package/dist/services/APIService.d.ts.map +1 -1
  23. package/dist/services/APIService.js +86 -87
  24. package/dist/services/APIService.js.map +1 -1
  25. package/dist/services/CharacterColorService.d.ts +75 -11
  26. package/dist/services/CharacterColorService.d.ts.map +1 -1
  27. package/dist/services/CharacterColorService.js +167 -32
  28. package/dist/services/CharacterColorService.js.map +1 -1
  29. package/dist/services/DyeService.d.ts +21 -6
  30. package/dist/services/DyeService.d.ts.map +1 -1
  31. package/dist/services/DyeService.js +21 -8
  32. package/dist/services/DyeService.js.map +1 -1
  33. package/dist/services/dye/DyeDatabase.d.ts.map +1 -1
  34. package/dist/services/dye/DyeDatabase.js +28 -20
  35. package/dist/services/dye/DyeDatabase.js.map +1 -1
  36. package/dist/services/dye/DyeSearch.d.ts +12 -3
  37. package/dist/services/dye/DyeSearch.d.ts.map +1 -1
  38. package/dist/services/dye/DyeSearch.js +73 -15
  39. package/dist/services/dye/DyeSearch.js.map +1 -1
  40. package/dist/types/index.d.ts.map +1 -1
  41. package/dist/types/index.js.map +1 -1
  42. package/dist/utils/kd-tree.d.ts.map +1 -1
  43. package/dist/utils/kd-tree.js +6 -4
  44. package/dist/utils/kd-tree.js.map +1 -1
  45. package/dist/version.d.ts +1 -1
  46. package/dist/version.js +1 -1
  47. package/package.json +3 -3
@@ -2,7 +2,7 @@
2
2
  "locale": "de",
3
3
  "meta": {
4
4
  "version": "1.0.0",
5
- "generated": "2026-01-19T03:15:11.863Z",
5
+ "generated": "2026-01-20T05:10:08.025Z",
6
6
  "dyeCount": 125
7
7
  },
8
8
  "labels": {
@@ -2,7 +2,7 @@
2
2
  "locale": "en",
3
3
  "meta": {
4
4
  "version": "1.0.0",
5
- "generated": "2026-01-19T03:15:11.860Z",
5
+ "generated": "2026-01-20T05:10:08.022Z",
6
6
  "dyeCount": 125
7
7
  },
8
8
  "labels": {
@@ -2,7 +2,7 @@
2
2
  "locale": "fr",
3
3
  "meta": {
4
4
  "version": "1.0.0",
5
- "generated": "2026-01-19T03:15:11.864Z",
5
+ "generated": "2026-01-20T05:10:08.026Z",
6
6
  "dyeCount": 125
7
7
  },
8
8
  "labels": {
@@ -2,7 +2,7 @@
2
2
  "locale": "ja",
3
3
  "meta": {
4
4
  "version": "1.0.0",
5
- "generated": "2026-01-19T03:15:11.862Z",
5
+ "generated": "2026-01-20T05:10:08.024Z",
6
6
  "dyeCount": 125
7
7
  },
8
8
  "labels": {
@@ -2,7 +2,7 @@
2
2
  "locale": "ko",
3
3
  "meta": {
4
4
  "version": "1.0.0",
5
- "generated": "2026-01-19T03:15:11.865Z",
5
+ "generated": "2026-01-20T05:10:08.026Z",
6
6
  "dyeCount": 125
7
7
  },
8
8
  "labels": {
@@ -2,7 +2,7 @@
2
2
  "locale": "zh",
3
3
  "meta": {
4
4
  "version": "1.0.0",
5
- "generated": "2026-01-19T03:15:11.866Z",
5
+ "generated": "2026-01-20T05:10:08.027Z",
6
6
  "dyeCount": 125
7
7
  },
8
8
  "labels": {
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { ColorService } from './services/ColorService.js';
2
+ export { ColorConverter } from './services/color/ColorConverter.js';
2
3
  export { DyeService } from './services/DyeService.js';
3
4
  export { APIService, MemoryCacheBackend } from './services/APIService.js';
4
5
  export type { ICacheBackend, APIServiceOptions } from './services/APIService.js';
@@ -6,7 +7,7 @@ export { LocalizationService } from './services/LocalizationService.js';
6
7
  export { PresetService } from './services/PresetService.js';
7
8
  export { PaletteService } from './services/PaletteService.js';
8
9
  export type { PaletteExtractionOptions, ExtractedColor, PaletteMatch, PaletteServiceOptions, } from './services/PaletteService.js';
9
- export { CharacterColorService } from './services/CharacterColorService.js';
10
+ export { CharacterColorService, type CharacterMatchOptions, } from './services/CharacterColorService.js';
10
11
  export type { Dye, LocalizedDye, RGB, HSV, LAB, HexColor, VisionType, Matrix3x3, ColorblindMatrices, ErrorSeverity, PriceData, CachedData, LocaleCode, TranslationKey, HarmonyTypeKey, JobKey, GrandCompanyKey, LocaleData, LocalePreference, Logger, PresetCategory, CategoryMeta, PresetPalette, ResolvedPreset, PresetData, PresetStatus, CommunityPreset, PresetSubmission, PresetListResponse, PresetSubmitResponse, VoteResponse, PresetFilters, CharacterColor, CharacterColorMatch, SubRace, Gender, Race, MatchingMethod, OklchWeights, MatchingConfig, } from './types/index.js';
11
12
  export type { HarmonyOptions, HarmonyMatchingAlgorithm } from './services/dye/HarmonyGenerator.js';
12
13
  export type { DeltaEFormula } from './services/color/ColorConverter.js';
@@ -17,6 +18,20 @@ export { RGB_MIN, RGB_MAX, HUE_MIN, HUE_MAX, SATURATION_MIN, SATURATION_MAX, VAL
17
18
  export { clamp, lerp, round, distance, unique, groupBy, sortByProperty, filterNulls, isValidHexColor, isValidRGB, isValidHSV, isString, isNumber, isArray, isObject, isNullish, sleep, retry, isAbortError, generateChecksum, } from './utils/index.js';
18
19
  export { default as dyeDatabase } from './data/colors_xiv.json';
19
20
  export { default as presetData } from './data/presets.json';
21
+ export { default as characterColorMeta } from './data/character_colors/index.json';
22
+ export { default as eyeColorsData } from './data/character_colors/shared/eye_colors.json';
23
+ export { default as highlightColorsData } from './data/character_colors/shared/highlight_colors.json';
24
+ export { default as lipColorsDarkData } from './data/character_colors/shared/lip_colors_dark.json';
25
+ export { default as lipColorsLightData } from './data/character_colors/shared/lip_colors_light.json';
26
+ export { default as tattooColorsData } from './data/character_colors/shared/tattoo_colors.json';
27
+ export { default as facePaintDarkData } from './data/character_colors/shared/face_paint_dark.json';
28
+ export { default as facePaintLightData } from './data/character_colors/shared/face_paint_light.json';
29
+ export { default as hairColorsData } from './data/character_colors/race_specific/hair_colors.json';
30
+ export { default as skinColorsData } from './data/character_colors/race_specific/skin_colors.json';
31
+ /**
32
+ * @deprecated Use the CharacterColorService instead, or import individual
33
+ * color data exports (eyeColorsData, hairColorsData, etc.) for tree-shaking.
34
+ */
20
35
  export { default as characterColorData } from './data/character_colors.json';
21
36
  export { VERSION } from './version.js';
22
37
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,YAAY,EACV,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAG5E,YAAY,EACV,GAAG,EACH,YAAY,EACZ,GAAG,EACH,GAAG,EACH,GAAG,EACH,QAAQ,EACR,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,MAAM,EACN,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,MAAM,EAEN,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EAEV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,aAAa,EAEb,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,MAAM,EACN,IAAI,EAEJ,cAAc,EACd,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAGnG,YAAY,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,YAAY,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAGtD,YAAY,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACjG,OAAO,EACL,QAAQ,EACR,SAAS,EACT,cAAc,EACd,UAAU,EACV,aAAa,EAEb,aAAa,EACb,eAAe,EACf,qBAAqB,EAErB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,cAAc,EACd,cAAc,EACd,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,MAAM,EACN,OAAO,EACP,cAAc,EACd,WAAW,EACX,eAAe,EACf,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,SAAS,EACT,KAAK,EACL,KAAK,EACL,YAAY,EACZ,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAuB;AACtF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAuB;AAClF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAuB;AAGnG,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,11 +1,12 @@
1
1
  // Services
2
2
  export { ColorService } from './services/ColorService.js';
3
+ export { ColorConverter } from './services/color/ColorConverter.js';
3
4
  export { DyeService } from './services/DyeService.js';
4
5
  export { APIService, MemoryCacheBackend } from './services/APIService.js';
5
6
  export { LocalizationService } from './services/LocalizationService.js';
6
7
  export { PresetService } from './services/PresetService.js';
7
8
  export { PaletteService } from './services/PaletteService.js';
8
- export { CharacterColorService } from './services/CharacterColorService.js';
9
+ export { CharacterColorService, } from './services/CharacterColorService.js';
9
10
  export { AppError, ErrorCode, createHexColor, NoOpLogger, ConsoleLogger,
10
11
  // Character constants
11
12
  RACE_SUBRACES, SUBRACE_TO_RACE, COLOR_GRID_DIMENSIONS,
@@ -18,6 +19,21 @@ export { clamp, lerp, round, distance, unique, groupBy, sortByProperty, filterNu
18
19
  // Data (for browser environments - to be injected)
19
20
  export { default as dyeDatabase } from './data/colors_xiv.json' with { type: 'json' };
20
21
  export { default as presetData } from './data/presets.json' with { type: 'json' };
22
+ // Character color data - individual exports for tree-shaking
23
+ export { default as characterColorMeta } from './data/character_colors/index.json' with { type: 'json' };
24
+ export { default as eyeColorsData } from './data/character_colors/shared/eye_colors.json' with { type: 'json' };
25
+ export { default as highlightColorsData } from './data/character_colors/shared/highlight_colors.json' with { type: 'json' };
26
+ export { default as lipColorsDarkData } from './data/character_colors/shared/lip_colors_dark.json' with { type: 'json' };
27
+ export { default as lipColorsLightData } from './data/character_colors/shared/lip_colors_light.json' with { type: 'json' };
28
+ export { default as tattooColorsData } from './data/character_colors/shared/tattoo_colors.json' with { type: 'json' };
29
+ export { default as facePaintDarkData } from './data/character_colors/shared/face_paint_dark.json' with { type: 'json' };
30
+ export { default as facePaintLightData } from './data/character_colors/shared/face_paint_light.json' with { type: 'json' };
31
+ export { default as hairColorsData } from './data/character_colors/race_specific/hair_colors.json' with { type: 'json' };
32
+ export { default as skinColorsData } from './data/character_colors/race_specific/skin_colors.json' with { type: 'json' };
33
+ /**
34
+ * @deprecated Use the CharacterColorService instead, or import individual
35
+ * color data exports (eyeColorsData, hairColorsData, etc.) for tree-shaking.
36
+ */
21
37
  export { default as characterColorData } from './data/character_colors.json' with { type: 'json' };
22
38
  // Version (auto-generated from package.json during build)
23
39
  export { VERSION } from './version.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAO9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AA2D5E,OAAO,EACL,QAAQ,EACR,SAAS,EACT,cAAc,EACd,UAAU,EACV,aAAa;AACb,sBAAsB;AACtB,aAAa,EACb,eAAe,EACf,qBAAqB;AACrB,yBAAyB;AACzB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,YAAY;AACZ,OAAO,EACL,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,cAAc,EACd,cAAc,EACd,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,QAAQ;AACR,OAAO,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,MAAM,EACN,OAAO,EACP,cAAc,EACd,WAAW,EACX,eAAe,EACf,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,SAAS,EACT,KAAK,EACL,KAAK,EACL,YAAY,EACZ,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,mDAAmD;AACnD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEnG,0DAA0D;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAO9D,OAAO,EACL,qBAAqB,GAEtB,MAAM,qCAAqC,CAAC;AA2D7C,OAAO,EACL,QAAQ,EACR,SAAS,EACT,cAAc,EACd,UAAU,EACV,aAAa;AACb,sBAAsB;AACtB,aAAa,EACb,eAAe,EACf,qBAAqB;AACrB,yBAAyB;AACzB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,YAAY;AACZ,OAAO,EACL,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,cAAc,EACd,cAAc,EACd,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,QAAQ;AACR,OAAO,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,MAAM,EACN,OAAO,EACP,cAAc,EACd,WAAW,EACX,eAAe,EACf,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,SAAS,EACT,KAAK,EACL,KAAK,EACL,YAAY,EACZ,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,mDAAmD;AACnD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAElF,6DAA6D;AAC7D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,oCAAoC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACzG,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gDAAgD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChH,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sDAAsD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5H,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qDAAqD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACzH,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sDAAsD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC3H,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,mDAAmD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACtH,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qDAAqD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACzH,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sDAAsD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC3H,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,wDAAwD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACzH,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,wDAAwD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEzH;;;GAGG;AACH,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEnG,0DAA0D;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -92,6 +92,40 @@ export declare class MemoryCacheBackend implements ICacheBackend {
92
92
  clear(): void;
93
93
  keys(): string[];
94
94
  }
95
+ /**
96
+ * Structure for price listing from a specific scope (DC, world, or region)
97
+ */
98
+ interface PriceListing {
99
+ price: number;
100
+ worldId?: number;
101
+ }
102
+ /**
103
+ * Structure for min listing data from Universalis API
104
+ * Contains optional price listings at different scope levels
105
+ */
106
+ interface MinListingData {
107
+ dc?: PriceListing;
108
+ world?: PriceListing;
109
+ region?: PriceListing;
110
+ }
111
+ /**
112
+ * Structure for quality-specific data (NQ or HQ)
113
+ */
114
+ interface QualityData {
115
+ minListing?: MinListingData;
116
+ }
117
+ /**
118
+ * Structure for a single item result from Universalis API
119
+ * CORE-REF-002 FIX: Extracted type to avoid duplication in parseApiResponse/parseBatchApiResponse
120
+ *
121
+ * Note: The `hq` field is retained for API compatibility with Universalis responses,
122
+ * but is not used for dye price extraction since dyes are always NQ in FFXIV.
123
+ */
124
+ export interface UniversalisItemResult {
125
+ itemId: number;
126
+ nq?: QualityData;
127
+ hq?: QualityData;
128
+ }
95
129
  /**
96
130
  * Configuration options for APIService
97
131
  */
@@ -202,6 +236,11 @@ export declare class APIService {
202
236
  /**
203
237
  * Fetch price data for a dye from Universalis API
204
238
  * Implements caching, debouncing, and retry logic
239
+ *
240
+ * CORE-BUG-001/002 FIX: Uses atomic deduplication pattern to prevent race conditions.
241
+ * The promise is stored in the map BEFORE the async operation begins, ensuring that
242
+ * concurrent calls will always see the pending request even if they arrive during
243
+ * the cache check phase.
205
244
  */
206
245
  getPriceData(itemID: number, worldID?: number, dataCenterID?: string): Promise<PriceData | null>;
207
246
  /**
@@ -220,15 +259,18 @@ export declare class APIService {
220
259
  /**
221
260
  * Fetch with timeout and size limits
222
261
  * Uses injected fetch client for better testability
262
+ * CORE-REF-002 FIX: Return type now uses UniversalisItemResult for consistency
223
263
  */
224
264
  private fetchWithTimeout;
225
265
  /**
226
266
  * Parse and validate API response
267
+ * CORE-REF-002 FIX: Now uses shared extractPriceFromApiItem() helper
227
268
  */
228
269
  private parseApiResponse;
229
270
  /**
230
271
  * Parse batch API response containing multiple items
231
272
  * Returns a Map of itemID -> PriceData for all successfully parsed items
273
+ * CORE-REF-002 FIX: Now uses shared extractPriceFromApiItem() helper
232
274
  */
233
275
  private parseBatchApiResponse;
234
276
  /**
@@ -302,4 +344,5 @@ export declare class APIService {
302
344
  changePercent: number;
303
345
  };
304
346
  }
347
+ export {};
305
348
  //# sourceMappingURL=APIService.d.ts.map
@@ -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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"}
@@ -62,6 +62,42 @@ export class MemoryCacheBackend {
62
62
  return Array.from(this.cache.keys());
63
63
  }
64
64
  }
65
+ /**
66
+ * Extract price and worldId from a Universalis API item result
67
+ * CORE-REF-002 FIX: Centralized price extraction logic used by both single and batch parsing.
68
+ *
69
+ * Priority order (NQ only - dyes in FFXIV are always Normal Quality):
70
+ * 1. Data Center price (preferred for cross-world comparison)
71
+ * 2. World price (fallback)
72
+ * 3. Region price (last resort)
73
+ *
74
+ * Note: HQ prices are intentionally not checked because dyes do not have HQ variants in FFXIV.
75
+ *
76
+ * @param result - The item result from Universalis API
77
+ * @returns Object containing price (or null) and optional worldId
78
+ */
79
+ function extractPriceFromApiItem(result) {
80
+ let price = null;
81
+ let worldId = undefined;
82
+ // Extract NQ prices only (dyes in FFXIV are always NQ - no HQ variants exist)
83
+ // Priority: DC → World → Region
84
+ if (result.nq?.minListing) {
85
+ const listing = result.nq.minListing;
86
+ if (listing.dc?.price) {
87
+ price = listing.dc.price;
88
+ worldId = listing.dc.worldId;
89
+ }
90
+ else if (listing.world?.price) {
91
+ price = listing.world.price;
92
+ worldId = listing.world.worldId;
93
+ }
94
+ else if (listing.region?.price) {
95
+ price = listing.region.price;
96
+ worldId = listing.region.worldId;
97
+ }
98
+ }
99
+ return { price, worldId };
100
+ }
65
101
  /**
66
102
  * Service for Universalis API integration
67
103
  * Handles price data fetching with caching and debouncing
@@ -215,38 +251,61 @@ export class APIService {
215
251
  /**
216
252
  * Fetch price data for a dye from Universalis API
217
253
  * Implements caching, debouncing, and retry logic
254
+ *
255
+ * CORE-BUG-001/002 FIX: Uses atomic deduplication pattern to prevent race conditions.
256
+ * The promise is stored in the map BEFORE the async operation begins, ensuring that
257
+ * concurrent calls will always see the pending request even if they arrive during
258
+ * the cache check phase.
218
259
  */
219
260
  async getPriceData(itemID, worldID, dataCenterID) {
261
+ // Build cache key first (synchronous)
262
+ const cacheKey = this.buildCacheKey(itemID, worldID, dataCenterID);
263
+ // CORE-BUG-001 FIX: Check pending requests BEFORE any async operations
264
+ // This prevents the race condition where two calls both pass the pending check
265
+ // before either sets their promise in the map
266
+ const existingRequest = this.pendingRequests.get(cacheKey);
267
+ if (existingRequest) {
268
+ this.logger.info(`Using pending request for item ${itemID}`);
269
+ return existingRequest;
270
+ }
271
+ // CORE-BUG-001 FIX: Create and store the promise SYNCHRONOUSLY before starting
272
+ // any async work. We use a deferred promise pattern to ensure the map entry
273
+ // exists before we await anything.
274
+ let resolvePromise;
275
+ const promise = new Promise((resolve) => {
276
+ resolvePromise = resolve;
277
+ // Note: We don't use reject because getPriceData returns null on error
278
+ // to maintain existing API behavior (non-throwing)
279
+ });
280
+ // Store immediately - this is synchronous and happens before any await
281
+ this.pendingRequests.set(cacheKey, promise);
220
282
  try {
221
- // Build cache key
222
- const cacheKey = this.buildCacheKey(itemID, worldID, dataCenterID);
223
- // Check cache first
283
+ // Now we can safely do async operations
224
284
  const cached = await this.getCachedPrice(cacheKey);
225
285
  if (cached) {
226
286
  this.logger.info(`Price cache hit for item ${itemID}`);
287
+ this.pendingRequests.delete(cacheKey);
288
+ resolvePromise(cached);
227
289
  return cached;
228
290
  }
229
- // Check if request is already pending (deduplication)
230
- if (this.pendingRequests.has(cacheKey)) {
231
- this.logger.info(`Using pending request for item ${itemID}`);
232
- return await this.pendingRequests.get(cacheKey);
291
+ // Fetch from API
292
+ const data = await this.fetchPriceData(itemID, worldID, dataCenterID);
293
+ // CORE-BUG-002 FIX: Always delete from pending map before resolving/rejecting
294
+ // This ensures cleanup happens in a predictable order
295
+ this.pendingRequests.delete(cacheKey);
296
+ if (data) {
297
+ await this.setCachedPrice(cacheKey, data);
233
298
  }
234
- // Create pending request
235
- const promise = this.fetchPriceData(itemID, worldID, dataCenterID).then(async (data) => {
236
- this.pendingRequests.delete(cacheKey);
237
- if (data) {
238
- await this.setCachedPrice(cacheKey, data);
239
- }
240
- return data;
241
- }, (error) => {
242
- this.pendingRequests.delete(cacheKey);
243
- throw error;
244
- });
245
- this.pendingRequests.set(cacheKey, promise);
246
- return await promise;
299
+ resolvePromise(data);
300
+ return data;
247
301
  }
248
302
  catch (error) {
303
+ // CORE-BUG-002 FIX: Clean up on error path as well
304
+ this.pendingRequests.delete(cacheKey);
249
305
  this.logger.error('Failed to fetch price data', error);
306
+ // Resolve with null instead of rejecting to maintain existing behavior
307
+ // where errors return null rather than throwing
308
+ resolvePromise(null);
250
309
  return null;
251
310
  }
252
311
  }
@@ -307,6 +366,7 @@ export class APIService {
307
366
  /**
308
367
  * Fetch with timeout and size limits
309
368
  * Uses injected fetch client for better testability
369
+ * CORE-REF-002 FIX: Return type now uses UniversalisItemResult for consistency
310
370
  */
311
371
  async fetchWithTimeout(url, timeoutMs) {
312
372
  const controller = new AbortController();
@@ -347,6 +407,7 @@ export class APIService {
347
407
  }
348
408
  /**
349
409
  * Parse and validate API response
410
+ * CORE-REF-002 FIX: Now uses shared extractPriceFromApiItem() helper
350
411
  */
351
412
  parseApiResponse(data, itemID) {
352
413
  try {
@@ -370,41 +431,8 @@ export class APIService {
370
431
  this.logger.warn(`Item ID mismatch: expected ${itemID}, got ${result.itemId}`);
371
432
  return null;
372
433
  }
373
- // Try to get price and worldId from nq.minListing (prefer DC, then world, then region)
374
- let price = null;
375
- let worldId = undefined;
376
- if (result.nq?.minListing) {
377
- // Prefer data center price
378
- if (result.nq.minListing.dc?.price) {
379
- price = result.nq.minListing.dc.price;
380
- worldId = result.nq.minListing.dc.worldId;
381
- }
382
- // Fall back to world price
383
- else if (result.nq.minListing.world?.price) {
384
- price = result.nq.minListing.world.price;
385
- worldId = result.nq.minListing.world.worldId;
386
- }
387
- // Fall back to region price
388
- else if (result.nq.minListing.region?.price) {
389
- price = result.nq.minListing.region.price;
390
- worldId = result.nq.minListing.region.worldId;
391
- }
392
- }
393
- // If no NQ price, try HQ
394
- if (!price && result.hq?.minListing) {
395
- if (result.hq.minListing.dc?.price) {
396
- price = result.hq.minListing.dc.price;
397
- worldId = result.hq.minListing.dc.worldId;
398
- }
399
- else if (result.hq.minListing.world?.price) {
400
- price = result.hq.minListing.world.price;
401
- worldId = result.hq.minListing.world.worldId;
402
- }
403
- else if (result.hq.minListing.region?.price) {
404
- price = result.hq.minListing.region.price;
405
- worldId = result.hq.minListing.region.worldId;
406
- }
407
- }
434
+ // CORE-REF-002 FIX: Use shared price extraction helper
435
+ const { price, worldId } = extractPriceFromApiItem(result);
408
436
  if (!price) {
409
437
  this.logger.warn(`No price data available for item ${itemID}`);
410
438
  return null;
@@ -426,6 +454,7 @@ export class APIService {
426
454
  /**
427
455
  * Parse batch API response containing multiple items
428
456
  * Returns a Map of itemID -> PriceData for all successfully parsed items
457
+ * CORE-REF-002 FIX: Now uses shared extractPriceFromApiItem() helper
429
458
  */
430
459
  parseBatchApiResponse(data) {
431
460
  const results = new Map();
@@ -445,38 +474,8 @@ export class APIService {
445
474
  continue;
446
475
  }
447
476
  const itemID = result.itemId;
448
- // Try to get price and worldId from nq.minListing (prefer DC, then world, then region)
449
- let price = null;
450
- let worldId = undefined;
451
- if (result.nq?.minListing) {
452
- if (result.nq.minListing.dc?.price) {
453
- price = result.nq.minListing.dc.price;
454
- worldId = result.nq.minListing.dc.worldId;
455
- }
456
- else if (result.nq.minListing.world?.price) {
457
- price = result.nq.minListing.world.price;
458
- worldId = result.nq.minListing.world.worldId;
459
- }
460
- else if (result.nq.minListing.region?.price) {
461
- price = result.nq.minListing.region.price;
462
- worldId = result.nq.minListing.region.worldId;
463
- }
464
- }
465
- // If no NQ price, try HQ
466
- if (!price && result.hq?.minListing) {
467
- if (result.hq.minListing.dc?.price) {
468
- price = result.hq.minListing.dc.price;
469
- worldId = result.hq.minListing.dc.worldId;
470
- }
471
- else if (result.hq.minListing.world?.price) {
472
- price = result.hq.minListing.world.price;
473
- worldId = result.hq.minListing.world.worldId;
474
- }
475
- else if (result.hq.minListing.region?.price) {
476
- price = result.hq.minListing.region.price;
477
- worldId = result.hq.minListing.region.worldId;
478
- }
479
- }
477
+ // CORE-REF-002 FIX: Use shared price extraction helper
478
+ const { price, worldId } = extractPriceFromApiItem(result);
480
479
  if (price) {
481
480
  results.set(itemID, {
482
481
  itemID,
@@ -1 +1 @@
1
- {"version":3,"file":"APIService.js","sourceRoot":"","sources":["../../src/services/APIService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"APIService.js","sourceRoot":"","sources":["../../src/services/APIService.ts"],"names":[],"mappings":"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"}