@simplysm/sd-cli 7.0.59 → 7.0.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/SdCliBuildResultError.d.ts +5 -0
  2. package/dist/SdCliBuildResultError.mjs +8 -0
  3. package/dist/bin/sd-cli.d.ts +2 -0
  4. package/dist/bin/sd-cli.mjs +3 -3
  5. package/dist/build-tool/SdCliCacheCompilerHost.d.ts +10 -0
  6. package/dist/build-tool/SdCliCordova.d.ts +16 -0
  7. package/dist/build-tool/SdCliCordova.mjs +171 -0
  8. package/dist/build-tool/SdCliIndexFileGenerator.d.ts +13 -0
  9. package/dist/{entry-points → build-tool}/SdCliIndexFileGenerator.mjs +4 -3
  10. package/dist/build-tool/SdCliNgCacheCompilerHost.d.ts +11 -0
  11. package/dist/build-tool/SdCliPackageLinter.d.ts +8 -0
  12. package/dist/build-tool/SdCliPackageLinter.mjs +19 -2
  13. package/dist/builder/SdCliClientBuilder.d.ts +23 -0
  14. package/dist/builder/SdCliClientBuilder.mjs +68 -6
  15. package/dist/builder/SdCliJsLibBuilder.d.ts +14 -0
  16. package/dist/builder/SdCliServerBuilder.d.ts +25 -0
  17. package/dist/builder/SdCliServerBuilder.mjs +11 -13
  18. package/dist/builder/SdCliTsLibBuilder.d.ts +34 -0
  19. package/dist/builder/SdCliTsLibBuilder.mjs +90 -20
  20. package/dist/commons.d.ts +85 -0
  21. package/dist/entry-points/SdCliLocalUpdate.d.ts +13 -0
  22. package/dist/entry-points/SdCliNpm.d.ts +6 -0
  23. package/dist/entry-points/SdCliPrepare.d.ts +5 -0
  24. package/dist/entry-points/SdCliWorkspace.d.ts +28 -0
  25. package/dist/entry-points/SdCliWorkspace.mjs +12 -16
  26. package/dist/index.d.ts +29 -0
  27. package/dist/index.mjs +30 -0
  28. package/dist/ng-tools/SdCliNgModuleGenerator.d.ts +26 -0
  29. package/dist/ng-tools/SdCliNgModuleGenerator.mjs +404 -0
  30. package/dist/ng-tools/babel/SdCliBbFileMetadata.d.ts +23 -0
  31. package/dist/ng-tools/babel/SdCliBbFileMetadata.mjs +482 -0
  32. package/dist/ng-tools/babel/SdCliBbRootMetadata.d.ts +22 -0
  33. package/dist/ng-tools/babel/SdCliBbRootMetadata.mjs +174 -0
  34. package/dist/ng-tools/babel/SdCliBbUtil.d.ts +5 -0
  35. package/dist/ng-tools/babel/SdCliBbUtil.mjs +14 -0
  36. package/dist/ng-tools/babel/TSdCliBbNgMetadata.d.ts +42 -0
  37. package/dist/ng-tools/babel/TSdCliBbNgMetadata.mjs +200 -0
  38. package/dist/ng-tools/babel/TSdCliBbTypeMetadata.d.ts +44 -0
  39. package/dist/ng-tools/babel/TSdCliBbTypeMetadata.mjs +127 -0
  40. package/dist/ng-tools/commons.d.ts +9 -0
  41. package/dist/ng-tools/commons.mjs +2 -0
  42. package/dist/ng-tools/typescript/SdCliTsFileMetadata.d.ts +61 -0
  43. package/dist/ng-tools/typescript/SdCliTsFileMetadata.mjs +326 -0
  44. package/dist/ng-tools/typescript/SdCliTsRootMetadata.d.ts +8 -0
  45. package/dist/ng-tools/typescript/SdCliTsRootMetadata.mjs +28 -0
  46. package/dist/ng-tools/typescript/SdCliTsUtil.d.ts +5 -0
  47. package/dist/ng-tools/typescript/SdCliTsUtil.mjs +28 -0
  48. package/dist/packages/SdCliPackage.d.ts +23 -0
  49. package/dist/packages/SdCliPackage.mjs +2 -3
  50. package/dist/utils/SdCliBuildResultUtil.d.ts +9 -0
  51. package/dist/utils/SdCliConfigUtil.d.ts +7 -0
  52. package/dist/utils/SdCliNpmConfigUtil.d.ts +7 -0
  53. package/dist/utils/SdCliNpmConfigUtil.mjs +3 -3
  54. package/package.json +16 -7
  55. package/src/SdCliBuildResultError.ts +9 -0
  56. package/src/bin/sd-cli.ts +2 -2
  57. package/src/build-tool/SdCliCordova.ts +219 -0
  58. package/src/{entry-points → build-tool}/SdCliIndexFileGenerator.ts +3 -2
  59. package/src/build-tool/SdCliPackageLinter.ts +18 -2
  60. package/src/builder/SdCliClientBuilder.ts +83 -5
  61. package/src/builder/SdCliServerBuilder.ts +10 -12
  62. package/src/builder/SdCliTsLibBuilder.ts +105 -21
  63. package/src/commons.ts +24 -0
  64. package/src/entry-points/SdCliWorkspace.ts +14 -17
  65. package/src/index.ts +29 -0
  66. package/src/ng-tools/SdCliNgModuleGenerator.ts +538 -0
  67. package/src/ng-tools/babel/SdCliBbFileMetadata.ts +568 -0
  68. package/src/ng-tools/babel/SdCliBbRootMetadata.ts +211 -0
  69. package/src/ng-tools/babel/SdCliBbUtil.ts +15 -0
  70. package/src/ng-tools/babel/TSdCliBbNgMetadata.ts +234 -0
  71. package/src/ng-tools/babel/TSdCliBbTypeMetadata.ts +177 -0
  72. package/src/ng-tools/commons.ts +3 -0
  73. package/src/ng-tools/typescript/SdCliTsFileMetadata.ts +385 -0
  74. package/src/ng-tools/typescript/SdCliTsRootMetadata.ts +32 -0
  75. package/src/ng-tools/typescript/SdCliTsUtil.ts +29 -0
  76. package/src/packages/SdCliPackage.ts +1 -2
  77. package/src/utils/SdCliNpmConfigUtil.ts +2 -2
  78. package/tsconfig-build.json +6 -2
  79. package/tsconfig.json +5 -1
