zcw-shared 1.3.0 → 1.5.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 (188) hide show
  1. package/README.md +223 -50
  2. package/dist/constants/colorPatterns.d.ts +2 -0
  3. package/dist/constants/colorPatterns.js +9 -0
  4. package/dist/constants/colorPatterns.js.map +1 -0
  5. package/dist/constants/namedColors.d.ts +2 -0
  6. package/dist/constants/namedColors.js +17 -0
  7. package/dist/constants/namedColors.js.map +1 -0
  8. package/dist/constants/softwareConfigs.d.ts +15 -0
  9. package/dist/constants/softwareConfigs.js +157 -0
  10. package/dist/constants/softwareConfigs.js.map +1 -0
  11. package/dist/functions/ag-grid/generateLicense.d.ts +1 -2
  12. package/dist/functions/ag-grid/generateLicense.js +2 -2
  13. package/dist/functions/ag-grid/generateLicense.js.map +1 -1
  14. package/dist/functions/altool/createAltoolClient.js +4 -10
  15. package/dist/functions/altool/createAltoolClient.js.map +1 -1
  16. package/dist/functions/altool/getAltoolAuth.d.ts +2 -0
  17. package/dist/functions/altool/getAltoolAuth.js +8 -0
  18. package/dist/functions/altool/getAltoolAuth.js.map +1 -0
  19. package/dist/functions/altool/getAppInfo.js +1 -54
  20. package/dist/functions/altool/getAppInfo.js.map +1 -1
  21. package/dist/functions/altool/parseAppInfoOutput.d.ts +2 -0
  22. package/dist/functions/altool/parseAppInfoOutput.js +55 -0
  23. package/dist/functions/altool/parseAppInfoOutput.js.map +1 -0
  24. package/dist/functions/altool/parseValidationOutput.d.ts +6 -0
  25. package/dist/functions/altool/parseValidationOutput.js +21 -0
  26. package/dist/functions/altool/parseValidationOutput.js.map +1 -0
  27. package/dist/functions/altool/validateApp.js +2 -21
  28. package/dist/functions/altool/validateApp.js.map +1 -1
  29. package/dist/functions/color/convertColor.d.ts +6 -0
  30. package/dist/functions/color/convertColor.js +308 -0
  31. package/dist/functions/color/convertColor.js.map +1 -0
  32. package/dist/functions/color/deduplicateColors.d.ts +4 -0
  33. package/dist/functions/color/deduplicateColors.js +55 -0
  34. package/dist/functions/color/deduplicateColors.js.map +1 -0
  35. package/dist/functions/color/detectColorFormat.d.ts +2 -0
  36. package/dist/functions/color/detectColorFormat.js +112 -0
  37. package/dist/functions/color/detectColorFormat.js.map +1 -0
  38. package/dist/functions/color/extractColors.d.ts +4 -0
  39. package/dist/functions/color/extractColors.js +98 -0
  40. package/dist/functions/color/extractColors.js.map +1 -0
  41. package/dist/functions/color-converter/convertColor.js +4 -230
  42. package/dist/functions/color-converter/convertColor.js.map +1 -1
  43. package/dist/functions/color-converter/createColorReference.d.ts +2 -0
  44. package/dist/functions/color-converter/createColorReference.js +12 -0
  45. package/dist/functions/color-converter/createColorReference.js.map +1 -0
  46. package/dist/functions/color-converter/extractColors.d.ts +2 -15
  47. package/dist/functions/color-converter/extractColors.js +9 -104
  48. package/dist/functions/color-converter/extractColors.js.map +1 -1
  49. package/dist/functions/color-converter/extractColorsFromLine.d.ts +2 -0
  50. package/dist/functions/color-converter/extractColorsFromLine.js +18 -0
  51. package/dist/functions/color-converter/extractColorsFromLine.js.map +1 -0
  52. package/dist/functions/color-converter/extractColorsGeneric.d.ts +2 -0
  53. package/dist/functions/color-converter/extractColorsGeneric.js +12 -0
  54. package/dist/functions/color-converter/extractColorsGeneric.js.map +1 -0
  55. package/dist/functions/color-converter/extractCssVariableReferences.d.ts +2 -0
  56. package/dist/functions/color-converter/extractCssVariableReferences.js +15 -0
  57. package/dist/functions/color-converter/extractCssVariableReferences.js.map +1 -0
  58. package/dist/functions/color-converter/extractThirdPartyVariableReferences.d.ts +2 -0
  59. package/dist/functions/color-converter/extractThirdPartyVariableReferences.js +15 -0
  60. package/dist/functions/color-converter/extractThirdPartyVariableReferences.js.map +1 -0
  61. package/dist/functions/color-converter/formatColorOutput.d.ts +5 -0
  62. package/dist/functions/color-converter/formatColorOutput.js +48 -0
  63. package/dist/functions/color-converter/formatColorOutput.js.map +1 -0
  64. package/dist/functions/color-converter/hslToRgbInternal.d.ts +2 -0
  65. package/dist/functions/color-converter/hslToRgbInternal.js +24 -0
  66. package/dist/functions/color-converter/hslToRgbInternal.js.map +1 -0
  67. package/dist/functions/color-converter/isValidColorValue.d.ts +1 -0
  68. package/dist/functions/color-converter/isValidColorValue.js +4 -0
  69. package/dist/functions/color-converter/isValidColorValue.js.map +1 -0
  70. package/dist/functions/color-converter/isValidHslColor.d.ts +2 -0
  71. package/dist/functions/color-converter/isValidHslColor.js +14 -0
  72. package/dist/functions/color-converter/isValidHslColor.js.map +1 -0
  73. package/dist/functions/color-converter/isValidRgbColor.d.ts +2 -0
  74. package/dist/functions/color-converter/isValidRgbColor.js +14 -0
  75. package/dist/functions/color-converter/isValidRgbColor.js.map +1 -0
  76. package/dist/functions/color-converter/normalizeColorInput.d.ts +6 -0
  77. package/dist/functions/color-converter/normalizeColorInput.js +94 -0
  78. package/dist/functions/color-converter/normalizeColorInput.js.map +1 -0
  79. package/dist/functions/color-converter/parseColorString.d.ts +0 -3
  80. package/dist/functions/color-converter/parseColorString.js +0 -27
  81. package/dist/functions/color-converter/parseColorString.js.map +1 -1
  82. package/dist/functions/color-converter/parseCssVariables.d.ts +2 -0
  83. package/dist/functions/color-converter/parseCssVariables.js +19 -0
  84. package/dist/functions/color-converter/parseCssVariables.js.map +1 -0
  85. package/dist/functions/color-converter/parseHexColor.d.ts +6 -0
  86. package/dist/functions/color-converter/parseHexColor.js +42 -0
  87. package/dist/functions/color-converter/parseHexColor.js.map +1 -0
  88. package/dist/functions/color-converter/rgbToHslInternal.d.ts +2 -0
  89. package/dist/functions/color-converter/rgbToHslInternal.js +31 -0
  90. package/dist/functions/color-converter/rgbToHslInternal.js.map +1 -0
  91. package/dist/functions/css/extractCssVariables.d.ts +12 -0
  92. package/dist/functions/css/extractCssVariables.js +53 -0
  93. package/dist/functions/css/extractCssVariables.js.map +1 -0
  94. package/dist/functions/dom/detectOverflow.js.map +1 -1
  95. package/dist/functions/dom/getElementRect.js.map +1 -1
  96. package/dist/functions/dom/getRelativePosition.js.map +1 -1
  97. package/dist/functions/dom/getViewportRect.js.map +1 -1
  98. package/dist/functions/dom/getViewportSize.js.map +1 -1
  99. package/dist/functions/image/generateMacIcons.js.map +1 -1
  100. package/dist/functions/image/generateMacTrayIcon.js.map +1 -1
  101. package/dist/functions/image/generatePaddedImage.js.map +1 -1
  102. package/dist/functions/image/generatePwaIcons.js.map +1 -1
  103. package/dist/functions/image/generateRoundedImage.js.map +1 -1
  104. package/dist/functions/ipc/dispatchIpcRequest.js +1 -1
  105. package/dist/functions/ipc/dispatchIpcRequest.js.map +1 -1
  106. package/dist/functions/software/buildPathExecutables.js +11 -1
  107. package/dist/functions/software/buildPathExecutables.js.map +1 -1
  108. package/dist/functions/software/buildSoftwarePaths.d.ts +1 -1
  109. package/dist/functions/software/createConfigGenerator.d.ts +1 -1
  110. package/dist/functions/software/detectPlatform.d.ts +1 -1
  111. package/dist/functions/software/detectPlatform.js +6 -1
  112. package/dist/functions/software/detectPlatform.js.map +1 -1
  113. package/dist/functions/software/find.js +1 -1
  114. package/dist/functions/software/find.js.map +1 -1
  115. package/dist/functions/software/findSoftware.d.ts +1 -2
  116. package/dist/functions/software/findSoftware.js +33 -19
  117. package/dist/functions/software/findSoftware.js.map +1 -1
  118. package/dist/functions/software/findSoftwareWithGenerator.d.ts +1 -1
  119. package/dist/functions/software/getConfigGenerator.d.ts +1 -1
  120. package/dist/functions/software/getEnvironmentSoftwarePath.js +5 -1
  121. package/dist/functions/software/getEnvironmentSoftwarePath.js.map +1 -1
  122. package/dist/functions/software/parseEnvironmentPaths.js +6 -2
  123. package/dist/functions/software/parseEnvironmentPaths.js.map +1 -1
  124. package/dist/functions/string/base64.d.ts +2 -0
  125. package/dist/functions/string/base64.js +6 -0
  126. package/dist/functions/string/base64.js.map +1 -0
  127. package/dist/functions/string/caseConverter.d.ts +20 -0
  128. package/dist/functions/string/caseConverter.js +101 -0
  129. package/dist/functions/string/caseConverter.js.map +1 -0
  130. package/dist/functions/string/desensitize.d.ts +13 -0
  131. package/dist/functions/string/desensitize.js +107 -0
  132. package/dist/functions/string/desensitize.js.map +1 -0
  133. package/dist/functions/string/htmlEscape.d.ts +17 -0
  134. package/dist/functions/string/htmlEscape.js +68 -0
  135. package/dist/functions/string/htmlEscape.js.map +1 -0
  136. package/dist/functions/string/pad.d.ts +14 -0
  137. package/dist/functions/string/pad.js +53 -0
  138. package/dist/functions/string/pad.js.map +1 -0
  139. package/dist/functions/string/similarity.js +1 -26
  140. package/dist/functions/string/similarity.js.map +1 -1
  141. package/dist/functions/tencent-cloud/getSecret.d.ts +1 -2
  142. package/dist/functions/tencent-cloud/getSecret.js +2 -3
  143. package/dist/functions/tencent-cloud/getSecret.js.map +1 -1
  144. package/dist/functions/uniapp/app-plus/androidProjectStrategy.d.ts +6 -20
  145. package/dist/functions/uniapp/app-plus/androidProjectStrategy.js +43 -48
  146. package/dist/functions/uniapp/app-plus/androidProjectStrategy.js.map +1 -1
  147. package/dist/functions/uniapp/app-plus/buildAndroidProject.js +2 -2
  148. package/dist/functions/uniapp/app-plus/buildAndroidProject.js.map +1 -1
  149. package/dist/functions/uniapp/app-plus/configureAndroidProject.js +2 -2
  150. package/dist/functions/uniapp/app-plus/configureAndroidProject.js.map +1 -1
  151. package/dist/functions/uniapp/waitForPages.d.ts +1 -1
  152. package/dist/functions/uniapp/waitForPages.js +3 -2
  153. package/dist/functions/uniapp/waitForPages.js.map +1 -1
  154. package/dist/functions/utils/flow.d.ts +1 -1
  155. package/dist/functions/utils/flow.js +5 -1
  156. package/dist/functions/utils/flow.js.map +1 -1
  157. package/dist/functions/vue/checkVueType.d.ts +8 -0
  158. package/dist/functions/vue/checkVueType.js +29 -0
  159. package/dist/functions/vue/checkVueType.js.map +1 -0
  160. package/dist/functions/vue/deduplicateColors.d.ts +2 -0
  161. package/dist/functions/vue/deduplicateColors.js +13 -0
  162. package/dist/functions/vue/deduplicateColors.js.map +1 -0
  163. package/dist/functions/vue/extractColorsFromVueFile.d.ts +3 -0
  164. package/dist/functions/vue/extractColorsFromVueFile.js +27 -0
  165. package/dist/functions/vue/extractColorsFromVueFile.js.map +1 -0
  166. package/dist/functions/vue/extractColorsFromVueSection.d.ts +3 -0
  167. package/dist/functions/vue/extractColorsFromVueSection.js +53 -0
  168. package/dist/functions/vue/extractColorsFromVueSection.js.map +1 -0
  169. package/dist/functions/vue/filterSections.d.ts +2 -0
  170. package/dist/functions/vue/filterSections.js +11 -0
  171. package/dist/functions/vue/filterSections.js.map +1 -0
  172. package/dist/functions/vue/parseVueFile.d.ts +2 -0
  173. package/dist/functions/vue/parseVueFile.js +53 -0
  174. package/dist/functions/vue/parseVueFile.js.map +1 -0
  175. package/dist/functions/vue/processVueFile.d.ts +3 -0
  176. package/dist/functions/vue/processVueFile.js +26 -0
  177. package/dist/functions/vue/processVueFile.js.map +1 -0
  178. package/dist/functions/vue/saveVueSection.d.ts +2 -0
  179. package/dist/functions/vue/saveVueSection.js +11 -0
  180. package/dist/functions/vue/saveVueSection.js.map +1 -0
  181. package/dist/hooks/useAltool.d.ts +68 -0
  182. package/dist/hooks/useAltool.js +350 -0
  183. package/dist/hooks/useAltool.js.map +1 -0
  184. package/package.json +26 -44
  185. package/types/color.d.ts +30 -3
  186. package/types/geometry.d.ts +3 -1
  187. package/types/software.d.ts +27 -0
  188. package/types/vue.d.ts +30 -0
