zcw-shared 1.4.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.
- package/README.md +223 -50
- package/dist/constants/colorPatterns.d.ts +2 -0
- package/dist/constants/colorPatterns.js +9 -0
- package/dist/constants/colorPatterns.js.map +1 -0
- package/dist/constants/namedColors.d.ts +2 -0
- package/dist/constants/namedColors.js +17 -0
- package/dist/constants/namedColors.js.map +1 -0
- package/dist/constants/softwareConfigs.d.ts +15 -0
- package/dist/constants/softwareConfigs.js +157 -0
- package/dist/constants/softwareConfigs.js.map +1 -0
- package/dist/functions/ag-grid/generateLicense.d.ts +1 -2
- package/dist/functions/ag-grid/generateLicense.js +2 -2
- package/dist/functions/ag-grid/generateLicense.js.map +1 -1
- package/dist/functions/altool/createAltoolClient.js +4 -10
- package/dist/functions/altool/createAltoolClient.js.map +1 -1
- package/dist/functions/altool/getAltoolAuth.d.ts +2 -0
- package/dist/functions/altool/getAltoolAuth.js +8 -0
- package/dist/functions/altool/getAltoolAuth.js.map +1 -0
- package/dist/functions/altool/getAppInfo.js +1 -54
- package/dist/functions/altool/getAppInfo.js.map +1 -1
- package/dist/functions/altool/parseAppInfoOutput.d.ts +2 -0
- package/dist/functions/altool/parseAppInfoOutput.js +55 -0
- package/dist/functions/altool/parseAppInfoOutput.js.map +1 -0
- package/dist/functions/altool/parseValidationOutput.d.ts +6 -0
- package/dist/functions/altool/parseValidationOutput.js +21 -0
- package/dist/functions/altool/parseValidationOutput.js.map +1 -0
- package/dist/functions/altool/validateApp.js +2 -21
- package/dist/functions/altool/validateApp.js.map +1 -1
- package/dist/functions/color/convertColor.d.ts +6 -0
- package/dist/functions/color/convertColor.js +308 -0
- package/dist/functions/color/convertColor.js.map +1 -0
- package/dist/functions/color/deduplicateColors.d.ts +4 -0
- package/dist/functions/color/deduplicateColors.js +55 -0
- package/dist/functions/color/deduplicateColors.js.map +1 -0
- package/dist/functions/color/detectColorFormat.d.ts +2 -0
- package/dist/functions/color/detectColorFormat.js +112 -0
- package/dist/functions/color/detectColorFormat.js.map +1 -0
- package/dist/functions/color/extractColors.d.ts +4 -0
- package/dist/functions/color/extractColors.js +98 -0
- package/dist/functions/color/extractColors.js.map +1 -0
- package/dist/functions/color-converter/convertColor.js +4 -230
- package/dist/functions/color-converter/convertColor.js.map +1 -1
- package/dist/functions/color-converter/createColorReference.d.ts +2 -0
- package/dist/functions/color-converter/createColorReference.js +12 -0
- package/dist/functions/color-converter/createColorReference.js.map +1 -0
- package/dist/functions/color-converter/extractColors.d.ts +2 -15
- package/dist/functions/color-converter/extractColors.js +9 -104
- package/dist/functions/color-converter/extractColors.js.map +1 -1
- package/dist/functions/color-converter/extractColorsFromLine.d.ts +2 -0
- package/dist/functions/color-converter/extractColorsFromLine.js +18 -0
- package/dist/functions/color-converter/extractColorsFromLine.js.map +1 -0
- package/dist/functions/color-converter/extractColorsGeneric.d.ts +2 -0
- package/dist/functions/color-converter/extractColorsGeneric.js +12 -0
- package/dist/functions/color-converter/extractColorsGeneric.js.map +1 -0
- package/dist/functions/color-converter/extractCssVariableReferences.d.ts +2 -0
- package/dist/functions/color-converter/extractCssVariableReferences.js +15 -0
- package/dist/functions/color-converter/extractCssVariableReferences.js.map +1 -0
- package/dist/functions/color-converter/extractThirdPartyVariableReferences.d.ts +2 -0
- package/dist/functions/color-converter/extractThirdPartyVariableReferences.js +15 -0
- package/dist/functions/color-converter/extractThirdPartyVariableReferences.js.map +1 -0
- package/dist/functions/color-converter/formatColorOutput.d.ts +5 -0
- package/dist/functions/color-converter/formatColorOutput.js +48 -0
- package/dist/functions/color-converter/formatColorOutput.js.map +1 -0
- package/dist/functions/color-converter/hslToRgbInternal.d.ts +2 -0
- package/dist/functions/color-converter/hslToRgbInternal.js +24 -0
- package/dist/functions/color-converter/hslToRgbInternal.js.map +1 -0
- package/dist/functions/color-converter/isValidColorValue.d.ts +1 -0
- package/dist/functions/color-converter/isValidColorValue.js +4 -0
- package/dist/functions/color-converter/isValidColorValue.js.map +1 -0
- package/dist/functions/color-converter/isValidHslColor.d.ts +2 -0
- package/dist/functions/color-converter/isValidHslColor.js +14 -0
- package/dist/functions/color-converter/isValidHslColor.js.map +1 -0
- package/dist/functions/color-converter/isValidRgbColor.d.ts +2 -0
- package/dist/functions/color-converter/isValidRgbColor.js +14 -0
- package/dist/functions/color-converter/isValidRgbColor.js.map +1 -0
- package/dist/functions/color-converter/normalizeColorInput.d.ts +6 -0
- package/dist/functions/color-converter/normalizeColorInput.js +94 -0
- package/dist/functions/color-converter/normalizeColorInput.js.map +1 -0
- package/dist/functions/color-converter/parseColorString.d.ts +0 -3
- package/dist/functions/color-converter/parseColorString.js +0 -27
- package/dist/functions/color-converter/parseColorString.js.map +1 -1
- package/dist/functions/color-converter/parseCssVariables.d.ts +2 -0
- package/dist/functions/color-converter/parseCssVariables.js +19 -0
- package/dist/functions/color-converter/parseCssVariables.js.map +1 -0
- package/dist/functions/color-converter/parseHexColor.d.ts +6 -0
- package/dist/functions/color-converter/parseHexColor.js +42 -0
- package/dist/functions/color-converter/parseHexColor.js.map +1 -0
- package/dist/functions/color-converter/rgbToHslInternal.d.ts +2 -0
- package/dist/functions/color-converter/rgbToHslInternal.js +31 -0
- package/dist/functions/color-converter/rgbToHslInternal.js.map +1 -0
- package/dist/functions/css/extractCssVariables.d.ts +12 -0
- package/dist/functions/css/extractCssVariables.js +53 -0
- package/dist/functions/css/extractCssVariables.js.map +1 -0
- package/dist/functions/dom/detectOverflow.js.map +1 -1
- package/dist/functions/dom/getElementRect.js.map +1 -1
- package/dist/functions/dom/getRelativePosition.js.map +1 -1
- package/dist/functions/dom/getViewportRect.js.map +1 -1
- package/dist/functions/dom/getViewportSize.js.map +1 -1
- package/dist/functions/image/generateMacIcons.js.map +1 -1
- package/dist/functions/image/generateMacTrayIcon.js.map +1 -1
- package/dist/functions/image/generatePaddedImage.js.map +1 -1
- package/dist/functions/image/generatePwaIcons.js.map +1 -1
- package/dist/functions/image/generateRoundedImage.js.map +1 -1
- package/dist/functions/ipc/dispatchIpcRequest.js +1 -1
- package/dist/functions/ipc/dispatchIpcRequest.js.map +1 -1
- package/dist/functions/software/buildPathExecutables.js +11 -1
- package/dist/functions/software/buildPathExecutables.js.map +1 -1
- package/dist/functions/software/buildSoftwarePaths.d.ts +1 -1
- package/dist/functions/software/createConfigGenerator.d.ts +1 -1
- package/dist/functions/software/detectPlatform.d.ts +1 -1
- package/dist/functions/software/detectPlatform.js +6 -1
- package/dist/functions/software/detectPlatform.js.map +1 -1
- package/dist/functions/software/find.js +1 -1
- package/dist/functions/software/find.js.map +1 -1
- package/dist/functions/software/findSoftware.d.ts +1 -2
- package/dist/functions/software/findSoftware.js +33 -19
- package/dist/functions/software/findSoftware.js.map +1 -1
- package/dist/functions/software/findSoftwareWithGenerator.d.ts +1 -1
- package/dist/functions/software/getConfigGenerator.d.ts +1 -1
- package/dist/functions/software/getEnvironmentSoftwarePath.js +5 -1
- package/dist/functions/software/getEnvironmentSoftwarePath.js.map +1 -1
- package/dist/functions/software/parseEnvironmentPaths.js +6 -2
- package/dist/functions/software/parseEnvironmentPaths.js.map +1 -1
- package/dist/functions/string/base64.d.ts +2 -0
- package/dist/functions/string/base64.js +6 -0
- package/dist/functions/string/base64.js.map +1 -0
- package/dist/functions/string/caseConverter.d.ts +20 -0
- package/dist/functions/string/caseConverter.js +101 -0
- package/dist/functions/string/caseConverter.js.map +1 -0
- package/dist/functions/string/desensitize.d.ts +13 -0
- package/dist/functions/string/desensitize.js +107 -0
- package/dist/functions/string/desensitize.js.map +1 -0
- package/dist/functions/string/htmlEscape.d.ts +17 -0
- package/dist/functions/string/htmlEscape.js +68 -0
- package/dist/functions/string/htmlEscape.js.map +1 -0
- package/dist/functions/string/pad.d.ts +14 -0
- package/dist/functions/string/pad.js +53 -0
- package/dist/functions/string/pad.js.map +1 -0
- package/dist/functions/string/similarity.js +1 -26
- package/dist/functions/string/similarity.js.map +1 -1
- package/dist/functions/tencent-cloud/getSecret.d.ts +1 -2
- package/dist/functions/tencent-cloud/getSecret.js +2 -3
- package/dist/functions/tencent-cloud/getSecret.js.map +1 -1
- package/dist/functions/uniapp/app-plus/androidProjectStrategy.d.ts +6 -20
- package/dist/functions/uniapp/app-plus/androidProjectStrategy.js +43 -48
- package/dist/functions/uniapp/app-plus/androidProjectStrategy.js.map +1 -1
- package/dist/functions/uniapp/app-plus/buildAndroidProject.js +2 -2
- package/dist/functions/uniapp/app-plus/buildAndroidProject.js.map +1 -1
- package/dist/functions/uniapp/app-plus/configureAndroidProject.js +2 -2
- package/dist/functions/uniapp/app-plus/configureAndroidProject.js.map +1 -1
- package/dist/functions/uniapp/waitForPages.d.ts +1 -1
- package/dist/functions/uniapp/waitForPages.js +3 -2
- package/dist/functions/uniapp/waitForPages.js.map +1 -1
- package/dist/functions/utils/flow.d.ts +1 -1
- package/dist/functions/utils/flow.js +5 -1
- package/dist/functions/utils/flow.js.map +1 -1
- package/dist/functions/vue/checkVueType.d.ts +8 -0
- package/dist/functions/vue/checkVueType.js +29 -0
- package/dist/functions/vue/checkVueType.js.map +1 -0
- package/dist/functions/vue/deduplicateColors.d.ts +2 -0
- package/dist/functions/vue/deduplicateColors.js +13 -0
- package/dist/functions/vue/deduplicateColors.js.map +1 -0
- package/dist/functions/vue/extractColorsFromVueFile.d.ts +3 -0
- package/dist/functions/vue/extractColorsFromVueFile.js +27 -0
- package/dist/functions/vue/extractColorsFromVueFile.js.map +1 -0
- package/dist/functions/vue/extractColorsFromVueSection.d.ts +3 -0
- package/dist/functions/vue/extractColorsFromVueSection.js +53 -0
- package/dist/functions/vue/extractColorsFromVueSection.js.map +1 -0
- package/dist/functions/vue/filterSections.d.ts +2 -0
- package/dist/functions/vue/filterSections.js +11 -0
- package/dist/functions/vue/filterSections.js.map +1 -0
- package/dist/functions/vue/parseVueFile.d.ts +2 -0
- package/dist/functions/vue/parseVueFile.js +53 -0
- package/dist/functions/vue/parseVueFile.js.map +1 -0
- package/dist/functions/vue/processVueFile.d.ts +1 -18
- package/dist/functions/vue/processVueFile.js +5 -77
- package/dist/functions/vue/processVueFile.js.map +1 -1
- package/dist/functions/vue/saveVueSection.d.ts +2 -0
- package/dist/functions/vue/saveVueSection.js +11 -0
- package/dist/functions/vue/saveVueSection.js.map +1 -0
- package/dist/hooks/useAltool.d.ts +68 -0
- package/dist/hooks/useAltool.js +350 -0
- package/dist/hooks/useAltool.js.map +1 -0
- package/package.json +26 -45
- package/types/color.d.ts +30 -3
- package/types/geometry.d.ts +3 -1
- package/types/software.d.ts +27 -0
- package/types/vue.d.ts +30 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export function parseHexColor(hex) {
|
|
2
|
+
const cleanHex = hex.replace(/^#/, '');
|
|
3
|
+
if (!/^[0-9a-fA-F]+$/.test(cleanHex)) {
|
|
4
|
+
return null;
|
|
5
|
+
}
|
|
6
|
+
let r, g, b, alpha = 1;
|
|
7
|
+
switch (cleanHex.length) {
|
|
8
|
+
case 3:
|
|
9
|
+
r = parseInt(cleanHex[0] + cleanHex[0], 16);
|
|
10
|
+
g = parseInt(cleanHex[1] + cleanHex[1], 16);
|
|
11
|
+
b = parseInt(cleanHex[2] + cleanHex[2], 16);
|
|
12
|
+
break;
|
|
13
|
+
case 4:
|
|
14
|
+
r = parseInt(cleanHex[0] + cleanHex[0], 16);
|
|
15
|
+
g = parseInt(cleanHex[1] + cleanHex[1], 16);
|
|
16
|
+
b = parseInt(cleanHex[2] + cleanHex[2], 16);
|
|
17
|
+
alpha = parseInt(cleanHex[3] + cleanHex[3], 16) / 255;
|
|
18
|
+
break;
|
|
19
|
+
case 6:
|
|
20
|
+
r = parseInt(cleanHex.substring(0, 2), 16);
|
|
21
|
+
g = parseInt(cleanHex.substring(2, 4), 16);
|
|
22
|
+
b = parseInt(cleanHex.substring(4, 6), 16);
|
|
23
|
+
break;
|
|
24
|
+
case 8:
|
|
25
|
+
r = parseInt(cleanHex.substring(0, 2), 16);
|
|
26
|
+
g = parseInt(cleanHex.substring(2, 4), 16);
|
|
27
|
+
b = parseInt(cleanHex.substring(4, 6), 16);
|
|
28
|
+
alpha = parseInt(cleanHex.substring(6, 8), 16) / 255;
|
|
29
|
+
break;
|
|
30
|
+
default:
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
if (isNaN(r) || isNaN(g) || isNaN(b) || isNaN(alpha)) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
rgb: { r, g, b },
|
|
38
|
+
alpha,
|
|
39
|
+
originalFormat: 'hex'
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=parseHexColor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseHexColor.js","sourceRoot":"","sources":["../../../src/functions/color-converter/parseHexColor.ts"],"names":[],"mappings":"AA8BA,MAAM,UAAU,aAAa,CAAC,GAAW;IAKvC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAEtC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,KAAK,GAAW,CAAC,CAAA;IAEtD,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,CAAC;YACJ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC3C,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC3C,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC3C,MAAK;QAEP,KAAK,CAAC;YACJ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC3C,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC3C,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC3C,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAA;YACrD,MAAK;QAEP,KAAK,CAAC;YACJ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC1C,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC1C,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC1C,MAAK;QAEP,KAAK,CAAC;YACJ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC1C,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC1C,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC1C,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAA;YACpD,MAAK;QAEP;YACE,OAAO,IAAI,CAAA;IACf,CAAC;IAED,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO;QACL,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;QAChB,KAAK;QACL,cAAc,EAAE,KAAK;KACtB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export function rgbToHslInternal(rgb) {
|
|
2
|
+
const r = rgb.r / 255;
|
|
3
|
+
const g = rgb.g / 255;
|
|
4
|
+
const b = rgb.b / 255;
|
|
5
|
+
const max = Math.max(r, g, b);
|
|
6
|
+
const min = Math.min(r, g, b);
|
|
7
|
+
const diff = max - min;
|
|
8
|
+
let h = 0;
|
|
9
|
+
let s = 0;
|
|
10
|
+
const l = (max + min) / 2;
|
|
11
|
+
if (diff !== 0) {
|
|
12
|
+
s = l > 0.5 ? diff / (2 - max - min) : diff / (max + min);
|
|
13
|
+
switch (max) {
|
|
14
|
+
case r:
|
|
15
|
+
h = ((g - b) / diff + (g < b ? 6 : 0)) / 6;
|
|
16
|
+
break;
|
|
17
|
+
case g:
|
|
18
|
+
h = ((b - r) / diff + 2) / 6;
|
|
19
|
+
break;
|
|
20
|
+
case b:
|
|
21
|
+
h = ((r - g) / diff + 4) / 6;
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
h: Math.round(h * 360),
|
|
27
|
+
s: Math.round(s * 100),
|
|
28
|
+
l: Math.round(l * 100)
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=rgbToHslInternal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rgbToHslInternal.js","sourceRoot":"","sources":["../../../src/functions/color-converter/rgbToHslInternal.ts"],"names":[],"mappings":"AA8BA,MAAM,UAAU,gBAAgB,CAAC,GAAa;IAC5C,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACrB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACrB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IAErB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7B,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,CAAA;IAEtB,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;IAEzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAA;QAEzD,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;gBAC1C,MAAK;YACP,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;gBAC5B,MAAK;YACP,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;gBAC5B,MAAK;QACT,CAAC;IACH,CAAC;IAED,OAAO;QACL,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QACtB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;QACtB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;KACvB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ColorReference } from '../../../types/color.d';
|
|
2
|
+
export interface CssVariableExtractionOptions {
|
|
3
|
+
validOnly?: boolean;
|
|
4
|
+
cssVariables?: Record<string, string>;
|
|
5
|
+
}
|
|
6
|
+
export declare function extractCssVariables(text: string, filePath: string, options?: CssVariableExtractionOptions): ColorReference[];
|
|
7
|
+
export declare function extractCssVariableDefinitions(text: string, filePath: string): Array<{
|
|
8
|
+
variableName: string;
|
|
9
|
+
value: string;
|
|
10
|
+
line: number;
|
|
11
|
+
context: string;
|
|
12
|
+
}>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export function extractCssVariables(text, filePath, options = {}) {
|
|
2
|
+
const { validOnly = true, cssVariables = {} } = options;
|
|
3
|
+
if (!text || typeof text !== 'string') {
|
|
4
|
+
return [];
|
|
5
|
+
}
|
|
6
|
+
const variables = [];
|
|
7
|
+
const lines = text.split('\n');
|
|
8
|
+
const cssVarPattern = /var\(\s*(--[\w-]+)(?:\s*,\s*([^)]+))?\s*\)/g;
|
|
9
|
+
lines.forEach((line, lineIndex) => {
|
|
10
|
+
let match;
|
|
11
|
+
while ((match = cssVarPattern.exec(line)) !== null) {
|
|
12
|
+
const [fullMatch, variableName, fallback] = match;
|
|
13
|
+
const variableValue = cssVariables[variableName];
|
|
14
|
+
if (validOnly && !variableValue && !fallback) {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
variables.push({
|
|
18
|
+
originalValue: fullMatch,
|
|
19
|
+
format: 'css-variable',
|
|
20
|
+
line: lineIndex + 1,
|
|
21
|
+
file: filePath,
|
|
22
|
+
context: line.trim(),
|
|
23
|
+
isVariableReference: true,
|
|
24
|
+
variableName
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
cssVarPattern.lastIndex = 0;
|
|
28
|
+
});
|
|
29
|
+
return variables;
|
|
30
|
+
}
|
|
31
|
+
export function extractCssVariableDefinitions(text, filePath) {
|
|
32
|
+
if (!text || typeof text !== 'string') {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
const definitions = [];
|
|
36
|
+
const lines = text.split('\n');
|
|
37
|
+
const cssVarDefPattern = /--(\w[\w-]*?)\s*:\s*([^;]+);/g;
|
|
38
|
+
lines.forEach((line, lineIndex) => {
|
|
39
|
+
let match;
|
|
40
|
+
while ((match = cssVarDefPattern.exec(line)) !== null) {
|
|
41
|
+
const [, variableName, value] = match;
|
|
42
|
+
definitions.push({
|
|
43
|
+
variableName: `--${variableName}`,
|
|
44
|
+
value: value.trim(),
|
|
45
|
+
line: lineIndex + 1,
|
|
46
|
+
context: line.trim()
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
cssVarDefPattern.lastIndex = 0;
|
|
50
|
+
});
|
|
51
|
+
return definitions;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=extractCssVariables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractCssVariables.js","sourceRoot":"","sources":["../../../src/functions/css/extractCssVariables.ts"],"names":[],"mappings":"AAiDA,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,QAAgB,EAChB,UAAwC,EAAE;IAE1C,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,OAAO,CAAA;IAEvD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,SAAS,GAAqB,EAAE,CAAA;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAG9B,MAAM,aAAa,GAAG,6CAA6C,CAAA;IAEnE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;QAChC,IAAI,KAAK,CAAA;QACT,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACnD,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAA;YACjD,MAAM,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,CAAA;YAGhD,IAAI,SAAS,IAAI,CAAC,aAAa,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7C,SAAQ;YACV,CAAC;YAED,SAAS,CAAC,IAAI,CAAC;gBACb,aAAa,EAAE,SAAS;gBACxB,MAAM,EAAE,cAA6B;gBACrC,IAAI,EAAE,SAAS,GAAG,CAAC;gBACnB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE;gBACpB,mBAAmB,EAAE,IAAI;gBACzB,YAAY;aACb,CAAC,CAAA;QACJ,CAAC;QAGD,aAAa,CAAC,SAAS,GAAG,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,OAAO,SAAS,CAAA;AAClB,CAAC;AAsBD,MAAM,UAAU,6BAA6B,CAC3C,IAAY,EACZ,QAAgB;IAOhB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,WAAW,GAKZ,EAAE,CAAA;IAEP,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAG9B,MAAM,gBAAgB,GAAG,+BAA+B,CAAA;IAExD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;QAChC,IAAI,KAAK,CAAA;QACT,OAAO,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACtD,MAAM,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,GAAG,KAAK,CAAA;YAErC,WAAW,CAAC,IAAI,CAAC;gBACf,YAAY,EAAE,KAAK,YAAY,EAAE;gBACjC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;gBACnB,IAAI,EAAE,SAAS,GAAG,CAAC;gBACnB,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE;aACrB,CAAC,CAAA;QACJ,CAAC;QAGD,gBAAgB,CAAC,SAAS,GAAG,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,OAAO,WAAW,CAAA;AACpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detectOverflow.js","sourceRoot":"","sources":["../../../src/functions/dom/detectOverflow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"detectOverflow.js","sourceRoot":"","sources":["../../../src/functions/dom/detectOverflow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAgCnD,MAAM,UAAU,cAAc,CAC5B,WAAiB,EACjB,MAAkB,EAClB,UAAkB,CAAC;IAEnB,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IAC5C,MAAM,QAAQ,GAAG;QACf,GAAG,EAAE,YAAY,CAAC,GAAG,GAAG,OAAO,GAAG,WAAW,CAAC,GAAG;QACjD,KAAK,EAAE,WAAW,CAAC,KAAK,GAAG,CAAC,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC;QACzD,MAAM,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC;QAC5D,IAAI,EAAE,YAAY,CAAC,IAAI,GAAG,OAAO,GAAG,WAAW,CAAC,IAAI;KACrD,CAAA;IACD,OAAO;QACL,GAAG,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxC,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC5C,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getElementRect.js","sourceRoot":"","sources":["../../../src/functions/dom/getElementRect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getElementRect.js","sourceRoot":"","sources":["../../../src/functions/dom/getElementRect.ts"],"names":[],"mappings":"AA8BA,MAAM,UAAU,cAAc,CAAC,OAAoB;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAA;IAC5C,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,CAAC,EAAE,IAAI,CAAC,IAAI;QACZ,CAAC,EAAE,IAAI,CAAC,GAAG;QACX,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRelativePosition.js","sourceRoot":"","sources":["../../../src/functions/dom/getRelativePosition.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getRelativePosition.js","sourceRoot":"","sources":["../../../src/functions/dom/getRelativePosition.ts"],"names":[],"mappings":"AA+BA,MAAM,UAAU,mBAAmB,CAAC,IAAU,EAAE,YAA0B;IACxE,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,YAAY,CAAC,qBAAqB,EAAE,CAAA;QACvD,OAAO;YACL,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI;YAC9B,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG;SAC7B,CAAA;IACH,CAAC;IACD,OAAO;QACL,CAAC,EAAE,IAAI,CAAC,IAAI;QACZ,CAAC,EAAE,IAAI,CAAC,GAAG;KACZ,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getViewportRect.js","sourceRoot":"","sources":["../../../src/functions/dom/getViewportRect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"getViewportRect.js","sourceRoot":"","sources":["../../../src/functions/dom/getViewportRect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AA8BnD,MAAM,UAAU,eAAe,CAAC,MAAkB;IAChD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IACjD,OAAO;QACL,KAAK;QACL,MAAM;QACN,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,MAAM;KACf,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getViewportSize.js","sourceRoot":"","sources":["../../../src/functions/dom/getViewportSize.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getViewportSize.js","sourceRoot":"","sources":["../../../src/functions/dom/getViewportSize.ts"],"names":[],"mappings":"AAgCA,MAAM,UAAU,eAAe,CAAC,MAAkB;IAChD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,UAAU;QACxB,MAAM,EAAE,MAAM,CAAC,WAAW;KAC3B,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateMacIcons.js","sourceRoot":"","sources":["../../../src/functions/image/generateMacIcons.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"generateMacIcons.js","sourceRoot":"","sources":["../../../src/functions/image/generateMacIcons.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAiC3D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAiB,EACjB,KAAe,EACf,KAAY,EACZ,MAA6B;IAE7B,MAAM,OAAO,GAA2C,EAAE,CAAA;IAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QACrE,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;QACxE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC;aACpC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;aAClB,QAAQ,EAAE,CAAA;QACb,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IAChC,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateMacTrayIcon.js","sourceRoot":"","sources":["../../../src/functions/image/generateMacTrayIcon.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generateMacTrayIcon.js","sourceRoot":"","sources":["../../../src/functions/image/generateMacTrayIcon.ts"],"names":[],"mappings":"AAqCA,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAiB,EACjB,KAAe,EACf,MAA8B,EAC9B,KAAY;IAEZ,MAAM,OAAO,GAA0D,EAAE,CAAA;IACzE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC;iBAC9B,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;iBAClB,OAAO,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;iBAC9B,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC;iBACxB,QAAQ,EAAE,CAAA;YACb,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePaddedImage.js","sourceRoot":"","sources":["../../../src/functions/image/generatePaddedImage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generatePaddedImage.js","sourceRoot":"","sources":["../../../src/functions/image/generatePaddedImage.ts"],"names":[],"mappings":"AA8BA,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAAiB,EAAE,eAAuB,IAAI,EAAE,KAAY;IACpG,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAM,GAAG,YAAY,CAAC,CAAA;IAC1D,OAAO,MAAM,KAAK,CAAC,KAAK,CAAC;SACtB,MAAM,CAAC;QACN,GAAG,EAAE,OAAO;QACZ,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;KAC3C,CAAC;SACD,QAAQ,EAAE,CAAA;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePwaIcons.js","sourceRoot":"","sources":["../../../src/functions/image/generatePwaIcons.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"generatePwaIcons.js","sourceRoot":"","sources":["../../../src/functions/image/generatePwaIcons.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAiC3D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAiB,EACjB,KAAe,EACf,KAAY,EACZ,MAA6B;IAE7B,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACrE,MAAM,kBAAkB,GAAG,MAAM,mBAAmB,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAC/E,MAAM,OAAO,GAA2C,EAAE,CAAA;IAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC;aAC3C,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;aAClB,QAAQ,EAAE,CAAA;QACb,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IAChC,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateRoundedImage.js","sourceRoot":"","sources":["../../../src/functions/image/generateRoundedImage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generateRoundedImage.js","sourceRoot":"","sources":["../../../src/functions/image/generateRoundedImage.ts"],"names":[],"mappings":"AA6BA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAiB,EAAE,KAAY,EAAE,MAA6B;IACvG,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAM,CAAA;IAC5B,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAChC,iCAAiC,IAAI,aAAa,IAAI,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,WAAW,CAC5G,CAAA;IACD,OAAO,MAAM,KAAK,CAAC,KAAK,CAAC;SACtB,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;SAClB,SAAS,CAAC;QACT;YACE,KAAK,EAAE,cAAc;YACrB,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,SAAS;SACjB;KACF,CAAC;SACD,QAAQ,EAAE,CAAA;AACf,CAAC"}
|
|
@@ -2,7 +2,7 @@ export async function dispatchIpcRequest(req, functionsDir, path) {
|
|
|
2
2
|
const funcPath = path.resolve(functionsDir, req.event);
|
|
3
3
|
const mod = await import(funcPath);
|
|
4
4
|
if (typeof mod.default !== 'function') {
|
|
5
|
-
throw new Error('
|
|
5
|
+
throw new Error('未找到处理器或处理器不是函数');
|
|
6
6
|
}
|
|
7
7
|
const data = await mod.default(req.args);
|
|
8
8
|
return data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatchIpcRequest.js","sourceRoot":"","sources":["../../../src/functions/ipc/dispatchIpcRequest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dispatchIpcRequest.js","sourceRoot":"","sources":["../../../src/functions/ipc/dispatchIpcRequest.ts"],"names":[],"mappings":"AAiDA,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAe,EACf,YAAoB,EACpB,IAAc;IAEd,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
export function buildPathExecutables(paths, executable) {
|
|
2
|
-
|
|
2
|
+
if (!Array.isArray(paths) || !executable || typeof executable !== 'string') {
|
|
3
|
+
return [];
|
|
4
|
+
}
|
|
5
|
+
return paths
|
|
6
|
+
.filter(path => path && typeof path === 'string')
|
|
7
|
+
.map(dir => {
|
|
8
|
+
const trimmedDir = dir.trim();
|
|
9
|
+
const trimmedExecutable = executable.trim();
|
|
10
|
+
const cleanDir = trimmedDir.replace(/[\/\\]+$/, '');
|
|
11
|
+
return `${cleanDir}/${trimmedExecutable}`;
|
|
12
|
+
});
|
|
3
13
|
}
|
|
4
14
|
//# sourceMappingURL=buildPathExecutables.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildPathExecutables.js","sourceRoot":"","sources":["../../../src/functions/software/buildPathExecutables.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buildPathExecutables.js","sourceRoot":"","sources":["../../../src/functions/software/buildPathExecutables.ts"],"names":[],"mappings":"AAwBA,MAAM,UAAU,oBAAoB,CAAC,KAAe,EAAE,UAAkB;IAEtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC3E,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,KAAK;SACT,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC;SAChD,GAAG,CAAC,GAAG,CAAC,EAAE;QACT,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAC7B,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAA;QAG3C,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;QAGnD,OAAO,GAAG,QAAQ,IAAI,iBAAiB,EAAE,CAAA;IAC3C,CAAC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { SoftwareConfig } from '
|
|
1
|
+
import type { SoftwareConfig } from '../../../types/software.d';
|
|
2
2
|
export declare function buildSoftwarePaths(config: SoftwareConfig, userHome: string): string[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Platform, ProcessLike } from '
|
|
1
|
+
import type { Platform, ProcessLike } from '../../../types/software.d';
|
|
2
2
|
export declare function detectPlatform(processObj: ProcessLike): Platform;
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import { SUPPORTED_PLATFORMS } from '../../constants/softwareConfigs';
|
|
1
2
|
export function detectPlatform(processObj) {
|
|
2
|
-
|
|
3
|
+
const platform = processObj.platform;
|
|
4
|
+
if (!SUPPORTED_PLATFORMS.includes(platform)) {
|
|
5
|
+
throw new Error(`不支持的平台: ${platform}。支持的平台: ${SUPPORTED_PLATFORMS.join(', ')}`);
|
|
6
|
+
}
|
|
7
|
+
return platform;
|
|
3
8
|
}
|
|
4
9
|
//# sourceMappingURL=detectPlatform.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detectPlatform.js","sourceRoot":"","sources":["../../../src/functions/software/detectPlatform.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"detectPlatform.js","sourceRoot":"","sources":["../../../src/functions/software/detectPlatform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AAsBrE,MAAM,UAAU,cAAc,CAAC,UAAuB;IACpD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;IAGpC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAoB,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,WAAW,QAAQ,WAAW,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACjF,CAAC;IAED,OAAO,QAAoB,CAAA;AAC7B,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { SOFTWARE_NAME_MAP } from './softwareNameMap';
|
|
|
4
4
|
export function find(softwareName, systemInfo) {
|
|
5
5
|
const actualName = SOFTWARE_NAME_MAP[softwareName.toLowerCase()];
|
|
6
6
|
if (!actualName) {
|
|
7
|
-
throw new Error(
|
|
7
|
+
throw new Error(`不支持的软件: ${softwareName}。支持的软件: ${Object.keys(SOFTWARE_NAME_MAP).join(', ')}`);
|
|
8
8
|
}
|
|
9
9
|
const generator = getConfigGenerator(actualName);
|
|
10
10
|
return findSoftwareWithGenerator(generator, systemInfo);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../../src/functions/software/find.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAQrD,MAAM,UAAU,IAAI,CAAC,YAAoB,EAAE,UAAsB;IAC/D,MAAM,UAAU,GAAG,iBAAiB,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAA;IAEhE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../../src/functions/software/find.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAQrD,MAAM,UAAU,IAAI,CAAC,YAAoB,EAAE,UAAsB;IAC/D,MAAM,UAAU,GAAG,iBAAiB,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAA;IAEhE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,WAAW,YAAY,WAAW,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChG,CAAC;IAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;IAChD,OAAO,yBAAyB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;AACzD,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { SoftwareConfig } from './types';
|
|
2
1
|
export interface SoftwareSearchResult {
|
|
3
2
|
found: boolean;
|
|
4
3
|
path?: string;
|
|
@@ -11,4 +10,4 @@ export interface SystemInfo {
|
|
|
11
10
|
platform: string;
|
|
12
11
|
};
|
|
13
12
|
}
|
|
14
|
-
export declare function
|
|
13
|
+
export declare function findSoftwareByName(softwareName: string, systemInfo: SystemInfo): SoftwareSearchResult;
|
|
@@ -1,29 +1,43 @@
|
|
|
1
|
+
import { SOFTWARE_CONFIGS, SOFTWARE_NAME_MAP } from '../../constants/softwareConfigs';
|
|
1
2
|
import { detectPlatform } from './detectPlatform';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const platform = detectPlatform(process);
|
|
9
|
-
const
|
|
10
|
-
|
|
3
|
+
export function findSoftwareByName(softwareName, systemInfo) {
|
|
4
|
+
const normalizedName = SOFTWARE_NAME_MAP[softwareName] || softwareName;
|
|
5
|
+
const config = SOFTWARE_CONFIGS[normalizedName];
|
|
6
|
+
if (!config) {
|
|
7
|
+
return { found: false };
|
|
8
|
+
}
|
|
9
|
+
const platform = detectPlatform(systemInfo.process);
|
|
10
|
+
const platformConfig = config[platform];
|
|
11
|
+
const envPath = systemInfo.env[config.envVar];
|
|
12
|
+
if (envPath && systemInfo.fileExists(envPath)) {
|
|
11
13
|
return { found: true, path: envPath };
|
|
12
14
|
}
|
|
13
|
-
const pathEnv = env.PATH || env.Path || '';
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
for (const
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
const pathEnv = systemInfo.env.PATH || systemInfo.env.Path || '';
|
|
16
|
+
const pathSeparator = platform === 'win32' ? ';' : ':';
|
|
17
|
+
const pathDirs = pathEnv.split(pathSeparator).filter(Boolean);
|
|
18
|
+
for (const dir of pathDirs) {
|
|
19
|
+
const executablePath = joinPath(dir, platformConfig.executable);
|
|
20
|
+
if (systemInfo.fileExists(executablePath)) {
|
|
21
|
+
return { found: true, path: executablePath };
|
|
19
22
|
}
|
|
20
23
|
}
|
|
21
|
-
const allPaths =
|
|
22
|
-
for (const
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
const allPaths = [...platformConfig.possiblePaths];
|
|
25
|
+
for (const userPath of platformConfig.userPaths) {
|
|
26
|
+
const expandedPath = userPath.startsWith('~')
|
|
27
|
+
? userPath.replace('~', systemInfo.userHome)
|
|
28
|
+
: joinPath(systemInfo.userHome, userPath);
|
|
29
|
+
allPaths.push(expandedPath);
|
|
30
|
+
}
|
|
31
|
+
for (const basePath of allPaths) {
|
|
32
|
+
const executablePath = joinPath(basePath, platformConfig.executable);
|
|
33
|
+
if (systemInfo.fileExists(executablePath)) {
|
|
34
|
+
return { found: true, path: executablePath };
|
|
25
35
|
}
|
|
26
36
|
}
|
|
27
37
|
return { found: false };
|
|
28
38
|
}
|
|
39
|
+
function joinPath(dir, file) {
|
|
40
|
+
const separator = dir.includes('\\') ? '\\' : '/';
|
|
41
|
+
return dir.endsWith(separator) ? dir + file : dir + separator + file;
|
|
42
|
+
}
|
|
29
43
|
//# sourceMappingURL=findSoftware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findSoftware.js","sourceRoot":"","sources":["../../../src/functions/software/findSoftware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"findSoftware.js","sourceRoot":"","sources":["../../../src/functions/software/findSoftware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAoDjD,MAAM,UAAU,kBAAkB,CAChC,YAAoB,EACpB,UAAsB;IAGtB,MAAM,cAAc,GAAG,iBAAiB,CAAC,YAAY,CAAC,IAAI,YAAY,CAAA;IACtE,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAA;IAE/C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGD,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IACnD,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;IAGvC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC7C,IAAI,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;IACvC,CAAC;IAGD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;IAChE,MAAM,aAAa,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;IACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAE7D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;QAC/D,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAA;QAC9C,CAAC;IACH,CAAC;IAGD,MAAM,QAAQ,GAAG,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,CAAA;IAGlD,KAAK,MAAM,QAAQ,IAAI,cAAc,CAAC,SAAS,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;YAC3C,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,QAAQ,CAAC;YAC5C,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC3C,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;QACpE,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAA;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;AACzB,CAAC;AAKD,SAAS,QAAQ,CAAC,GAAW,EAAE,IAAY;IACzC,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAA;IACjD,OAAO,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI,CAAA;AACtE,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { SoftwareConfig, Platform } from '
|
|
1
|
+
import type { SoftwareConfig, Platform } from '../../../types/software.d';
|
|
2
2
|
import type { SystemInfo, SoftwareSearchResult } from './findSoftware';
|
|
3
3
|
export declare function findSoftwareWithGenerator(softwareConfigGenerator: (platform: Platform) => SoftwareConfig, systemInfo: SystemInfo): SoftwareSearchResult;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { SoftwareConfig, Platform } from '
|
|
1
|
+
import type { SoftwareConfig, Platform } from '../../../types/software.d';
|
|
2
2
|
export declare function getConfigGenerator(softwareName: string): (platform: Platform) => SoftwareConfig;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export function getEnvironmentSoftwarePath(envVar, env) {
|
|
2
|
-
|
|
2
|
+
if (!envVar || typeof envVar !== 'string') {
|
|
3
|
+
return null;
|
|
4
|
+
}
|
|
5
|
+
const value = env[envVar];
|
|
6
|
+
return (value && typeof value === 'string' && value.trim() !== '') ? value.trim() : null;
|
|
3
7
|
}
|
|
4
8
|
//# sourceMappingURL=getEnvironmentSoftwarePath.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getEnvironmentSoftwarePath.js","sourceRoot":"","sources":["../../../src/functions/software/getEnvironmentSoftwarePath.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getEnvironmentSoftwarePath.js","sourceRoot":"","sources":["../../../src/functions/software/getEnvironmentSoftwarePath.ts"],"names":[],"mappings":"AAqBA,MAAM,UAAU,0BAA0B,CAAC,MAAc,EAAE,GAAuC;IAEhG,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;IACzB,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAC1F,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
export function parseEnvironmentPaths(pathEnv, platform) {
|
|
2
|
-
if (!pathEnv)
|
|
2
|
+
if (!pathEnv || typeof pathEnv !== 'string') {
|
|
3
3
|
return [];
|
|
4
|
+
}
|
|
4
5
|
const separator = platform === 'win32' || (!platform && pathEnv.includes(';')) ? ';' : ':';
|
|
5
|
-
return pathEnv
|
|
6
|
+
return pathEnv
|
|
7
|
+
.split(separator)
|
|
8
|
+
.map(path => path.trim())
|
|
9
|
+
.filter(path => path !== '');
|
|
6
10
|
}
|
|
7
11
|
//# sourceMappingURL=parseEnvironmentPaths.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseEnvironmentPaths.js","sourceRoot":"","sources":["../../../src/functions/software/parseEnvironmentPaths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parseEnvironmentPaths.js","sourceRoot":"","sources":["../../../src/functions/software/parseEnvironmentPaths.ts"],"names":[],"mappings":"AAyBA,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,QAAiB;IAEtE,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,EAAE,CAAA;IACX,CAAC;IAGD,MAAM,SAAS,GAAG,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;IAE1F,OAAO,OAAO;SACX,KAAK,CAAC,SAAS,CAAC;SAChB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAA;AAChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base64.js","sourceRoot":"","sources":["../../../src/functions/string/base64.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,aAA4B;IACnE,OAAO,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACzF,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type CaseType = 'camel' | 'pascal' | 'kebab' | 'snake' | 'constant' | 'dot' | 'path' | 'sentence' | 'title';
|
|
2
|
+
export interface CaseOptions {
|
|
3
|
+
targetCase?: CaseType;
|
|
4
|
+
preserveConsecutiveUppercase?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface CaseResult {
|
|
7
|
+
original: string;
|
|
8
|
+
camelCase: string;
|
|
9
|
+
pascalCase: string;
|
|
10
|
+
kebabCase: string;
|
|
11
|
+
snakeCase: string;
|
|
12
|
+
constantCase: string;
|
|
13
|
+
dotCase: string;
|
|
14
|
+
pathCase: string;
|
|
15
|
+
sentenceCase: string;
|
|
16
|
+
titleCase: string;
|
|
17
|
+
detectedCase: CaseType | 'mixed';
|
|
18
|
+
}
|
|
19
|
+
export declare function caseConverter(str: string, options?: CaseOptions, returnDetails?: boolean): string | CaseResult;
|
|
20
|
+
export declare function caseConverterWithDetails(str: string, options?: CaseOptions): CaseResult;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
export function caseConverter(str, options = {}, returnDetails = false) {
|
|
2
|
+
const { targetCase = 'camel', preserveConsecutiveUppercase = false } = options;
|
|
3
|
+
if (!str) {
|
|
4
|
+
const emptyResult = {
|
|
5
|
+
original: str,
|
|
6
|
+
camelCase: str,
|
|
7
|
+
pascalCase: str,
|
|
8
|
+
kebabCase: str,
|
|
9
|
+
snakeCase: str,
|
|
10
|
+
constantCase: str,
|
|
11
|
+
dotCase: str,
|
|
12
|
+
pathCase: str,
|
|
13
|
+
sentenceCase: str,
|
|
14
|
+
titleCase: str,
|
|
15
|
+
detectedCase: 'mixed'
|
|
16
|
+
};
|
|
17
|
+
return returnDetails ? emptyResult : str;
|
|
18
|
+
}
|
|
19
|
+
const detectedCase = detectCase(str);
|
|
20
|
+
const words = splitIntoWords(str, preserveConsecutiveUppercase);
|
|
21
|
+
const camelCase = words.map((word, index) => index === 0 ? word.toLowerCase() : capitalize(word.toLowerCase())).join('');
|
|
22
|
+
const pascalCase = words.map(word => capitalize(word.toLowerCase())).join('');
|
|
23
|
+
const kebabCase = words.map(word => word.toLowerCase()).join('-');
|
|
24
|
+
const snakeCase = words.map(word => word.toLowerCase()).join('_');
|
|
25
|
+
const constantCase = words.map(word => word.toUpperCase()).join('_');
|
|
26
|
+
const dotCase = words.map(word => word.toLowerCase()).join('.');
|
|
27
|
+
const pathCase = words.map(word => word.toLowerCase()).join('/');
|
|
28
|
+
const sentenceCase = words.map((word, index) => index === 0 ? capitalize(word.toLowerCase()) : word.toLowerCase()).join(' ');
|
|
29
|
+
const titleCase = words.map(word => capitalize(word.toLowerCase())).join(' ');
|
|
30
|
+
const result = {
|
|
31
|
+
original: str,
|
|
32
|
+
camelCase,
|
|
33
|
+
pascalCase,
|
|
34
|
+
kebabCase,
|
|
35
|
+
snakeCase,
|
|
36
|
+
constantCase,
|
|
37
|
+
dotCase,
|
|
38
|
+
pathCase,
|
|
39
|
+
sentenceCase,
|
|
40
|
+
titleCase,
|
|
41
|
+
detectedCase
|
|
42
|
+
};
|
|
43
|
+
if (returnDetails) {
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
switch (targetCase) {
|
|
47
|
+
case 'camel': return camelCase;
|
|
48
|
+
case 'pascal': return pascalCase;
|
|
49
|
+
case 'kebab': return kebabCase;
|
|
50
|
+
case 'snake': return snakeCase;
|
|
51
|
+
case 'constant': return constantCase;
|
|
52
|
+
case 'dot': return dotCase;
|
|
53
|
+
case 'path': return pathCase;
|
|
54
|
+
case 'sentence': return sentenceCase;
|
|
55
|
+
case 'title': return titleCase;
|
|
56
|
+
default:
|
|
57
|
+
throw new Error(`Invalid target case: ${targetCase}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function detectCase(str) {
|
|
61
|
+
if (/^[a-z]+([A-Z][a-z]*)*$/.test(str))
|
|
62
|
+
return 'camel';
|
|
63
|
+
if (/^[A-Z][a-z]*([A-Z][a-z]*)*$/.test(str))
|
|
64
|
+
return 'pascal';
|
|
65
|
+
if (/^[a-z]+(-[a-z]+)*$/.test(str))
|
|
66
|
+
return 'kebab';
|
|
67
|
+
if (/^[a-z]+(_[a-z]+)*$/.test(str))
|
|
68
|
+
return 'snake';
|
|
69
|
+
if (/^[A-Z]+(_[A-Z]+)*$/.test(str))
|
|
70
|
+
return 'constant';
|
|
71
|
+
if (/^[a-z]+(\.[a-z]+)*$/.test(str))
|
|
72
|
+
return 'dot';
|
|
73
|
+
if (/^[a-z]+(\/[a-z]+)*$/.test(str))
|
|
74
|
+
return 'path';
|
|
75
|
+
if (/^[A-Z][a-z]*( [a-z]+)*$/.test(str))
|
|
76
|
+
return 'sentence';
|
|
77
|
+
if (/^[A-Z][a-z]*( [A-Z][a-z]*)*$/.test(str))
|
|
78
|
+
return 'title';
|
|
79
|
+
return 'mixed';
|
|
80
|
+
}
|
|
81
|
+
function splitIntoWords(str, preserveConsecutiveUppercase) {
|
|
82
|
+
let result = str
|
|
83
|
+
.replace(/[-_.\/ ]+/g, '|')
|
|
84
|
+
.replace(/([a-z])([A-Z])/g, '$1|$2');
|
|
85
|
+
if (!preserveConsecutiveUppercase) {
|
|
86
|
+
result = result.replace(/([A-Z])([A-Z][a-z])/g, '$1|$2');
|
|
87
|
+
}
|
|
88
|
+
return result
|
|
89
|
+
.split('|')
|
|
90
|
+
.filter(word => word.length > 0)
|
|
91
|
+
.map(word => word.trim());
|
|
92
|
+
}
|
|
93
|
+
function capitalize(str) {
|
|
94
|
+
if (!str)
|
|
95
|
+
return str;
|
|
96
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
97
|
+
}
|
|
98
|
+
export function caseConverterWithDetails(str, options = {}) {
|
|
99
|
+
return caseConverter(str, options, true);
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=caseConverter.js.map
|