@@ -0,0 +1,482 @@
1
+ import { isArrayExpression, isAssignmentExpression, isCallExpression, isClassDeclaration, isExportDeclaration, isExportDefaultDeclaration, isExportNamedDeclaration, isExportSpecifier, isExpressionStatement, isFunctionDeclaration, isIdentifier, isImportDeclaration, isImportDefaultSpecifier, isImportSpecifier, isMemberExpression, isObjectExpression, isSpreadElement, isStringLiteral, isVariableDeclaration, traverseFast } 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
+ import { NeverEntryError } from "@simplysm/sd-core-common";
8
+ export class SdCliBbFileMetadata {
9
+ constructor(filePath) {
10
+ this.filePath = filePath;
11
+ this._findMetaFromOutsideCache = new Map();
12
+ this._findMetaFromInsideCache = new Map();
13
+ this._getNgDecoArgCache = new Map();
14
+ let realFilePath;
15
+ for (const ext of ["", ".mjs", ".cjs", ".js"]) {
16
+ if (FsUtil.exists(filePath + ext) && !FsUtil.stat(filePath + ext).isDirectory()) {
17
+ realFilePath = filePath + ext;
18
+ break;
19
+ }
20
+ }
21
+ if (realFilePath === undefined) {
22
+ throw SdCliBbUtil.error("파일을 찾을 수 없습니다.", filePath);
23
+ }
24
+ const fileContent = FsUtil.readFile(realFilePath);
25
+ this.ast = babelParser.parse(fileContent, { sourceType: "module" });
26
+ this.rawMetas = this.ast.program.body;
27
+ }
28
+ get exports() {
29
+ if (this._exportsCache)
30
+ return this._exportsCache;
31
+ const result = [];
32
+ for (const rawMeta of this.rawMetas) {
33
+ if (!isExportDeclaration(rawMeta))
34
+ continue;
35
+ if (isExportNamedDeclaration(rawMeta)) {
36
+ if (rawMeta.declaration) {
37
+ if (isVariableDeclaration(rawMeta.declaration)) {
38
+ for (const decl of rawMeta.declaration.declarations) {
39
+ if (isIdentifier(decl.id)) {
40
+ result.push({
41
+ exportedName: decl.id.name,
42
+ target: new SdCliBbVariableMetadata(this, decl)
43
+ });
44
+ }
45
+ else {
46
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
47
+ }
48
+ }
49
+ }
50
+ else if (isClassDeclaration(rawMeta.declaration)) {
51
+ result.push({
52
+ exportedName: rawMeta.declaration.id.name,
53
+ target: new SdCliBbClassMetadata(this, rawMeta.declaration)
54
+ });
55
+ }
56
+ else if (isFunctionDeclaration(rawMeta.declaration)) {
57
+ if (rawMeta.declaration.id) {
58
+ result.push({
59
+ exportedName: rawMeta.declaration.id.name,
60
+ target: new SdCliBbFunctionMetadata(this, rawMeta.declaration)
61
+ });
62
+ }
63
+ else {
64
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
65
+ }
66
+ }
67
+ else {
68
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
69
+ }
70
+ }
71
+ else {
72
+ for (const specifier of rawMeta.specifiers) {
73
+ if (isExportSpecifier(specifier)) {
74
+ const exportedName = isIdentifier(specifier.exported) ? specifier.exported.name : undefined;
75
+ if (exportedName === undefined) {
76
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
77
+ }
78
+ if (rawMeta.source) {
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: specifier.local.name,
86
+ __TSdCliMetaRef__: "__TSdCliMetaRef__"
87
+ }
88
+ });
89
+ }
90
+ else {
91
+ const moduleName = rawMeta.source.value;
92
+ result.push({
93
+ exportedName,
94
+ target: { moduleName, name: specifier.local.name, __TSdCliMetaRef__: "__TSdCliMetaRef__" }
95
+ });
96
+ }
97
+ }
98
+ else {
99
+ result.push({
100
+ exportedName,
101
+ target: this._findMetaFromInside(specifier.local.name)
102
+ });
103
+ }
104
+ }
105
+ else {
106
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
107
+ }
108
+ }
109
+ }
110
+ }
111
+ else if (isExportDefaultDeclaration(rawMeta)) {
112
+ result.push({
113
+ exportedName: "default",
114
+ target: this.getMetaFromRaw(rawMeta.declaration)
115
+ });
116
+ }
117
+ else {
118
+ if (rawMeta.source.value.includes(".")) {
119
+ const moduleFilePath = path.resolve(path.dirname(this.filePath), rawMeta.source.value);
120
+ result.push({
121
+ exportedName: "*",
122
+ target: {
123
+ filePath: moduleFilePath,
124
+ name: "*",
125
+ __TSdCliMetaRef__: "__TSdCliMetaRef__"
126
+ }
127
+ });
128
+ }
129
+ else {
130
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
131
+ }
132
+ }
133
+ }
134
+ this._exportsCache = result;
135
+ return result;
136
+ }
137
+ findMetaFromOutside(name) {
138
+ const cache = this._findMetaFromOutsideCache.get(name);
139
+ if (cache !== undefined)
140
+ return cache;
141
+ for (const rawMeta of this.rawMetas) {
142
+ if (isExportNamedDeclaration(rawMeta)) {
143
+ if (rawMeta.declaration) {
144
+ if (isVariableDeclaration(rawMeta.declaration)) {
145
+ for (const decl of rawMeta.declaration.declarations) {
146
+ if (isIdentifier(decl.id)) {
147
+ if (decl.id.name === name) {
148
+ const result = new SdCliBbVariableMetadata(this, decl);
149
+ this._findMetaFromOutsideCache.set(name, result);
150
+ return result;
151
+ }
152
+ }
153
+ else {
154
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
155
+ }
156
+ }
157
+ }
158
+ else if (isClassDeclaration(rawMeta.declaration)) {
159
+ if (rawMeta.declaration.id.name === name) {
160
+ const result = new SdCliBbClassMetadata(this, rawMeta.declaration);
161
+ this._findMetaFromOutsideCache.set(name, result);
162
+ return result;
163
+ }
164
+ }
165
+ else if (isFunctionDeclaration(rawMeta.declaration)) {
166
+ if (rawMeta.declaration.id) {
167
+ if (rawMeta.declaration.id.name === name) {
168
+ const result = new SdCliBbFunctionMetadata(this, rawMeta.declaration);
169
+ this._findMetaFromOutsideCache.set(name, result);
170
+ return result;
171
+ }
172
+ }
173
+ else {
174
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
175
+ }
176
+ }
177
+ else {
178
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
179
+ }
180
+ }
181
+ else {
182
+ for (const specifier of rawMeta.specifiers) {
183
+ if (isExportSpecifier(specifier)) {
184
+ const exportedName = isIdentifier(specifier.exported) ? specifier.exported.name : undefined;
185
+ if (exportedName === undefined) {
186
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
187
+ }
188
+ else if (exportedName === name) {
189
+ if (rawMeta.source) {
190
+ if (rawMeta.source.value.includes(".")) {
191
+ const moduleFilePath = path.resolve(path.dirname(this.filePath), rawMeta.source.value);
192
+ const result = {
193
+ filePath: moduleFilePath,
194
+ name: specifier.local.name,
195
+ __TSdCliMetaRef__: "__TSdCliMetaRef__"
196
+ };
197
+ this._findMetaFromOutsideCache.set(name, result);
198
+ return result;
199
+ }
200
+ else {
201
+ const moduleName = rawMeta.source.value;
202
+ const result = {
203
+ moduleName,
204
+ name: specifier.local.name,
205
+ __TSdCliMetaRef__: "__TSdCliMetaRef__"
206
+ };
207
+ this._findMetaFromOutsideCache.set(name, result);
208
+ return result;
209
+ }
210
+ }
211
+ else {
212
+ const result = this._findMetaFromInside(specifier.local.name);
213
+ this._findMetaFromOutsideCache.set(name, result);
214
+ return result;
215
+ }
216
+ }
217
+ }
218
+ }
219
+ }
220
+ }
221
+ else if (isExportDefaultDeclaration(rawMeta) && name === "default") {
222
+ const result = this.getMetaFromRaw(rawMeta.declaration);
223
+ if (Array.isArray(result)) {
224
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
225
+ }
226
+ this._findMetaFromOutsideCache.set(name, result);
227
+ return result;
228
+ }
229
+ }
230
+ return undefined;
231
+ }
232
+ _findMetaFromInside(localName) {
233
+ const cache = this._findMetaFromInsideCache.get(localName);
234
+ if (cache !== undefined)
235
+ return cache;
236
+ for (const rawMeta of this.rawMetas) {
237
+ if (isClassDeclaration(rawMeta) && rawMeta.id.name === localName) {
238
+ return new SdCliBbClassMetadata(this, rawMeta);
239
+ }
240
+ else if (isExportNamedDeclaration(rawMeta)) {
241
+ for (const specifier of rawMeta.specifiers) {
242
+ if (isExportSpecifier(specifier)) {
243
+ const exportedName = isIdentifier(specifier.exported) ? specifier.exported.name : undefined;
244
+ if (exportedName === undefined) {
245
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
246
+ }
247
+ else if (exportedName === localName) {
248
+ if (rawMeta.source) {
249
+ if (rawMeta.source.value.includes(".")) {
250
+ const moduleFilePath = path.resolve(path.dirname(this.filePath), rawMeta.source.value);
251
+ const result = {
252
+ filePath: moduleFilePath,
253
+ name: specifier.local.name,
254
+ __TSdCliMetaRef__: "__TSdCliMetaRef__"
255
+ };
256
+ this._findMetaFromInsideCache.set(localName, result);
257
+ return result;
258
+ }
259
+ else {
260
+ const moduleName = rawMeta.source.value;
261
+ const result = {
262
+ moduleName,
263
+ name: specifier.local.name,
264
+ __TSdCliMetaRef__: "__TSdCliMetaRef__"
265
+ };
266
+ this._findMetaFromInsideCache.set(localName, result);
267
+ return result;
268
+ }
269
+ }
270
+ }
271
+ }
272
+ }
273
+ }
274
+ /*else if (isExportDefaultDeclaration(rawMeta) && localName === "default") {
275
+ const result = this.getMetaFromRaw(rawMeta.declaration);
276
+ if (Array.isArray(result)) {
277
+ throw new NeverEntryError();
278
+ }
279
+ this._findMetaFromInsideCache.set(localName, result);
280
+ return result;
281
+ }*/
282
+ else if (isImportDeclaration(rawMeta)) {
283
+ for (const specifier of rawMeta.specifiers) {
284
+ if (isImportSpecifier(specifier)) {
285
+ const impLocalName = isIdentifier(specifier.local) ? specifier.local.name : undefined;
286
+ if (impLocalName === undefined) {
287
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
288
+ }
289
+ else if (impLocalName === localName) {
290
+ if (isIdentifier(specifier.imported)) {
291
+ if (rawMeta.source.value.includes(".")) {
292
+ const moduleFilePath = path.resolve(path.dirname(this.filePath), rawMeta.source.value);
293
+ const result = {
294
+ filePath: moduleFilePath,
295
+ name: specifier.imported.name,
296
+ __TSdCliMetaRef__: "__TSdCliMetaRef__"
297
+ };
298
+ this._findMetaFromInsideCache.set(localName, result);
299
+ return result;
300
+ }
301
+ else {
302
+ const moduleName = rawMeta.source.value;
303
+ const result = {
304
+ moduleName,
305
+ name: specifier.imported.name,
306
+ __TSdCliMetaRef__: "__TSdCliMetaRef__"
307
+ };
308
+ this._findMetaFromInsideCache.set(localName, result);
309
+ return result;
310
+ }
311
+ }
312
+ else {
313
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
314
+ }
315
+ }
316
+ }
317
+ else if (isImportDefaultSpecifier(specifier)) {
318
+ if (specifier.local.name === localName) {
319
+ if (rawMeta.source.value.includes(".")) {
320
+ const moduleFilePath = path.resolve(path.dirname(this.filePath), rawMeta.source.value);
321
+ const result = {
322
+ filePath: moduleFilePath,
323
+ name: "default",
324
+ __TSdCliMetaRef__: "__TSdCliMetaRef__"
325
+ };
326
+ this._findMetaFromInsideCache.set(localName, result);
327
+ return result;
328
+ }
329
+ else {
330
+ const moduleName = rawMeta.source.value;
331
+ const result = {
332
+ moduleName,
333
+ name: "default",
334
+ __TSdCliMetaRef__: "__TSdCliMetaRef__"
335
+ };
336
+ this._findMetaFromInsideCache.set(localName, result);
337
+ return result;
338
+ }
339
+ }
340
+ }
341
+ }
342
+ }
343
+ else if (isVariableDeclaration(rawMeta)) {
344
+ for (const decl of rawMeta.declarations) {
345
+ if (isIdentifier(decl.id)) {
346
+ if (decl.id.name === localName) {
347
+ const result = new SdCliBbVariableMetadata(this, decl);
348
+ this._findMetaFromInsideCache.set(localName, result);
349
+ return result;
350
+ }
351
+ }
352
+ else {
353
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
354
+ }
355
+ }
356
+ }
357
+ else if (isFunctionDeclaration(rawMeta)) {
358
+ if (rawMeta.id) {
359
+ if (rawMeta.id.name === localName) {
360
+ const result = new SdCliBbFunctionMetadata(this, rawMeta);
361
+ this._findMetaFromInsideCache.set(localName, result);
362
+ return result;
363
+ }
364
+ }
365
+ else {
366
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
367
+ }
368
+ }
369
+ }
370
+ throw SdCliBbUtil.error(`'${localName}'에 대한 내부선언을 찾을 수 없습니다.`, this.filePath);
371
+ }
372
+ getMetaFromRaw(rawMeta) {
373
+ if (isIdentifier(rawMeta)) {
374
+ return this._findMetaFromInside(rawMeta.name);
375
+ }
376
+ else if (isClassDeclaration(rawMeta)) {
377
+ return new SdCliBbClassMetadata(this, rawMeta);
378
+ }
379
+ else if (isArrayExpression(rawMeta)) {
380
+ return new SdCliBbArrayMetadata(this, rawMeta);
381
+ }
382
+ else if (isObjectExpression(rawMeta)) {
383
+ return new SdCliBbObjectMetadata(this, rawMeta);
384
+ }
385
+ else if (isStringLiteral(rawMeta)) {
386
+ return rawMeta.value;
387
+ }
388
+ else if (isSpreadElement(rawMeta)) {
389
+ return this.getMetaFromRaw(rawMeta.argument);
390
+ }
391
+ throw SdCliBbUtil.error("예상치 못한 방식의 코드가 발견되었습니다.", this.filePath, rawMeta);
392
+ }
393
+ getNgDecoArg(className) {
394
+ if (this._getNgDecoArgCache.has(className)) {
395
+ return this._getNgDecoArgCache.get(className);
396
+ }
397
+ for (const meta of this.rawMetas) {
398
+ // 'compilationMode: partial' 일때
399
+ if (isExpressionStatement(meta) &&
400
+ isCallExpression(meta.expression) &&
401
+ ((isMemberExpression(meta.expression.callee) &&
402
+ isIdentifier(meta.expression.callee.property) &&
403
+ meta.expression.callee.property.name === "ɵɵngDeclareClassMetadata") ||
404
+ (isIdentifier(meta.expression.callee) &&
405
+ meta.expression.callee.name === "ngDeclareClassMetadata")) &&
406
+ isObjectExpression(meta.expression.arguments[0])) {
407
+ const objMeta = new SdCliBbObjectMetadata(this, meta.expression.arguments[0]);
408
+ const typePropVal = objMeta.getPropValue("type");
409
+ if (typePropVal instanceof SdCliBbClassMetadata &&
410
+ typePropVal.name === className) {
411
+ const decos = objMeta.getPropValue("decorators");
412
+ if (decos instanceof SdCliBbArrayMetadata &&
413
+ decos.value[0] instanceof SdCliBbObjectMetadata) {
414
+ const args = decos.value[0].getPropValue("args");
415
+ if (args instanceof SdCliBbArrayMetadata &&
416
+ args.value[0] instanceof SdCliBbObjectMetadata) {
417
+ this._getNgDecoArgCache.set(className, args.value[0]);
418
+ return args.value[0];
419
+ }
420
+ }
421
+ else {
422
+ throw new NeverEntryError();
423
+ }
424
+ }
425
+ }
426
+ }
427
+ // 'compilationMode: full' 일때
428
+ let result;
429
+ traverseFast(this.ast, (node) => {
430
+ if (isCallExpression(node) &&
431
+ ((isMemberExpression(node.callee) &&
432
+ isIdentifier(node.callee.property) &&
433
+ node.callee.property.name === "ɵsetClassMetadata") ||
434
+ (isIdentifier(node.callee) &&
435
+ node.callee.name === "setClassMetadata")) &&
436
+ isIdentifier(node.arguments[0]) &&
437
+ node.arguments[0].name === className &&
438
+ isArrayExpression(node.arguments[1])) {
439
+ const decos = new SdCliBbArrayMetadata(this, node.arguments[1]);
440
+ if (decos.value[0] instanceof SdCliBbObjectMetadata) {
441
+ const args = decos.value[0].getPropValue("args");
442
+ if (args instanceof SdCliBbArrayMetadata &&
443
+ args.value[0] instanceof SdCliBbObjectMetadata) {
444
+ result = args.value[0];
445
+ }
446
+ }
447
+ else {
448
+ throw new NeverEntryError();
449
+ }
450
+ }
451
+ });
452
+ if (result === undefined) {
453
+ throw new NeverEntryError(this.filePath + "," + className);
454
+ }
455
+ this._getNgDecoArgCache.set(className, result);
456
+ return result;
457
+ }
458
+ getNgDecoPropValue(className, decoName, propName) {
459
+ for (const meta of this.rawMetas) {
460
+ if (isExpressionStatement(meta) &&
461
+ isAssignmentExpression(meta.expression) &&
462
+ isMemberExpression(meta.expression.left) &&
463
+ isIdentifier(meta.expression.left.object) &&
464
+ meta.expression.left.object.name === className &&
465
+ isIdentifier(meta.expression.left.property)) {
466
+ if (meta.expression.left.property.name === decoName) {
467
+ if (isCallExpression(meta.expression.right) &&
468
+ meta.expression.right.arguments.length > 0 &&
469
+ isObjectExpression(meta.expression.right.arguments[0])) {
470
+ const dirObjMeta = new SdCliBbObjectMetadata(this, meta.expression.right.arguments[0]);
471
+ return dirObjMeta.getPropValue(propName);
472
+ }
473
+ else {
474
+ throw new NeverEntryError();
475
+ }
476
+ }
477
+ }
478
+ }
479
+ throw new NeverEntryError();
480
+ }
481
+ }
482
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlCYkZpbGVNZXRhZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZy10b29scy9iYWJlbC9TZENsaUJiRmlsZU1ldGFkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxpQkFBaUIsRUFDakIsc0JBQXNCLEVBQ3RCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLGVBQWUsRUFDZixxQkFBcUIsRUFJckIsWUFBWSxFQUNiLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sV0FBNEIsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hELE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQix1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN4QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE1BQU0sT0FBTyxtQkFBbUI7SUFJOUIsWUFBbUMsUUFBZ0I7UUFBaEIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQW1JbEMsOEJBQXlCLEdBQUcsSUFBSSxHQUFHLEVBQTRCLENBQUM7UUFtR2hFLDZCQUF3QixHQUFHLElBQUksR0FBRyxFQUE0QixDQUFDO1FBdUsvRCx1QkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FB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
@@ -0,0 +1,22 @@
1
+ import { SdCliBbFileMetadata } from "./SdCliBbFileMetadata";
2
+ import { TSdCliBbTypeMetadata } from "./TSdCliBbTypeMetadata";
3
+ import { TSdCliMetaRef } from "../commons";
4
+ export declare class SdCliBbRootMetadata {
5
+ private readonly _entryMap;
6
+ private readonly _fileMetaCache;
7
+ constructor(packagePath: string);
8
+ removeCaches(filePaths: string[]): void;
9
+ getEntryFileMetaRecord(): Record<string, SdCliBbFileMetadata>;
10
+ findMeta(ref: TSdCliMetaRef): TSdCliBbMetadata | TSdCliBbMetadata[];
11
+ findExportRef(localRef: {
12
+ filePath: string;
13
+ name: string;
14
+ }): {
15
+ moduleName: string;
16
+ name: string;
17
+ } | undefined;
18
+ private _getAllDepPaths;
19
+ private _getEntryMap;
20
+ private _getGlobExportResult;
21
+ }
22
+ export declare type TSdCliBbMetadata = TSdCliBbTypeMetadata | TSdCliMetaRef | string;