@nasl/cli 0.1.18 → 0.2.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 +3 -1
- package/dist/bin/nasl.mjs +243 -54
- package/dist/bin/nasl.mjs.map +1 -1
- package/dist/bin/naslc.mjs +243 -54
- package/dist/bin/naslc.mjs.map +1 -1
- package/dist/index.mjs +242 -53
- package/dist/index.mjs.map +1 -1
- package/out/constants/index.d.ts +2 -0
- package/out/constants/index.d.ts.map +1 -0
- package/out/constants/index.js +18 -0
- package/out/constants/index.js.map +1 -0
- package/out/constants/nasl-file-types.d.ts +47 -0
- package/out/constants/nasl-file-types.d.ts.map +1 -0
- package/out/constants/nasl-file-types.js +143 -0
- package/out/constants/nasl-file-types.js.map +1 -0
- package/out/services/compose.d.ts +1 -1
- package/out/services/compose.d.ts.map +1 -1
- package/out/services/compose.js +72 -19
- package/out/services/compose.js.map +1 -1
- package/out/services/resolve.d.ts.map +1 -1
- package/out/services/resolve.js +52 -21
- package/out/services/resolve.js.map +1 -1
- package/out/utils/config.d.ts.map +1 -1
- package/out/utils/config.js +16 -13
- package/out/utils/config.js.map +1 -1
- package/out/utils/file.d.ts.map +1 -1
- package/out/utils/file.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./nasl-file-types"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NASL 文件类型定义
|
|
3
|
+
* 每种文件类型包含:名称、描述、文件名模式、代码引用模式、文件扩展名
|
|
4
|
+
*/
|
|
5
|
+
export interface NASLFileTypeConfig {
|
|
6
|
+
/** 类型名称 */
|
|
7
|
+
name: string;
|
|
8
|
+
/** 类型描述 */
|
|
9
|
+
description: string;
|
|
10
|
+
/** 匹配文件名的正则表达式模式(不含锚点和标志) */
|
|
11
|
+
fileNamePattern: string;
|
|
12
|
+
/** 匹配代码引用的正则表达式模式(不含锚点和标志) */
|
|
13
|
+
codeRefPattern: string;
|
|
14
|
+
/** 文件扩展名 */
|
|
15
|
+
extension: 'ts' | 'tsx' | 'css';
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* NASL 支持的所有文件类型配置
|
|
19
|
+
*/
|
|
20
|
+
export declare const NASL_FILE_TYPES: NASLFileTypeConfig[];
|
|
21
|
+
/**
|
|
22
|
+
* 获取用于验证文件名的正则表达式数组
|
|
23
|
+
*/
|
|
24
|
+
export declare function getFileNamePatterns(): RegExp[];
|
|
25
|
+
export declare const fileNamePatterns: RegExp[];
|
|
26
|
+
/**
|
|
27
|
+
* 获取用于提取代码引用的正则表达式数组
|
|
28
|
+
*/
|
|
29
|
+
export declare function getCodeRefPatterns(): RegExp[];
|
|
30
|
+
export declare const codeRefPatterns: RegExp[];
|
|
31
|
+
/**
|
|
32
|
+
* 判断文件路径是否为已知的 NASL 文件类型
|
|
33
|
+
* 支持的类型:
|
|
34
|
+
* - 数据结构 (structures): app.structures.{StructureName}.ts
|
|
35
|
+
* - 实体 (entities): app.dataSources.{dsName}.entities.{EntityName}.ts
|
|
36
|
+
* - 逻辑 (logics): app.logics.{logicName}.ts
|
|
37
|
+
* - 视图 (views): app.frontendTypes.{type}.frontends.{name}.views.{viewName}.tsx
|
|
38
|
+
* - 后端全局变量: app.backend.variables.ts
|
|
39
|
+
* - 前端全局变量: app.frontendTypes.{type}.frontends.{name}.variables.ts
|
|
40
|
+
* - 枚举 (enums): app.enums.{EnumName}.ts
|
|
41
|
+
* - 依赖库 (extensions): extensions.{extensionName}.ts
|
|
42
|
+
*
|
|
43
|
+
* @param filePath 文件路径(绝对路径或相对路径)
|
|
44
|
+
* @returns 是否为已知的 NASL 文件类型
|
|
45
|
+
*/
|
|
46
|
+
export declare function isKnownFileType(filePath: string): boolean;
|
|
47
|
+
//# sourceMappingURL=nasl-file-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nasl-file-types.d.ts","sourceRoot":"","sources":["../../src/constants/nasl-file-types.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IAC/B,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,8BAA8B;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY;IACZ,SAAS,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;CACnC;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,kBAAkB,EAgE/C,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED,eAAO,MAAM,gBAAgB,UAAwB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED,eAAO,MAAM,eAAe,UAAuB,CAAC;AAEpD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAIzD"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.codeRefPatterns = exports.fileNamePatterns = exports.NASL_FILE_TYPES = void 0;
|
|
37
|
+
exports.getFileNamePatterns = getFileNamePatterns;
|
|
38
|
+
exports.getCodeRefPatterns = getCodeRefPatterns;
|
|
39
|
+
exports.isKnownFileType = isKnownFileType;
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
/**
|
|
42
|
+
* NASL 支持的所有文件类型配置
|
|
43
|
+
*/
|
|
44
|
+
exports.NASL_FILE_TYPES = [
|
|
45
|
+
{
|
|
46
|
+
name: 'theme-css',
|
|
47
|
+
description: '主题样式',
|
|
48
|
+
fileNamePattern: 'app\\.frontendTypes\\.pc\\.frontends\\.pc\\.theme\\.css',
|
|
49
|
+
codeRefPattern: 'app\\.frontendTypes\\.pc\\.frontends\\.pc\\.theme',
|
|
50
|
+
extension: 'css',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: 'structures',
|
|
54
|
+
description: '数据结构',
|
|
55
|
+
fileNamePattern: 'app\\.structures\\.\\w+\\.ts',
|
|
56
|
+
codeRefPattern: 'app\\.structures\\.\\w+(?:\\.\\w+)*',
|
|
57
|
+
extension: 'ts',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'entities',
|
|
61
|
+
description: '实体',
|
|
62
|
+
fileNamePattern: 'app\\.dataSources\\.\\w+\\.entities\\.\\w+\\.ts',
|
|
63
|
+
codeRefPattern: 'app\\.dataSources\\.\\w+\\.entities\\.\\w+(?:Entity)?(?:\\.\\w+)*',
|
|
64
|
+
extension: 'ts',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: 'logics',
|
|
68
|
+
description: '逻辑',
|
|
69
|
+
fileNamePattern: 'app\\.logics\\.\\w+\\.ts',
|
|
70
|
+
codeRefPattern: 'app\\.logics\\.\\w+(?:\\.\\w+)*',
|
|
71
|
+
extension: 'ts',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: 'views',
|
|
75
|
+
description: '视图',
|
|
76
|
+
fileNamePattern: 'app\\.frontendTypes\\.\\w+\\.frontends\\.\\w+(?:\\.views\\.\\w+)+\\.tsx',
|
|
77
|
+
codeRefPattern: 'app\\.frontendTypes\\.\\w+\\.frontends\\.\\w+(?:\\.views\\.\\w+)+(?:\\.\\w+)*',
|
|
78
|
+
extension: 'tsx',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: 'backend-variables',
|
|
82
|
+
description: '后端全局变量',
|
|
83
|
+
fileNamePattern: 'app\\.backend\\.variables\\.ts',
|
|
84
|
+
codeRefPattern: 'app\\.backend\\.variables(?:\\.\\w+)*',
|
|
85
|
+
extension: 'ts',
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
name: 'frontend-variables',
|
|
89
|
+
description: '前端全局变量',
|
|
90
|
+
fileNamePattern: 'app\\.frontendTypes\\.\\w+\\.frontends\\.\\w+\\.variables\\.ts',
|
|
91
|
+
codeRefPattern: 'app\\.frontendTypes\\.\\w+\\.frontends\\.\\w+\\.variables(?:\\.\\w+)*',
|
|
92
|
+
extension: 'ts',
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: 'enums',
|
|
96
|
+
description: '枚举',
|
|
97
|
+
fileNamePattern: 'app\\.enums\\.\\w+\\.ts',
|
|
98
|
+
codeRefPattern: 'app\\.enums\\.\\w+(?:\\.\\w+)*',
|
|
99
|
+
extension: 'ts',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: 'extensions',
|
|
103
|
+
description: '依赖库',
|
|
104
|
+
fileNamePattern: 'extensions\\.\\w+\\.ts',
|
|
105
|
+
codeRefPattern: 'extensions\\.\\w+(?:\\.\\w+)*',
|
|
106
|
+
extension: 'ts',
|
|
107
|
+
},
|
|
108
|
+
];
|
|
109
|
+
/**
|
|
110
|
+
* 获取用于验证文件名的正则表达式数组
|
|
111
|
+
*/
|
|
112
|
+
function getFileNamePatterns() {
|
|
113
|
+
return exports.NASL_FILE_TYPES.map((type) => new RegExp(`^${type.fileNamePattern}$`));
|
|
114
|
+
}
|
|
115
|
+
exports.fileNamePatterns = getFileNamePatterns();
|
|
116
|
+
/**
|
|
117
|
+
* 获取用于提取代码引用的正则表达式数组
|
|
118
|
+
*/
|
|
119
|
+
function getCodeRefPatterns() {
|
|
120
|
+
return exports.NASL_FILE_TYPES.map((type) => new RegExp(type.codeRefPattern, 'g'));
|
|
121
|
+
}
|
|
122
|
+
exports.codeRefPatterns = getCodeRefPatterns();
|
|
123
|
+
/**
|
|
124
|
+
* 判断文件路径是否为已知的 NASL 文件类型
|
|
125
|
+
* 支持的类型:
|
|
126
|
+
* - 数据结构 (structures): app.structures.{StructureName}.ts
|
|
127
|
+
* - 实体 (entities): app.dataSources.{dsName}.entities.{EntityName}.ts
|
|
128
|
+
* - 逻辑 (logics): app.logics.{logicName}.ts
|
|
129
|
+
* - 视图 (views): app.frontendTypes.{type}.frontends.{name}.views.{viewName}.tsx
|
|
130
|
+
* - 后端全局变量: app.backend.variables.ts
|
|
131
|
+
* - 前端全局变量: app.frontendTypes.{type}.frontends.{name}.variables.ts
|
|
132
|
+
* - 枚举 (enums): app.enums.{EnumName}.ts
|
|
133
|
+
* - 依赖库 (extensions): extensions.{extensionName}.ts
|
|
134
|
+
*
|
|
135
|
+
* @param filePath 文件路径(绝对路径或相对路径)
|
|
136
|
+
* @returns 是否为已知的 NASL 文件类型
|
|
137
|
+
*/
|
|
138
|
+
function isKnownFileType(filePath) {
|
|
139
|
+
// 提取文件名
|
|
140
|
+
const fileName = path.basename(filePath);
|
|
141
|
+
return exports.fileNamePatterns.some((pattern) => pattern.test(fileName));
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=nasl-file-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nasl-file-types.js","sourceRoot":"","sources":["../../src/constants/nasl-file-types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2FA,kDAEC;AAOD,gDAEC;AAmBD,0CAIC;AA7HD,2CAA6B;AAmB7B;;GAEG;AACU,QAAA,eAAe,GAAyB;IACjD;QACI,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,MAAM;QACnB,eAAe,EAAE,yDAAyD;QAC1E,cAAc,EAAE,mDAAmD;QACnE,SAAS,EAAE,KAAK;KACnB;IACD;QACI,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,MAAM;QACnB,eAAe,EAAE,8BAA8B;QAC/C,cAAc,EAAE,qCAAqC;QACrD,SAAS,EAAE,IAAI;KAClB;IACD;QACI,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,IAAI;QACjB,eAAe,EAAE,iDAAiD;QAClE,cAAc,EAAE,mEAAmE;QACnF,SAAS,EAAE,IAAI;KAClB;IACD;QACI,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,IAAI;QACjB,eAAe,EAAE,0BAA0B;QAC3C,cAAc,EAAE,iCAAiC;QACjD,SAAS,EAAE,IAAI;KAClB;IACD;QACI,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,IAAI;QACjB,eAAe,EAAE,yEAAyE;QAC1F,cAAc,EAAE,+EAA+E;QAC/F,SAAS,EAAE,KAAK;KACnB;IACD;QACI,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,QAAQ;QACrB,eAAe,EAAE,gCAAgC;QACjD,cAAc,EAAE,uCAAuC;QACvD,SAAS,EAAE,IAAI;KAClB;IACD;QACI,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,QAAQ;QACrB,eAAe,EAAE,gEAAgE;QACjF,cAAc,EAAE,uEAAuE;QACvF,SAAS,EAAE,IAAI;KAClB;IACD;QACI,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,IAAI;QACjB,eAAe,EAAE,yBAAyB;QAC1C,cAAc,EAAE,gCAAgC;QAChD,SAAS,EAAE,IAAI;KAClB;IACD;QACI,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,wBAAwB;QACzC,cAAc,EAAE,+BAA+B;QAC/C,SAAS,EAAE,IAAI;KAClB;CACJ,CAAC;AAEF;;GAEG;AACH,SAAgB,mBAAmB;IAC/B,OAAO,uBAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;AAClF,CAAC;AAEY,QAAA,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;AAEtD;;GAEG;AACH,SAAgB,kBAAkB;IAC9B,OAAO,uBAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/E,CAAC;AAEY,QAAA,eAAe,GAAG,kBAAkB,EAAE,CAAC;AAEpD;;;;;;;;;;;;;;GAcG;AACH,SAAgB,eAAe,CAAC,QAAgB;IAC5C,QAAQ;IACR,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,wBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FileInfo } from
|
|
1
|
+
import type { FileInfo } from '../types';
|
|
2
2
|
export declare function createSorter(): (a: string, b: string) => number;
|
|
3
3
|
export declare const sorter: (a: string, b: string) => number;
|
|
4
4
|
export declare function composeToString(files: FileInfo[]): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,wBAAgB,YAAY,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CA0B/D;AACD,eAAO,MAAM,MAAM,MA3BiB,MAAM,KAAK,MAAM,KAAK,MA2BtB,CAAC;
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,wBAAgB,YAAY,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CA0B/D;AACD,eAAO,MAAM,MAAM,MA3BiB,MAAM,KAAK,MAAM,KAAK,MA2BtB,CAAC;AA+CrC,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAwCzD"}
|
package/out/services/compose.js
CHANGED
|
@@ -28,6 +28,56 @@ function createSorter() {
|
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
exports.sorter = createSorter();
|
|
31
|
+
/**
|
|
32
|
+
* 验证 variables 文件
|
|
33
|
+
*/
|
|
34
|
+
function validateVariablesFile(file, errors) {
|
|
35
|
+
const matchArr = Array.from(file.content.matchAll(/^(export\s+)(declare\s+)?(const|let)\s+(\w+)/gm));
|
|
36
|
+
if (matchArr.length === 0) {
|
|
37
|
+
errors.push(`${file.path} (variables文件) 必须包含至少一个 export const 或 export let 声明`);
|
|
38
|
+
}
|
|
39
|
+
for (const match of matchArr) {
|
|
40
|
+
const [, isExport] = match;
|
|
41
|
+
if (!isExport)
|
|
42
|
+
errors.push(`${file.path} 所有声明必须使用 export,错误代码:${match[0]}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 验证 extensions 文件
|
|
47
|
+
*/
|
|
48
|
+
function validateExtensionsFile(file, errors) {
|
|
49
|
+
const matchArr = Array.from(file.content.matchAll(/^(export\s+)(namespace)\s+(\w+)/gm));
|
|
50
|
+
if (matchArr.length === 0) {
|
|
51
|
+
errors.push(`${file.path} (extensions文件) 必须包含至少一个 export namespace 声明`);
|
|
52
|
+
}
|
|
53
|
+
for (const match of matchArr) {
|
|
54
|
+
const [, isExport] = match;
|
|
55
|
+
if (!isExport)
|
|
56
|
+
errors.push(`${file.path} 所有 namespace 必须使用 export,错误代码:${match[0]}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* 验证普通文件(枚举、实体、数据结构、逻辑、页面)
|
|
61
|
+
*/
|
|
62
|
+
function validateNormalFile(file, nameFromPath, namespace, errors) {
|
|
63
|
+
const matchArr = Array.from(file.content.matchAll(/^(export\s+)?(declare\s+)?(function|class|interface)\s+(\w+)/gm));
|
|
64
|
+
if (matchArr.length === 0)
|
|
65
|
+
errors.push(`${file.path} 必须有一个函数或类,错误代码:${file.content}`);
|
|
66
|
+
else if (matchArr.length > 1)
|
|
67
|
+
errors.push(`${file.path} 只能有一个函数或类,错误代码:${matchArr.map((match) => match[0]).join('\n')}
|
|
68
|
+
你可以将该文件中所有函数合并,或者将其他函数拆到多个文件中。`);
|
|
69
|
+
for (const match of matchArr) {
|
|
70
|
+
const [, isExport, isDeclare, type, name] = match;
|
|
71
|
+
if (!isExport)
|
|
72
|
+
errors.push(`${file.path} 必须使用 export,错误代码:${match[0]}`);
|
|
73
|
+
if (name !== nameFromPath)
|
|
74
|
+
errors.push(`${file.path} 的函数或类名必须与文件名一致,错误代码:${match[0]}`);
|
|
75
|
+
if (/\.(entities|enums|structures)/.test(namespace) && type !== 'class')
|
|
76
|
+
errors.push(`${file.path} 实体、数据结构和枚举只能使用 class 定义,错误代码:${match[0]}`);
|
|
77
|
+
if (/\.(logics|views)/.test(namespace) && type !== 'function')
|
|
78
|
+
errors.push(`${file.path} 逻辑和页面只能使用 function 定义,错误代码:${match[0]}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
31
81
|
function composeToString(files) {
|
|
32
82
|
files.sort((a, b) => (0, exports.sorter)(a.path, b.path));
|
|
33
83
|
const errors = [];
|
|
@@ -35,28 +85,31 @@ function composeToString(files) {
|
|
|
35
85
|
const arr = file.path.split('.');
|
|
36
86
|
const ext = arr.pop();
|
|
37
87
|
const nameFromPath = arr.pop();
|
|
38
|
-
|
|
88
|
+
// 判断是否是特殊文件类型(variables 或 extensions)
|
|
89
|
+
const isVariablesFile = nameFromPath === 'variables';
|
|
90
|
+
const isExtensionsFile = arr[0] === 'extensions';
|
|
91
|
+
const isThemeCss = ext === 'css' && nameFromPath === 'theme';
|
|
92
|
+
const isSpecialFile = isVariablesFile || isExtensionsFile || isThemeCss;
|
|
93
|
+
// 特殊文件的 namespace 包含文件名,普通文件不包含
|
|
94
|
+
const namespace = isSpecialFile ? [...arr, nameFromPath].join('.') : arr.join('.');
|
|
95
|
+
let content = file.content;
|
|
39
96
|
if (['ts', 'tsx'].includes(ext)) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
errors.push(`${file.path} 必须有一个函数或类,错误代码:${file.content}`);
|
|
43
|
-
else if (matchArr.length > 1)
|
|
44
|
-
errors.push(`${file.path} 只能有一个函数或类,错误代码:${matchArr.map((match) => match[0]).join('\n')}
|
|
45
|
-
你可以将该文件中所有函数合并,或者将其他函数拆到多个文件中。`);
|
|
46
|
-
for (const match of matchArr) {
|
|
47
|
-
const [, isExport, isDeclare, type, name] = match;
|
|
48
|
-
if (!isExport)
|
|
49
|
-
errors.push(`${file.path} 必须使用 export,错误代码:${match[0]}`);
|
|
50
|
-
if (name !== nameFromPath)
|
|
51
|
-
errors.push(`${file.path} 的函数或类名必须与文件名一致,错误代码:${match[0]}`);
|
|
52
|
-
if (/\.(entities|enums|structures)/.test(namespace) && type !== 'class')
|
|
53
|
-
errors.push(`${file.path} 实体、数据结构和枚举只能使用 class 定义,错误代码:${match[0]}`);
|
|
54
|
-
if (/\.(logics|views)/.test(namespace) && type !== 'function')
|
|
55
|
-
errors.push(`${file.path} 逻辑和页面只能使用 function 定义,错误代码:${match[0]}`);
|
|
97
|
+
if (isVariablesFile) {
|
|
98
|
+
validateVariablesFile(file, errors);
|
|
56
99
|
}
|
|
100
|
+
else if (isExtensionsFile) {
|
|
101
|
+
validateExtensionsFile(file, errors);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
validateNormalFile(file, nameFromPath, namespace, errors);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
else if (isThemeCss) {
|
|
108
|
+
content = ` $theme\`${content}\`;`;
|
|
57
109
|
}
|
|
58
|
-
return `namespace ${namespace} {\n${
|
|
59
|
-
})
|
|
110
|
+
return `namespace ${namespace} {\n${content}\n}\n`;
|
|
111
|
+
})
|
|
112
|
+
.join('\n');
|
|
60
113
|
if (errors.length > 0) {
|
|
61
114
|
throw new Error(errors.join('\n============\n'));
|
|
62
115
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":";;;AAEA,oCA0BC;
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/services/resolve.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/services/resolve.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAKzE;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAa7H;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAYnH;AA2OD,MAAM,WAAW,kBAAkB;IAC/B,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsElK"}
|
package/out/services/resolve.js
CHANGED
|
@@ -44,13 +44,14 @@ const globby_1 = __importDefault(require("globby"));
|
|
|
44
44
|
const utils_1 = require("../utils");
|
|
45
45
|
const chalk_1 = __importDefault(require("chalk"));
|
|
46
46
|
const compose_1 = require("./compose");
|
|
47
|
+
const nasl_file_types_1 = require("../constants/nasl-file-types");
|
|
47
48
|
/**
|
|
48
49
|
* 扫描目录下的所有 NASL 文件
|
|
49
50
|
*/
|
|
50
51
|
async function scanNASLFiles(srcDir, representation, logger) {
|
|
51
52
|
try {
|
|
52
53
|
const pattern = representation === 'NaturalTS' ? '**/*.{ts,tsx}' : '**/*.nasl';
|
|
53
|
-
const files = await (0, globby_1.default)([pattern, '
|
|
54
|
+
const files = await (0, globby_1.default)([pattern, '**/app.frontendTypes.pc.frontends.pc.theme.css'], {
|
|
54
55
|
cwd: srcDir,
|
|
55
56
|
onlyFiles: true,
|
|
56
57
|
absolute: false,
|
|
@@ -64,7 +65,6 @@ async function scanNASLFiles(srcDir, representation, logger) {
|
|
|
64
65
|
}
|
|
65
66
|
async function scanEntryFiles(projectRoot, patterns, logger) {
|
|
66
67
|
try {
|
|
67
|
-
patterns.push('!**/*.css');
|
|
68
68
|
const files = await (0, globby_1.default)(patterns, {
|
|
69
69
|
cwd: projectRoot,
|
|
70
70
|
onlyFiles: true,
|
|
@@ -78,30 +78,46 @@ async function scanEntryFiles(projectRoot, patterns, logger) {
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
/**
|
|
81
|
-
* 从文件内容中提取
|
|
81
|
+
* 从文件内容中提取 指定 格式的依赖引用
|
|
82
82
|
* @param content 文件内容
|
|
83
|
-
* @returns 依赖的
|
|
83
|
+
* @returns 依赖的 指定 路径列表
|
|
84
84
|
*/
|
|
85
85
|
function extractDeps(content) {
|
|
86
86
|
const deps = new Set();
|
|
87
|
-
//
|
|
87
|
+
// 预处理:移除注释和字符串字面量,避免它们影响依赖分析
|
|
88
88
|
let processedContent = content
|
|
89
89
|
.replace(/\/\/.*$/gm, '') // 移除单行注释 // ...
|
|
90
|
-
.replace(/\/\*[\s\S]*?\*\//g, '')
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
90
|
+
.replace(/\/\*[\s\S]*?\*\//g, '') // 移除多行注释 /* ... */
|
|
91
|
+
.replace(/'(?:[^'\\]|\\.)*'/g, '') // 移除单引号字符串 'xxx'
|
|
92
|
+
.replace(/"(?:[^"\\]|\\.)*"/g, ''); // 移除双引号字符串 "xxx"
|
|
93
|
+
for (const pattern of nasl_file_types_1.codeRefPatterns) {
|
|
94
|
+
const matches = processedContent.matchAll(pattern);
|
|
95
|
+
for (const match of matches) {
|
|
96
|
+
let dep = match[0];
|
|
97
|
+
// 处理 Entity 后缀:app.dataSources.ds.entities.EntityNameEntity -> app.dataSources.ds.entities.EntityName
|
|
98
|
+
if (/Entity$|Entity\./.test(dep)) {
|
|
99
|
+
dep = dep.replace(/Entity(\..*)?$/, '');
|
|
100
|
+
}
|
|
101
|
+
// 处理枚举:app.enums.EnumName.field -> app.enums.EnumName
|
|
102
|
+
if (/^app\.enums\.\w+\./.test(dep)) {
|
|
103
|
+
dep = dep.replace(/^(app\.enums\.\w+).+$/, '$1');
|
|
104
|
+
}
|
|
105
|
+
// 处理 variables:app.backend.variables.varName -> app.backend.variables
|
|
106
|
+
if (/\.variables\.\w+/.test(dep)) {
|
|
107
|
+
dep = dep.replace(/\.variables\..+$/, '.variables');
|
|
108
|
+
}
|
|
109
|
+
// 处理 extensions:extensions.lcap_auth.logics.getUser -> extensions.lcap_auth
|
|
110
|
+
if (/^extensions\.\w+\./.test(dep)) {
|
|
111
|
+
dep = dep.replace(/^(extensions\.\w+)\..+$/, '$1');
|
|
112
|
+
}
|
|
113
|
+
// 跳过不合法的实体引用(实体后还有字段的情况)
|
|
114
|
+
if (/app\.dataSources\.\w+\.entities\.\w+\.\w+$/.test(dep)) {
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
// 添加文件扩展名
|
|
118
|
+
dep = `${dep}.${dep.includes('.views.') ? 'tsx' : 'ts'}`;
|
|
119
|
+
deps.add(dep);
|
|
96
120
|
}
|
|
97
|
-
else if (/\.enums\.(\w+)\.(\w+)/.test(dep)) {
|
|
98
|
-
dep = dep.replace(/\.enums\.(\w+).+$/, '.enums.$1');
|
|
99
|
-
}
|
|
100
|
-
else if (/app\.dataSources\.\w+\.entities\.\w+\.\w+$/.test(dep)) {
|
|
101
|
-
continue; // 应该是写法有问题,跳过让后面的 checker 做检查
|
|
102
|
-
}
|
|
103
|
-
dep = `${dep}.${dep.includes('.views.') ? 'tsx' : 'ts'}`;
|
|
104
|
-
deps.add(dep);
|
|
105
121
|
}
|
|
106
122
|
return Array.from(deps);
|
|
107
123
|
}
|
|
@@ -218,7 +234,12 @@ async function collectDeps(patterns, projectRoot, srcDir, logger, verbose) {
|
|
|
218
234
|
while (filesToProcess.length > 0) {
|
|
219
235
|
const pathRelativeToSrc = filesToProcess.shift();
|
|
220
236
|
if (processedFileMap.has(pathRelativeToSrc))
|
|
221
|
-
continue; // 跳过已处理的文件
|
|
237
|
+
continue; // 跳过已处理的文件
|
|
238
|
+
// 检查文件类型是否支持
|
|
239
|
+
if (!(0, nasl_file_types_1.isKnownFileType)(pathRelativeToSrc)) {
|
|
240
|
+
logger.warn(`跳过不支持的文件类型: ${pathRelativeToSrc}`);
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
222
243
|
try {
|
|
223
244
|
const { fileInfo, newDeps } = processFileDeps(pathRelativeToSrc, srcDir, matchedFileSet, processedFileMap, depNotFoundList, logger, verbose);
|
|
224
245
|
result.push(fileInfo);
|
|
@@ -298,8 +319,18 @@ async function resolveNASLFiles(entry, logger, depMode, verbose) {
|
|
|
298
319
|
}
|
|
299
320
|
logger.info(`找到 ${collectedFiles.length} 个 NASL 文件`);
|
|
300
321
|
}
|
|
322
|
+
// 统一过滤掉不支持的文件类型
|
|
323
|
+
const filteredFiles = [];
|
|
324
|
+
collectedFiles.forEach((file) => {
|
|
325
|
+
if ((0, nasl_file_types_1.isKnownFileType)(file.path)) {
|
|
326
|
+
filteredFiles.push(file);
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
logger.warn(`跳过不支持的文件类型: ${file.path}`);
|
|
330
|
+
}
|
|
331
|
+
});
|
|
301
332
|
return {
|
|
302
|
-
collectedFiles,
|
|
333
|
+
collectedFiles: filteredFiles,
|
|
303
334
|
config,
|
|
304
335
|
projectRoot,
|
|
305
336
|
srcDir,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/services/resolve.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/services/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAoB7E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAoB7E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAwDzD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,GAAE,MAAsB,GAAG,IAAI,CAUtF;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CASvC"}
|
package/out/utils/config.js
CHANGED
|
@@ -79,26 +79,29 @@ function loadConfig(configDir) {
|
|
|
79
79
|
logger_1.defaultLogger.error('配置文件格式不正确,缺少必需的 srcDir 或 outDir 字段');
|
|
80
80
|
return logger_1.defaultLogger.exit(1);
|
|
81
81
|
}
|
|
82
|
+
// 环境变量优先级高于配置文件
|
|
83
|
+
// ideVersion: 环境变量优先,如果都没有则报错
|
|
84
|
+
if (process.env.NASL_IDE_VERSION)
|
|
85
|
+
config.ideVersion = process.env.NASL_IDE_VERSION;
|
|
82
86
|
if (!config.ideVersion) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
logger_1.defaultLogger.error('缺少配置 ideVersion,请在配置文件中添加,或在环境变量中配置 NASL_IDE_VERSION');
|
|
86
|
-
return logger_1.defaultLogger.exit(1);
|
|
87
|
-
}
|
|
87
|
+
logger_1.defaultLogger.error('缺少配置 ideVersion,请在配置文件中添加,或在环境变量中配置 NASL_IDE_VERSION');
|
|
88
|
+
return logger_1.defaultLogger.exit(1);
|
|
88
89
|
}
|
|
90
|
+
// serverBaseURL: 环境变量优先,如果都没有则报错
|
|
91
|
+
if (process.env.NASL_SERVER_BASE_URL)
|
|
92
|
+
config.serverBaseURL = process.env.NASL_SERVER_BASE_URL;
|
|
89
93
|
if (!config.serverBaseURL) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
logger_1.defaultLogger.error('缺少配置 serverBaseURL,请在配置文件中添加,或在环境变量中配置 NASL_SERVER_BASE_URL');
|
|
93
|
-
return logger_1.defaultLogger.exit(1);
|
|
94
|
-
}
|
|
94
|
+
logger_1.defaultLogger.error('缺少配置 serverBaseURL,请在配置文件中添加,或在环境变量中配置 NASL_SERVER_BASE_URL');
|
|
95
|
+
return logger_1.defaultLogger.exit(1);
|
|
95
96
|
}
|
|
96
|
-
|
|
97
|
+
// 环境变量优先
|
|
98
|
+
if (process.env.USE_LCAP_OPENAPI !== undefined)
|
|
97
99
|
config.useOPENAPI = process.env.USE_LCAP_OPENAPI === 'true';
|
|
98
|
-
if (
|
|
100
|
+
if (process.env.LCAP_OPENAPI_AK)
|
|
99
101
|
config.OPENAPI_AK = process.env.LCAP_OPENAPI_AK;
|
|
100
|
-
if (
|
|
102
|
+
if (process.env.LCAP_OPENAPI_SK)
|
|
101
103
|
config.OPENAPI_SK = process.env.LCAP_OPENAPI_SK;
|
|
104
|
+
// 如果启用了 OpenAPI,验证必需的 AK 和 SK
|
|
102
105
|
if (config.useOPENAPI) {
|
|
103
106
|
if (!config.OPENAPI_AK || !config.OPENAPI_SK) {
|
|
104
107
|
logger_1.defaultLogger.error(`配置了 useOPENAPI,但缺少配置 OPENAPI_AK 和 OPENAPI_SK:
|
package/out/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,sCAoBC;AAKD,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
package/out/utils/file.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAO5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAS5F"}
|
package/out/utils/file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,0CAOC;AAKD,4CASC;AA3BD,6CAA+B;AAC/B,2CAA6B;AAE7B;;GAEG;AACH,SAAgB,eAAe,CAAC,QAAgB,EAAE,MAAkB;IAChE,IAAI,CAAC;QACD,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,UAAU,QAAQ,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,QAAgB,EAAE,OAAe,EAAE,MAAkB;IAClF,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACtB,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,UAAU,QAAQ,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC"}
|