@simplysm/sd-cli 7.0.61 → 7.0.62

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.
@@ -0,0 +1,331 @@
1
+ import { isArrayExpression, isClassDeclaration, isExportDeclaration, isExportDefaultDeclaration, isExportNamedDeclaration, isExportSpecifier, isFunctionDeclaration, isIdentifier, isImportDeclaration, isImportSpecifier, isObjectExpression, isSpreadElement, isStringLiteral, isVariableDeclaration } from "@babel/types";
2
+ import babelParser from "@babel/parser";
3
+ import { FsUtil } from "@simplysm/sd-core-node";
4
+ import path from "path";
5
+ import { SdCliBbArrayMetadata, SdCliBbClassMetadata, SdCliBbFunctionMetadata, SdCliBbObjectMetadata, SdCliBbVariableMetadata } from "./TSdCliBbTypeMetadata";
6
+ import { SdCliBbUtil } from "./SdCliBbUtil";
7
+ export class SdCliBbFileMetadata {
8
+ constructor(filePath) {
9
+ this.filePath = filePath;
10
+ this.rawMetas = [];
11
+ this._findMetaFromOutsideCache = new Map();
12
+ this._findMetaFromInsideCache = new Map();
13
+ let realFilePath;
14
+ for (const ext of ["", ".mjs", ".cjs", ".js"]) {
15
+ if (FsUtil.exists(filePath + ext) && !FsUtil.isDirectory(filePath + ext)) {
16
+ realFilePath = filePath + ext;
17
+ break;
18
+ }
19
+ }
20
+ if (realFilePath === undefined) {
21
+ throw SdCliBbUtil.error("파일을 찾을 수 없습니다.", filePath);
22
+ }
23
+ const fileContent = FsUtil.readFile(realFilePath);
24
+ this.rawMetas = babelParser.parse(fileContent, { sourceType: "module" }).program.body;
25
+ }
26
+ get exports() {
27
+ if (this._exportsCache)
28
+ return this._exportsCache;
29
+ const result = [];
30
+ for (const rawMeta of this.rawMetas) {
31
+ if (!isExportDeclaration(rawMeta))
32
+ continue;
33
+ if (isExportNamedDeclaration(rawMeta)) {
34
+ for (const specifier of rawMeta.specifiers) {
35
+ if (isExportSpecifier(specifier)) {
36
+ const exportedName = isIdentifier(specifier.exported) ? specifier.exported.name : undefined;
37
+ if (exportedName === undefined) {
38
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
39
+ }
40
+ if (rawMeta.source) {
41
+ if (rawMeta.source.value.includes(".")) {
42
+ const moduleFilePath = path.resolve(path.dirname(this.filePath), rawMeta.source.value);
43
+ result.push({
44
+ exportedName,
45
+ target: {
46
+ filePath: moduleFilePath,
47
+ name: specifier.local.name,
48
+ __TDeclRef__: "__TDeclRef__"
49
+ }
50
+ });
51
+ }
52
+ else {
53
+ const moduleName = rawMeta.source.value;
54
+ result.push({
55
+ exportedName,
56
+ target: { moduleName, name: specifier.local.name, __TDeclRef__: "__TDeclRef__" }
57
+ });
58
+ }
59
+ }
60
+ else {
61
+ result.push({
62
+ exportedName,
63
+ target: this._findMetaFromInside(specifier.local.name)
64
+ });
65
+ }
66
+ }
67
+ else {
68
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
69
+ }
70
+ }
71
+ }
72
+ else if (isExportDefaultDeclaration(rawMeta)) {
73
+ result.push({
74
+ exportedName: "default",
75
+ target: this.getMetaFromRaw(rawMeta.declaration)
76
+ });
77
+ }
78
+ else {
79
+ if (rawMeta.source.value.includes(".")) {
80
+ const moduleFilePath = path.resolve(path.dirname(this.filePath), rawMeta.source.value);
81
+ result.push({
82
+ exportedName: "*",
83
+ target: {
84
+ filePath: moduleFilePath,
85
+ name: "*",
86
+ __TDeclRef__: "__TDeclRef__"
87
+ }
88
+ });
89
+ }
90
+ else {
91
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
92
+ }
93
+ }
94
+ }
95
+ this._exportsCache = result;
96
+ return result;
97
+ }
98
+ findMetaFromOutside(name) {
99
+ const cache = this._findMetaFromOutsideCache.get(name);
100
+ if (cache !== undefined)
101
+ return cache;
102
+ for (const rawMeta of this.rawMetas) {
103
+ if (isExportNamedDeclaration(rawMeta)) {
104
+ if (rawMeta.declaration) {
105
+ if (isVariableDeclaration(rawMeta.declaration)) {
106
+ for (const decl of rawMeta.declaration.declarations) {
107
+ if (isIdentifier(decl.id)) {
108
+ if (decl.id.name === name) {
109
+ const result = new SdCliBbVariableMetadata(this, decl);
110
+ this._findMetaFromOutsideCache.set(name, result);
111
+ return result;
112
+ }
113
+ }
114
+ else {
115
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
116
+ }
117
+ }
118
+ }
119
+ else if (isClassDeclaration(rawMeta.declaration)) {
120
+ if (rawMeta.declaration.id.name === name) {
121
+ const result = new SdCliBbClassMetadata(this, rawMeta.declaration);
122
+ this._findMetaFromOutsideCache.set(name, result);
123
+ return result;
124
+ }
125
+ }
126
+ else if (isFunctionDeclaration(rawMeta.declaration)) {
127
+ if (rawMeta.declaration.id) {
128
+ if (rawMeta.declaration.id.name === name) {
129
+ const result = new SdCliBbFunctionMetadata(this, rawMeta.declaration);
130
+ this._findMetaFromOutsideCache.set(name, result);
131
+ return result;
132
+ }
133
+ }
134
+ else {
135
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
136
+ }
137
+ }
138
+ else {
139
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
140
+ }
141
+ }
142
+ else {
143
+ for (const specifier of rawMeta.specifiers) {
144
+ if (isExportSpecifier(specifier)) {
145
+ const exportedName = isIdentifier(specifier.exported) ? specifier.exported.name : undefined;
146
+ if (exportedName === undefined) {
147
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
148
+ }
149
+ else if (exportedName === name) {
150
+ if (rawMeta.source) {
151
+ if (rawMeta.source.value.includes(".")) {
152
+ const moduleFilePath = path.resolve(path.dirname(this.filePath), rawMeta.source.value);
153
+ const result = {
154
+ filePath: moduleFilePath,
155
+ name: specifier.local.name,
156
+ __TDeclRef__: "__TDeclRef__"
157
+ };
158
+ this._findMetaFromOutsideCache.set(name, result);
159
+ return result;
160
+ }
161
+ else {
162
+ const moduleName = rawMeta.source.value;
163
+ const result = {
164
+ moduleName,
165
+ name: specifier.local.name,
166
+ __TDeclRef__: "__TDeclRef__"
167
+ };
168
+ this._findMetaFromOutsideCache.set(name, result);
169
+ return result;
170
+ }
171
+ }
172
+ else {
173
+ const result = this._findMetaFromInside(specifier.local.name);
174
+ this._findMetaFromOutsideCache.set(name, result);
175
+ return result;
176
+ }
177
+ }
178
+ }
179
+ }
180
+ }
181
+ }
182
+ else if (isExportDefaultDeclaration(rawMeta) && name === "default") {
183
+ const result = this.getMetaFromRaw(rawMeta.declaration);
184
+ if (Array.isArray(result)) {
185
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
186
+ }
187
+ this._findMetaFromOutsideCache.set(name, result);
188
+ return result;
189
+ }
190
+ }
191
+ throw SdCliBbUtil.error(`'${name}'에 대한 'export'를 찾을 수 없습니다.`, this.filePath);
192
+ }
193
+ _findMetaFromInside(localName) {
194
+ const cache = this._findMetaFromInsideCache.get(localName);
195
+ if (cache !== undefined)
196
+ return cache;
197
+ for (const rawMeta of this.rawMetas) {
198
+ if (isClassDeclaration(rawMeta) && rawMeta.id.name === localName) {
199
+ return new SdCliBbClassMetadata(this, rawMeta);
200
+ }
201
+ else if (isExportNamedDeclaration(rawMeta)) {
202
+ for (const specifier of rawMeta.specifiers) {
203
+ if (isExportSpecifier(specifier)) {
204
+ const exportedName = isIdentifier(specifier.exported) ? specifier.exported.name : undefined;
205
+ if (exportedName === undefined) {
206
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
207
+ }
208
+ else if (exportedName === localName) {
209
+ if (rawMeta.source) {
210
+ if (rawMeta.source.value.includes(".")) {
211
+ const moduleFilePath = path.resolve(path.dirname(this.filePath), rawMeta.source.value);
212
+ const result = {
213
+ filePath: moduleFilePath,
214
+ name: specifier.local.name,
215
+ __TDeclRef__: "__TDeclRef__"
216
+ };
217
+ this._findMetaFromInsideCache.set(localName, result);
218
+ return result;
219
+ }
220
+ else {
221
+ const moduleName = rawMeta.source.value;
222
+ const result = {
223
+ moduleName,
224
+ name: specifier.local.name,
225
+ __TDeclRef__: "__TDeclRef__"
226
+ };
227
+ this._findMetaFromInsideCache.set(localName, result);
228
+ return result;
229
+ }
230
+ }
231
+ }
232
+ }
233
+ }
234
+ }
235
+ /*else if (isExportDefaultDeclaration(rawMeta) && localName === "default") {
236
+ const result = this.getMetaFromRaw(rawMeta.declaration);
237
+ if (Array.isArray(result)) {
238
+ throw new NeverEntryError();
239
+ }
240
+ this._findMetaFromInsideCache.set(localName, result);
241
+ return result;
242
+ }*/
243
+ else if (isImportDeclaration(rawMeta)) {
244
+ for (const specifier of rawMeta.specifiers) {
245
+ if (isImportSpecifier(specifier)) {
246
+ const impLocalName = isIdentifier(specifier.local) ? specifier.local.name : undefined;
247
+ if (impLocalName === undefined) {
248
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
249
+ }
250
+ else if (impLocalName === localName) {
251
+ if (isIdentifier(specifier.imported)) {
252
+ if (rawMeta.source.value.includes(".")) {
253
+ const moduleFilePath = path.resolve(path.dirname(this.filePath), rawMeta.source.value);
254
+ const result = {
255
+ filePath: moduleFilePath,
256
+ name: specifier.imported.name,
257
+ __TDeclRef__: "__TDeclRef__"
258
+ };
259
+ this._findMetaFromInsideCache.set(localName, result);
260
+ return result;
261
+ }
262
+ else {
263
+ const moduleName = rawMeta.source.value;
264
+ const result = {
265
+ moduleName,
266
+ name: specifier.imported.name,
267
+ __TDeclRef__: "__TDeclRef__"
268
+ };
269
+ this._findMetaFromInsideCache.set(localName, result);
270
+ return result;
271
+ }
272
+ }
273
+ else {
274
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
275
+ }
276
+ }
277
+ }
278
+ }
279
+ }
280
+ else if (isVariableDeclaration(rawMeta)) {
281
+ for (const decl of rawMeta.declarations) {
282
+ if (isIdentifier(decl.id)) {
283
+ if (decl.id.name === localName) {
284
+ const result = new SdCliBbVariableMetadata(this, decl);
285
+ this._findMetaFromInsideCache.set(localName, result);
286
+ return result;
287
+ }
288
+ }
289
+ else {
290
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
291
+ }
292
+ }
293
+ }
294
+ else if (isFunctionDeclaration(rawMeta)) {
295
+ if (rawMeta.id) {
296
+ if (rawMeta.id.name === localName) {
297
+ const result = new SdCliBbFunctionMetadata(this, rawMeta);
298
+ this._findMetaFromInsideCache.set(localName, result);
299
+ return result;
300
+ }
301
+ }
302
+ else {
303
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
304
+ }
305
+ }
306
+ }
307
+ throw SdCliBbUtil.error(`'${localName}'에 대한 내부선언을 찾을 수 없습니다.`, this.filePath);
308
+ }
309
+ getMetaFromRaw(rawMeta) {
310
+ if (isIdentifier(rawMeta)) {
311
+ return this._findMetaFromInside(rawMeta.name);
312
+ }
313
+ else if (isClassDeclaration(rawMeta)) {
314
+ return new SdCliBbClassMetadata(this, rawMeta);
315
+ }
316
+ else if (isArrayExpression(rawMeta)) {
317
+ return new SdCliBbArrayMetadata(this, rawMeta);
318
+ }
319
+ else if (isObjectExpression(rawMeta)) {
320
+ return new SdCliBbObjectMetadata(this, rawMeta);
321
+ }
322
+ else if (isStringLiteral(rawMeta)) {
323
+ return rawMeta.value;
324
+ }
325
+ else if (isSpreadElement(rawMeta)) {
326
+ return this.getMetaFromRaw(rawMeta.argument);
327
+ }
328
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
329
+ }
330
+ }
331
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlCYkZpbGVNZXRhZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZy10b29scy9iYWJlbC9TZENsaUJiRmlsZU1ldGFkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQiwwQkFBMEIsRUFDMUIsd0JBQXdCLEVBQ3hCLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixlQUFlLEVBQ2YscUJBQXFCLEVBSXRCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sV0FBVyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEQsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3hCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLFlBQW1DLFFBQWdCO1FBQWhCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFGbkMsYUFBUSxHQUFnQixFQUFFLENBQUM7UUErRjFCLDhCQUF5QixHQUFHLElBQUksR0FBRyxFQUE0QixDQUFDO1FBbUdoRSw2QkFBd0IsR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztRQS9MOUUsSUFBSSxZQUFnQyxDQUFDO1FBQ3JDLEtBQUssTUFBTSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRTtZQUM3QyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMs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
@@ -0,0 +1,171 @@
1
+ import { SdCliBbFileMetadata } from "./SdCliBbFileMetadata";
2
+ import path from "path";
3
+ import { SdCliNpmConfigUtil } from "../../utils/SdCliNpmConfigUtil";
4
+ import { NeverEntryError, StringUtil } from "@simplysm/sd-core-common";
5
+ import { FsUtil, PathUtil } from "@simplysm/sd-core-node";
6
+ export class SdCliBbRootMetadata {
7
+ constructor(packagePath) {
8
+ this._fileMetaCache = new Map();
9
+ const allDepPaths = this._getAllDepPaths(packagePath);
10
+ this._entryMap = this._getEntryMap(allDepPaths);
11
+ // const ngDepPaths = this._getNgDepPaths(allDepPaths);
12
+ // this._entryMap = this._getEntryMap(ngDepPaths);
13
+ }
14
+ removeCaches(filePaths) {
15
+ for (const filePath of filePaths) {
16
+ this._fileMetaCache.delete(filePath);
17
+ }
18
+ }
19
+ getEntryFileMetaRecord() {
20
+ const result = {};
21
+ for (const moduleName of this._entryMap.keys()) {
22
+ const entryFilePath = this._entryMap.get(moduleName);
23
+ result[moduleName] = this._fileMetaCache.getOrCreate(entryFilePath, () => new SdCliBbFileMetadata(entryFilePath));
24
+ }
25
+ return result;
26
+ }
27
+ findMeta(ref) {
28
+ const filePath = "moduleName" in ref ? this._entryMap.get(ref.moduleName) : ref.filePath;
29
+ if (filePath === undefined) {
30
+ throw new NeverEntryError();
31
+ }
32
+ const fileMeta = this._fileMetaCache.getOrCreate(filePath, () => new SdCliBbFileMetadata(filePath));
33
+ if (ref.name === "*") {
34
+ const result = [];
35
+ for (const exp of fileMeta.exports) {
36
+ const meta = exp.target;
37
+ if (typeof meta !== "string" && "__TDeclRef__" in meta) {
38
+ const resultMeta = this.findMeta(meta);
39
+ if (resultMeta instanceof Array) {
40
+ result.push(...resultMeta);
41
+ }
42
+ else {
43
+ result.push(resultMeta);
44
+ }
45
+ }
46
+ else {
47
+ result.push(meta);
48
+ }
49
+ }
50
+ return result;
51
+ }
52
+ else {
53
+ const meta = fileMeta.findMetaFromOutside(ref.name);
54
+ if (typeof meta !== "string" && "__TDeclRef__" in meta) {
55
+ return this.findMeta(meta);
56
+ }
57
+ return meta;
58
+ }
59
+ }
60
+ findExportRef(localRef) {
61
+ const record = this.getEntryFileMetaRecord();
62
+ for (const moduleName of Object.keys(record)) {
63
+ const entryFileMeta = record[moduleName];
64
+ for (const exp of entryFileMeta.exports) {
65
+ if (typeof exp.target !== "string" &&
66
+ "filePath" in exp.target &&
67
+ exp.target.filePath === localRef.filePath) {
68
+ if (exp.target.name === "*") {
69
+ throw new NeverEntryError();
70
+ }
71
+ else if (exp.target.name === localRef.name) {
72
+ return { moduleName, name: exp.exportedName };
73
+ }
74
+ }
75
+ }
76
+ }
77
+ return undefined;
78
+ }
79
+ _getAllDepPaths(packagePath) {
80
+ const loadedModuleNames = [];
81
+ const results = [];
82
+ const fn = (currPath) => {
83
+ const npmConfig = FsUtil.readJson(path.resolve(currPath, "package.json"));
84
+ const deps = SdCliNpmConfigUtil.getDependencies(npmConfig);
85
+ for (const moduleName of deps.defaults) {
86
+ if (loadedModuleNames.includes(moduleName))
87
+ continue;
88
+ loadedModuleNames.push(moduleName);
89
+ const modulePath = FsUtil.findAllParentChildDirPaths("node_modules/" + moduleName, currPath, process.cwd()).first();
90
+ if (StringUtil.isNullOrEmpty(modulePath)) {
91
+ continue;
92
+ }
93
+ results.push(modulePath);
94
+ fn(modulePath);
95
+ }
96
+ };
97
+ fn(packagePath);
98
+ return results;
99
+ }
100
+ // private _getNgDepPaths(allDepPaths: string[]): string[] {
101
+ // const results: string[] = [];
102
+ //
103
+ // for (const depPath of allDepPaths) {
104
+ // const npmConfig = FsUtil.readJson(path.resolve(depPath, "package.json")) as INpmConfig;
105
+ // const defaultDeps = SdCliNpmConfigUtil.getDependencies(npmConfig).defaults;
106
+ // if (npmConfig.name === "@angular/core" || defaultDeps.includes("@angular/core")) {
107
+ // results.push(depPath);
108
+ // }
109
+ // }
110
+ //
111
+ // return results;
112
+ // }
113
+ _getEntryMap(ngDepPaths) {
114
+ const entryMap = new Map();
115
+ for (const ngDepPath of ngDepPaths) {
116
+ const npmConfig = FsUtil.readJson(path.resolve(ngDepPath, "package.json"));
117
+ const entryFilePath = npmConfig["es2015"] ?? npmConfig["browser"] ?? npmConfig["module"] ?? npmConfig["main"] ?? npmConfig["default"];
118
+ if (entryFilePath !== undefined) {
119
+ entryMap.set(npmConfig.name, path.resolve(ngDepPath, entryFilePath));
120
+ }
121
+ if (npmConfig.exports) {
122
+ const exportKeys = Object.keys(npmConfig.exports);
123
+ for (const exportKey of exportKeys) {
124
+ if (exportKey.includes("/locales") ||
125
+ exportKey.endsWith("/package.json") ||
126
+ exportKey.endsWith("/testing") ||
127
+ exportKey.endsWith("/upgrade")) {
128
+ continue;
129
+ }
130
+ const expEntryFilePath = npmConfig.exports[exportKey]["es2015"] ??
131
+ npmConfig.exports[exportKey]["browser"] ??
132
+ npmConfig.exports[exportKey]["module"] ??
133
+ npmConfig.exports[exportKey]["main"] ??
134
+ npmConfig.exports[exportKey]["default"];
135
+ if (expEntryFilePath !== undefined) {
136
+ const exportPath = path.resolve(ngDepPath, expEntryFilePath);
137
+ const exportResult = this._getGlobExportResult(PathUtil.posix(npmConfig.name, exportKey), exportPath);
138
+ for (const exportResultItem of exportResult) {
139
+ entryMap.set(exportResultItem.name, exportResultItem.target);
140
+ }
141
+ }
142
+ }
143
+ }
144
+ }
145
+ return entryMap;
146
+ }
147
+ _getGlobExportResult(globName, globTarget) {
148
+ if (globName.includes("*") && globTarget.includes("*")) {
149
+ const result = [];
150
+ const regexpText = globTarget.replace(/[\\/.*]/g, (item) => (item === "/" || item === "\\" ? "[\\\\/]"
151
+ : item === "." ? "\\."
152
+ : item === "*" ? "(.*)"
153
+ : item));
154
+ const targets = FsUtil.glob(globTarget);
155
+ for (const target of targets) {
156
+ const targetNameMatch = new RegExp(regexpText).exec(target);
157
+ if (!targetNameMatch || typeof targetNameMatch[1] === "undefined") {
158
+ throw new NeverEntryError();
159
+ }
160
+ const targetName = targetNameMatch[1];
161
+ const name = globName.replace("*", targetName);
162
+ result.push({ name, target });
163
+ }
164
+ return result;
165
+ }
166
+ else {
167
+ return [{ name: globName, target: globTarget }];
168
+ }
169
+ }
170
+ }
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlCYlJvb3RNZXRhZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZy10b29scy9iYWJlbC9TZENsaUJiUm9vdE1ldGFkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJMUQsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QixZQUFtQixXQUFtQjtRQUZyQixtQkFBYyxHQUFHLElBQUksR0FBRyxFQUErQixDQUFDO1FBR3ZFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hELHVEQUF1RDtRQUN2RCxrREFBa0Q7SUFDcEQsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUFtQjtRQUNyQyxLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRTtZQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFTSxzQkFBc0I7UUFDM0IsTUFBTSxNQUFNLEdBQXdDLEVBQUUsQ0FBQztRQUN2RCxLQUFLLE1BQU0sVUFBVSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDOUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFFLENB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
@@ -0,0 +1,14 @@
1
+ import { SdCliBuildResultError } from "../../SdCliBuildResultError";
2
+ export class SdCliBbUtil {
3
+ static error(message, filePath, meta) {
4
+ return new SdCliBuildResultError({
5
+ filePath,
6
+ line: meta?.loc?.start.line,
7
+ char: meta?.loc?.start.column,
8
+ code: undefined,
9
+ severity: "error",
10
+ message: "예상치 못한 방식의 코드가 발견되었습니다."
11
+ });
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlCYlV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmctdG9vbHMvYmFiZWwvU2RDbGlCYlV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFcEUsTUFBTSxPQUFPLFdBQVc7SUFDZixNQUFNLENBQUMsS0FBSyxDQUFDLE9BQWUsRUFBRSxRQUFpQixFQUFFLElBQVc7UUFDakUsT0FBTyxJQUFJLHFCQUFxQixDQUFDO1lBQy9CLFFBQVE7WUFDUixJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSTtZQUMzQixJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsTUFBTTtZQUM3QixJQUFJLEVBQUUsU0FBUztZQUNmLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLE9BQU8sRUFBRSx5QkFBeUI7U0FDbkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIn0=