@xivdyetools/core 1.5.6 → 1.7.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.
- package/README.md +2 -1
- package/dist/data/character_colors.json +1 -0
- package/dist/data/colors_xiv.json +272 -136
- package/dist/data/locales/de.json +1 -1
- package/dist/data/locales/en.json +1 -1
- package/dist/data/locales/fr.json +1 -1
- package/dist/data/locales/ja.json +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/services/CharacterColorService.d.ts +125 -0
- package/dist/services/CharacterColorService.d.ts.map +1 -0
- package/dist/services/CharacterColorService.js +223 -0
- package/dist/services/CharacterColorService.js.map +1 -0
- package/dist/services/dye/DyeDatabase.d.ts +23 -0
- package/dist/services/dye/DyeDatabase.d.ts.map +1 -1
- package/dist/services/dye/DyeDatabase.js +34 -0
- package/dist/services/dye/DyeDatabase.js.map +1 -1
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -6,11 +6,13 @@ export { LocalizationService } from './services/LocalizationService.js';
|
|
|
6
6
|
export { PresetService } from './services/PresetService.js';
|
|
7
7
|
export { PaletteService } from './services/PaletteService.js';
|
|
8
8
|
export type { PaletteExtractionOptions, ExtractedColor, PaletteMatch, PaletteServiceOptions, } from './services/PaletteService.js';
|
|
9
|
-
export
|
|
10
|
-
export {
|
|
9
|
+
export { CharacterColorService } from './services/CharacterColorService.js';
|
|
10
|
+
export type { Dye, LocalizedDye, RGB, HSV, 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, } from './types/index.js';
|
|
11
|
+
export { AppError, ErrorCode, createHexColor, NoOpLogger, ConsoleLogger, RACE_SUBRACES, SUBRACE_TO_RACE, COLOR_GRID_DIMENSIONS, } from './types/index.js';
|
|
11
12
|
export { RGB_MIN, RGB_MAX, HUE_MIN, HUE_MAX, SATURATION_MIN, SATURATION_MAX, VALUE_MIN, VALUE_MAX, COLOR_DISTANCE_MAX, VISION_TYPES, VISION_TYPE_LABELS, BRETTEL_MATRICES, PATTERNS, UNIVERSALIS_API_BASE, UNIVERSALIS_API_TIMEOUT, UNIVERSALIS_API_RETRY_COUNT, UNIVERSALIS_API_RETRY_DELAY, API_CACHE_TTL, API_DEBOUNCE_DELAY, API_CACHE_VERSION, API_MAX_RESPONSE_SIZE, API_RATE_LIMIT_DELAY, } from './constants/index.js';
|
|
12
13
|
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';
|
|
13
14
|
export { default as dyeDatabase } from './data/colors_xiv.json';
|
|
14
15
|
export { default as presetData } from './data/presets.json';
|
|
16
|
+
export { default as characterColorData } from './data/character_colors.json';
|
|
15
17
|
export { VERSION } from './version.js';
|
|
16
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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,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,GACL,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,QAAQ,EACR,SAAS,EACT,cAAc,EACd,UAAU,EACV,aAAa,EAEb,aAAa,EACb,eAAe,EACf,qBAAqB,GACtB,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"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,10 @@ export { APIService, MemoryCacheBackend } from './services/APIService.js';
|
|
|
5
5
|
export { LocalizationService } from './services/LocalizationService.js';
|
|
6
6
|
export { PresetService } from './services/PresetService.js';
|
|
7
7
|
export { PaletteService } from './services/PaletteService.js';
|
|
8
|
-
export {
|
|
8
|
+
export { CharacterColorService } from './services/CharacterColorService.js';
|
|
9
|
+
export { AppError, ErrorCode, createHexColor, NoOpLogger, ConsoleLogger,
|
|
10
|
+
// Character constants
|
|
11
|
+
RACE_SUBRACES, SUBRACE_TO_RACE, COLOR_GRID_DIMENSIONS, } from './types/index.js';
|
|
9
12
|
// Constants
|
|
10
13
|
export { RGB_MIN, RGB_MAX, HUE_MIN, HUE_MAX, SATURATION_MIN, SATURATION_MAX, VALUE_MIN, VALUE_MAX, COLOR_DISTANCE_MAX, VISION_TYPES, VISION_TYPE_LABELS, BRETTEL_MATRICES, PATTERNS, UNIVERSALIS_API_BASE, UNIVERSALIS_API_TIMEOUT, UNIVERSALIS_API_RETRY_COUNT, UNIVERSALIS_API_RETRY_DELAY, API_CACHE_TTL, API_DEBOUNCE_DELAY, API_CACHE_VERSION, API_MAX_RESPONSE_SIZE, API_RATE_LIMIT_DELAY, } from './constants/index.js';
|
|
11
14
|
// Utils
|
|
@@ -13,6 +16,7 @@ export { clamp, lerp, round, distance, unique, groupBy, sortByProperty, filterNu
|
|
|
13
16
|
// Data (for browser environments - to be injected)
|
|
14
17
|
export { default as dyeDatabase } from './data/colors_xiv.json' with { type: 'json' };
|
|
15
18
|
export { default as presetData } from './data/presets.json' with { type: 'json' };
|
|
19
|
+
export { default as characterColorData } from './data/character_colors.json' with { type: 'json' };
|
|
16
20
|
// Version (auto-generated from package.json during build)
|
|
17
21
|
export { VERSION } from './version.js';
|
|
18
22
|
//# sourceMappingURL=index.js.map
|
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;
|
|
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;AA4C5E,OAAO,EACL,QAAQ,EACR,SAAS,EACT,cAAc,EACd,UAAU,EACV,aAAa;AACb,sBAAsB;AACtB,aAAa,EACb,eAAe,EACf,qBAAqB,GACtB,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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @xivdyetools/core - Character Color Service
|
|
3
|
+
*
|
|
4
|
+
* Service for accessing FFXIV character customization colors and
|
|
5
|
+
* finding matching dyes for hair, eye, skin tones etc.
|
|
6
|
+
*
|
|
7
|
+
* @module services/CharacterColorService
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { CharacterColorService, DyeService, dyeDatabase } from '@xivdyetools/core';
|
|
11
|
+
*
|
|
12
|
+
* const characterColors = new CharacterColorService();
|
|
13
|
+
* const dyeService = new DyeService(dyeDatabase);
|
|
14
|
+
*
|
|
15
|
+
* // Get all eye colors
|
|
16
|
+
* const eyeColors = characterColors.getEyeColors();
|
|
17
|
+
*
|
|
18
|
+
* // Find closest dyes to an eye color
|
|
19
|
+
* const matches = characterColors.findClosestDyes(eyeColors[47], dyeService, 3);
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
import type { CharacterColor, CharacterColorMatch, SharedColorCategory, RaceSpecificColorCategory, SubRace, Gender } from '@xivdyetools/types';
|
|
23
|
+
import type { DyeService } from './DyeService.js';
|
|
24
|
+
/**
|
|
25
|
+
* Service for accessing FFXIV character customization colors
|
|
26
|
+
*/
|
|
27
|
+
export declare class CharacterColorService {
|
|
28
|
+
private data;
|
|
29
|
+
constructor();
|
|
30
|
+
/**
|
|
31
|
+
* Get all eye colors (192 colors)
|
|
32
|
+
*/
|
|
33
|
+
getEyeColors(): CharacterColor[];
|
|
34
|
+
/**
|
|
35
|
+
* Get all hair highlight colors (192 colors)
|
|
36
|
+
*/
|
|
37
|
+
getHighlightColors(): CharacterColor[];
|
|
38
|
+
/**
|
|
39
|
+
* Get all dark lip colors (96 colors)
|
|
40
|
+
*/
|
|
41
|
+
getLipColorsDark(): CharacterColor[];
|
|
42
|
+
/**
|
|
43
|
+
* Get all light lip colors (96 colors)
|
|
44
|
+
*/
|
|
45
|
+
getLipColorsLight(): CharacterColor[];
|
|
46
|
+
/**
|
|
47
|
+
* Get all tattoo/limbal ring colors (192 colors)
|
|
48
|
+
*/
|
|
49
|
+
getTattooColors(): CharacterColor[];
|
|
50
|
+
/**
|
|
51
|
+
* Get all dark face paint colors (96 colors)
|
|
52
|
+
*/
|
|
53
|
+
getFacePaintColorsDark(): CharacterColor[];
|
|
54
|
+
/**
|
|
55
|
+
* Get all light face paint colors (96 colors)
|
|
56
|
+
*/
|
|
57
|
+
getFacePaintColorsLight(): CharacterColor[];
|
|
58
|
+
/**
|
|
59
|
+
* Get shared colors by category
|
|
60
|
+
*/
|
|
61
|
+
getSharedColors(category: SharedColorCategory): CharacterColor[];
|
|
62
|
+
/**
|
|
63
|
+
* Get hair colors for a specific subrace and gender (192 colors each)
|
|
64
|
+
*/
|
|
65
|
+
getHairColors(subrace: SubRace, gender: Gender): CharacterColor[];
|
|
66
|
+
/**
|
|
67
|
+
* Get skin colors for a specific subrace and gender (192 colors each)
|
|
68
|
+
*/
|
|
69
|
+
getSkinColors(subrace: SubRace, gender: Gender): CharacterColor[];
|
|
70
|
+
/**
|
|
71
|
+
* Get race-specific colors by category
|
|
72
|
+
*/
|
|
73
|
+
getRaceSpecificColors(category: RaceSpecificColorCategory, subrace: SubRace, gender: Gender): CharacterColor[];
|
|
74
|
+
/**
|
|
75
|
+
* Find the closest matching dyes to a character color
|
|
76
|
+
*
|
|
77
|
+
* @param color - The character color to match
|
|
78
|
+
* @param dyeService - DyeService instance for dye lookup
|
|
79
|
+
* @param count - Number of matches to return (default: 3)
|
|
80
|
+
* @returns Array of matches sorted by distance (closest first)
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* const eyeColor = characterColors.getEyeColors()[47];
|
|
85
|
+
* const matches = characterColors.findClosestDyes(eyeColor, dyeService, 3);
|
|
86
|
+
*
|
|
87
|
+
* console.log(matches[0].dye.name); // "Chestnut Brown"
|
|
88
|
+
* console.log(matches[0].distance); // 4.2
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
findClosestDyes(color: CharacterColor, dyeService: DyeService, count?: number): CharacterColorMatch[];
|
|
92
|
+
/**
|
|
93
|
+
* Find the single closest dye to a character color
|
|
94
|
+
*/
|
|
95
|
+
findClosestDye(color: CharacterColor, dyeService: DyeService): CharacterColorMatch | null;
|
|
96
|
+
/**
|
|
97
|
+
* Find all dyes within a color distance threshold
|
|
98
|
+
*/
|
|
99
|
+
findDyesWithinDistance(color: CharacterColor, dyeService: DyeService, maxDistance: number): CharacterColorMatch[];
|
|
100
|
+
/**
|
|
101
|
+
* Get a specific color by index from a shared category
|
|
102
|
+
*/
|
|
103
|
+
getSharedColorByIndex(category: SharedColorCategory, index: number): CharacterColor | null;
|
|
104
|
+
/**
|
|
105
|
+
* Get a specific color by index from a race-specific category
|
|
106
|
+
*/
|
|
107
|
+
getRaceSpecificColorByIndex(category: RaceSpecificColorCategory, subrace: SubRace, gender: Gender, index: number): CharacterColor | null;
|
|
108
|
+
/**
|
|
109
|
+
* Get all available subraces
|
|
110
|
+
*/
|
|
111
|
+
getAvailableSubraces(): SubRace[];
|
|
112
|
+
/**
|
|
113
|
+
* Get the data version
|
|
114
|
+
*/
|
|
115
|
+
getVersion(): string;
|
|
116
|
+
/**
|
|
117
|
+
* Get grid column count (always 8)
|
|
118
|
+
*/
|
|
119
|
+
getGridColumns(): number;
|
|
120
|
+
/**
|
|
121
|
+
* Calculate Euclidean distance in RGB space
|
|
122
|
+
*/
|
|
123
|
+
private calculateDistance;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=CharacterColorService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CharacterColorService.d.ts","sourceRoot":"","sources":["../../src/services/CharacterColorService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,OAAO,EACP,MAAM,EACP,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAqBlD;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,IAAI,CAAqB;;IAUjC;;OAEG;IACH,YAAY,IAAI,cAAc,EAAE;IAIhC;;OAEG;IACH,kBAAkB,IAAI,cAAc,EAAE;IAItC;;OAEG;IACH,gBAAgB,IAAI,cAAc,EAAE;IAIpC;;OAEG;IACH,iBAAiB,IAAI,cAAc,EAAE;IAIrC;;OAEG;IACH,eAAe,IAAI,cAAc,EAAE;IAInC;;OAEG;IACH,sBAAsB,IAAI,cAAc,EAAE;IAI1C;;OAEG;IACH,uBAAuB,IAAI,cAAc,EAAE;IAI3C;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,mBAAmB,GAAG,cAAc,EAAE;IAQhE;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE;IAIjE;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE;IAIjE;;OAEG;IACH,qBAAqB,CACnB,QAAQ,EAAE,yBAAyB,EACnC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GACb,cAAc,EAAE;IAQnB;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,CACb,KAAK,EAAE,cAAc,EACrB,UAAU,EAAE,UAAU,EACtB,KAAK,GAAE,MAAU,GAChB,mBAAmB,EAAE;IAuBxB;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,GAAG,mBAAmB,GAAG,IAAI;IAKzF;;OAEG;IACH,sBAAsB,CACpB,KAAK,EAAE,cAAc,EACrB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,MAAM,GAClB,mBAAmB,EAAE;IA2BxB;;OAEG;IACH,qBAAqB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAK1F;;OAEG;IACH,2BAA2B,CACzB,QAAQ,EAAE,yBAAyB,EACnC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,cAAc,GAAG,IAAI;IASxB;;OAEG;IACH,oBAAoB,IAAI,OAAO,EAAE;IAKjC;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,cAAc,IAAI,MAAM;IAQxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAM1B"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @xivdyetools/core - Character Color Service
|
|
3
|
+
*
|
|
4
|
+
* Service for accessing FFXIV character customization colors and
|
|
5
|
+
* finding matching dyes for hair, eye, skin tones etc.
|
|
6
|
+
*
|
|
7
|
+
* @module services/CharacterColorService
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { CharacterColorService, DyeService, dyeDatabase } from '@xivdyetools/core';
|
|
11
|
+
*
|
|
12
|
+
* const characterColors = new CharacterColorService();
|
|
13
|
+
* const dyeService = new DyeService(dyeDatabase);
|
|
14
|
+
*
|
|
15
|
+
* // Get all eye colors
|
|
16
|
+
* const eyeColors = characterColors.getEyeColors();
|
|
17
|
+
*
|
|
18
|
+
* // Find closest dyes to an eye color
|
|
19
|
+
* const matches = characterColors.findClosestDyes(eyeColors[47], dyeService, 3);
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
// Import character color data
|
|
23
|
+
import characterColorData from '../data/character_colors.json';
|
|
24
|
+
/**
|
|
25
|
+
* Service for accessing FFXIV character customization colors
|
|
26
|
+
*/
|
|
27
|
+
export class CharacterColorService {
|
|
28
|
+
constructor() {
|
|
29
|
+
this.data = characterColorData;
|
|
30
|
+
}
|
|
31
|
+
// ==========================================================================
|
|
32
|
+
// Shared Colors (Race-Agnostic)
|
|
33
|
+
// ==========================================================================
|
|
34
|
+
/**
|
|
35
|
+
* Get all eye colors (192 colors)
|
|
36
|
+
*/
|
|
37
|
+
getEyeColors() {
|
|
38
|
+
return this.data.shared.eyeColors || [];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get all hair highlight colors (192 colors)
|
|
42
|
+
*/
|
|
43
|
+
getHighlightColors() {
|
|
44
|
+
return this.data.shared.highlightColors || [];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get all dark lip colors (96 colors)
|
|
48
|
+
*/
|
|
49
|
+
getLipColorsDark() {
|
|
50
|
+
return this.data.shared.lipColorsDark || [];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Get all light lip colors (96 colors)
|
|
54
|
+
*/
|
|
55
|
+
getLipColorsLight() {
|
|
56
|
+
return this.data.shared.lipColorsLight || [];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get all tattoo/limbal ring colors (192 colors)
|
|
60
|
+
*/
|
|
61
|
+
getTattooColors() {
|
|
62
|
+
return this.data.shared.tattooColors || [];
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get all dark face paint colors (96 colors)
|
|
66
|
+
*/
|
|
67
|
+
getFacePaintColorsDark() {
|
|
68
|
+
return this.data.shared.facePaintColorsDark || [];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get all light face paint colors (96 colors)
|
|
72
|
+
*/
|
|
73
|
+
getFacePaintColorsLight() {
|
|
74
|
+
return this.data.shared.facePaintColorsLight || [];
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get shared colors by category
|
|
78
|
+
*/
|
|
79
|
+
getSharedColors(category) {
|
|
80
|
+
return this.data.shared[category] || [];
|
|
81
|
+
}
|
|
82
|
+
// ==========================================================================
|
|
83
|
+
// Race-Specific Colors
|
|
84
|
+
// ==========================================================================
|
|
85
|
+
/**
|
|
86
|
+
* Get hair colors for a specific subrace and gender (192 colors each)
|
|
87
|
+
*/
|
|
88
|
+
getHairColors(subrace, gender) {
|
|
89
|
+
return this.data.raceSpecific.hairColors?.[subrace]?.[gender] || [];
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get skin colors for a specific subrace and gender (192 colors each)
|
|
93
|
+
*/
|
|
94
|
+
getSkinColors(subrace, gender) {
|
|
95
|
+
return this.data.raceSpecific.skinColors?.[subrace]?.[gender] || [];
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get race-specific colors by category
|
|
99
|
+
*/
|
|
100
|
+
getRaceSpecificColors(category, subrace, gender) {
|
|
101
|
+
return this.data.raceSpecific[category]?.[subrace]?.[gender] || [];
|
|
102
|
+
}
|
|
103
|
+
// ==========================================================================
|
|
104
|
+
// Color Matching
|
|
105
|
+
// ==========================================================================
|
|
106
|
+
/**
|
|
107
|
+
* Find the closest matching dyes to a character color
|
|
108
|
+
*
|
|
109
|
+
* @param color - The character color to match
|
|
110
|
+
* @param dyeService - DyeService instance for dye lookup
|
|
111
|
+
* @param count - Number of matches to return (default: 3)
|
|
112
|
+
* @returns Array of matches sorted by distance (closest first)
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```typescript
|
|
116
|
+
* const eyeColor = characterColors.getEyeColors()[47];
|
|
117
|
+
* const matches = characterColors.findClosestDyes(eyeColor, dyeService, 3);
|
|
118
|
+
*
|
|
119
|
+
* console.log(matches[0].dye.name); // "Chestnut Brown"
|
|
120
|
+
* console.log(matches[0].distance); // 4.2
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
findClosestDyes(color, dyeService, count = 3) {
|
|
124
|
+
const allDyes = dyeService.getAllDyes();
|
|
125
|
+
const results = [];
|
|
126
|
+
for (const dye of allDyes) {
|
|
127
|
+
// Skip Facewear dyes (not usable for regular glamour)
|
|
128
|
+
if (dye.category === 'Facewear') {
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
const distance = this.calculateDistance(color.rgb, dye.rgb);
|
|
132
|
+
results.push({
|
|
133
|
+
characterColor: color,
|
|
134
|
+
dye,
|
|
135
|
+
distance,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
// Sort by distance and return top N
|
|
139
|
+
results.sort((a, b) => a.distance - b.distance);
|
|
140
|
+
return results.slice(0, count);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Find the single closest dye to a character color
|
|
144
|
+
*/
|
|
145
|
+
findClosestDye(color, dyeService) {
|
|
146
|
+
const matches = this.findClosestDyes(color, dyeService, 1);
|
|
147
|
+
return matches[0] || null;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Find all dyes within a color distance threshold
|
|
151
|
+
*/
|
|
152
|
+
findDyesWithinDistance(color, dyeService, maxDistance) {
|
|
153
|
+
const allDyes = dyeService.getAllDyes();
|
|
154
|
+
const results = [];
|
|
155
|
+
for (const dye of allDyes) {
|
|
156
|
+
if (dye.category === 'Facewear') {
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
const distance = this.calculateDistance(color.rgb, dye.rgb);
|
|
160
|
+
if (distance <= maxDistance) {
|
|
161
|
+
results.push({
|
|
162
|
+
characterColor: color,
|
|
163
|
+
dye,
|
|
164
|
+
distance,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
results.sort((a, b) => a.distance - b.distance);
|
|
169
|
+
return results;
|
|
170
|
+
}
|
|
171
|
+
// ==========================================================================
|
|
172
|
+
// Color Lookup
|
|
173
|
+
// ==========================================================================
|
|
174
|
+
/**
|
|
175
|
+
* Get a specific color by index from a shared category
|
|
176
|
+
*/
|
|
177
|
+
getSharedColorByIndex(category, index) {
|
|
178
|
+
const colors = this.getSharedColors(category);
|
|
179
|
+
return colors.find((c) => c.index === index) || null;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Get a specific color by index from a race-specific category
|
|
183
|
+
*/
|
|
184
|
+
getRaceSpecificColorByIndex(category, subrace, gender, index) {
|
|
185
|
+
const colors = this.getRaceSpecificColors(category, subrace, gender);
|
|
186
|
+
return colors.find((c) => c.index === index) || null;
|
|
187
|
+
}
|
|
188
|
+
// ==========================================================================
|
|
189
|
+
// Metadata
|
|
190
|
+
// ==========================================================================
|
|
191
|
+
/**
|
|
192
|
+
* Get all available subraces
|
|
193
|
+
*/
|
|
194
|
+
getAvailableSubraces() {
|
|
195
|
+
const hairColors = this.data.raceSpecific.hairColors || {};
|
|
196
|
+
return Object.keys(hairColors);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Get the data version
|
|
200
|
+
*/
|
|
201
|
+
getVersion() {
|
|
202
|
+
return this.data.meta.version;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Get grid column count (always 8)
|
|
206
|
+
*/
|
|
207
|
+
getGridColumns() {
|
|
208
|
+
return this.data.meta.gridColumns;
|
|
209
|
+
}
|
|
210
|
+
// ==========================================================================
|
|
211
|
+
// Private Helpers
|
|
212
|
+
// ==========================================================================
|
|
213
|
+
/**
|
|
214
|
+
* Calculate Euclidean distance in RGB space
|
|
215
|
+
*/
|
|
216
|
+
calculateDistance(rgb1, rgb2) {
|
|
217
|
+
const dr = rgb1.r - rgb2.r;
|
|
218
|
+
const dg = rgb1.g - rgb2.g;
|
|
219
|
+
const db = rgb1.b - rgb2.b;
|
|
220
|
+
return Math.sqrt(dr * dr + dg * dg + db * db);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=CharacterColorService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CharacterColorService.js","sourceRoot":"","sources":["../../src/services/CharacterColorService.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,7 @@ export interface DyeDatabaseConfig {
|
|
|
33
33
|
export declare class DyeDatabase {
|
|
34
34
|
private dyes;
|
|
35
35
|
private dyesByIdMap;
|
|
36
|
+
private dyesByStainIdMap;
|
|
36
37
|
private dyesByHueBucket;
|
|
37
38
|
private kdTree;
|
|
38
39
|
private isLoaded;
|
|
@@ -79,6 +80,28 @@ export declare class DyeDatabase {
|
|
|
79
80
|
* Get dye by ID
|
|
80
81
|
*/
|
|
81
82
|
getDyeById(id: number): Dye | null;
|
|
83
|
+
/**
|
|
84
|
+
* Get dye by stainID (game's internal stain table ID)
|
|
85
|
+
*
|
|
86
|
+
* Use this method when interfacing with plugins like Glamourer or Mare Synchronos
|
|
87
|
+
* that expose stainID rather than itemID.
|
|
88
|
+
*
|
|
89
|
+
* **Note:** For stable references, prefer `getDyeById()` with itemID.
|
|
90
|
+
*
|
|
91
|
+
* @param stainId - The game's stain table ID (1-125)
|
|
92
|
+
* @returns The matching dye or null if not found
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* // Glamourer uses stainID internally
|
|
97
|
+
* const dye = database.getByStainId(1); // Snow White
|
|
98
|
+
* console.log(dye?.name); // "Snow White"
|
|
99
|
+
* console.log(dye?.itemID); // 5729
|
|
100
|
+
* ```
|
|
101
|
+
*
|
|
102
|
+
* @since 2.1.0
|
|
103
|
+
*/
|
|
104
|
+
getByStainId(stainId: number): Dye | null;
|
|
82
105
|
/**
|
|
83
106
|
* Get multiple dyes by IDs
|
|
84
107
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DyeDatabase.d.ts","sourceRoot":"","sources":["../../../src/services/dye/DyeDatabase.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAgB,MAAM,wBAAwB,CAAC;AAE9D;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,GAAG;IACtC,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,qBAAa,WAAW;IAEtB,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,WAAW,CAAuC;
|
|
1
|
+
{"version":3,"file":"DyeDatabase.d.ts","sourceRoot":"","sources":["../../../src/services/dye/DyeDatabase.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAgB,MAAM,wBAAwB,CAAC;AAE9D;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,GAAG;IACtC,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,qBAAa,WAAW;IAEtB,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,WAAW,CAAuC;IAE1D,OAAO,CAAC,gBAAgB,CAAuC;IAG/D,OAAO,CAAC,eAAe,CAAyC;IAEhE,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAGhC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAE9C;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAsD;IAE5F;;;OAGG;gBACS,MAAM,GAAE,iBAAsB;IAI1C;;;OAGG;IACH,OAAO,CAAC,SAAS;IAgBjB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAsGlB;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IA2HlC;;OAEG;IACH,YAAY,IAAI,IAAI;IAMpB;;OAEG;IACH,UAAU,IAAI,GAAG,EAAE;IAKnB;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAKlC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAKzC;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,EAAE;IAQlC;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,WAAW,IAAI,MAAM;IAKrB;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAWzB;;OAEG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B;;;OAGG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAMjC;;;OAGG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAmBrE;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE;IAKzC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,eAAe,IAAI,WAAW,EAAE;CAIjC"}
|
|
@@ -19,6 +19,8 @@ export class DyeDatabase {
|
|
|
19
19
|
// Per MEM-001: Store DyeInternal with pre-computed lowercase fields
|
|
20
20
|
this.dyes = [];
|
|
21
21
|
this.dyesByIdMap = new Map();
|
|
22
|
+
// Per Phase-1: StainID map for plugin interoperability (Glamourer, Mare, etc.)
|
|
23
|
+
this.dyesByStainIdMap = new Map();
|
|
22
24
|
// Per P-2: Hue-indexed map for fast harmony lookups (70-90% speedup)
|
|
23
25
|
// Maps hue bucket (0-35 for 10° buckets) to array of dyes in that range
|
|
24
26
|
this.dyesByHueBucket = new Map();
|
|
@@ -197,6 +199,8 @@ export class DyeDatabase {
|
|
|
197
199
|
.map((dye) => dye);
|
|
198
200
|
// Build ID map for fast lookups
|
|
199
201
|
this.dyesByIdMap.clear();
|
|
202
|
+
// Per Phase-1: Build stainID map for plugin interop
|
|
203
|
+
this.dyesByStainIdMap.clear();
|
|
200
204
|
// Per P-2: Build hue-indexed map for harmony lookups
|
|
201
205
|
this.dyesByHueBucket.clear();
|
|
202
206
|
// Per P-7: Build k-d tree for RGB color space
|
|
@@ -209,6 +213,11 @@ export class DyeDatabase {
|
|
|
209
213
|
if (dye.itemID && dye.itemID !== dye.id) {
|
|
210
214
|
this.dyesByIdMap.set(dye.itemID, dye);
|
|
211
215
|
}
|
|
216
|
+
// Per Phase-1: Map by stainID for plugin interop (Glamourer, Mare, etc.)
|
|
217
|
+
// stainID is null for Facewear dyes
|
|
218
|
+
if (typeof dye.stainID === 'number') {
|
|
219
|
+
this.dyesByStainIdMap.set(dye.stainID, dye);
|
|
220
|
+
}
|
|
212
221
|
// Per P-2: Index by hue bucket (10° buckets)
|
|
213
222
|
const hueBucket = this.getHueBucket(dye.hsv.h);
|
|
214
223
|
if (!this.dyesByHueBucket.has(hueBucket)) {
|
|
@@ -258,6 +267,31 @@ export class DyeDatabase {
|
|
|
258
267
|
this.ensureLoaded();
|
|
259
268
|
return this.dyesByIdMap.get(id) || null;
|
|
260
269
|
}
|
|
270
|
+
/**
|
|
271
|
+
* Get dye by stainID (game's internal stain table ID)
|
|
272
|
+
*
|
|
273
|
+
* Use this method when interfacing with plugins like Glamourer or Mare Synchronos
|
|
274
|
+
* that expose stainID rather than itemID.
|
|
275
|
+
*
|
|
276
|
+
* **Note:** For stable references, prefer `getDyeById()` with itemID.
|
|
277
|
+
*
|
|
278
|
+
* @param stainId - The game's stain table ID (1-125)
|
|
279
|
+
* @returns The matching dye or null if not found
|
|
280
|
+
*
|
|
281
|
+
* @example
|
|
282
|
+
* ```typescript
|
|
283
|
+
* // Glamourer uses stainID internally
|
|
284
|
+
* const dye = database.getByStainId(1); // Snow White
|
|
285
|
+
* console.log(dye?.name); // "Snow White"
|
|
286
|
+
* console.log(dye?.itemID); // 5729
|
|
287
|
+
* ```
|
|
288
|
+
*
|
|
289
|
+
* @since 2.1.0
|
|
290
|
+
*/
|
|
291
|
+
getByStainId(stainId) {
|
|
292
|
+
this.ensureLoaded();
|
|
293
|
+
return this.dyesByStainIdMap.get(stainId) || null;
|
|
294
|
+
}
|
|
261
295
|
/**
|
|
262
296
|
* Get multiple dyes by IDs
|
|
263
297
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DyeDatabase.js","sourceRoot":"","sources":["../../../src/services/dye/DyeDatabase.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DyeDatabase.js","sourceRoot":"","sources":["../../../src/services/dye/DyeDatabase.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -33,6 +33,11 @@ export type { VisionType, Matrix3x3, ColorblindMatrices } from '@xivdyetools/typ
|
|
|
33
33
|
* @deprecated Removed in v2.0.0. Import directly from '@xivdyetools/types' instead.
|
|
34
34
|
*/
|
|
35
35
|
export type { Dye, LocalizedDye, DyeWithDistance, DyeDatabase } from '@xivdyetools/types';
|
|
36
|
+
/**
|
|
37
|
+
* @deprecated Removed in v2.0.0. Import directly from '@xivdyetools/types' instead.
|
|
38
|
+
*/
|
|
39
|
+
export type { CharacterColor, CharacterColorMatch, SharedColorCategory, RaceSpecificColorCategory, CharacterColorCategory, SubRace, Gender, Race, } from '@xivdyetools/types';
|
|
40
|
+
export { RACE_SUBRACES, SUBRACE_TO_RACE, COLOR_GRID_DIMENSIONS } from '@xivdyetools/types';
|
|
36
41
|
/**
|
|
37
42
|
* @deprecated Removed in v2.0.0. Import directly from '@xivdyetools/types' instead.
|
|
38
43
|
*/
|