@lenne.tech/cli 0.0.106 → 0.0.108

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 (55) hide show
  1. package/bin/lt +5 -5
  2. package/build/cli.js +3 -2
  3. package/build/commands/angular/angular.js +2 -2
  4. package/build/commands/angular/create.js +20 -20
  5. package/build/commands/cli/cli.js +3 -3
  6. package/build/commands/cli/create.js +10 -10
  7. package/build/commands/cli/rename.js +3 -3
  8. package/build/commands/components/add.js +41 -41
  9. package/build/commands/components/components.js +2 -2
  10. package/build/commands/deployment/create.js +41 -41
  11. package/build/commands/deployment/deployment.js +2 -2
  12. package/build/commands/docs/docs.js +3 -3
  13. package/build/commands/docs/open.js +9 -9
  14. package/build/commands/fullstack/fullstack.js +2 -2
  15. package/build/commands/fullstack/init.js +17 -15
  16. package/build/commands/git/clean.js +6 -6
  17. package/build/commands/git/clear.js +4 -4
  18. package/build/commands/git/create.js +7 -7
  19. package/build/commands/git/force-pull.js +4 -4
  20. package/build/commands/git/get.js +10 -10
  21. package/build/commands/git/git.js +3 -3
  22. package/build/commands/git/rebase.js +2 -2
  23. package/build/commands/git/rename.js +5 -5
  24. package/build/commands/git/reset.js +12 -16
  25. package/build/commands/git/squash.js +28 -21
  26. package/build/commands/git/undo.js +3 -3
  27. package/build/commands/git/update.js +4 -4
  28. package/build/commands/lt.js +4 -4
  29. package/build/commands/npm/npm.js +3 -3
  30. package/build/commands/npm/reinit.js +7 -7
  31. package/build/commands/npm/update.js +6 -6
  32. package/build/commands/server/add-property.js +131 -0
  33. package/build/commands/server/create-secret.js +3 -3
  34. package/build/commands/server/create.js +15 -20
  35. package/build/commands/server/module.js +64 -108
  36. package/build/commands/server/object.js +51 -95
  37. package/build/commands/server/server.js +3 -3
  38. package/build/commands/server/test.js +9 -9
  39. package/build/commands/starter/chrome-extension.js +11 -11
  40. package/build/commands/starter/starter.js +3 -3
  41. package/build/commands/tools/crypt.js +4 -4
  42. package/build/commands/tools/jwt-read.js +6 -6
  43. package/build/commands/tools/regex.js +3 -3
  44. package/build/commands/tools/sha256.js +4 -4
  45. package/build/commands/tools/tools.js +3 -3
  46. package/build/commands/typescript/create.js +14 -14
  47. package/build/commands/typescript/playground.js +9 -9
  48. package/build/commands/typescript/typescript.js +3 -3
  49. package/build/commands/update.js +4 -4
  50. package/build/extensions/git.js +19 -19
  51. package/build/extensions/server.js +241 -37
  52. package/build/extensions/tools.js +6 -6
  53. package/build/extensions/typescript.js +10 -10
  54. package/build/interfaces/extended-gluegun-command.js +3 -0
  55. package/package.json +18 -18
@@ -10,23 +10,31 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const path_1 = require("path");
13
+ const object_1 = require("./object");
13
14
  /**
14
15
  * Create a new server module
15
16
  */