@@ -0,0 +1,55 @@
1
+ export function deduplicateColors(colors) {
2
+ if (!colors || colors.length === 0) {
3
+ return [];
4
+ }
5
+ const seen = new Set();
6
+ const deduplicated = [];
7
+ for (const color of colors) {
8
+ const key = createUniqueKey(color);
9
+ if (!seen.has(key)) {
10
+ seen.add(key);
11
+ deduplicated.push(color);
12
+ }
13
+ }
14
+ return deduplicated;
15
+ }
16
+ function createUniqueKey(color) {
17
+ const normalizedValue = color.originalValue.toLowerCase().replace(/\s+/g, '');
18
+ return `${color.file}:${color.line}:${normalizedValue}:${color.context}`;
19
+ }
20
+ export function deduplicateColorsByValue(colors) {
21
+ if (!colors || colors.length === 0) {
22
+ return [];
23
+ }
24
+ const seenValues = new Set();
25
+ const deduplicated = [];
26
+ for (const color of colors) {
27
+ const normalizedValue = color.originalValue.toLowerCase().replace(/\s+/g, '');
28
+ if (!seenValues.has(normalizedValue)) {
29
+ seenValues.add(normalizedValue);
30
+ deduplicated.push(color);
31
+ }
32
+ }
33
+ return deduplicated;
34
+ }
35
+ export function deduplicateColorsByStandardizedValue(colors, standardizeColor) {
36
+ if (!colors || colors.length === 0) {
37
+ return [];
38
+ }
39
+ const seenStandardizedValues = new Set();
40
+ const deduplicated = [];
41
+ for (const color of colors) {
42
+ try {
43
+ const standardizedValue = standardizeColor(color.originalValue);
44
+ if (!seenStandardizedValues.has(standardizedValue)) {
45
+ seenStandardizedValues.add(standardizedValue);
46
+ deduplicated.push(color);
47
+ }
48
+ }
49
+ catch (error) {
50
+ deduplicated.push(color);
51
+ }
52
+ }
53
+ return deduplicated;
54
+ }
55
+ //# sourceMappingURL=deduplicateColors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deduplicateColors.js","sourceRoot":"","sources":["../../../src/functions/color/deduplicateColors.ts"],"names":[],"mappings":"AA2BA,MAAM,UAAU,iBAAiB,CAAC,MAAwB;IACxD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,YAAY,GAAqB,EAAE,CAAA;IAEzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAE3B,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;QAElC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACb,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAMD,SAAS,eAAe,CAAC,KAAqB;IAE5C,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAG7E,OAAO,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,eAAe,IAAI,KAAK,CAAC,OAAO,EAAE,CAAA;AAC1E,CAAC;AAwBD,MAAM,UAAU,wBAAwB,CAAC,MAAwB;IAC/D,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;IACpC,MAAM,YAAY,GAAqB,EAAE,CAAA;IAEzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAE3B,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAE7E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YACrC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;YAC/B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AA6BD,MAAM,UAAU,oCAAoC,CAClD,MAAwB,EACxB,gBAA2C;IAE3C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAU,CAAA;IAChD,MAAM,YAAY,GAAqB,EAAE,CAAA;IAEzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC;YAEH,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;YAE/D,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACnD,sBAAsB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;gBAC7C,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEf,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ColorValidationResult } from '../../../types/color.d';
2
+ export declare function detectColorFormat(color: string): ColorValidationResult;
@@ -0,0 +1,112 @@
1
+ import { COLOR_PATTERNS } from '../../constants/colorPatterns';
2
+ import { NAMED_COLOR_MAP } from '../../constants/namedColors';
3
+ export function detectColorFormat(color) {
4
+ if (!color || typeof color !== 'string') {
5
+ return { isValid: false, format: undefined };
6
+ }
7
+ const trimmedColor = color.trim();
8
+ if (!trimmedColor) {
9
+ return { isValid: false, format: undefined };
10
+ }
11
+ if (COLOR_PATTERNS.hex.test(trimmedColor)) {
12
+ return validateHexColor(trimmedColor);
13
+ }
14
+ if (COLOR_PATTERNS.rgba.test(trimmedColor)) {
15
+ return validateRgbaColor(trimmedColor);
16
+ }
17
+ if (COLOR_PATTERNS.rgb.test(trimmedColor)) {
18
+ return validateRgbColor(trimmedColor);
19
+ }
20
+ if (COLOR_PATTERNS.hsla.test(trimmedColor)) {
21
+ return validateHslaColor(trimmedColor);
22
+ }
23
+ if (COLOR_PATTERNS.hsl.test(trimmedColor)) {
24
+ return validateHslColor(trimmedColor);
25
+ }
26
+ if (COLOR_PATTERNS.namedColors.test(trimmedColor)) {
27
+ return validateNamedColor(trimmedColor);
28
+ }
29
+ return { isValid: false, format: undefined };
30
+ }
31
+ function validateHexColor(color) {
32
+ const hex = color.slice(1);
33
+ if (![3, 4, 6, 8].includes(hex.length)) {
34
+ return { isValid: false, format: undefined };
35
+ }
36
+ if (!/^[0-9a-fA-F]+$/.test(hex)) {
37
+ return { isValid: false, format: undefined };
38
+ }
39
+ return { isValid: true, format: 'hex' };
40
+ }
41
+ function validateRgbColor(color) {
42
+ const match = color.match(COLOR_PATTERNS.rgb);
43
+ if (!match) {
44
+ return { isValid: false, format: undefined };
45
+ }
46
+ const [, r, g, b] = match;
47
+ const red = parseInt(r, 10);
48
+ const green = parseInt(g, 10);
49
+ const blue = parseInt(b, 10);
50
+ if (red < 0 || red > 255 || green < 0 || green > 255 || blue < 0 || blue > 255) {
51
+ return { isValid: false, format: undefined };
52
+ }
53
+ return { isValid: true, format: 'rgb' };
54
+ }
55
+ function validateRgbaColor(color) {
56
+ const match = color.match(COLOR_PATTERNS.rgba);
57
+ if (!match) {
58
+ return { isValid: false, format: undefined };
59
+ }
60
+ const [, r, g, b, a] = match;
61
+ const red = parseInt(r, 10);
62
+ const green = parseInt(g, 10);
63
+ const blue = parseInt(b, 10);
64
+ const alpha = parseFloat(a);
65
+ if (red < 0 || red > 255 || green < 0 || green > 255 || blue < 0 || blue > 255) {
66
+ return { isValid: false, format: undefined };
67
+ }
68
+ if (alpha < 0 || alpha > 1 || isNaN(alpha)) {
69
+ return { isValid: false, format: undefined };
70
+ }
71
+ return { isValid: true, format: 'rgba' };
72
+ }
73
+ function validateHslColor(color) {
74
+ const match = color.match(COLOR_PATTERNS.hsl);
75
+ if (!match) {
76
+ return { isValid: false, format: undefined };
77
+ }
78
+ const [, h, s, l] = match;
79
+ const hue = parseInt(h, 10);
80
+ const saturation = parseInt(s, 10);
81
+ const lightness = parseInt(l, 10);
82
+ if (hue < 0 || hue > 360 || saturation < 0 || saturation > 100 || lightness < 0 || lightness > 100) {
83
+ return { isValid: false, format: undefined };
84
+ }
85
+ return { isValid: true, format: 'hsl' };
86
+ }
87
+ function validateHslaColor(color) {
88
+ const match = color.match(COLOR_PATTERNS.hsla);
89
+ if (!match) {
90
+ return { isValid: false, format: undefined };
91
+ }
92
+ const [, h, s, l, a] = match;
93
+ const hue = parseInt(h, 10);
94
+ const saturation = parseInt(s, 10);
95
+ const lightness = parseInt(l, 10);
96
+ const alpha = parseFloat(a);
97
+ if (hue < 0 || hue > 360 || saturation < 0 || saturation > 100 || lightness < 0 || lightness > 100) {
98
+ return { isValid: false, format: undefined };
99
+ }
100
+ if (alpha < 0 || alpha > 1 || isNaN(alpha)) {
101
+ return { isValid: false, format: undefined };
102
+ }
103
+ return { isValid: true, format: 'hsla' };
104
+ }
105
+ function validateNamedColor(color) {
106
+ const lowerColor = color.toLowerCase();
107
+ if (lowerColor in NAMED_COLOR_MAP) {
108
+ return { isValid: true, format: 'named' };
109
+ }
110
+ return { isValid: false, format: undefined };
111
+ }
112
+ //# sourceMappingURL=detectColorFormat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectColorFormat.js","sourceRoot":"","sources":["../../../src/functions/color/detectColorFormat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ColorReference } from '../../../types/color.d';
2
+ export declare function extractColors(text: string, filePath?: string, options?: {
3
+ validOnly?: boolean;
4
+ }): ColorReference[];
@@ -0,0 +1,98 @@
1
+ import { COLOR_PATTERNS } from '../../constants/colorPatterns';
2
+ import { detectColorFormat } from './detectColorFormat';
3
+ export function extractColors(text, filePath = '', options = {}) {
4
+ const { validOnly = true } = options;
5
+ if (!text || typeof text !== 'string') {
6
+ return [];
7
+ }
8
+ const colors = [];
9
+ const lines = text.split('\n');
10
+ lines.forEach((line, lineIndex) => {
11
+ const lineColors = extractColorsFromLine(line, lineIndex, filePath, { validOnly });
12
+ colors.push(...lineColors);
13
+ });
14
+ return colors;
15
+ }
16
+ function extractColorsFromLine(line, lineIndex, filePath, options) {
17
+ const { validOnly = true } = options;
18
+ const colors = [];
19
+ const hexMatches = findMatches(line, COLOR_PATTERNS.hex);
20
+ hexMatches.forEach(match => {
21
+ const validation = detectColorFormat(match.value);
22
+ if (!validOnly || validation.isValid) {
23
+ colors.push(createColorReference(match.value, validation.format || 'hex', lineIndex, filePath, line));
24
+ }
25
+ });
26
+ const rgbaMatches = findMatches(line, COLOR_PATTERNS.rgba);
27
+ rgbaMatches.forEach(match => {
28
+ const validation = detectColorFormat(match.value);
29
+ if (!validOnly || validation.isValid) {
30
+ colors.push(createColorReference(match.value, validation.format || 'rgba', lineIndex, filePath, line));
31
+ }
32
+ });
33
+ const rgbMatches = findMatches(line, COLOR_PATTERNS.rgb);
34
+ rgbMatches.forEach(match => {
35
+ if (!isOverlapping(match, rgbaMatches)) {
36
+ const validation = detectColorFormat(match.value);
37
+ if (!validOnly || validation.isValid) {
38
+ colors.push(createColorReference(match.value, validation.format || 'rgb', lineIndex, filePath, line));
39
+ }
40
+ }
41
+ });
42
+ const hslaMatches = findMatches(line, COLOR_PATTERNS.hsla);
43
+ hslaMatches.forEach(match => {
44
+ const validation = detectColorFormat(match.value);
45
+ if (!validOnly || validation.isValid) {
46
+ colors.push(createColorReference(match.value, validation.format || 'hsla', lineIndex, filePath, line));
47
+ }
48
+ });
49
+ const hslMatches = findMatches(line, COLOR_PATTERNS.hsl);
50
+ hslMatches.forEach(match => {
51
+ if (!isOverlapping(match, hslaMatches)) {
52
+ const validation = detectColorFormat(match.value);
53
+ if (!validOnly || validation.isValid) {
54
+ colors.push(createColorReference(match.value, validation.format || 'hsl', lineIndex, filePath, line));
55
+ }
56
+ }
57
+ });
58
+ const namedMatches = findMatches(line, COLOR_PATTERNS.namedColors);
59
+ namedMatches.forEach(match => {
60
+ if (!isOverlapping(match, [...hexMatches, ...rgbaMatches, ...rgbMatches, ...hslaMatches, ...hslMatches])) {
61
+ const validation = detectColorFormat(match.value);
62
+ if (!validOnly || validation.isValid) {
63
+ colors.push(createColorReference(match.value, validation.format || 'named', lineIndex, filePath, line));
64
+ }
65
+ }
66
+ });
67
+ return colors;
68
+ }
69
+ function findMatches(text, pattern) {
70
+ const matches = [];
71
+ const globalPattern = new RegExp(pattern.source, 'gi');
72
+ let match;
73
+ while ((match = globalPattern.exec(text)) !== null) {
74
+ matches.push({
75
+ value: match[0],
76
+ start: match.index,
77
+ end: match.index + match[0].length
78
+ });
79
+ }
80
+ return matches;
81
+ }
82
+ function isOverlapping(match, otherMatches) {
83
+ return otherMatches.some(other => {
84
+ return ((match.start >= other.start && match.start < other.end) ||
85
+ (match.end > other.start && match.end <= other.end) ||
86
+ (match.start <= other.start && match.end >= other.end));
87
+ });
88
+ }
89
+ function createColorReference(colorValue, format, lineIndex, filePath, context) {
90
+ return {
91
+ originalValue: colorValue,
92
+ format,
93
+ line: lineIndex + 1,
94
+ file: filePath,
95
+ context
96
+ };
97
+ }
98
+ //# sourceMappingURL=extractColors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractColors.js","sourceRoot":"","sources":["../../../src/functions/color/extractColors.ts"],"names":[],"mappings":"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"}
@@ -1,238 +1,12 @@
1
- import { parseColorString, isValidRgbColor, isValidHslColor } from './parseColorString';
2
- import { hueToRgb } from './hueToRgb';
3
- import { getNamedColorMap } from './getNamedColorMap';
4
- import { detectColorFormat } from './detectColorFormat';
1
+ import { normalizeColorInput } from './normalizeColorInput';
2
+ import { formatColorOutput } from './formatColorOutput';
5
3
  export function convertColor(input, targetFormat, options = {}) {
6
4
  const { includeAlpha = false, precision = 0 } = options;
7
- function normalizeInput(input) {
8
- if (Array.isArray(input)) {
9
- if (input.length >= 3) {
10
- const [r, g, b, a = 1] = input;
11
- if (typeof r === 'number' && typeof g === 'number' && typeof b === 'number') {
12
- const rgb = { r: Math.round(r), g: Math.round(g), b: Math.round(b) };
13
- if (isValidRgbColor(rgb)) {
14
- return { rgb, alpha: typeof a === 'number' ? a : 1, originalFormat: 'rgb' };
15
- }
16
- }
17
- }
18
- return null;
19
- }
20
- if (typeof input === 'object' && input !== null) {
21
- if ('r' in input && 'g' in input && 'b' in input) {
22
- const rgb = input;
23
- if (isValidRgbColor(rgb)) {
24
- const alpha = 'a' in input ? input.a : 1;
25
- return { rgb, alpha, originalFormat: 'a' in input ? 'rgba' : 'rgb' };
26
- }
27
- }
28
- if ('h' in input && 's' in input && 'l' in input) {
29
- const hsl = input;
30
- if (isValidHslColor(hsl)) {
31
- const rgb = hslToRgbInternal(hsl);
32
- if (rgb) {
33
- const alpha = 'a' in input ? input.a : 1;
34
- return { rgb, alpha, originalFormat: 'a' in input ? 'hsla' : 'hsl' };
35
- }
36
- }
37
- }
38
- return null;
39
- }
40
- if (typeof input === 'string') {
41
- const trimmed = input.trim();
42
- const format = detectColorFormat(trimmed);
43
- if (!format) {
44
- return null;
45
- }
46
- switch (format) {
47
- case 'hex':
48
- return parseHexColor(trimmed);
49
- case 'rgb':
50
- case 'rgba': {
51
- const parseResult = parseColorString(trimmed);
52
- if (parseResult.isValid && (parseResult.type === 'rgb' || parseResult.type === 'rgba')) {
53
- const value = parseResult.value;
54
- return {
55
- rgb: { r: value.r, g: value.g, b: value.b },
56
- alpha: value.a ?? 1,
57
- originalFormat: parseResult.type
58
- };
59
- }
60
- break;
61
- }
62
- case 'hsl':
63
- case 'hsla': {
64
- const parseResult = parseColorString(trimmed);
65
- if (parseResult.isValid && (parseResult.type === 'hsl' || parseResult.type === 'hsla')) {
66
- const value = parseResult.value;
67
- const rgb = hslToRgbInternal(value);
68
- if (rgb) {
69
- return {
70
- rgb,
71
- alpha: value.a ?? 1,
72
- originalFormat: parseResult.type
73
- };
74
- }
75
- }
76
- break;
77
- }
78
- case 'named': {
79
- const namedColorMap = getNamedColorMap();
80
- const hexValue = namedColorMap[trimmed.toLowerCase()];
81
- if (hexValue) {
82
- const result = parseHexColor(hexValue);
83
- if (result) {
84
- return { ...result, originalFormat: 'named' };
85
- }
86
- }
87
- break;
88
- }
89
- }
90
- }
91
- return null;
92
- }
93
- function parseHexColor(hex) {
94
- const cleanHex = hex.replace(/^#/, '');
95
- if (!/^[0-9a-fA-F]+$/.test(cleanHex)) {
96
- return null;
97
- }
98
- let r, g, b, alpha = 1;
99
- switch (cleanHex.length) {
100
- case 3:
101
- r = parseInt(cleanHex[0] + cleanHex[0], 16);
102
- g = parseInt(cleanHex[1] + cleanHex[1], 16);
103
- b = parseInt(cleanHex[2] + cleanHex[2], 16);
104
- break;
105
- case 4:
106
- r = parseInt(cleanHex[0] + cleanHex[0], 16);
107
- g = parseInt(cleanHex[1] + cleanHex[1], 16);
108
- b = parseInt(cleanHex[2] + cleanHex[2], 16);
109
- alpha = parseInt(cleanHex[3] + cleanHex[3], 16) / 255;
110
- break;
111
- case 6:
112
- r = parseInt(cleanHex.substring(0, 2), 16);
113
- g = parseInt(cleanHex.substring(2, 4), 16);
114
- b = parseInt(cleanHex.substring(4, 6), 16);
115
- break;
116
- case 8:
117
- r = parseInt(cleanHex.substring(0, 2), 16);
118
- g = parseInt(cleanHex.substring(2, 4), 16);
119
- b = parseInt(cleanHex.substring(4, 6), 16);
120
- alpha = parseInt(cleanHex.substring(6, 8), 16) / 255;
121
- break;
122
- default:
123
- return null;
124
- }
125
- if (isNaN(r) || isNaN(g) || isNaN(b) || isNaN(alpha)) {
126
- return null;
127
- }
128
- return {
129
- rgb: { r, g, b },
130
- alpha,
131
- originalFormat: 'hex'
132
- };
133
- }
134
- function hslToRgbInternal(hsl) {
135
- let h = hsl.h % 360;
136
- if (h < 0)
137
- h += 360;
138
- const s = Math.max(0, Math.min(100, hsl.s)) / 100;
139
- const l = Math.max(0, Math.min(100, hsl.l)) / 100;
140
- if (s === 0) {
141
- const gray = Math.round(l * 255);
142
- return { r: gray, g: gray, b: gray };
143
- }
144
- const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
145
- const p = 2 * l - q;
146
- const hNormalized = h / 360;
147
- const r = hueToRgb(p, q, hNormalized + 1 / 3);
148
- const g = hueToRgb(p, q, hNormalized);
149
- const b = hueToRgb(p, q, hNormalized - 1 / 3);
150
- return {
151
- r: Math.round(r * 255),
152
- g: Math.round(g * 255),
153
- b: Math.round(b * 255)
154
- };
155
- }
156
- function rgbToHslInternal(rgb) {
157
- const r = rgb.r / 255;
158
- const g = rgb.g / 255;
159
- const b = rgb.b / 255;
160
- const max = Math.max(r, g, b);
161
- const min = Math.min(r, g, b);
162
- const diff = max - min;
163
- let h = 0;
164
- let s = 0;
165
- const l = (max + min) / 2;
166
- if (diff !== 0) {
167
- s = l > 0.5 ? diff / (2 - max - min) : diff / (max + min);
168
- switch (max) {
169
- case r:
170
- h = ((g - b) / diff + (g < b ? 6 : 0)) / 6;
171
- break;
172
- case g:
173
- h = ((b - r) / diff + 2) / 6;
174
- break;
175
- case b:
176
- h = ((r - g) / diff + 4) / 6;
177
- break;
178
- }
179
- }
180
- return {
181
- h: Math.round(h * 360),
182
- s: Math.round(s * 100),
183
- l: Math.round(l * 100)
184
- };
185
- }
186
- function formatOutput(rgb, alpha, targetFormat, options) {
187
- const { includeAlpha = false, precision = 0 } = options;
188
- const r = Math.max(0, Math.min(255, Math.round(rgb.r)));
189
- const g = Math.max(0, Math.min(255, Math.round(rgb.g)));
190
- const b = Math.max(0, Math.min(255, Math.round(rgb.b)));
191
- const a = Math.max(0, Math.min(1, alpha));
192
- switch (targetFormat) {
193
- case 'hex': {
194
- const toHex = (value) => {
195
- const hex = value.toString(16);
196
- return hex.length === 1 ? '0' + hex : hex;
197
- };
198
- let result = `#${toHex(r)}${toHex(g)}${toHex(b)}`;
199
- if (includeAlpha || a < 1) {
200
- const alphaHex = Math.round(a * 255);
201
- result += toHex(alphaHex);
202
- }
203
- return result;
204
- }
205
- case 'rgb':
206
- return `rgb(${r}, ${g}, ${b})`;
207
- case 'rgba':
208
- return `rgba(${r}, ${g}, ${b}, ${a.toFixed(precision)})`;
209
- case 'hsl': {
210
- const hsl = rgbToHslInternal({ r, g, b });
211
- return `hsl(${hsl.h}, ${hsl.s}%, ${hsl.l}%)`;
212
- }
213
- case 'hsla': {
214
- const hsl = rgbToHslInternal({ r, g, b });
215
- return `hsla(${hsl.h}, ${hsl.s}%, ${hsl.l}%, ${a.toFixed(precision)})`;
216
- }
217
- case 'named': {
218
- const namedColorMap = getNamedColorMap();
219
- const targetHex = `#${r.toString(16).padStart(2, '0')}${g.toString(16).padStart(2, '0')}${b.toString(16).padStart(2, '0')}`;
220
- for (const [name, hex] of Object.entries(namedColorMap)) {
221
- if (hex.toLowerCase() === targetHex.toLowerCase()) {
222
- return name;
223
- }
224
- }
225
- return targetHex;
226
- }
227
- default:
228
- return null;
229
- }
230
- }
231
- const normalizedInput = normalizeInput(input);
5
+ const normalizedInput = normalizeColorInput(input);
232
6
  if (!normalizedInput) {
233
7
  return null;
234
8
  }
235
9
  const { rgb, alpha } = normalizedInput;
236
- return formatOutput(rgb, alpha, targetFormat, { includeAlpha, precision });
10
+ return formatColorOutput(rgb, alpha, targetFormat, { includeAlpha, precision });
237
11
  }
238
12
  //# sourceMappingURL=convertColor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertColor.js","sourceRoot":"","sources":["../../../src/functions/color-converter/convertColor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convertColor.js","sourceRoot":"","sources":["../../../src/functions/color-converter/convertColor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAmCvD,MAAM,UAAU,YAAY,CAC1B,KAA8C,EAC9C,YAAyB,EACzB,UAOI,EAAE;IAEN,MAAM,EAAE,YAAY,GAAG,KAAK,EAAE,SAAS,GAAG,CAAC,EAAE,GAAG,OAAO,CAAA;IAGvD,MAAM,eAAe,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;IAClD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,eAAe,CAAA;IAGtC,OAAO,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAA;AACjF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ColorReference } from '../../../types/color';
2
+ export declare function createColorReference(value: string, format: ColorReference['format'], file: string, line: number, context: string, originalValue: string, isVariableReference?: boolean, variableName?: string): ColorReference;
@@ -0,0 +1,12 @@
1
+ export function createColorReference(value, format, file, line, context, originalValue, isVariableReference = false, variableName) {
2
+ return {
3
+ originalValue,
4
+ format,
5
+ file,
6
+ line,
7
+ context: context.trim(),
8
+ isVariableReference,
9
+ variableName
10
+ };
11
+ }
12
+ //# sourceMappingURL=createColorReference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createColorReference.js","sourceRoot":"","sources":["../../../src/functions/color-converter/createColorReference.ts"],"names":[],"mappings":"AAsCA,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,MAAgC,EAChC,IAAY,EACZ,IAAY,EACZ,OAAe,EACf,aAAqB,EACrB,sBAA+B,KAAK,EACpC,YAAqB;IAErB,OAAO;QACL,aAAa;QACb,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;QACvB,mBAAmB;QACnB,YAAY;KACb,CAAA;AACH,CAAC"}
@@ -1,16 +1,3 @@
1
- import type { ColorReference, ColorFormat, ColorPatterns } from '../../../types/color.d';
2
- export interface ColorExtractorDependencies {
3
- getColorPatterns: () => ColorPatterns;
4
- standardizeColor: (color: string) => string;
5
- detectColorFormat: (color: string) => ColorFormat | null;
6
- isColorValue: (value: string) => {
7
- isValid: boolean;
8
- format?: ColorFormat;
9
- };
10
- }
11
- export interface ColorExtractionOptions {
12
- cssVariables?: Record<string, string>;
13
- thirdPartyVariables?: Record<string, string>;
14
- }
1
+ import { ColorReference, ColorExtractorDependencies, ColorExtractionOptions } from '../../../types/color';
2
+ export type { ColorExtractorDependencies, ColorExtractionOptions } from '../../../types/color';
15
3
  export declare function extractColors(code: string, filePath: string, dependencies: ColorExtractorDependencies, options?: ColorExtractionOptions): ColorReference[];
16
- export declare function extractColorsFromLine(line: string, filePath: string, lineNumber: number, dependencies: ColorExtractorDependencies, options?: ColorExtractionOptions): ColorReference[];