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
package/README.md
CHANGED
|
@@ -4,17 +4,43 @@
|
|
|
4
4
|
|
|
5
5
|
**重要说明**: 本库是环境无关的纯TypeScript库,所有函数必须保持环境无关性,仅通过TypeScript引用声明环境依赖。
|
|
6
6
|
|
|
7
|
-
**例外说明**:
|
|
7
|
+
**例外说明**:
|
|
8
|
+
- `scripts/` 目录下的文件为构建脚本,不会被打包到最终产物中,因此可以直接导入Node.js环境模块,不需要遵循环境无关性规则。
|
|
9
|
+
- `playground/` 目录是功能验证环境,用于测试和验证shared包中的函数功能,有独立的配置和依赖管理,不受shared包的环境无关性规则约束。
|
|
10
|
+
|
|
11
|
+
## 核心原则摘要
|
|
12
|
+
|
|
13
|
+
### 🎯 设计原则
|
|
14
|
+
- **环境无关性**: 所有代码必须与运行环境无关,通过依赖注入获取环境实例
|
|
15
|
+
- **纯函数**: Functions 目录中的所有函数必须是纯函数,无副作用
|
|
16
|
+
- **类型安全**: 使用 TypeScript 严格模式,避免 any 类型
|
|
17
|
+
- **单一职责**: 每个文件只包含一个函数或一组相关常量
|
|
18
|
+
|
|
19
|
+
### 📁 文件组织
|
|
20
|
+
- **Functions**: 一个文件一个函数,使用具名导出,禁止 index.ts
|
|
21
|
+
- **Types**: 通用类型定义,支持环境类型引用
|
|
22
|
+
- **Constants**: 按模块组织常量,使用具名导出
|
|
23
|
+
- **Playground**: 功能验证环境,不受 shared 包规则约束
|
|
24
|
+
|
|
25
|
+
### 🔧 技术要求
|
|
26
|
+
- **导出方式**: 强制使用具名导出,禁止默认导出
|
|
27
|
+
- **类型引用**: 环境类型通过 TypeScript 引用声明,实例通过参数传入
|
|
28
|
+
- **错误处理**: 统一的错误处理机制,明确的错误类型
|
|
29
|
+
- **文档**: 完整的 JSDoc 注释,清晰的参数和返回值说明
|
|
30
|
+
|
|
31
|
+
---
|
|
8
32
|
|
|
9
33
|
## 目录结构
|
|
10
34
|
|
|
11
35
|
```
|
|
12
36
|
src/
|
|
13
|
-
├──
|
|
14
|
-
├──
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
37
|
+
├── constants/ # 常量定义,包括配置项、正则表达式、映射表等
|
|
38
|
+
├── functions/ # 纯函数,按功能分类组织
|
|
39
|
+
├── hooks/ # Vue/React hooks
|
|
40
|
+
references/ # 环境相关和第三方库的TypeScript类型定义
|
|
41
|
+
types/ # 可导出的公共类型定义
|
|
42
|
+
scripts/ # 构建脚本(不会被打包,可直接使用Node.js模块)
|
|
43
|
+
playground/ # 功能验证环境(用于测试shared包功能,有独立配置)
|
|
18
44
|
```
|
|
19
45
|
|
|
20
46
|
## TypeScript 类型声明规范
|
|
@@ -260,6 +286,87 @@ export interface Sharp {
|
|
|
260
286
|
- 所有图像处理函数都应该接收 `sharp: Sharp` 参数
|
|
261
287
|
- 确保 Sharp 相关接口正确导出
|
|
262
288
|
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
## 函数设计原则
|
|
292
|
+
|
|
293
|
+
### 5. 函数设计核心原则
|
|
294
|
+
|
|
295
|
+
#### 5.1 环境无关性与依赖注入
|
|
296
|
+
- 所有环境依赖都必须通过参数传入,确保函数保持环境无关性
|
|
297
|
+
- 函数不能直接导入任何环境模块(如 fs、path、sharp 等)
|
|
298
|
+
- 仅通过 TypeScript 引用声明环境类型,实例通过参数传入
|
|
299
|
+
- 函数可在任意环境中运行,更容易测试、维护和跨环境复用
|
|
300
|
+
|
|
301
|
+
#### 5.2 纯函数要求
|
|
302
|
+
- `functions/` 目录下的函数必须是环境无关的纯函数
|
|
303
|
+
- 函数不能直接访问任何环境变量或全局对象
|
|
304
|
+
- 相同的输入必须产生相同的输出,不能有副作用
|
|
305
|
+
- 按功能模块组织函数(如 dom/、image/、debug/ 等)
|
|
306
|
+
|
|
307
|
+
#### 5.3 类型安全
|
|
308
|
+
- 所有函数参数都应该有明确的类型声明
|
|
309
|
+
- 使用 TypeScript 的严格模式
|
|
310
|
+
- 避免使用 `any` 类型,优先使用具体的类型定义
|
|
311
|
+
|
|
312
|
+
#### 5.4 避免过度抽象
|
|
313
|
+
- **函数复杂度要求**: 每个导出的函数都应该有足够的复杂度和独立的使用价值
|
|
314
|
+
- **避免简单包装**: 不要为只有几行代码的简单操作创建独立函数
|
|
315
|
+
- **内联简单逻辑**: 过于简单的逻辑应该内联到使用它们的地方,而不是单独抽取
|
|
316
|
+
- **减少文件数量**: 避免创建大量功能单一的小文件,影响项目的可维护性
|
|
317
|
+
|
|
318
|
+
**✅ 合理的函数抽象**:
|
|
319
|
+
```typescript
|
|
320
|
+
// 复杂的业务逻辑,值得单独抽取
|
|
321
|
+
export function parseVueFile(content: string): VueFileStructure {
|
|
322
|
+
// 包含复杂的解析逻辑,正则匹配,错误处理等
|
|
323
|
+
// 50+ 行代码的复杂实现
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
// 组合多个相关功能的函数
|
|
327
|
+
export function checkVueType(content: unknown): VueTypeCheckResult {
|
|
328
|
+
// 内联简单的类型检查逻辑
|
|
329
|
+
const isComponent = (
|
|
330
|
+
typeof content === 'object' &&
|
|
331
|
+
content !== null &&
|
|
332
|
+
('render' in content || 'setup' in content || 'template' in content)
|
|
333
|
+
)
|
|
334
|
+
|
|
335
|
+
const isVNode = (
|
|
336
|
+
typeof content === 'object' && content !== null && '__v_isVNode' in content
|
|
337
|
+
)
|
|
338
|
+
|
|
339
|
+
return { isComponent, isVNode, type: isComponent ? 'component' : isVNode ? 'vnode' : 'unknown' }
|
|
340
|
+
}
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
**❌ 过度抽象的反例**:
|
|
344
|
+
```typescript
|
|
345
|
+
// 过于简单,不值得单独抽取
|
|
346
|
+
export function isVNode(content: unknown): boolean {
|
|
347
|
+
return typeof content === 'object' && content !== null && '__v_isVNode' in content
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
// 只有简单的数组操作,应该内联
|
|
351
|
+
export function saveVueSection(sections: VueSection[], section: VueSection): void {
|
|
352
|
+
if (section.type && section.content.length > 0) {
|
|
353
|
+
sections.push(section)
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
#### 5.5 函数独立价值原则
|
|
359
|
+
- **独立使用价值**: 每个函数都应该能够独立使用,解决特定的业务问题
|
|
360
|
+
- **避免仅内部使用**: 如果函数只被一个地方使用,考虑是否应该内联
|
|
361
|
+
- **功能完整性**: 函数应该提供完整的功能,而不是功能片段
|
|
362
|
+
- **复用性考虑**: 优先考虑函数的复用性和通用性
|
|
363
|
+
|
|
364
|
+
#### 5.6 重构指导原则
|
|
365
|
+
- **合并相关功能**: 将相关的简单函数合并到一个更完整的函数中
|
|
366
|
+
- **内联简单逻辑**: 将过于简单的函数逻辑内联到调用方
|
|
367
|
+
- **保持核心功能**: 重构时保持原有功能不变,只优化代码结构
|
|
368
|
+
- **减少依赖关系**: 减少函数之间不必要的依赖关系
|
|
369
|
+
|
|
263
370
|
## Functions 目录规范
|
|
264
371
|
|
|
265
372
|
本目录包含项目中使用的纯函数,所有函数必须遵循以下规范:
|
|
@@ -276,7 +383,7 @@ export interface Sharp {
|
|
|
276
383
|
- 按照**模块进行划分文件夹**
|
|
277
384
|
- 每个文件中**只能包含一个函数**
|
|
278
385
|
- 文件名应该与函数名保持一致
|
|
279
|
-
- 使用 `export`
|
|
386
|
+
- 使用 `export` 导出函数(强制要求使用具名导出)
|
|
280
387
|
- **❌ 严禁创建 index.ts 入口文件**:每个函数文件都需要单独打包,不允许使用统一入口文件
|
|
281
388
|
- **❌ 子模块不要创建 README 文件**:避免文档冗余,统一在根目录的 README 中说明规范
|
|
282
389
|
|
|
@@ -288,21 +395,14 @@ export interface Sharp {
|
|
|
288
395
|
### Functions 代码规范
|
|
289
396
|
|
|
290
397
|
#### 1. 导出方式
|
|
291
|
-
|
|
398
|
+
**强制要求使用具名导出**:
|
|
292
399
|
```typescript
|
|
293
400
|
export function functionName(params: Type): ReturnType {
|
|
294
401
|
// 函数实现
|
|
295
402
|
}
|
|
296
403
|
```
|
|
297
404
|
|
|
298
|
-
|
|
299
|
-
```typescript
|
|
300
|
-
const functionName = (params: Type): ReturnType => {
|
|
301
|
-
// 函数实现
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
export default functionName
|
|
305
|
-
```
|
|
405
|
+
**说明**: 为保持项目一致性和支持单独打包,所有函数必须使用具名导出。禁止使用默认导出。
|
|
306
406
|
|
|
307
407
|
#### 2. 类型定义
|
|
308
408
|
- **函数专用类型**:如果类型只被当前函数使用,应该在同一个文件中定义
|
|
@@ -365,6 +465,12 @@ export function dependsOnGlobalState(): number {
|
|
|
365
465
|
export function firstFunction(): void {}
|
|
366
466
|
export function secondFunction(): void {}
|
|
367
467
|
|
|
468
|
+
// ❌ 使用默认导出
|
|
469
|
+
const functionName = (params: Type): ReturnType => {
|
|
470
|
+
// 函数实现
|
|
471
|
+
}
|
|
472
|
+
export default functionName // 禁止使用默认导出
|
|
473
|
+
|
|
368
474
|
// ❌ 创建 index.ts 入口文件
|
|
369
475
|
// functions/module/index.ts
|
|
370
476
|
export { functionA } from './functionA'
|
|
@@ -376,32 +482,9 @@ export { functionB } from './functionB'
|
|
|
376
482
|
// 子模块不需要单独的 README 文件,会造成文档冗余
|
|
377
483
|
```
|
|
378
484
|
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
### 1. 依赖注入与环境无关性
|
|
382
|
-
|
|
383
|
-
- 所有环境依赖都必须通过参数传入,确保函数保持环境无关性
|
|
384
|
-
- 函数不能直接导入任何环境模块(如 fs、path、sharp 等)
|
|
385
|
-
- 仅通过 TypeScript 引用声明环境类型,实例通过参数传入
|
|
386
|
-
- 函数实现完全依赖传入的参数,保持环境无关
|
|
387
|
-
|
|
388
|
-
### 2. 类型安全
|
|
389
|
-
|
|
390
|
-
- 所有函数参数都应该有明确的类型声明
|
|
391
|
-
- 使用 TypeScript 的严格模式
|
|
392
|
-
- 避免使用 `any` 类型,优先使用具体的类型定义
|
|
393
|
-
|
|
394
|
-
### 3. 纯函数与环境无关性
|
|
395
|
-
|
|
396
|
-
- `functions/` 目录下的函数必须是环境无关的纯函数
|
|
397
|
-
- 函数不能直接访问任何环境变量或全局对象
|
|
398
|
-
- 所有环境依赖通过参数传入,确保函数可在任意环境中运行
|
|
399
|
-
- 按功能模块组织函数(如 dom/、image/、debug/ 等)
|
|
400
|
-
- 环境无关的纯函数更容易测试、维护和跨环境复用
|
|
401
|
-
|
|
402
|
-
### 4. 错误处理规范
|
|
485
|
+
### 6. 错误处理规范
|
|
403
486
|
|
|
404
|
-
####
|
|
487
|
+
#### 6.1 错误信息格式
|
|
405
488
|
|
|
406
489
|
- **中文错误信息**: 面向用户的错误信息使用中文,提供清晰的错误描述
|
|
407
490
|
- **状态码包含**: 网络请求相关错误应包含具体的状态码信息
|
|
@@ -431,21 +514,21 @@ throw new Error('error');
|
|
|
431
514
|
reject(new Error('Download failed'));
|
|
432
515
|
```
|
|
433
516
|
|
|
434
|
-
####
|
|
517
|
+
#### 6.2 错误处理一致性
|
|
435
518
|
|
|
436
519
|
- **Promise 错误**: 异步函数使用 `reject(new Error(...))` 抛出错误
|
|
437
520
|
- **同步错误**: 同步函数使用 `throw new Error(...)` 抛出错误
|
|
438
521
|
- **错误类型**: 统一使用 `Error` 类型,避免抛出字符串或其他类型
|
|
439
522
|
- **错误传递**: 适当时保留原始错误信息,避免错误信息丢失
|
|
440
523
|
|
|
441
|
-
###
|
|
524
|
+
### 7. JSDoc 文档规范
|
|
442
525
|
|
|
443
526
|
- **强制要求**: 每个导出的函数都必须包含完整的 JSDoc 注释
|
|
444
527
|
- **禁止生成**: 不要为函数模块生成单独的 README.md 文件
|
|
445
528
|
- **文档内容**: JSDoc 必须包含函数描述、参数说明、返回值说明和使用示例
|
|
446
529
|
- **类型信息**: 充分利用 TypeScript 类型系统,JSDoc 中重点描述业务逻辑
|
|
447
530
|
|
|
448
|
-
####
|
|
531
|
+
#### 7.1 JSDoc 格式要求
|
|
449
532
|
|
|
450
533
|
```typescript
|
|
451
534
|
// 正确的类型导入方式
|
|
@@ -471,7 +554,7 @@ export async function myFunction(
|
|
|
471
554
|
|
|
472
555
|
## 文件引用规范
|
|
473
556
|
|
|
474
|
-
###
|
|
557
|
+
### 8. 导入限制
|
|
475
558
|
|
|
476
559
|
**✅ 允许的导入**:
|
|
477
560
|
- 本包内的类型和函数(使用相对路径)
|
|
@@ -525,7 +608,7 @@ export function processFile(
|
|
|
525
608
|
}
|
|
526
609
|
```
|
|
527
610
|
|
|
528
|
-
###
|
|
611
|
+
### 8.1 相对路径
|
|
529
612
|
|
|
530
613
|
- 使用相对路径引用类型定义文件
|
|
531
614
|
- 保持路径的一致性和可维护性
|
|
@@ -590,21 +673,111 @@ export function processFile(
|
|
|
590
673
|
|
|
591
674
|
## 代码组织和文档要求
|
|
592
675
|
|
|
593
|
-
###
|
|
676
|
+
### 9. 函数组织原则
|
|
594
677
|
|
|
595
678
|
- 按功能模块组织函数到不同的目录(如 dom/、image/、debug/ 等)
|
|
596
679
|
- 每个函数文件专注于单一功能领域
|
|
597
680
|
- 保持函数的单一职责原则
|
|
598
681
|
- 优先考虑函数的复用性和可测试性
|
|
599
682
|
|
|
600
|
-
###
|
|
683
|
+
### 9.1 文档要求
|
|
601
684
|
|
|
602
685
|
- **JSDoc 优先**: 每个函数必须有完整的 JSDoc 注释,不生成单独的 README 文件
|
|
603
686
|
- **类型安全**: 充分利用 TypeScript 类型系统提供类型信息
|
|
604
687
|
- **文档完整性**: JSDoc 必须包含函数描述、参数说明和返回值说明
|
|
605
688
|
|
|
606
|
-
###
|
|
689
|
+
### 9.2 代码质量要求
|
|
607
690
|
|
|
608
691
|
- 遵循 TypeScript 严格模式
|
|
609
692
|
- 函数复杂度控制在合理范围内
|
|
610
|
-
- 保持函数职责单一,易于测试和维护
|
|
693
|
+
- 保持函数职责单一,易于测试和维护
|
|
694
|
+
|
|
695
|
+
## 模块组织规范
|
|
696
|
+
|
|
697
|
+
### 10. Constants 目录规范
|
|
698
|
+
|
|
699
|
+
`src/constants/` 目录用于存放项目中的常量定义,包括配置项、正则表达式、映射表等。
|
|
700
|
+
|
|
701
|
+
#### 10.1 常量组织原则
|
|
702
|
+
|
|
703
|
+
- **功能分类**: 按功能模块组织常量文件
|
|
704
|
+
- **命名规范**: 使用大写字母和下划线命名常量
|
|
705
|
+
- **类型安全**: 为常量提供明确的类型定义
|
|
706
|
+
- **导出方式**: 使用具名导出,避免默认导出
|
|
707
|
+
- **环境无关**: 常量定义必须保持环境无关性
|
|
708
|
+
- **不可变性**: 使用 `as const` 断言确保常量的不可变性
|
|
709
|
+
|
|
710
|
+
#### 10.2 文件命名规范
|
|
711
|
+
|
|
712
|
+
- **描述性命名**: 文件名应清晰描述常量的用途
|
|
713
|
+
- **驼峰命名**: 使用 camelCase 命名文件
|
|
714
|
+
- **功能前缀**: 可使用功能模块作为文件名前缀
|
|
715
|
+
- **避免缩写**: 使用完整的单词而非缩写
|
|
716
|
+
|
|
717
|
+
#### 10.3 常量定义规范
|
|
718
|
+
|
|
719
|
+
- **类型导入**: 统一从 types 目录导入相关类型定义
|
|
720
|
+
- **JSDoc注释**: 为每个常量提供清晰的文档说明
|
|
721
|
+
- **分组组织**: 相关常量应分组定义,使用注释分隔
|
|
722
|
+
- **默认导出禁止**: 禁止使用默认导出,必须使用具名导出
|
|
723
|
+
- **禁止入口文件**: 不允许创建 `index.ts` 等入口文件
|
|
724
|
+
|
|
725
|
+
#### 10.4 使用规范
|
|
726
|
+
|
|
727
|
+
- **集中管理**: 避免在函数文件中定义常量,统一在 constants 目录管理
|
|
728
|
+
- **按需导入**: 从 constants 文件中按需导入所需常量
|
|
729
|
+
- **类型一致**: 确保常量类型与使用场景的类型定义一致
|
|
730
|
+
- **文档引用**: 在函数的 JSDoc 中适当引用相关常量的说明
|
|
731
|
+
|
|
732
|
+
## 开发工作流程
|
|
733
|
+
|
|
734
|
+
### 11. 快速开始指南
|
|
735
|
+
|
|
736
|
+
#### 11.1 新功能开发流程
|
|
737
|
+
|
|
738
|
+
1. **创建函数文件**: 在 `src/functions/` 对应模块目录下创建新的函数文件
|
|
739
|
+
2. **定义类型**: 如需要,在 `types/` 目录下定义或导入相关类型
|
|
740
|
+
3. **实现函数**: 遵循环境无关性原则,通过参数注入依赖
|
|
741
|
+
4. **编写文档**: 添加完整的 JSDoc 注释
|
|
742
|
+
5. **验证功能**: 在 `playground/` 中创建验证用例
|
|
743
|
+
6. **代码检查**: 确保符合所有编码规范
|
|
744
|
+
|
|
745
|
+
#### 11.2 常见开发场景
|
|
746
|
+
|
|
747
|
+
**添加新的常量**:
|
|
748
|
+
```typescript
|
|
749
|
+
// src/constants/moduleConstants.ts
|
|
750
|
+
export const MODULE_CONFIG = {
|
|
751
|
+
DEFAULT_TIMEOUT: 5000,
|
|
752
|
+
MAX_RETRIES: 3
|
|
753
|
+
} as const
|
|
754
|
+
```
|
|
755
|
+
|
|
756
|
+
**创建环境无关函数**:
|
|
757
|
+
```typescript
|
|
758
|
+
// src/functions/module/processData.ts
|
|
759
|
+
import type { NodeFileSystem } from '../../../references/node.d'
|
|
760
|
+
|
|
761
|
+
/**
|
|
762
|
+
* 处理数据文件
|
|
763
|
+
* @param filePath - 文件路径
|
|
764
|
+
* @param fs - 文件系统依赖
|
|
765
|
+
* @returns 处理结果
|
|
766
|
+
*/
|
|
767
|
+
export function processData(
|
|
768
|
+
filePath: string,
|
|
769
|
+
fs: NodeFileSystem
|
|
770
|
+
): Promise<string> {
|
|
771
|
+
// 实现逻辑
|
|
772
|
+
}
|
|
773
|
+
```
|
|
774
|
+
|
|
775
|
+
#### 11.3 代码质量检查
|
|
776
|
+
|
|
777
|
+
开发完成后,请确保:
|
|
778
|
+
- [ ] 函数保持环境无关性
|
|
779
|
+
- [ ] 类型定义完整且正确
|
|
780
|
+
- [ ] JSDoc 文档完整
|
|
781
|
+
- [ ] 遵循命名规范
|
|
782
|
+
- [ ] 通过 playground 验证
|
|
783
|
+
- [ ] 符合项目架构原则
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const COLOR_PATTERNS = {
|
|
2
|
+
hex: /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,
|
|
3
|
+
rgb: /^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/,
|
|
4
|
+
rgba: /^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d.]+)\s*\)$/,
|
|
5
|
+
hsl: /^hsl\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)$/,
|
|
6
|
+
hsla: /^hsla\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*,\s*([\d.]+)\s*\)$/,
|
|
7
|
+
namedColors: /^(red|green|blue|yellow|orange|purple|pink|brown|black|white|gray|grey|cyan|magenta)$/i
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=colorPatterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colorPatterns.js","sourceRoot":"","sources":["../../src/constants/colorPatterns.ts"],"names":[],"mappings":"AA6BA,MAAM,CAAC,MAAM,cAAc,GAAkB;IAE3C,GAAG,EAAE,kEAAkE;IAGvE,GAAG,EAAE,8CAA8C;IAGnD,IAAI,EAAE,8DAA8D;IAGpE,GAAG,EAAE,gDAAgD;IAGrD,IAAI,EAAE,gEAAgE;IAGtE,WAAW,EAAE,wFAAwF;CACtG,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const NAMED_COLOR_MAP = {
|
|
2
|
+
'red': '#ff0000',
|
|
3
|
+
'green': '#00ff00',
|
|
4
|
+
'blue': '#0000ff',
|
|
5
|
+
'yellow': '#ffff00',
|
|
6
|
+
'orange': '#ffa500',
|
|
7
|
+
'purple': '#800080',
|
|
8
|
+
'pink': '#ffc0cb',
|
|
9
|
+
'brown': '#a52a2a',
|
|
10
|
+
'black': '#000000',
|
|
11
|
+
'white': '#ffffff',
|
|
12
|
+
'gray': '#808080',
|
|
13
|
+
'grey': '#808080',
|
|
14
|
+
'cyan': '#00ffff',
|
|
15
|
+
'magenta': '#ff00ff'
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=namedColors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namedColors.js","sourceRoot":"","sources":["../../src/constants/namedColors.ts"],"names":[],"mappings":"AA6BA,MAAM,CAAC,MAAM,eAAe,GAAkB;IAC5C,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,SAAS;CACrB,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface PlatformSoftwareConfig {
|
|
2
|
+
executable: string;
|
|
3
|
+
possiblePaths: string[];
|
|
4
|
+
userPaths: string[];
|
|
5
|
+
registryKey?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface SoftwareConfigDefinition {
|
|
8
|
+
win32: PlatformSoftwareConfig;
|
|
9
|
+
darwin: PlatformSoftwareConfig;
|
|
10
|
+
linux: PlatformSoftwareConfig;
|
|
11
|
+
envVar: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const SOFTWARE_CONFIGS: Record<string, SoftwareConfigDefinition>;
|
|
14
|
+
export declare const SOFTWARE_NAME_MAP: Record<string, string>;
|
|
15
|
+
export declare const SUPPORTED_PLATFORMS: readonly ["darwin", "win32", "linux"];
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
export const SOFTWARE_CONFIGS = {
|
|
2
|
+
git: {
|
|
3
|
+
win32: {
|
|
4
|
+
executable: 'git.exe',
|
|
5
|
+
possiblePaths: [
|
|
6
|
+
'C:\\Program Files\\Git\\bin',
|
|
7
|
+
'C:\\Program Files (x86)\\Git\\bin'
|
|
8
|
+
],
|
|
9
|
+
userPaths: ['AppData\\Local\\Programs\\Git\\bin'],
|
|
10
|
+
registryKey: 'HKEY_LOCAL_MACHINE\\SOFTWARE\\GitForWindows'
|
|
11
|
+
},
|
|
12
|
+
darwin: {
|
|
13
|
+
executable: 'git',
|
|
14
|
+
possiblePaths: ['/usr/bin', '/usr/local/bin', '/opt/homebrew/bin'],
|
|
15
|
+
userPaths: ['~/.local/bin']
|
|
16
|
+
},
|
|
17
|
+
linux: {
|
|
18
|
+
executable: 'git',
|
|
19
|
+
possiblePaths: ['/usr/bin', '/usr/local/bin'],
|
|
20
|
+
userPaths: ['~/.local/bin']
|
|
21
|
+
},
|
|
22
|
+
envVar: 'GIT_PATH'
|
|
23
|
+
},
|
|
24
|
+
chrome: {
|
|
25
|
+
win32: {
|
|
26
|
+
executable: 'chrome.exe',
|
|
27
|
+
possiblePaths: [
|
|
28
|
+
'C:\\Program Files\\Google\\Chrome\\Application',
|
|
29
|
+
'C:\\Program Files (x86)\\Google\\Chrome\\Application'
|
|
30
|
+
],
|
|
31
|
+
userPaths: ['AppData\\Local\\Google\\Chrome\\Application'],
|
|
32
|
+
registryKey: 'HKEY_CURRENT_USER\\Software\\Google\\Chrome'
|
|
33
|
+
},
|
|
34
|
+
darwin: {
|
|
35
|
+
executable: 'Google Chrome',
|
|
36
|
+
possiblePaths: ['/Applications/Google Chrome.app/Contents/MacOS'],
|
|
37
|
+
userPaths: ['~/Applications/Google Chrome.app/Contents/MacOS']
|
|
38
|
+
},
|
|
39
|
+
linux: {
|
|
40
|
+
executable: 'google-chrome',
|
|
41
|
+
possiblePaths: ['/usr/bin', '/usr/local/bin', '/opt/google/chrome'],
|
|
42
|
+
userPaths: ['~/.local/bin']
|
|
43
|
+
},
|
|
44
|
+
envVar: 'CHROME_PATH'
|
|
45
|
+
},
|
|
46
|
+
nodejs: {
|
|
47
|
+
win32: {
|
|
48
|
+
executable: 'node.exe',
|
|
49
|
+
possiblePaths: [
|
|
50
|
+
'C:\\Program Files\\nodejs',
|
|
51
|
+
'C:\\Program Files (x86)\\nodejs'
|
|
52
|
+
],
|
|
53
|
+
userPaths: ['AppData\\Roaming\\npm'],
|
|
54
|
+
registryKey: 'HKEY_LOCAL_MACHINE\\SOFTWARE\\Node.js'
|
|
55
|
+
},
|
|
56
|
+
darwin: {
|
|
57
|
+
executable: 'node',
|
|
58
|
+
possiblePaths: ['/usr/local/bin', '/opt/homebrew/bin', '/usr/bin'],
|
|
59
|
+
userPaths: ['~/.local/bin']
|
|
60
|
+
},
|
|
61
|
+
linux: {
|
|
62
|
+
executable: 'node',
|
|
63
|
+
possiblePaths: ['/usr/bin', '/usr/local/bin'],
|
|
64
|
+
userPaths: ['~/.local/bin']
|
|
65
|
+
},
|
|
66
|
+
envVar: 'NODE_PATH'
|
|
67
|
+
},
|
|
68
|
+
wechat: {
|
|
69
|
+
win32: {
|
|
70
|
+
executable: 'cli.bat',
|
|
71
|
+
possiblePaths: [
|
|
72
|
+
'C:\\Program Files (x86)\\Tencent\\微信web开发者工具',
|
|
73
|
+
'C:\\Program Files\\Tencent\\微信web开发者工具'
|
|
74
|
+
],
|
|
75
|
+
userPaths: [
|
|
76
|
+
'AppData\\Local\\微信web开发者工具',
|
|
77
|
+
'AppData\\Roaming\\微信web开发者工具'
|
|
78
|
+
],
|
|
79
|
+
registryKey: 'HKEY_CURRENT_USER\\Software\\Tencent\\微信web开发者工具'
|
|
80
|
+
},
|
|
81
|
+
darwin: {
|
|
82
|
+
executable: 'cli',
|
|
83
|
+
possiblePaths: [
|
|
84
|
+
'/Applications/wechatwebdevtools.app/Contents/MacOS',
|
|
85
|
+
'/Applications/wechatwebdevtools.app/Contents/Resources/app.nw/bin'
|
|
86
|
+
],
|
|
87
|
+
userPaths: [
|
|
88
|
+
'/Applications/wechatwebdevtools.app/Contents/MacOS',
|
|
89
|
+
'/Applications/wechatwebdevtools.app/Contents/Resources/app.nw/bin'
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
linux: {
|
|
93
|
+
executable: 'cli',
|
|
94
|
+
possiblePaths: ['/usr/local/bin', '/usr/bin'],
|
|
95
|
+
userPaths: ['.local/bin']
|
|
96
|
+
},
|
|
97
|
+
envVar: 'WECHAT_DEV_TOOLS_PATH'
|
|
98
|
+
},
|
|
99
|
+
hbuilderx: {
|
|
100
|
+
win32: {
|
|
101
|
+
executable: 'HBuilderX.exe',
|
|
102
|
+
possiblePaths: [
|
|
103
|
+
'C:\\Program Files\\HBuilderX',
|
|
104
|
+
'C:\\Program Files (x86)\\HBuilderX'
|
|
105
|
+
],
|
|
106
|
+
userPaths: [
|
|
107
|
+
'AppData\\Local\\HBuilderX',
|
|
108
|
+
'AppData\\Roaming\\HBuilderX'
|
|
109
|
+
],
|
|
110
|
+
registryKey: 'HKEY_CURRENT_USER\\Software\\DCloud\\HBuilderX'
|
|
111
|
+
},
|
|
112
|
+
darwin: {
|
|
113
|
+
executable: 'HBuilderX',
|
|
114
|
+
possiblePaths: ['/Applications/HBuilderX.app/Contents/MacOS'],
|
|
115
|
+
userPaths: ['~/Applications/HBuilderX.app/Contents/MacOS']
|
|
116
|
+
},
|
|
117
|
+
linux: {
|
|
118
|
+
executable: 'HBuilderX',
|
|
119
|
+
possiblePaths: ['/opt/HBuilderX', '/usr/local/HBuilderX'],
|
|
120
|
+
userPaths: ['~/.local/share/HBuilderX', '~/HBuilderX']
|
|
121
|
+
},
|
|
122
|
+
envVar: 'HBUILDERX_PATH'
|
|
123
|
+
},
|
|
124
|
+
altool: {
|
|
125
|
+
win32: {
|
|
126
|
+
executable: 'altool.exe',
|
|
127
|
+
possiblePaths: [],
|
|
128
|
+
userPaths: []
|
|
129
|
+
},
|
|
130
|
+
darwin: {
|
|
131
|
+
executable: 'altool',
|
|
132
|
+
possiblePaths: [
|
|
133
|
+
'/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support',
|
|
134
|
+
'/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/itms/bin',
|
|
135
|
+
'/Applications/Xcode.app/Contents/Developer/usr/bin',
|
|
136
|
+
'/usr/local/bin'
|
|
137
|
+
],
|
|
138
|
+
userPaths: ['~/Applications/Xcode.app/Contents/Developer/usr/bin']
|
|
139
|
+
},
|
|
140
|
+
linux: {
|
|
141
|
+
executable: 'altool',
|
|
142
|
+
possiblePaths: [],
|
|
143
|
+
userPaths: []
|
|
144
|
+
},
|
|
145
|
+
envVar: 'ALTOOL_PATH'
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
export const SOFTWARE_NAME_MAP = {
|
|
149
|
+
wechat: 'wechat',
|
|
150
|
+
chrome: 'chrome',
|
|
151
|
+
git: 'git',
|
|
152
|
+
hbuilderx: 'hbuilderx',
|
|
153
|
+
nodejs: 'nodejs',
|
|
154
|
+
node: 'nodejs',
|
|
155
|
+
};
|
|
156
|
+
export const SUPPORTED_PLATFORMS = ['darwin', 'win32', 'linux'];
|
|
157
|
+
//# sourceMappingURL=softwareConfigs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"softwareConfigs.js","sourceRoot":"","sources":["../../src/constants/softwareConfigs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import type { CryptoJS } from '../../../references/crypto.d';
|
|
2
2
|
import type { Base64Encoder } from '../../../references/browser.d';
|
|
3
|
-
declare
|
|
4
|
-
export default _default;
|
|
3
|
+
export declare function generateLicense(crypto: CryptoJS, base64Encoder: Base64Encoder): string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
1
|
+
export function generateLicense(crypto, base64Encoder) {
|
|
2
2
|
let expiredDate = new Date();
|
|
3
3
|
expiredDate.setFullYear(expiredDate.getFullYear() + 99);
|
|
4
4
|
const milliSeconds = expiredDate.getTime();
|
|
@@ -8,5 +8,5 @@ export default (crypto, base64Encoder) => {
|
|
|
8
8
|
const hash = typeof hashResult === 'string' ? hashResult : hashResult.toString();
|
|
9
9
|
const licenseKey = `${license}${hash}`;
|
|
10
10
|
return licenseKey;
|
|
11
|
-
}
|
|
11
|
+
}
|
|
12
12
|
//# sourceMappingURL=generateLicense.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateLicense.js","sourceRoot":"","sources":["../../../src/functions/ag-grid/generateLicense.ts"],"names":[],"mappings":"AASA,eAAe,CAAC,MAAgB,EAAE,aAA4B
|
|
1
|
+
{"version":3,"file":"generateLicense.js","sourceRoot":"","sources":["../../../src/functions/ag-grid/generateLicense.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,eAAe,CAAC,MAAgB,EAAE,aAA4B;IAC5E,IAAI,WAAW,GAAG,IAAI,IAAI,EAAE,CAAA;IAC5B,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAA;IACvD,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,EAAE,CAAA;IAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAG,uBAAuB,OAAO,EAAE,CAAA;IAChD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACtC,MAAM,IAAI,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAA;IAChF,MAAM,UAAU,GAAG,GAAG,OAAO,GAAG,IAAI,EAAE,CAAA;IACtC,OAAO,UAAU,CAAA;AACnB,CAAC"}
|
|
@@ -1,21 +1,15 @@
|
|
|
1
1
|
import { uploadApp } from './uploadApp';
|
|
2
2
|
import { validateApp } from './validateApp';
|
|
3
3
|
import { getAppInfo } from './getAppInfo';
|
|
4
|
+
import { getAltoolAuth } from './getAltoolAuth';
|
|
4
5
|
export function createAltoolClient(config) {
|
|
5
6
|
const { altoolPath, childProcess, defaultAuth, defaultOutputFormat = 'normal' } = config;
|
|
6
|
-
function getAuth(auth) {
|
|
7
|
-
if (auth)
|
|
8
|
-
return auth;
|
|
9
|
-
if (defaultAuth)
|
|
10
|
-
return defaultAuth;
|
|
11
|
-
throw new Error('No authentication provided and no default authentication configured');
|
|
12
|
-
}
|
|
13
7
|
return {
|
|
14
8
|
async upload(file, type, auth, outputFormat = defaultOutputFormat) {
|
|
15
9
|
const options = {
|
|
16
10
|
file,
|
|
17
11
|
type,
|
|
18
|
-
auth:
|
|
12
|
+
auth: getAltoolAuth(auth, defaultAuth),
|
|
19
13
|
outputFormat
|
|
20
14
|
};
|
|
21
15
|
const result = await uploadApp(altoolPath, options, childProcess);
|
|
@@ -25,7 +19,7 @@ export function createAltoolClient(config) {
|
|
|
25
19
|
const options = {
|
|
26
20
|
file,
|
|
27
21
|
type,
|
|
28
|
-
auth:
|
|
22
|
+
auth: getAltoolAuth(auth, defaultAuth),
|
|
29
23
|
outputFormat
|
|
30
24
|
};
|
|
31
25
|
return validateApp(altoolPath, options, childProcess);
|
|
@@ -33,7 +27,7 @@ export function createAltoolClient(config) {
|
|
|
33
27
|
async listApps(type, auth, outputFormat = defaultOutputFormat) {
|
|
34
28
|
const options = {
|
|
35
29
|
type,
|
|
36
|
-
auth:
|
|
30
|
+
auth: getAltoolAuth(auth, defaultAuth),
|
|
37
31
|
outputFormat
|
|
38
32
|
};
|
|
39
33
|
return getAppInfo(altoolPath, options, childProcess);
|