16
17
  const NewCommand = {
17
- name: 'module',
18
18
  alias: ['m'],
19
19
  description: 'Creates a new server module',
20
20
  hidden: false,
21
- run: (toolbox) => __awaiter(void 0, void 0, void 0, function* () {
21
+ name: 'module',
22
+ run: (toolbox, options) => __awaiter(void 0, void 0, void 0, function* () {
23
+ // Options:
24
+ const { currentItem, objectsToAdd, preventExitProcess, referencesToAdd } = Object.assign({ currentItem: '', objectsToAdd: [], preventExitProcess: false, referencesToAdd: [] }, options);
22
25
  // Retrieve the tools we need
23
- const { filesystem, helper, parameters, patching, print: { error, info, spin, success }, prompt: { ask, confirm }, server, strings: { kebabCase, pascalCase, camelCase }, system, template, } = toolbox;
26
+ const { filesystem, helper, parameters, patching, print: { divider, error, info, spin, success }, server, strings: { camelCase, kebabCase, pascalCase }, system, template, } = toolbox;
24
27
  // Start timer
25
28
  const timer = system.startTimer();
26
29
  // Info
27
- info('Create a new server module');
28
- // Get name
29
- const name = yield helper.getInput(parameters.first, {
30
+ if (currentItem) {
31
+ info(`Creating a new server module for ${currentItem}`);
32
+ }
33
+ else {
34
+ info('Create a new server module');
35
+ }
36
+ const name = yield helper.getInput(currentItem || parameters.first, {
37
+ initial: currentItem || '',
30
38
  name: 'module name',
31
39
  });
32
40
  if (!name) {
@@ -40,136 +48,69 @@ const NewCommand = {
40
48
  const cwd = filesystem.cwd();
41
49
  const path = cwd.substr(0, cwd.lastIndexOf('src'));
42
50
  if (!filesystem.exists((0, path_1.join)(path, 'src'))) {
43
- info(``);
51
+ info('');
44
52
  error(`No src directory in "${path}".`);
45
53
  return undefined;
46
54
  }
47
- const moduleDir = (0, path_1.join)(path, 'src', 'server', 'modules', nameKebab);
48
- if (filesystem.exists(moduleDir)) {
49
- info(``);
50
- error(`Module directory "${moduleDir}" already exists.`);
55
+ const directory = (0, path_1.join)(path, 'src', 'server', 'modules', nameKebab);
56
+ if (filesystem.exists(directory)) {
57
+ info('');
58
+ error(`Module directory "${directory}" already exists.`);
51
59
  return undefined;
52
60
  }
53
- // Set props
54
- const props = {};
55
- const setProps = true;
56
- let refsSet = false;
57
- let schemaSet = false;
58
- while (setProps) {
59
- const name = (yield ask({
60
- type: 'input',
61
- name: 'input',
62
- message: `Enter property name (e.g. myProperty) to create new property or leave empty (ENTER)`,
63
- })).input;
64
- if (!name.trim()) {
65
- break;
66
- }
67
- let type = (yield ask([
68
- {
69
- type: 'select',
70
- name: 'input',
71
- message: 'Choose property type',
72
- choices: ['boolean', 'string', 'number', 'ObjectId / Reference', 'Date', 'enum', 'Use own', 'JSON / any'],
73
- },
74
- ])).input;
75
- if (type === 'ObjectId / Reference') {
76
- type = 'ObjectId';
77
- }
78
- else if (type === 'JSON / any') {
79
- type = 'JSON';
80
- }
81
- let schema;
82
- if (type === 'Subobject') {
83
- type = (yield ask({
84
- type: 'input',
85
- name: 'input',
86
- message: `Enter property type (e.g. MyClass)`,
87
- })).input;
88
- schema = type;
89
- schemaSet = true;
90
- }
91
- let reference;
92
- let enumRef;
93
- if (type === 'ObjectId') {
94
- reference = (yield ask({
95
- type: 'input',
96
- name: 'input',
97
- initial: pascalCase(name),
98
- message: `Enter reference for ObjectId`,
99
- })).input;
100
- if (reference) {
101
- refsSet = true;
102
- }
103
- }
104
- else if (type === 'enum') {
105
- enumRef = (yield ask({
106
- type: 'input',
107
- name: 'input',
108
- initial: pascalCase(name) + 'Enum',
109
- message: `Enter enum type`,
110
- })).input;
111
- if (enumRef) {
112
- refsSet = true;
113
- }
114
- }
115
- const arrayEnding = type.endsWith('[]');
116
- type = type.replace('[]', '');
117
- const isArray = arrayEnding || (yield confirm(`Array?`));
118
- const nullable = yield confirm(`Nullable?`, true);
119
- props[name] = { name, nullable, isArray, type, reference, enumRef, schema };
120
- }
61
+ const { props, refsSet, schemaSet } = yield server.addProperties({ objectsToAdd, referencesToAdd });
121
62
  const generateSpinner = spin('Generate files');
122
63
  const inputTemplate = server.propsForInput(props, { modelName: name, nullable: true });
123
- const createTemplate = server.propsForInput(props, { modelName: name, nullable: false, create: true });
64
+ const createTemplate = server.propsForInput(props, { create: true, modelName: name, nullable: false });
124
65
  const modelTemplate = server.propsForModel(props, { modelName: name });
125
66
  // nest-server-module/inputs/xxx.input.ts
126
67
  yield template.generate({
68
+ props: { imports: inputTemplate.imports, nameCamel, nameKebab, namePascal, props: inputTemplate.props },
69
+ target: (0, path_1.join)(directory, 'inputs', `${nameKebab}.input.ts`),
127
70
  template: 'nest-server-module/inputs/template.input.ts.ejs',
128
- target: (0, path_1.join)(moduleDir, 'inputs', nameKebab + '.input.ts'),
129
- props: { nameCamel, nameKebab, namePascal, props: inputTemplate.props, imports: inputTemplate.imports },
130
71
  });
131
72
  // nest-server-module/inputs/xxx-create.input.ts
132
73
  yield template.generate({
74
+ props: { imports: createTemplate.imports, nameCamel, nameKebab, namePascal, props: createTemplate.props },
75
+ target: (0, path_1.join)(directory, 'inputs', `${nameKebab}-create.input.ts`),
133
76
  template: 'nest-server-module/inputs/template-create.input.ts.ejs',
134
- target: (0, path_1.join)(moduleDir, 'inputs', nameKebab + '-create.input.ts'),
135
- props: { nameCamel, nameKebab, namePascal, props: createTemplate.props, imports: createTemplate.imports },
136
77
  });
137
78
  // nest-server-module/output/find-and-count-xxxs-result.output.ts
138
79
  yield template.generate({
139
- template: 'nest-server-module/outputs/template-fac-result.output.ts.ejs',
140
- target: (0, path_1.join)(moduleDir, 'outputs', 'find-and-count-' + nameKebab + 's-result.output.ts'),
141
80
  props: { nameCamel, nameKebab, namePascal },
81
+ target: (0, path_1.join)(directory, 'outputs', `find-and-count-${nameKebab}s-result.output.ts`),
82
+ template: 'nest-server-module/outputs/template-fac-result.output.ts.ejs',
142
83
  });
143
84
  // nest-server-module/xxx.model.ts
144
85
  yield template.generate({
145
- template: 'nest-server-module/template.model.ts.ejs',
146
- target: (0, path_1.join)(moduleDir, nameKebab + '.model.ts'),
147
86
  props: {
87
+ imports: modelTemplate.imports,
88
+ mappings: modelTemplate.mappings,
148
89
  nameCamel,
149
90
  nameKebab,
150
91
  namePascal,
151
92
  props: modelTemplate.props,
152
- imports: modelTemplate.imports,
153
- mappings: modelTemplate.mappings,
154
93
  },
94
+ target: (0, path_1.join)(directory, `${nameKebab}.model.ts`),
95
+ template: 'nest-server-module/template.model.ts.ejs',
155
96
  });
156
97
  // nest-server-module/xxx.module.ts
157
98
  yield template.generate({
158
- template: 'nest-server-module/template.module.ts.ejs',
159
- target: (0, path_1.join)(moduleDir, nameKebab + '.module.ts'),
160
99
  props: { nameCamel, nameKebab, namePascal },
100
+ target: (0, path_1.join)(directory, `${nameKebab}.module.ts`),
101
+ template: 'nest-server-module/template.module.ts.ejs',
161
102
  });
162
103
  // nest-server-module/xxx.resolver.ts
163
104
  yield template.generate({
164
- template: 'nest-server-module/template.resolver.ts.ejs',
165
- target: (0, path_1.join)(moduleDir, nameKebab + '.resolver.ts'),
166
105
  props: { nameCamel, nameKebab, namePascal },
106
+ target: (0, path_1.join)(directory, `${nameKebab}.resolver.ts`),
107
+ template: 'nest-server-module/template.resolver.ts.ejs',
167
108
  });
168
109
  // nest-server-module/xxx.service.ts
169
110
  yield template.generate({
170
- template: 'nest-server-module/template.service.ts.ejs',
171
- target: (0, path_1.join)(moduleDir, nameKebab + '.service.ts'),
172
111
  props: { nameCamel, nameKebab, namePascal },
112
+ target: (0, path_1.join)(directory, `${nameKebab}.service.ts`),
113
+ template: 'nest-server-module/template.service.ts.ejs',
173
114
  });
174
115
  generateSpinner.succeed('Files generated');
175
116
  const serverModule = (0, path_1.join)(path, 'src', 'server', 'server.module.ts');
@@ -177,42 +118,57 @@ const NewCommand = {
177
118
  const includeSpinner = spin('Include module into server');
178
119
  // Import module
179
120
  yield patching.patch(serverModule, {
180
- insert: `import { ${namePascal}Module } from './modules/${nameKebab}/${nameKebab}.module';\n`,
181
121
  before: 'import',
122
+ insert: `import { ${namePascal}Module } from './modules/${nameKebab}/${nameKebab}.module';\n`,
182
123
  });
183
124
  // Add Module
184
125
  yield patching.patch(serverModule, {
185
- insert: ` ${namePascal}Module,\n `,
186
126
  after: new RegExp('imports:[^\\]]*', 'm'),
127
+ insert: ` ${namePascal}Module,\n `,
187
128
  });
188
129
  // Add comma if necessary
189
130
  yield patching.patch(serverModule, {
190
131
  insert: '$1,$2',
191
- replace: new RegExp('([^,\\s])(\\s*' + namePascal + 'Module,\\s*\\])'),
132
+ replace: new RegExp(`([^,\\s])(\\s*${namePascal}Module,\\s*\\])`),
192
133
  });
193
134
  includeSpinner.succeed('Module included');
194
135
  }
195
136
  else {
196
- info("Don't forget to include the module into your main module.");
137
+ info('Don\'t forget to include the module into your main module.');
197
138
  }
198
139
  // Linting
199
140
  // if (await confirm('Run lint?', false)) {
200
141
  // await system.run('npm run lint');
201
142
  // }
202
143
  // We're done, so show what to do next
203
- info(``);
144
+ info('');
204
145
  success(`Generated ${namePascal}Module in ${helper.msToMinutesAndSeconds(timer())}m.`);
205
- info(``);
206
- // We're done, so show what to do next
207
- if (refsSet || schemaSet) {
208
- success(`HINT: References / Schemata have been added, so it is necessary to add the corresponding imports!`);
146
+ info('');
147
+ // Add additional references
148
+ if (referencesToAdd.length > 0) {
149
+ divider();
150
+ const nextRef = referencesToAdd.shift().reference;
151
+ yield NewCommand.run(toolbox, { currentItem: nextRef, objectsToAdd, preventExitProcess: true, referencesToAdd });
209
152
  }
210
- if (!toolbox.parameters.options.fromGluegunMenu) {
211
- process.exit();
153
+ // Add additional objects
154
+ if (objectsToAdd.length > 0) {
155
+ divider();
156
+ const nextObj = objectsToAdd.shift().object;
157
+ yield object_1.default.run(toolbox, { currentItem: nextObj, objectsToAdd, preventExitProcess: true, referencesToAdd });
158
+ }
159
+ divider();
160
+ // We're done, so show what to do next
161
+ if (!preventExitProcess) {
162
+ if (refsSet || schemaSet) {
163
+ success('HINT: References / Schemata have been added, so it is necessary to add the corresponding imports!');
164
+ }
165
+ if (!toolbox.parameters.options.fromGluegunMenu) {
166
+ process.exit();
167
+ }
212
168
  }
213
169
  // For tests
214
170
  return `new module ${name}`;
215
171
  }),
216
172
  };
217
173
  exports.default = NewCommand;
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQSwrQkFBNEI7QUFJNUI7O0dBRUc7QUFDSCxNQUFNLFVBQVUsR0FBbUI7SUFDakMsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDWixXQUFXLEVBQUUsNkJBQTZCO0lBQzFDLE1BQU0sRUFBRSxLQUFLO0lBQ2IsR0FBRyxFQUFFLENBQU8sT0FBK0IsRUFBRSxFQUFFO1FBQzdDLDZCQUE2QjtRQUM3QixNQUFNLEVBQ0osVUFBVSxFQUNWLE1BQU0sRUFDTixVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQ3hCLE1BQU0sRUFDTixPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxFQUM3QyxNQUFNLEVBQ04sUUFBUSxHQUNULEdBQUcsT0FBTyxDQUFDO1FBRVosY0FBYztRQUNkLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQyxPQUFPO1FBQ1AsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFFbkMsV0FBVztRQUNYLE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFO1lBQ25ELElBQUksRUFBRSxhQUFhO1NBQ3BCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPO1NBQ1I7UUFFRCxnREFBZ0Q7UUFDaEQsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sU0FB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
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSwrQkFBNEI7QUFJNUIscUNBQWlDO0FBRWpDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEdBQTJCO0lBQ3pDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQztJQUNaLFdBQVcsRUFBRSw2QkFBNkI7SUFDMUMsTUFBTSxFQUFFLEtBQUs7SUFDYixJQUFJLEVBQUUsUUFBUTtJQUNkLEdBQUcsRUFBRSxDQUNILE9BQStCLEVBQy9CLE9BS0MsRUFDRCxFQUFFO1FBRUYsV0FBVztRQUNYLE1BQU0sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxtQkFDdEUsV0FBVyxFQUFFLEVBQUUsRUFDZixZQUFZLEVBQUUsRUFBRSxFQUNoQixrQkFBa0IsRUFBRSxLQUFLLEVBQ3pCLGVBQWUsRUFBRSxFQUFFLElBQ2hCLE9BQU8sQ0FDWCxDQUFDO1FBRUYsNkJBQTZCO1FBQzdCLE1BQU0sRUFDSixVQUFVLEVBQ1YsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUM5QyxNQUFNLEVBQ04sT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFDN0MsTUFBTSxFQUNOLFFBQVEsR0FDVCxHQUFHLE9BQU8sQ0FBQztRQUVaLGNBQWM7UUFDZCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEMsT0FBTztRQUNQLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLG9DQUFvQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzFELENBQUM7YUFBTSxDQUFDO1lB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
@@ -10,23 +10,32 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const path_1 = require("path");
13
+ const module_1 = require("./module");
13
14
  /**
14
15
  * Create a new server module
15
16
  */
16
17
  const NewCommand = {
17
- name: 'object',
18
18
  alias: ['o'],
19
19
  description: 'Creates a new server object (with inputs)',
20
20
  hidden: false,
21
- run: (toolbox) => __awaiter(void 0, void 0, void 0, function* () {
21
+ name: 'object',
22
+ run: (toolbox, options) => __awaiter(void 0, void 0, void 0, function* () {
23
+ // Options:
24
+ const { currentItem, objectsToAdd, preventExitProcess, referencesToAdd } = Object.assign({ currentItem: '', objectsToAdd: [], preventExitProcess: false, referencesToAdd: [] }, options);
22
25
  // Retrieve the tools we need
23
- const { filesystem, helper, parameters, print: { error, info, spin, success }, prompt: { ask, confirm }, server, strings: { kebabCase, pascalCase, camelCase }, system, template, } = toolbox;
26
+ const { filesystem, helper, parameters, print: { divider, error, info, spin, success }, server, strings: { camelCase, kebabCase, pascalCase }, system, template, } = toolbox;
24
27
  // Start timer
25
28
  const timer = system.startTimer();
26
29
  // Info
27
- info('Create a new server object (with inputs)');
30
+ if (currentItem) {
31
+ info(`Create a new server object (with inputs) for ${currentItem}`);
32
+ }
33
+ else {
34
+ info('Create a new server object (with inputs)');
35
+ }
28
36
  // Get name
29
- const name = yield helper.getInput(parameters.first, {
37
+ const name = yield helper.getInput(currentItem || parameters.first, {
38
+ initial: currentItem || '',
30
39
  name: 'object name',
31
40
  });
32
41
  if (!name) {
@@ -40,112 +49,45 @@ const NewCommand = {
40
49
  const cwd = filesystem.cwd();
41
50
  const path = cwd.substr(0, cwd.lastIndexOf('src'));
42
51
  if (!filesystem.exists((0, path_1.join)(path, 'src'))) {
43
- info(``);
52
+ info('');
44
53
  error(`No src directory in "${path}".`);
45
54
  return undefined;
46
55
  }
47
- const objectDir = (0, path_1.join)(path, 'src', 'server', 'common', 'objects', nameKebab);
48
- if (filesystem.exists(objectDir)) {
49
- info(``);
50
- error(`Module directory "${objectDir}" already exists.`);
56
+ const directory = (0, path_1.join)(path, 'src', 'server', 'common', 'objects', nameKebab);
57
+ if (filesystem.exists(directory)) {
58
+ info('');
59
+ error(`Module directory "${directory}" already exists.`);
51
60
  return undefined;
52
61
  }
53
- // Set props
54
- const props = {};
55
- const setProps = true;
56
- let refsSet = false;
57
- let schemaSet = false;
58
- while (setProps) {
59
- const name = (yield ask({
60
- type: 'input',
61
- name: 'input',
62
- message: `Enter property name (e.g. myProperty) to create new property or leave empty (ENTER)`,
63
- })).input;
64
- if (!name.trim()) {
65
- break;
66
- }
67
- let type = (yield ask([
68
- {
69
- type: 'select',
70
- name: 'input',
71
- message: 'Choose property type',
72
- choices: ['boolean', 'string', 'number', 'ObjectId / Reference', 'Date', 'enum', 'Use own', 'JSON / any'],
73
- },
74
- ])).input;
75
- if (type === 'ObjectId / Reference') {
76
- type = 'ObjectId';
77
- }
78
- else if (type === 'JSON / any') {
79
- type = 'JSON';
80
- }
81
- let schema;
82
- if (type === 'Subobject') {
83
- type = (yield ask({
84
- type: 'input',
85
- name: 'input',
86
- message: `Enter property type (e.g. MyClass)`,
87
- })).input;
88
- schema = type;
89
- schemaSet = true;
90
- }
91
- let reference;
92
- let enumRef;
93
- if (type === 'ObjectId') {
94
- reference = (yield ask({
95
- type: 'input',
96
- name: 'input',
97
- initial: pascalCase(name),
98
- message: `Enter reference for ObjectId`,
99
- })).input;
100
- if (reference) {
101
- refsSet = true;
102
- }
103
- }
104
- else if (type === 'enum') {
105
- enumRef = (yield ask({
106
- type: 'input',
107
- name: 'input',
108
- initial: pascalCase(name) + 'Enum',
109
- message: `Enter enum type`,
110
- })).input;
111
- if (enumRef) {
112
- refsSet = true;
113
- }
114
- }
115
- const arrayEnding = type.endsWith('[]');
116
- type = type.replace('[]', '');
117
- const isArray = arrayEnding || (yield confirm(`Array?`));
118
- const nullable = yield confirm(`Nullable?`, true);
119
- props[name] = { name, nullable, isArray, type, reference, enumRef, schema };
120
- }
62
+ const { props, refsSet, schemaSet } = yield server.addProperties({ objectsToAdd, referencesToAdd });
121
63
  const generateSpinner = spin('Generate files');
122
64
  const inputTemplate = server.propsForInput(props, { modelName: name, nullable: true });
123
- const createTemplate = server.propsForInput(props, { modelName: name, nullable: false, create: true });
65
+ const createTemplate = server.propsForInput(props, { create: true, modelName: name, nullable: false });
124
66
  const objectTemplate = server.propsForModel(props, { modelName: name });
125
67
  // nest-server-module/inputs/xxx.input.ts
126
68
  yield template.generate({
69
+ props: { imports: inputTemplate.imports, nameCamel, nameKebab, namePascal, props: inputTemplate.props },
70
+ target: (0, path_1.join)(directory, `${nameKebab}.input.ts`),
127
71
  template: 'nest-server-object/template.input.ts.ejs',
128
- target: (0, path_1.join)(objectDir, nameKebab + '.input.ts'),
129
- props: { nameCamel, nameKebab, namePascal, props: inputTemplate.props, imports: inputTemplate.imports },
130
72
  });
131
73
  // nest-server-object/inputs/xxx-create.input.ts
132
74
  yield template.generate({
75
+ props: { imports: createTemplate.imports, nameCamel, nameKebab, namePascal, props: createTemplate.props },
76
+ target: (0, path_1.join)(directory, `${nameKebab}-create.input.ts`),
133
77
  template: 'nest-server-object/template-create.input.ts.ejs',
134
- target: (0, path_1.join)(objectDir, nameKebab + '-create.input.ts'),
135
- props: { nameCamel, nameKebab, namePascal, props: createTemplate.props, imports: createTemplate.imports },
136
78
  });
137
79
  // nest-server-module/xxx.model.ts
138
80
  yield template.generate({
139
- template: 'nest-server-object/template.object.ts.ejs',
140
- target: (0, path_1.join)(objectDir, nameKebab + '.object.ts'),
141
81
  props: {
82
+ imports: objectTemplate.imports,
83
+ mappings: objectTemplate.mappings,
142
84
  nameCamel,
143
85
  nameKebab,
144
86
  namePascal,
145
87
  props: objectTemplate.props,
146
- imports: objectTemplate.imports,
147
- mappings: objectTemplate.mappings,
148
88
  },
89
+ target: (0, path_1.join)(directory, `${nameKebab}.object.ts`),
90
+ template: 'nest-server-object/template.object.ts.ejs',
149
91
  });
150
92
  generateSpinner.succeed('Files generated');
151
93
  // Linting
@@ -153,19 +95,33 @@ const NewCommand = {
153
95
  // await system.run('npm run lint');
154
96
  // }
155
97
  // We're done, so show what to do next
156
- info(``);
98
+ info('');
157
99
  success(`Generated ${namePascal}Object in ${helper.msToMinutesAndSeconds(timer())}m.`);
158
- info(``);
159
- // We're done, so show what to do next
160
- if (refsSet || schemaSet) {
161
- success(`HINT: References / Schemata have been added, so it is necessary to add the corresponding imports!`);
100
+ info('');
101
+ // Add additional objects
102
+ if (objectsToAdd.length > 0) {
103
+ divider();
104
+ const nextObj = objectsToAdd.shift().object;
105
+ yield NewCommand.run(toolbox, { currentItem: nextObj, objectsToAdd, preventExitProcess: true, referencesToAdd });
106
+ }
107
+ // Add additional references
108
+ if (referencesToAdd.length > 0) {
109
+ divider();
110
+ const nextRef = referencesToAdd.shift().reference;
111
+ yield module_1.default.run(toolbox, { currentItem: nextRef, objectsToAdd, preventExitProcess: true, referencesToAdd });
162
112
  }
163
- if (!toolbox.parameters.options.fromGluegunMenu) {
164
- process.exit();
113
+ // We're done, so show what to do next
114
+ if (!preventExitProcess) {
115
+ if (refsSet || schemaSet) {
116
+ success('HINT: References / Schemata have been added, so it is necessary to add the corresponding imports!');
117
+ }
118
+ if (!toolbox.parameters.options.fromGluegunMenu) {
119
+ process.exit();
120
+ }
165
121
  }
166
122
  // For tests
167
123
  return `new object ${name}`;
168
124
  }),
169
125
  };
170
126
  exports.default = NewCommand;
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9vYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQSwrQkFBNEI7QUFJNUI7O0dBRUc7QUFDSCxNQUFNLFVBQVUsR0FBbUI7SUFDakMsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDWixXQUFXLEVBQUUsMkNBQTJDO0lBQ3hELE1BQU0sRUFBRSxLQUFLO0lBQ2IsR0FBRyxFQUFFLENBQU8sT0FBK0IsRUFBRSxFQUFFO1FBQzdDLDZCQUE2QjtRQUM3QixNQUFNLEVBQ0osVUFBVSxFQUNWLE1BQU0sRUFDTixVQUFVLEVBQ1YsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFDeEIsTUFBTSxFQUNOLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEVBQzdDLE1BQU0sRUFDTixRQUFRLEdBQ1QsR0FBRyxPQUFPLENBQUM7UUFFWixjQUFjO1FBQ2QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWxDLE9BQU87UUFDUCxJQUFJLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUVqRCxXQUFXO1FBQ1gsTUFBTSxJQUFJLEdBQUcsTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUU7WUFDbkQsSUFBSSxFQUFFLGFBQWE7U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU87U0FDUjtRQUVELGdEQUFnRDtRQUNoRCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsTUFBTSxTQUFTLEdBQUcsU0FB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
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9vYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSwrQkFBNEI7QUFJNUIscUNBQWlDO0FBRWpDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEdBQTJCO0lBQ3pDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQztJQUNaLFdBQVcsRUFBRSwyQ0FBMkM7SUFDeEQsTUFBTSxFQUFFLEtBQUs7SUFDYixJQUFJLEVBQUUsUUFBUTtJQUNkLEdBQUcsRUFBRSxDQUNILE9BQStCLEVBQy9CLE9BS0MsRUFDRCxFQUFFO1FBRUYsV0FBVztRQUNYLE1BQU0sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxtQkFDdEUsV0FBVyxFQUFFLEVBQUUsRUFDZixZQUFZLEVBQUUsRUFBRSxFQUNoQixrQkFBa0IsRUFBRSxLQUFLLEVBQ3pCLGVBQWUsRUFBRSxFQUFFLElBQ2hCLE9BQU8sQ0FDWCxDQUFDO1FBRUYsNkJBQTZCO1FBQzdCLE1BQU0sRUFDSixVQUFVLEVBQ1YsTUFBTSxFQUNOLFVBQVUsRUFDVixLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQzlDLE1BQU0sRUFDTixPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxFQUM3QyxNQUFNLEVBQ04sUUFBUSxHQUNULEdBQUcsT0FBTyxDQUFDO1FBRVosY0FBYztRQUNkLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQyxPQUFPO1FBQ1AsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsZ0RBQWdELFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDdEUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENB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
@@ -13,13 +13,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  * Server commands
14
14
  */
15
15
  module.exports = {
16
- name: 'server',
17
16
  alias: ['s'],
18
17
  description: 'Server commands',
19
18
  hidden: true,
19
+ name: 'server',
20
20
  run: (toolbox) => __awaiter(void 0, void 0, void 0, function* () {
21
21
  yield toolbox.helper.showMenu('server');
22
22
  return 'server';
23
- })
23
+ }),
24
24
  };
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxPQUFPLEdBQUc7SUFDZixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQztJQUNaLFdBQVcsRUFBRSxpQkFBaUI7SUFDOUIsTUFBTSxFQUFFLElBQUk7SUFDWixHQUFHLEVBQUUsQ0FBTyxPQUErQixFQUFFLEVBQUU7UUFDN0MsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLENBQUE7Q0FDRixDQUFDIn0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxPQUFPLEdBQUc7SUFDZixLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDWixXQUFXLEVBQUUsaUJBQWlCO0lBQzlCLE1BQU0sRUFBRSxJQUFJO0lBQ1osSUFBSSxFQUFFLFFBQVE7SUFDZCxHQUFHLEVBQUUsQ0FBTyxPQUErQixFQUFFLEVBQUU7UUFDN0MsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLENBQUE7Q0FDRixDQUFDIn0=
@@ -14,10 +14,10 @@ const path_1 = require("path");
14
14
  * Create a new server
15
15
  */
16
16
  const NewCommand = {
17
- name: 'test',
18
17
  alias: ['t'],
19
18
  description: 'Creates a new test file',
20
19
  hidden: false,
20
+ name: 'test',
21
21
  run: (toolbox) => __awaiter(void 0, void 0, void 0, function* () {
22
22
  // Retrieve the tools we need
23
23
  const { filesystem, helper, parameters, print: { error, info, spin, success }, strings: { camelCase, kebabCase, pascalCase }, system, template, } = toolbox;
@@ -40,30 +40,30 @@ const NewCommand = {
40
40
  const cwd = filesystem.cwd();
41
41
  const path = cwd.substr(0, cwd.lastIndexOf('src'));
42
42
  if (!filesystem.exists((0, path_1.join)(path, 'tests'))) {
43
- info(``);
43
+ info('');
44
44
  error(`No tests directory in "${path}".`);
45
45
  return undefined;
46
46
  }
47
47
  const testsDir = (0, path_1.join)(path, 'tests');
48
- const filePath = (0, path_1.join)(testsDir, nameKebab + '.e2e-spec.ts');
48
+ const filePath = (0, path_1.join)(testsDir, `${nameKebab}.e2e-spec.ts`);
49
49
  // Check if file already exists
50
50
  if (filesystem.exists(filePath)) {
51
- info(``);
51
+ info('');
52
52
  error(`There's already a file named "${filePath}"`);
53
53
  return undefined;
54
54
  }
55
55
  const generateSpinner = spin('Generate test file');
56
56
  // nest-server-tests/tests.e2e-spec.ts.ejs
57
57
  yield template.generate({
58
- template: 'nest-server-tests/tests.e2e-spec.ts.ejs',
59
- target: filePath,
60
58
  props: { nameCamel, nameKebab, namePascal },
59
+ target: filePath,
60
+ template: 'nest-server-tests/tests.e2e-spec.ts.ejs',
61
61
  });
62
62
  generateSpinner.succeed('Generate test file');
63
63
  // We're done, so show what to do next
64
- info(``);
64
+ info('');
65
65
  success(`Generated ${namePascal} test file in ${helper.msToMinutesAndSeconds(timer())}m.`);
66
- info(``);
66
+ info('');
67
67
  if (!toolbox.parameters.options.fromGluegunMenu) {
68
68
  process.exit();
69
69
  }
@@ -72,4 +72,4 @@ const NewCommand = {
72
72
  }),
73
73
  };
74
74
  exports.default = NewCommand;
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9zZXJ2ZXIvdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUNBLCtCQUE0QjtBQUc1Qjs7R0FFRztBQUNILE1BQU0sVUFBVSxHQUFtQjtJQUNqQyxJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQztJQUNaLFdBQVcsRUFBRSx5QkFBeUI7SUFDdEMsTUFBTSxFQUFFLEtBQUs7SUFDYixHQUFHLEVBQUUsQ0FBTyxPQUErQixFQUFFLEVBQUU7UUFDN0MsNkJBQTZCO1FBQzdCLE1BQU0sRUFDSixVQUFVLEVBQ1YsTUFBTSxFQUNOLFVBQVUsRUFDVixLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFDckMsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFDN0MsTUFBTSxFQUNOLFFBQVEsR0FDVCxHQUFHLE9BQU8sQ0FBQztRQUVaLGNBQWM7UUFDZCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEMsT0FBTztRQUNQLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRS9CLFdBQVc7UUFDWCxNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUNuRCxJQUFJLEVBQUUsV0FBVztTQUNsQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsT0FBTztTQUNSO1FBRUQsZ0RBQWdEO1FBQ2hELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBDLHFCQUFxQjtRQUNyQixNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUEsV0FBSSxFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNULEtBQUssQ0FBQywwQkFBMEIsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUMxQyxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELE1BQU0sUUFBUSxHQUFHLElBQUEsV0FBSSxFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFBLFdBQUksRUFBQyxRQUFRLEVBQUUsU0FBUyxHQUFHLGNBQWMsQ0FBQyxDQUFDO1FBRTVELCtCQUErQjtRQUMvQixJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ1QsS0FBSyxDQUFDLGlDQUFpQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFbkQsMENBQTBDO1FBQzFDLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUN0QixRQUFRLEVBQUUseUNBQXlDO1lBQ25ELE1BQU0sRUFBRSxRQUFRO1lBQ2hCLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFO1NBQzVDLENBQUMsQ0FBQztRQUVILGVBQWUsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUU5QyxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ1QsT0FBTyxDQUFDLGFBQWEsVUFBVSxpQkFBaUIsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVULElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUU7WUFDL0MsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2hCO1FBRUQsWUFBWTtRQUNaLE9BQU8sWUFBWSxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDLENBQUE7Q0FDRixDQUFDO0FBRUYsa0JBQWUsVUFBVSxDQUFDIn0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9zZXJ2ZXIvdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUNBLCtCQUE0QjtBQUk1Qjs7R0FFRztBQUNILE1BQU0sVUFBVSxHQUFtQjtJQUNqQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDWixXQUFXLEVBQUUseUJBQXlCO0lBQ3RDLE1BQU0sRUFBRSxLQUFLO0lBQ2IsSUFBSSxFQUFFLE1BQU07SUFDWixHQUFHLEVBQUUsQ0FBTyxPQUErQixFQUFFLEVBQUU7UUFDN0MsNkJBQTZCO1FBQzdCLE1BQU0sRUFDSixVQUFVLEVBQ1YsTUFBTSxFQUNOLFVBQVUsRUFDVixLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFDckMsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFDN0MsTUFBTSxFQUNOLFFBQVEsR0FDVCxHQUFHLE9BQU8sQ0FBQztRQUVaLGNBQWM7UUFDZCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEMsT0FBTztRQUNQLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRS9CLFdBQVc7UUFDWCxNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUNuRCxJQUFJLEVBQUUsV0FBVztTQUNsQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPO1FBQ1QsQ0FBQztRQUVELGdEQUFnRDtRQUNoRCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwQyxxQkFBcUI7UUFDckIsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdCLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFBLFdBQUksRUFBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNULEtBQUssQ0FBQywwQkFBMEIsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUMxQyxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBQSxXQUFJLEVBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLElBQUEsV0FBSSxFQUFDLFFBQVEsRUFBRSxHQUFHLFNBQVMsY0FBYyxDQUFDLENBQUM7UUFFNUQsK0JBQStCO1FBQy9CLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNULEtBQUssQ0FBQyxpQ0FBaUMsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUNwRCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFbkQsMENBQTBDO1FBQzFDLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUN0QixLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRTtZQUMzQyxNQUFNLEVBQUUsUUFBUTtZQUNoQixRQUFRLEVBQUUseUNBQXlDO1NBQ3BELENBQUMsQ0FBQztRQUVILGVBQWUsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUU5QyxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ1QsT0FBTyxDQUFDLGFBQWEsVUFBVSxpQkFBaUIsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVULElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNoRCxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsQ0FBQztRQUVELFlBQVk7UUFDWixPQUFPLFlBQVksSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQyxDQUFBO0NBQ0YsQ0FBQztBQUVGLGtCQUFlLFVBQVUsQ0FBQyJ9