@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,61 @@
1
+ import ts from "typescript";
2
+ import { TSdCliMetaRef } from "../commons";
3
+ export declare class SdCliTsFileMetadata {
4
+ readonly filePath: string;
5
+ readonly sourceFile: ts.SourceFile;
6
+ constructor(filePath: string);
7
+ private _directExportClassesCache?;
8
+ get directExportClasses(): {
9
+ exportedName: string;
10
+ target: SdCliTsClassMetadata;
11
+ }[];
12
+ get imports(): TSdCliMetaRef[];
13
+ private _findNamespaceUse;
14
+ getMetaFromNode(node: ts.Node): TSdCliTsMetadata;
15
+ }
16
+ export declare class SdCliTsClassMetadata {
17
+ private readonly _fileMeta;
18
+ private readonly _node;
19
+ constructor(_fileMeta: SdCliTsFileMetadata, _node: ts.ClassDeclaration);
20
+ private _ngDeclCache?;
21
+ get ngDecl(): TSdCliTsNgMetadata | undefined;
22
+ }
23
+ export declare class SdCliTsObjectMetadata {
24
+ private readonly _fileMeta;
25
+ private readonly _node;
26
+ constructor(_fileMeta: SdCliTsFileMetadata, _node: ts.ObjectLiteralExpression);
27
+ private readonly _getPropValueCache;
28
+ getPropValue(propName: string): TSdCliTsMetadata | undefined;
29
+ }
30
+ export declare type TSdCliTsMetadata = SdCliTsClassMetadata | SdCliTsObjectMetadata | TSdCliMetaRef | string | null;
31
+ export declare class SdCliTsNgInjectableMetadata {
32
+ private readonly _fileMeta;
33
+ private readonly _node;
34
+ constructor(_fileMeta: SdCliTsFileMetadata, _node: ts.Decorator);
35
+ private _providedInCache?;
36
+ get providedIn(): string | undefined;
37
+ }
38
+ export declare class SdCliTsNgDirectiveMetadata {
39
+ private readonly _fileMeta;
40
+ private readonly _node;
41
+ constructor(_fileMeta: SdCliTsFileMetadata, _node: ts.Decorator);
42
+ private _selectorCache?;
43
+ get selector(): string;
44
+ }
45
+ export declare class SdCliTsNgComponentMetadata {
46
+ private readonly _fileMeta;
47
+ private readonly _node;
48
+ constructor(_fileMeta: SdCliTsFileMetadata, _node: ts.Decorator);
49
+ private _selectorCache?;
50
+ get selector(): string;
51
+ private _templateCache?;
52
+ get template(): string;
53
+ }
54
+ export declare class SdCliTsNgPipeMetadata {
55
+ private readonly _fileMeta;
56
+ private readonly _node;
57
+ constructor(_fileMeta: SdCliTsFileMetadata, _node: ts.Decorator);
58
+ private _pipeNameCache?;
59
+ get pipeName(): string;
60
+ }
61
+ export declare type TSdCliTsNgMetadata = SdCliTsNgInjectableMetadata | SdCliTsNgDirectiveMetadata | SdCliTsNgComponentMetadata | SdCliTsNgPipeMetadata;
@@ -0,0 +1,326 @@
1
+ import { FsUtil } from "@simplysm/sd-core-node";
2
+ import ts from "typescript";
3
+ import { NeverEntryError } from "@simplysm/sd-core-common";
4
+ import path from "path";
5
+ import { SdCliTsUtil } from "./SdCliTsUtil";
6
+ export class SdCliTsFileMetadata {
7
+ constructor(filePath) {
8
+ this.filePath = filePath;
9
+ const fileContent = FsUtil.readFile(filePath);
10
+ this.sourceFile = ts.createSourceFile(filePath, fileContent, ts.ScriptTarget.ES2017);
11
+ }
12
+ get directExportClasses() {
13
+ if (this._directExportClassesCache)
14
+ return this._directExportClassesCache;
15
+ const result = [];
16
+ this.sourceFile.forEachChild((node) => {
17
+ if (!node.modifiers || !node.modifiers.some((item) => item.kind === ts.SyntaxKind.ExportKeyword))
18
+ return;
19
+ if (!ts.isClassDeclaration(node))
20
+ return;
21
+ if (node.name === undefined) {
22
+ throw new NeverEntryError();
23
+ }
24
+ result.push({ exportedName: node.name.text, target: new SdCliTsClassMetadata(this, node) });
25
+ });
26
+ this._directExportClassesCache = result;
27
+ return result;
28
+ }
29
+ get imports() {
30
+ const result = [];
31
+ ts.forEachChild(this.sourceFile, (node) => {
32
+ if (ts.isImportDeclaration(node)) {
33
+ if (ts.isStringLiteral(node.moduleSpecifier)) {
34
+ if (node.importClause) {
35
+ if (node.moduleSpecifier.text.includes(".")) {
36
+ const moduleFilePath = path.resolve(path.dirname(this.filePath), node.moduleSpecifier.text);
37
+ if (node.importClause.namedBindings) {
38
+ if (ts.isNamedImports(node.importClause.namedBindings)) {
39
+ for (const el of node.importClause.namedBindings.elements) {
40
+ result.push({
41
+ filePath: moduleFilePath,
42
+ name: el.name.text,
43
+ __TSdCliMetaRef__: "__TSdCliMetaRef__"
44
+ });
45
+ }
46
+ }
47
+ else {
48
+ throw SdCliTsUtil.error("'import * as [name] from ...'을 'import [name] from ...'로 변경하세요.", this.sourceFile, node);
49
+ }
50
+ }
51
+ else {
52
+ result.push({
53
+ filePath: moduleFilePath,
54
+ name: "default",
55
+ __TSdCliMetaRef__: "__TSdCliMetaRef__"
56
+ });
57
+ }
58
+ }
59
+ else {
60
+ const moduleName = node.moduleSpecifier.text;
61
+ if (node.importClause.namedBindings) {
62
+ if (ts.isNamedImports(node.importClause.namedBindings)) {
63
+ for (const el of node.importClause.namedBindings.elements) {
64
+ result.push({
65
+ moduleName,
66
+ name: el.propertyName?.text ?? el.name.text,
67
+ __TSdCliMetaRef__: "__TSdCliMetaRef__"
68
+ });
69
+ }
70
+ }
71
+ else {
72
+ const nsUseList = this._findNamespaceUse(node.importClause.namedBindings.name.text);
73
+ for (const nsUse of nsUseList) {
74
+ result.push({
75
+ moduleName,
76
+ name: nsUse,
77
+ __TSdCliMetaRef__: "__TSdCliMetaRef__"
78
+ });
79
+ }
80
+ }
81
+ }
82
+ else if (node.importClause.name) {
83
+ const nsUseList = this._findNamespaceUse(node.importClause.name.text);
84
+ for (const nsUse of nsUseList) {
85
+ result.push({
86
+ moduleName: moduleName,
87
+ name: nsUse,
88
+ __TSdCliMetaRef__: "__TSdCliMetaRef__"
89
+ });
90
+ }
91
+ }
92
+ else {
93
+ throw new NeverEntryError();
94
+ }
95
+ }
96
+ }
97
+ else {
98
+ // 무시
99
+ }
100
+ }
101
+ else {
102
+ throw new NeverEntryError();
103
+ }
104
+ }
105
+ else if (ts.isExportDeclaration(node)) {
106
+ if (node.exportClause &&
107
+ ts.isNamedExports(node.exportClause) &&
108
+ node.moduleSpecifier &&
109
+ ts.isStringLiteral(node.moduleSpecifier)) {
110
+ if (node.moduleSpecifier.text.includes(".")) {
111
+ const moduleFilePath = path.resolve(path.dirname(this.filePath), node.moduleSpecifier.text);
112
+ for (const el of node.exportClause.elements) {
113
+ if (el.propertyName && el.name.text !== el.propertyName.text) {
114
+ throw new NeverEntryError();
115
+ }
116
+ result.push({
117
+ filePath: moduleFilePath,
118
+ name: el.name.text,
119
+ __TSdCliMetaRef__: "__TSdCliMetaRef__"
120
+ });
121
+ }
122
+ }
123
+ else {
124
+ throw new NeverEntryError();
125
+ }
126
+ }
127
+ else {
128
+ throw new NeverEntryError();
129
+ }
130
+ }
131
+ });
132
+ return result;
133
+ }
134
+ _findNamespaceUse(localName) {
135
+ const fn = (parent) => {
136
+ const result = [];
137
+ ts.forEachChild(parent, (node) => {
138
+ if (ts.isPropertyAccessExpression(node)) {
139
+ if (ts.isIdentifier(node.expression) &&
140
+ node.expression.text === localName &&
141
+ ts.isIdentifier(node.name)) {
142
+ result.push(node.name.text);
143
+ }
144
+ }
145
+ else {
146
+ result.push(...fn(node));
147
+ }
148
+ });
149
+ return result;
150
+ };
151
+ return fn(this.sourceFile);
152
+ }
153
+ getMetaFromNode(node) {
154
+ if (ts.isClassDeclaration(node)) {
155
+ return new SdCliTsClassMetadata(this, node);
156
+ }
157
+ else if (ts.isStringLiteral(node)) {
158
+ return node.text;
159
+ }
160
+ else if (ts.isNoSubstitutionTemplateLiteral(node)) {
161
+ return node.text;
162
+ }
163
+ else if (node.kind === ts.SyntaxKind.NullKeyword) {
164
+ return null;
165
+ }
166
+ throw new NeverEntryError();
167
+ }
168
+ }
169
+ export class SdCliTsClassMetadata {
170
+ constructor(_fileMeta, _node) {
171
+ this._fileMeta = _fileMeta;
172
+ this._node = _node;
173
+ }
174
+ get ngDecl() {
175
+ if (this._ngDeclCache !== undefined)
176
+ return this._ngDeclCache;
177
+ if (!this._node.decorators)
178
+ return undefined;
179
+ for (const deco of this._node.decorators) {
180
+ if (!ts.isCallExpression(deco.expression))
181
+ continue;
182
+ if (!ts.isIdentifier(deco.expression.expression)) {
183
+ throw new NeverEntryError();
184
+ }
185
+ if (deco.expression.expression.text === "Injectable") {
186
+ this._ngDeclCache = new SdCliTsNgInjectableMetadata(this._fileMeta, deco);
187
+ return this._ngDeclCache;
188
+ }
189
+ else if (deco.expression.expression.text === "Directive") {
190
+ this._ngDeclCache = new SdCliTsNgDirectiveMetadata(this._fileMeta, deco);
191
+ return this._ngDeclCache;
192
+ }
193
+ else if (deco.expression.expression.text === "Component") {
194
+ this._ngDeclCache = new SdCliTsNgComponentMetadata(this._fileMeta, deco);
195
+ return this._ngDeclCache;
196
+ }
197
+ else if (deco.expression.expression.text === "Pipe") {
198
+ this._ngDeclCache = new SdCliTsNgPipeMetadata(this._fileMeta, deco);
199
+ return this._ngDeclCache;
200
+ }
201
+ }
202
+ return undefined;
203
+ }
204
+ }
205
+ export class SdCliTsObjectMetadata {
206
+ constructor(_fileMeta, _node) {
207
+ this._fileMeta = _fileMeta;
208
+ this._node = _node;
209
+ this._getPropValueCache = new Map();
210
+ }
211
+ getPropValue(propName) {
212
+ if (this._getPropValueCache.has(propName)) {
213
+ return this._getPropValueCache.get(propName);
214
+ }
215
+ const prop = this._node.properties.single((item) => (ts.isPropertyAssignment(item) &&
216
+ ts.isIdentifier(item.name) &&
217
+ item.name.text === propName));
218
+ if (!prop) {
219
+ this._getPropValueCache.set(propName, undefined);
220
+ return undefined;
221
+ }
222
+ const result = this._fileMeta.getMetaFromNode(prop.initializer);
223
+ this._getPropValueCache.set(propName, result);
224
+ return result;
225
+ }
226
+ }
227
+ export class SdCliTsNgInjectableMetadata {
228
+ constructor(_fileMeta, _node) {
229
+ this._fileMeta = _fileMeta;
230
+ this._node = _node;
231
+ }
232
+ get providedIn() {
233
+ if (this._providedInCache !== undefined)
234
+ return this._providedInCache;
235
+ if (!ts.isCallExpression(this._node.expression))
236
+ throw new NeverEntryError();
237
+ if (this._node.expression.arguments.length > 0 && ts.isObjectLiteralExpression(this._node.expression.arguments[0])) {
238
+ const decoArg = new SdCliTsObjectMetadata(this._fileMeta, this._node.expression.arguments[0]);
239
+ const decoArgSelectorVal = decoArg.getPropValue("providedIn");
240
+ if (typeof decoArgSelectorVal === "string") {
241
+ this._providedInCache = decoArgSelectorVal;
242
+ return decoArgSelectorVal;
243
+ }
244
+ }
245
+ return undefined;
246
+ }
247
+ }
248
+ export class SdCliTsNgDirectiveMetadata {
249
+ constructor(_fileMeta, _node) {
250
+ this._fileMeta = _fileMeta;
251
+ this._node = _node;
252
+ }
253
+ get selector() {
254
+ if (this._selectorCache !== undefined)
255
+ return this._selectorCache;
256
+ if (!ts.isCallExpression(this._node.expression))
257
+ throw new NeverEntryError();
258
+ if (this._node.expression.arguments.length > 0 && ts.isObjectLiteralExpression(this._node.expression.arguments[0])) {
259
+ const decoArg = new SdCliTsObjectMetadata(this._fileMeta, this._node.expression.arguments[0]);
260
+ const decoArgSelectorVal = decoArg.getPropValue("selector");
261
+ if (typeof decoArgSelectorVal === "string") {
262
+ this._selectorCache = decoArgSelectorVal;
263
+ return decoArgSelectorVal;
264
+ }
265
+ }
266
+ throw new NeverEntryError();
267
+ }
268
+ }
269
+ export class SdCliTsNgComponentMetadata {
270
+ constructor(_fileMeta, _node) {
271
+ this._fileMeta = _fileMeta;
272
+ this._node = _node;
273
+ }
274
+ get selector() {
275
+ if (this._selectorCache !== undefined)
276
+ return this._selectorCache;
277
+ if (!ts.isCallExpression(this._node.expression))
278
+ throw new NeverEntryError();
279
+ if (this._node.expression.arguments.length > 0 && ts.isObjectLiteralExpression(this._node.expression.arguments[0])) {
280
+ const decoArg = new SdCliTsObjectMetadata(this._fileMeta, this._node.expression.arguments[0]);
281
+ const decoArgSelectorVal = decoArg.getPropValue("selector");
282
+ if (typeof decoArgSelectorVal === "string") {
283
+ this._selectorCache = decoArgSelectorVal;
284
+ return decoArgSelectorVal;
285
+ }
286
+ }
287
+ throw new NeverEntryError();
288
+ }
289
+ get template() {
290
+ if (this._templateCache !== undefined)
291
+ return this._templateCache;
292
+ if (!ts.isCallExpression(this._node.expression))
293
+ throw new NeverEntryError();
294
+ if (this._node.expression.arguments.length > 0 && ts.isObjectLiteralExpression(this._node.expression.arguments[0])) {
295
+ const decoArg = new SdCliTsObjectMetadata(this._fileMeta, this._node.expression.arguments[0]);
296
+ const decoArgSelectorVal = decoArg.getPropValue("template");
297
+ if (typeof decoArgSelectorVal === "string") {
298
+ this._templateCache = decoArgSelectorVal;
299
+ return decoArgSelectorVal;
300
+ }
301
+ }
302
+ throw new NeverEntryError();
303
+ }
304
+ }
305
+ export class SdCliTsNgPipeMetadata {
306
+ constructor(_fileMeta, _node) {
307
+ this._fileMeta = _fileMeta;
308
+ this._node = _node;
309
+ }
310
+ get pipeName() {
311
+ if (this._pipeNameCache !== undefined)
312
+ return this._pipeNameCache;
313
+ if (!ts.isCallExpression(this._node.expression))
314
+ throw new NeverEntryError();
315
+ if (this._node.expression.arguments.length > 0 && ts.isObjectLiteralExpression(this._node.expression.arguments[0])) {
316
+ const decoArg = new SdCliTsObjectMetadata(this._fileMeta, this._node.expression.arguments[0]);
317
+ const decoArgSelectorVal = decoArg.getPropValue("name");
318
+ if (typeof decoArgSelectorVal === "string") {
319
+ this._pipeNameCache = decoArgSelectorVal;
320
+ return decoArgSelectorVal;
321
+ }
322
+ }
323
+ throw new NeverEntryError();
324
+ }
325
+ }
326
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlUc0ZpbGVNZXRhZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZy10b29scy90eXBlc2NyaXB0L1NkQ2xpVHNGaWxlTWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QixZQUFtQyxRQUFnQjtRQUFoQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2pELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFJRCxJQUFXLG1CQUFtQjtRQUM1QixJQUFJLElBQUksQ0FBQyx5QkFBeUI7WUFBRSxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztRQUUxRSxNQUFNLE1BQU0sR0FBNkQsRUFBRSxDQUFDO1FBQzVFLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztnQkFBRSxPQUFP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
@@ -0,0 +1,8 @@
1
+ import { SdCliTsFileMetadata } from "./SdCliTsFileMetadata";
2
+ export declare class SdCliTsRootMetadata {
3
+ private readonly _packagePath;
4
+ private readonly _fileMetaCache;
5
+ constructor(_packagePath: string);
6
+ removeCaches(filePaths: string[]): void;
7
+ getFileMetas(): SdCliTsFileMetadata[];
8
+ }
@@ -0,0 +1,28 @@
1
+ import path from "path";
2
+ import ts from "typescript";
3
+ import { FsUtil } from "@simplysm/sd-core-node";
4
+ import { SdCliTsFileMetadata } from "./SdCliTsFileMetadata";
5
+ export class SdCliTsRootMetadata {
6
+ constructor(_packagePath) {
7
+ this._packagePath = _packagePath;
8
+ this._fileMetaCache = new Map();
9
+ }
10
+ removeCaches(filePaths) {
11
+ for (const filePath of filePaths) {
12
+ this._fileMetaCache.delete(filePath);
13
+ }
14
+ }
15
+ getFileMetas() {
16
+ const tsconfigPath = path.resolve(this._packagePath, "tsconfig-build.json");
17
+ const tsconfig = FsUtil.readJson(tsconfigPath);
18
+ const parsedTsconfig = ts.parseJsonConfigFileContent(tsconfig, ts.sys, this._packagePath, tsconfig.angularCompilerOptions);
19
+ const result = [];
20
+ for (const fileName of parsedTsconfig.fileNames) {
21
+ const filePath = path.resolve(fileName);
22
+ const fileMeta = this._fileMetaCache.getOrCreate(filePath, () => new SdCliTsFileMetadata(filePath));
23
+ result.push(fileMeta);
24
+ }
25
+ return result;
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlUc1Jvb3RNZXRhZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZy10b29scy90eXBlc2NyaXB0L1NkQ2xpVHNSb290TWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUQsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QixZQUFvQyxZQUFvQjtRQUFwQixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUZ2QyxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUErQixDQUFDO0lBR3pFLENBQUM7SUFFTSxZQUFZLENBQUMsU0FBbUI7UUFDckMsS0FBSyxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRU0sWUFBWTtRQUNqQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUM1RSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9DLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRTNILE1BQU0sTUFBTSxHQUEwQixFQUFFLENBQUM7UUFDekMsS0FBSyxNQUFNLFFBQVEsSUFBSSxjQUFjLENBQUMsU0FBUyxFQUFFO1lBQy9DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNwRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3ZCO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIn0=
@@ -0,0 +1,5 @@
1
+ import ts from "typescript";
2
+ import { SdCliBuildResultError } from "../../SdCliBuildResultError";
3
+ export declare class SdCliTsUtil {
4
+ static error(message: string, sourceFile: ts.SourceFile, meta?: ts.Node): SdCliBuildResultError;
5
+ }
@@ -0,0 +1,28 @@
1
+ import { SdCliBuildResultError } from "../../SdCliBuildResultError";
2
+ import path from "path";
3
+ export class SdCliTsUtil {
4
+ static error(message, sourceFile, meta) {
5
+ if (meta) {
6
+ const pos = sourceFile.getLineAndCharacterOfPosition(meta.getStart());
7
+ return new SdCliBuildResultError({
8
+ filePath: path.resolve(sourceFile.fileName),
9
+ line: pos.line,
10
+ char: pos.character,
11
+ code: undefined,
12
+ severity: "error",
13
+ message: message
14
+ });
15
+ }
16
+ else {
17
+ return new SdCliBuildResultError({
18
+ filePath: path.resolve(sourceFile.fileName),
19
+ line: undefined,
20
+ char: undefined,
21
+ code: undefined,
22
+ severity: "error",
23
+ message: message
24
+ });
25
+ }
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlUc1V0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmctdG9vbHMvdHlwZXNjcmlwdC9TZENsaVRzVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFFeEIsTUFBTSxPQUFPLFdBQVc7SUFDZixNQUFNLENBQUMsS0FBSyxDQUFDLE9BQWUsRUFBRSxVQUF5QixFQUFFLElBQWM7UUFDNUUsSUFBSSxJQUFJLEVBQUU7WUFDUixNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDdEUsT0FBTyxJQUFJLHFCQUFxQixDQUFDO2dCQUMvQixRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO2dCQUMzQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ2QsSUFBSSxFQUFFLEdBQUcsQ0FBQyxTQUFTO2dCQUNuQixJQUFJLEVBQUUsU0FBUztnQkFDZixRQUFRLEVBQUUsT0FBTztnQkFDakIsT0FBTyxFQUFFLE9BQU87YUFDakIsQ0FBQyxDQUFDO1NBQ0o7YUFDSTtZQUNILE9BQU8sSUFBSSxxQkFBcUIsQ0FBQztnQkFDL0IsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDM0MsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLE9BQU8sRUFBRSxPQUFPO2FBQ2pCLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztDQUNGIn0=
@@ -0,0 +1,23 @@
1
+ /// <reference types="node" />
2
+ import { ISdCliPackageBuildResult, TSdCliPackageConfig } from "../commons";
3
+ import { EventEmitter } from "events";
4
+ import { NextHandleFunction } from "connect";
5
+ export declare class SdCliPackage extends EventEmitter {
6
+ private readonly _workspaceRootPath;
7
+ readonly rootPath: string;
8
+ readonly config: TSdCliPackageConfig;
9
+ private readonly _npmConfig;
10
+ get basename(): string;
11
+ get name(): string;
12
+ get main(): string | undefined;
13
+ get allDependencies(): string[];
14
+ constructor(_workspaceRootPath: string, rootPath: string, config: TSdCliPackageConfig);
15
+ on(event: "change", listener: () => void): this;
16
+ on(event: "complete", listener: (results: ISdCliPackageBuildResult[]) => void): this;
17
+ setNewVersionAsync(newVersion: string, pkgNames: string[]): Promise<void>;
18
+ watchAsync(): Promise<NextHandleFunction[] | void>;
19
+ buildAsync(): Promise<ISdCliPackageBuildResult[]>;
20
+ publishAsync(): Promise<void>;
21
+ private _createBuilderAsync;
22
+ private _genBuildTsconfigAsync;
23
+ }
@@ -76,8 +76,7 @@ export class SdCliPackage extends EventEmitter {
76
76
  await this._genBuildTsconfigAsync();
77
77
  }
78
78
  if (this.config.type === "library") {
79
- // const isAngular = isTs && this.allDependencies.includes("@angular/core");
80
- return isTs ? new SdCliTsLibBuilder(this.rootPath) : new SdCliJsLibBuilder(this.rootPath);
79
+ return isTs ? new SdCliTsLibBuilder(this.rootPath, this.config, this._workspaceRootPath) : new SdCliJsLibBuilder(this.rootPath);
81
80
  }
82
81
  else if (this.config.type === "server") {
83
82
  return new SdCliServerBuilder(this.rootPath, this.config, this._workspaceRootPath);
@@ -98,4 +97,4 @@ export class SdCliPackage extends EventEmitter {
98
97
  await FsUtil.writeJsonAsync(buildTsconfigFilePath, buildTsconfig, { space: 2 });
99
98
  }
100
99
  }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlQYWNrYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BhY2thZ2VzL1NkQ2xpUGFja2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUduRSxNQUFNLE9BQU8sWUFBYSxTQUFRLFlBQVk7SUFzQjVDLFlBQW9DLGtCQUEwQixFQUMzQixRQUFnQixFQUNoQixNQUEyQjtRQUM1RCxLQUFLLEVBQUUsQ0FBQztRQUgwQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVE7UUFDM0IsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUc1RCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBMUJELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFB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
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlQYWNrYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BhY2thZ2VzL1NkQ2xpUGFja2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUduRSxNQUFNLE9BQU8sWUFBYSxTQUFRLFlBQVk7SUFzQjVDLFlBQW9DLGtCQUEwQixFQUMzQixRQUFnQixFQUNoQixNQUEyQjtRQUM1RCxLQUFLLEVBQUUsQ0FBQztRQUgwQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVE7UUFDM0IsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUc1RCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBMUJELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFB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
@@ -0,0 +1,9 @@
1
+ import ts from "typescript";
2
+ import { ISdCliPackageBuildResult } from "../commons";
3
+ import webpack from "webpack";
4
+ export declare class SdCliBuildResultUtil {
5
+ static convertFromTsDiag(diag: ts.Diagnostic): ISdCliPackageBuildResult | undefined;
6
+ static convertFromWebpackStats(stats: webpack.Stats): ISdCliPackageBuildResult[];
7
+ private static _convertFromWebpackError;
8
+ static getMessage(result: ISdCliPackageBuildResult): string;
9
+ }
@@ -0,0 +1,7 @@
1
+ import { ISdCliConfig } from "../commons";
2
+ export declare class SdCliConfigUtil {
3
+ static loadConfigAsync(confFilePath: string, isDev: boolean, opts?: string[]): Promise<ISdCliConfig>;
4
+ private static _getConfigFromFileContent;
5
+ private static _getPkgConfigFromFileContent;
6
+ private static _mergeObj;
7
+ }
@@ -0,0 +1,7 @@
1
+ import { INpmConfig } from "../commons";
2
+ export declare class SdCliNpmConfigUtil {
3
+ static getDependencies(npmConfig: INpmConfig): {
4
+ defaults: string[];
5
+ optionals: string[];
6
+ };
7
+ }
@@ -3,13 +3,13 @@ export class SdCliNpmConfigUtil {
3
3
  return {
4
4
  defaults: [
5
5
  ...Object.keys(npmConfig.dependencies ?? {}),
6
- ...Object.keys(npmConfig.peerDependencies ?? {}).filter((item) => !npmConfig.peerDependenciesMeta?.[item].optional)
6
+ ...Object.keys(npmConfig.peerDependencies ?? {}).filter((item) => !npmConfig.peerDependenciesMeta?.[item]?.optional)
7
7
  ].distinct(),
8
8
  optionals: [
9
9
  ...Object.keys(npmConfig.optionalDependencies ?? {}),
10
- ...Object.keys(npmConfig.peerDependencies ?? {}).filter((item) => npmConfig.peerDependenciesMeta?.[item].optional)
10
+ ...Object.keys(npmConfig.peerDependencies ?? {}).filter((item) => npmConfig.peerDependenciesMeta?.[item]?.optional)
11
11
  ].distinct()
12
12
  };
13
13
  }
14
14
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlOcG1Db25maWdVdGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL1NkQ2xpTnBtQ29uZmlnVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sa0JBQWtCO0lBQ3RCLE1BQU0sQ0FBQyxlQUFlLENBQUMsU0FBcUI7UUFDakQsT0FBTztZQUNMLFFBQVEsRUFBRTtnQkFDUixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7Z0JBQzVDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQzthQUNwSCxDQUFDLFFBQVEsRUFBRTtZQUNaLFNBQVMsRUFBRTtnQkFDVCxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixJQUFJLEVBQUUsQ0FBQztnQkFDcEQsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQzthQUNuSCxDQUFDLFFBQVEsRUFBRTtTQUNiLENBQUM7SUFDSixDQUFDO0NBQ0YifQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlOcG1Db25maWdVdGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL1NkQ2xpTnBtQ29uZmlnVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sa0JBQWtCO0lBQ3RCLE1BQU0sQ0FBQyxlQUFlLENBQUMsU0FBcUI7UUFDakQsT0FBTztZQUNMLFFBQVEsRUFBRTtnQkFDUixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7Z0JBQzVDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsQ0FBQzthQUNySCxDQUFDLFFBQVEsRUFBRTtZQUNaLFNBQVMsRUFBRTtnQkFDVCxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixJQUFJLEVBQUUsQ0FBQztnQkFDcEQsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsQ0FBQzthQUNwSCxDQUFDLFFBQVEsRUFBRTtTQUNiLENBQUM7SUFDSixDQUFDO0NBQ0YifQ==