@lenne.tech/cli 1.9.5 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/README.md +83 -0
  2. package/build/cli.js +0 -1
  3. package/build/commands/blocks/add.js +0 -1
  4. package/build/commands/blocks/blocks.js +0 -1
  5. package/build/commands/claude/claude.js +0 -1
  6. package/build/commands/claude/plugins.js +0 -1
  7. package/build/commands/claude/shortcuts.js +0 -1
  8. package/build/commands/cli/cli.js +0 -1
  9. package/build/commands/cli/create.js +0 -1
  10. package/build/commands/cli/rename.js +0 -1
  11. package/build/commands/completion.js +34 -2
  12. package/build/commands/components/add.js +0 -1
  13. package/build/commands/components/components.js +0 -1
  14. package/build/commands/config/config.js +0 -1
  15. package/build/commands/config/help.js +0 -1
  16. package/build/commands/config/init.js +0 -1
  17. package/build/commands/config/show.js +0 -1
  18. package/build/commands/config/validate.js +0 -1
  19. package/build/commands/deployment/create.js +0 -1
  20. package/build/commands/deployment/deployment.js +0 -1
  21. package/build/commands/directus/directus.js +0 -1
  22. package/build/commands/directus/docker-setup.js +35 -3
  23. package/build/commands/directus/remove.js +0 -1
  24. package/build/commands/directus/typegen.js +0 -1
  25. package/build/commands/docs/docs.js +0 -1
  26. package/build/commands/docs/open.js +34 -2
  27. package/build/commands/doctor.js +0 -1
  28. package/build/commands/frontend/angular.js +0 -1
  29. package/build/commands/frontend/frontend.js +0 -1
  30. package/build/commands/frontend/nuxt.js +0 -1
  31. package/build/commands/fullstack/fullstack.js +0 -1
  32. package/build/commands/fullstack/init.js +119 -6
  33. package/build/commands/fullstack/update.js +129 -0
  34. package/build/commands/git/clean.js +0 -1
  35. package/build/commands/git/clear.js +0 -1
  36. package/build/commands/git/create.js +0 -1
  37. package/build/commands/git/force-pull.js +0 -1
  38. package/build/commands/git/get.js +0 -1
  39. package/build/commands/git/git.js +0 -1
  40. package/build/commands/git/install-scripts.js +0 -1
  41. package/build/commands/git/rebase.js +0 -1
  42. package/build/commands/git/rename.js +0 -1
  43. package/build/commands/git/reset.js +0 -1
  44. package/build/commands/git/squash.js +0 -1
  45. package/build/commands/git/undo.js +0 -1
  46. package/build/commands/git/update.js +0 -1
  47. package/build/commands/history.js +0 -1
  48. package/build/commands/lt.js +0 -1
  49. package/build/commands/mongodb/collection-export.js +35 -3
  50. package/build/commands/mongodb/mongodb.js +0 -1
  51. package/build/commands/mongodb/s3-restore.js +35 -3
  52. package/build/commands/npm/npm.js +0 -1
  53. package/build/commands/npm/reinit.js +0 -1
  54. package/build/commands/npm/update.js +0 -1
  55. package/build/commands/qdrant/delete.js +0 -1
  56. package/build/commands/qdrant/qdrant.js +0 -1
  57. package/build/commands/qdrant/stats.js +0 -1
  58. package/build/commands/redis/redis.js +0 -1
  59. package/build/commands/server/add-property.js +34 -5
  60. package/build/commands/server/create-secret.js +34 -2
  61. package/build/commands/server/create.js +41 -4
  62. package/build/commands/server/module.js +62 -27
  63. package/build/commands/server/object.js +30 -7
  64. package/build/commands/server/permissions.js +20 -7
  65. package/build/commands/server/server.js +0 -1
  66. package/build/commands/server/set-secrets.js +0 -1
  67. package/build/commands/server/test.js +7 -2
  68. package/build/commands/starter/chrome-extension.js +0 -1
  69. package/build/commands/starter/starter.js +0 -1
  70. package/build/commands/status.js +13 -2
  71. package/build/commands/templates/list.js +0 -1
  72. package/build/commands/templates/llm.js +0 -1
  73. package/build/commands/templates/templates.js +0 -1
  74. package/build/commands/tools/crypt.js +0 -1
  75. package/build/commands/tools/install-scripts.js +0 -1
  76. package/build/commands/tools/jwt-read.js +0 -1
  77. package/build/commands/tools/regex.js +34 -2
  78. package/build/commands/tools/sha256.js +0 -1
  79. package/build/commands/tools/tools.js +0 -1
  80. package/build/commands/typescript/create.js +0 -1
  81. package/build/commands/typescript/playground.js +0 -1
  82. package/build/commands/typescript/typescript.js +0 -1
  83. package/build/commands/update.js +0 -1
  84. package/build/config/vendor-runtime-deps.json +9 -0
  85. package/build/extensions/api-mode.js +19 -4
  86. package/build/extensions/config.js +35 -3
  87. package/build/extensions/frontend-helper.js +0 -1
  88. package/build/extensions/git.js +0 -1
  89. package/build/extensions/history.js +0 -1
  90. package/build/extensions/logger.js +0 -1
  91. package/build/extensions/package-manager.js +0 -1
  92. package/build/extensions/parse-properties.js +0 -1
  93. package/build/extensions/server.js +1095 -6
  94. package/build/extensions/template.js +0 -1
  95. package/build/extensions/tools.js +0 -1
  96. package/build/extensions/typescript.js +35 -3
  97. package/build/interfaces/ServerProps.interface.js +0 -1
  98. package/build/interfaces/extended-gluegun-command.js +0 -1
  99. package/build/interfaces/extended-gluegun-toolbox.js +0 -1
  100. package/build/interfaces/lt-config.interface.js +0 -1
  101. package/build/lib/claude-cli.js +0 -1
  102. package/build/lib/fallback-scanner.js +0 -1
  103. package/build/lib/framework-detection.js +167 -0
  104. package/build/lib/json-utils.js +0 -1
  105. package/build/lib/marketplace.js +0 -1
  106. package/build/lib/nuxt-base-components.js +40 -5
  107. package/build/lib/plugin-utils.js +0 -1
  108. package/build/lib/shell-config.js +0 -1
  109. package/build/lib/validation.js +0 -1
  110. package/build/templates/nest-server-module/inputs/template-create.input.ts.ejs +1 -1
  111. package/build/templates/nest-server-module/inputs/template.input.ts.ejs +1 -1
  112. package/build/templates/nest-server-module/outputs/template-fac-result.output.ts.ejs +1 -1
  113. package/build/templates/nest-server-module/template.controller.ts.ejs +1 -1
  114. package/build/templates/nest-server-module/template.model.ts.ejs +1 -1
  115. package/build/templates/nest-server-module/template.module.ts.ejs +1 -1
  116. package/build/templates/nest-server-module/template.resolver.ts.ejs +1 -1
  117. package/build/templates/nest-server-module/template.service.ts.ejs +1 -1
  118. package/build/templates/nest-server-object/template-create.input.ts.ejs +1 -1
  119. package/build/templates/nest-server-object/template.input.ts.ejs +1 -1
  120. package/build/templates/nest-server-object/template.object.ts.ejs +1 -1
  121. package/build/templates/nest-server-tests/tests.e2e-spec.ts.ejs +1 -1
  122. package/build/templates/vendor-scripts/check-vendor-freshness.mjs +131 -0
  123. package/build/templates/vendor-scripts/propose-upstream-pr.ts +269 -0
  124. package/build/templates/vendor-scripts/sync-from-upstream.ts +250 -0
  125. package/docs/commands.md +13 -0
  126. package/package.json +22 -13
  127. package/tsconfig.json +4 -2
@@ -18,7 +18,7 @@ const NewCommand = {
18
18
  hidden: false,
19
19
  name: 'create',
20
20
  run: (toolbox) => __awaiter(void 0, void 0, void 0, function* () {
21
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
21
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2;
22
22
  // Retrieve the tools we need
23
23
  const { config, filesystem, git, helper, meta, parameters, print: { error, info, spin, success }, prompt: { ask, confirm }, server, strings: { kebabCase }, system, } = toolbox;
24
24
  // Handle --help-json flag
@@ -62,6 +62,7 @@ const NewCommand = {
62
62
  const configCopy = (_q = (_p = (_o = ltConfig === null || ltConfig === void 0 ? void 0 : ltConfig.commands) === null || _o === void 0 ? void 0 : _o.server) === null || _p === void 0 ? void 0 : _p.create) === null || _q === void 0 ? void 0 : _q.copy;
63
63
  const configLink = (_t = (_s = (_r = ltConfig === null || ltConfig === void 0 ? void 0 : ltConfig.commands) === null || _r === void 0 ? void 0 : _r.server) === null || _s === void 0 ? void 0 : _s.create) === null || _t === void 0 ? void 0 : _t.link;
64
64
  const configApiMode = (_w = (_v = (_u = ltConfig === null || ltConfig === void 0 ? void 0 : ltConfig.commands) === null || _u === void 0 ? void 0 : _u.server) === null || _v === void 0 ? void 0 : _v.create) === null || _w === void 0 ? void 0 : _w.apiMode;
65
+ const configFrameworkMode = (_z = (_y = (_x = ltConfig === null || ltConfig === void 0 ? void 0 : ltConfig.commands) === null || _x === void 0 ? void 0 : _x.server) === null || _y === void 0 ? void 0 : _y.create) === null || _z === void 0 ? void 0 : _z.frameworkMode;
65
66
  // Load global defaults
66
67
  const globalAuthor = config.getGlobalDefault(ltConfig, 'author');
67
68
  const globalApiMode = config.getGlobalDefault(ltConfig, 'apiMode');
@@ -74,10 +75,12 @@ const NewCommand = {
74
75
  const cliCopy = parameters.options.copy || parameters.options.c;
75
76
  const cliLink = parameters.options.link;
76
77
  const cliApiMode = parameters.options['api-mode'] || parameters.options.apiMode;
78
+ const cliFrameworkMode = parameters.options['framework-mode'];
79
+ const cliFrameworkUpstreamBranch = parameters.options['framework-upstream-branch'];
77
80
  // Determine noConfirm with priority: CLI > config > global > default (false)
78
81
  const noConfirm = config.getNoConfirm({
79
82
  cliValue: cliNoConfirm,
80
- commandConfig: (_y = (_x = ltConfig === null || ltConfig === void 0 ? void 0 : ltConfig.commands) === null || _x === void 0 ? void 0 : _x.server) === null || _y === void 0 ? void 0 : _y.create,
83
+ commandConfig: (_1 = (_0 = ltConfig === null || ltConfig === void 0 ? void 0 : ltConfig.commands) === null || _0 === void 0 ? void 0 : _0.server) === null || _1 === void 0 ? void 0 : _1.create,
81
84
  config: ltConfig,
82
85
  });
83
86
  // Start timer
@@ -178,6 +181,39 @@ const NewCommand = {
178
181
  ]);
179
182
  apiMode = apiModeChoice.apiMode.split(' - ')[0];
180
183
  }
184
+ // Determine framework consumption mode — same resolution cascade as
185
+ // lt fullstack init: CLI flag > lt.config > interactive (default npm).
186
+ let frameworkMode;
187
+ if (cliFrameworkMode === 'npm' || cliFrameworkMode === 'vendor') {
188
+ frameworkMode = cliFrameworkMode;
189
+ }
190
+ else if (cliFrameworkMode) {
191
+ error(`Invalid --framework-mode value "${cliFrameworkMode}". Use "npm" or "vendor".`);
192
+ return;
193
+ }
194
+ else if (configFrameworkMode === 'npm' || configFrameworkMode === 'vendor') {
195
+ frameworkMode = configFrameworkMode;
196
+ info(`Using framework mode from lt.config: ${frameworkMode}`);
197
+ }
198
+ else if (noConfirm) {
199
+ frameworkMode = 'npm';
200
+ }
201
+ else {
202
+ const frameworkModeChoice = yield ask({
203
+ choices: [
204
+ 'npm - @lenne.tech/nest-server as npm dependency (classic, stable)',
205
+ 'vendor - framework core vendored into src/core/ (pilot, allows local patches)',
206
+ ],
207
+ initial: 0,
208
+ message: 'Framework consumption mode?',
209
+ name: 'frameworkMode',
210
+ type: 'select',
211
+ });
212
+ frameworkMode = frameworkModeChoice.frameworkMode.startsWith('vendor') ? 'vendor' : 'npm';
213
+ }
214
+ const frameworkUpstreamBranch = typeof cliFrameworkUpstreamBranch === 'string' && cliFrameworkUpstreamBranch.length > 0
215
+ ? cliFrameworkUpstreamBranch
216
+ : undefined;
181
217
  // Setup server using Server extension
182
218
  const setupSpinner = spin(`Setting up server${linkPath ? ' (link)' : copyPath ? ' (copy)' : branch ? ` (branch: ${branch})` : ''}`);
183
219
  const result = yield server.setupServer(`./${projectDir}`, {
@@ -186,6 +222,8 @@ const NewCommand = {
186
222
  branch,
187
223
  copyPath,
188
224
  description,
225
+ frameworkMode,
226
+ frameworkUpstreamBranch,
189
227
  linkPath,
190
228
  name,
191
229
  projectDir,
@@ -213,7 +251,7 @@ const NewCommand = {
213
251
  }
214
252
  // Git initialization (after npm install which is done in setupServer)
215
253
  if (git) {
216
- const inGit = (_z = (yield system.run('git rev-parse --is-inside-work-tree'))) === null || _z === void 0 ? void 0 : _z.trim();
254
+ const inGit = (_2 = (yield system.run('git rev-parse --is-inside-work-tree'))) === null || _2 === void 0 ? void 0 : _2.trim();
217
255
  if (inGit !== 'true') {
218
256
  // Determine initGit with priority: CLI > config > interactive
219
257
  let initializeGit;
@@ -280,4 +318,3 @@ const NewCommand = {
280
318
  }),
281
319
  };
282
320
  exports.default = NewCommand;
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9jcmVhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFJQTs7R0FFRztBQUNILE1BQU0sVUFBVSxHQUFtQjtJQUNqQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDWixXQUFXLEVBQUUsbUJBQW1CO0lBQ2hDLE1BQU0sRUFBRSxLQUFLO0lBQ2IsSUFBSSxFQUFFLFFBQVE7SUFDZCxHQUFHLEVBQUUsQ0FBTyxPQUErQixFQUFFLEVBQUU7O1FBQzdDLDZCQUE2QjtRQUM3QixNQUFNLEVBQ0osTUFBTSxFQUNOLFVBQVUsRUFDVixHQUFHLEVBQ0gsTUFBTSxFQUNOLElBQUksRUFDSixVQUFVLEVBQ1YsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFDeEIsTUFBTSxFQUNOLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUN0QixNQUFNLEdBQ1AsR0FBRyxPQUFPLENBQUM7UUFFWiwwQkFBMEI7UUFDMUIsSUFDRSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUNyQixPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDZCxhQUFhLEVBQUUsMEJBQTBCO1lBQ3pDLFdBQVcsRUFBRSxtQkFBbUI7WUFDaEMsSUFBSSxFQUFFLFFBQVE7WUFDZCxPQUFPLEVBQUU7Z0JBQ1AsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2dCQUM5RTtvQkFDRSxXQUFXLEVBQUUsVUFBVTtvQkFDdkIsSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLFFBQVEsRUFBRSxLQUFLO29CQUNmLElBQUksRUFBRSxR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
@@ -8,9 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  const path_1 = require("path");
13
- const object_1 = require("./object");
16
+ const framework_detection_1 = require("../../lib/framework-detection");
17
+ const object_1 = __importDefault(require("./object"));
14
18
  /**
15
19
  * Detect controller type based on existing modules
16
20
  * Analyzes project modules (excluding base modules) to determine common pattern
@@ -269,27 +273,43 @@ const NewCommand = {
269
273
  const inputTemplate = server.propsForInput(props, { modelName: name, nullable: true });
270
274
  const createTemplate = server.propsForInput(props, { create: true, modelName: name, nullable: false });
271
275
  const modelTemplate = server.propsForModel(props, { modelName: name });
276
+ // Compute the correct framework-import specifier for each generated file.
277
+ // In vendored projects this resolves to a relative path to src/core (depth
278
+ // depends on file location); in npm projects it stays '@lenne.tech/nest-server'.
279
+ const importFor = (target) => (0, framework_detection_1.getFrameworkImportSpecifier)(path, target);
272
280
  // nest-server-module/inputs/xxx.input.ts
281
+ const inputTarget = (0, path_1.join)(directory, 'inputs', `${nameKebab}.input.ts`);
273
282
  yield template.generate({
274
- props: { imports: inputTemplate.imports, nameCamel, nameKebab, namePascal, props: inputTemplate.props },
275
- target: (0, path_1.join)(directory, 'inputs', `${nameKebab}.input.ts`),
283
+ props: {
284
+ frameworkImport: importFor(inputTarget),
285
+ imports: inputTemplate.imports,
286
+ nameCamel,
287
+ nameKebab,
288
+ namePascal,
289
+ props: inputTemplate.props,
290
+ },
291
+ target: inputTarget,
276
292
  template: 'nest-server-module/inputs/template.input.ts.ejs',
277
293
  });
278
294
  if (controller === 'Rest' || controller === 'Both') {
295
+ const controllerTarget = (0, path_1.join)(directory, `${nameKebab}.controller.ts`);
279
296
  yield template.generate({
280
297
  props: {
298
+ frameworkImport: importFor(controllerTarget),
281
299
  lowercase: name.toLowerCase(),
282
300
  nameCamel: camelCase(name),
283
301
  nameKebab: kebabCase(name),
284
302
  namePascal: pascalCase(name),
285
303
  },
286
- target: (0, path_1.join)(directory, `${nameKebab}.controller.ts`),
304
+ target: controllerTarget,
287
305
  template: 'nest-server-module/template.controller.ts.ejs',
288
306
  });
289
307
  }
290
308
  // nest-server-module/inputs/xxx-create.input.ts
309
+ const createInputTarget = (0, path_1.join)(directory, 'inputs', `${nameKebab}-create.input.ts`);
291
310
  yield template.generate({
292
311
  props: {
312
+ frameworkImport: importFor(createInputTarget),
293
313
  imports: createTemplate.imports,
294
314
  isGql: controller === 'GraphQL' || controller === 'Both',
295
315
  nameCamel,
@@ -297,18 +317,27 @@ const NewCommand = {
297
317
  namePascal,
298
318
  props: createTemplate.props,
299
319
  },
300
- target: (0, path_1.join)(directory, 'inputs', `${nameKebab}-create.input.ts`),
320
+ target: createInputTarget,
301
321
  template: 'nest-server-module/inputs/template-create.input.ts.ejs',
302
322
  });
303
323
  // nest-server-module/output/find-and-count-xxxs-result.output.ts
324
+ const facOutputTarget = (0, path_1.join)(directory, 'outputs', `find-and-count-${nameKebab}s-result.output.ts`);
304
325
  yield template.generate({
305
- props: { isGql: controller === 'GraphQL' || controller === 'Both', nameCamel, nameKebab, namePascal },
306
- target: (0, path_1.join)(directory, 'outputs', `find-and-count-${nameKebab}s-result.output.ts`),
326
+ props: {
327
+ frameworkImport: importFor(facOutputTarget),
328
+ isGql: controller === 'GraphQL' || controller === 'Both',
329
+ nameCamel,
330
+ nameKebab,
331
+ namePascal,
332
+ },
333
+ target: facOutputTarget,
307
334
  template: 'nest-server-module/outputs/template-fac-result.output.ts.ejs',
308
335
  });
309
336
  // nest-server-module/xxx.model.ts
337
+ const modelTarget = (0, path_1.join)(directory, `${nameKebab}.model.ts`);
310
338
  yield template.generate({
311
339
  props: {
340
+ frameworkImport: importFor(modelTarget),
312
341
  imports: modelTemplate.imports,
313
342
  isGql: controller === 'GraphQL' || controller === 'Both',
314
343
  mappings: modelTemplate.mappings,
@@ -317,27 +346,36 @@ const NewCommand = {
317
346
  namePascal,
318
347
  props: modelTemplate.props,
319
348
  },
320
- target: (0, path_1.join)(directory, `${nameKebab}.model.ts`),
349
+ target: modelTarget,
321
350
  template: 'nest-server-module/template.model.ts.ejs',
322
351
  });
323
352
  // nest-server-module/xxx.module.ts
353
+ const moduleTarget = (0, path_1.join)(directory, `${nameKebab}.module.ts`);
324
354
  yield template.generate({
325
- props: { controller, nameCamel, nameKebab, namePascal },
326
- target: (0, path_1.join)(directory, `${nameKebab}.module.ts`),
355
+ props: { controller, frameworkImport: importFor(moduleTarget), nameCamel, nameKebab, namePascal },
356
+ target: moduleTarget,
327
357
  template: 'nest-server-module/template.module.ts.ejs',
328
358
  });
329
359
  if (controller === 'GraphQL' || controller === 'Both') {
330
360
  // nest-server-module/xxx.resolver.ts
361
+ const resolverTarget = (0, path_1.join)(directory, `${nameKebab}.resolver.ts`);
331
362
  yield template.generate({
332
- props: { nameCamel, nameKebab, namePascal },
333
- target: (0, path_1.join)(directory, `${nameKebab}.resolver.ts`),
363
+ props: { frameworkImport: importFor(resolverTarget), nameCamel, nameKebab, namePascal },
364
+ target: resolverTarget,
334
365
  template: 'nest-server-module/template.resolver.ts.ejs',
335
366
  });
336
367
  }
337
368
  // nest-server-module/xxx.service.ts
369
+ const serviceTarget = (0, path_1.join)(directory, `${nameKebab}.service.ts`);
338
370
  yield template.generate({
339
- props: { isGql: controller === 'GraphQL' || controller === 'Both', nameCamel, nameKebab, namePascal },
340
- target: (0, path_1.join)(directory, `${nameKebab}.service.ts`),
371
+ props: {
372
+ frameworkImport: importFor(serviceTarget),
373
+ isGql: controller === 'GraphQL' || controller === 'Both',
374
+ nameCamel,
375
+ nameKebab,
376
+ namePascal,
377
+ },
378
+ target: serviceTarget,
341
379
  template: 'nest-server-module/template.service.ts.ejs',
342
380
  });
343
381
  generateSpinner.succeed('Files generated');
@@ -362,20 +400,18 @@ const NewCommand = {
362
400
  });
363
401
  // Ensure forwardRef is imported from @nestjs/common
364
402
  const serverModuleContent = filesystem.read(serverModule);
365
- if (serverModuleContent && !serverModuleContent.includes('forwardRef')) {
366
- // Add forwardRef to @nestjs/common import
367
- yield patching.patch(serverModule, {
368
- insert: '$1, forwardRef$2',
369
- replace: /from '@nestjs\/common'(.*?)}/,
370
- });
371
- }
372
- else if (serverModuleContent &&
403
+ if (serverModuleContent &&
373
404
  serverModuleContent.includes('@nestjs/common') &&
374
- !serverModuleContent.match(/forwardRef.*@nestjs\/common|@nestjs\/common.*forwardRef/)) {
375
- // forwardRef exists but not in @nestjs/common import - add it
405
+ !serverModuleContent.match(/import\s*\{[^}]*forwardRef[^}]*}\s*from\s+['"]@nestjs\/common['"]/)) {
406
+ // Add forwardRef into the existing `import { ... } from '@nestjs/common'`
407
+ // statement by inserting it before the closing brace. The regex
408
+ // captures two groups: (1) everything up to (but not including) the
409
+ // closing brace of the named-import list and (2) the closing brace
410
+ // plus the `from '@nestjs/common'` clause. The replacement wedges
411
+ // `, forwardRef` in between.
376
412
  yield patching.patch(serverModule, {
377
- insert: '$1, forwardRef$2',
378
- replace: /(\w+)\s*}\s*from\s+'@nestjs\/common'/,
413
+ insert: "$1, forwardRef$2",
414
+ replace: /(import\s*\{\s*[^}]*?)(\s*\}\s*from\s+['"]@nestjs\/common['"])/,
379
415
  });
380
416
  }
381
417
  }
@@ -482,4 +518,3 @@ const NewCommand = {
482
518
  }),
483
519
  };
484
520
  exports.default = NewCommand;
485
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSwrQkFBNEI7QUFJNUIscUNBQWlDO0FBRWpDOzs7R0FHRztBQUNILFNBQVMsb0JBQW9CLENBQUMsVUFBZSxFQUFFLElBQVk7SUFDekQsTUFBTSxVQUFVLEdBQUcsSUFBQSxXQUFJLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFMUQsb0NBQW9DO0lBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDbkMsT0FBTyxNQUFNLENBQUMsQ0FBQyxrQ0FBa0M7SUFDbkQsQ0FBQztJQUVELHdDQUF3QztJQUN4QyxNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRXhELDZCQUE2QjtJQUM3QixNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyRCxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQ3hDLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFBLFdBQUksRUFBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FDekcsQ0FBQztJQUVGLHdDQUF3QztJQUN4QyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsaUJBQWlCO0lBQ2pCLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQztJQUN2QixJQUFJLFlBQVksR0FB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
@@ -8,9 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  const path_1 = require("path");
13
- const module_1 = require("./module");
16
+ const framework_detection_1 = require("../../lib/framework-detection");
17
+ const module_1 = __importDefault(require("./module"));
14
18
  /**
15
19
  * Create a new server object
16
20
  */
@@ -130,21 +134,41 @@ const NewCommand = {
130
134
  const inputTemplate = server.propsForInput(props, { modelName: name, nullable: true });
131
135
  const createTemplate = server.propsForInput(props, { create: true, modelName: name, nullable: false });
132
136
  const objectTemplate = server.propsForModel(props, { modelName: name });
137
+ // Framework-import specifier (bare in npm mode, relative in vendored mode)
138
+ const importFor = (target) => (0, framework_detection_1.getFrameworkImportSpecifier)(path, target);
133
139
  // nest-server-module/inputs/xxx.input.ts
140
+ const inputTarget = (0, path_1.join)(directory, `${nameKebab}.input.ts`);
134
141
  yield template.generate({
135
- props: { imports: inputTemplate.imports, nameCamel, nameKebab, namePascal, props: inputTemplate.props },
136
- target: (0, path_1.join)(directory, `${nameKebab}.input.ts`),
142
+ props: {
143
+ frameworkImport: importFor(inputTarget),
144
+ imports: inputTemplate.imports,
145
+ nameCamel,
146
+ nameKebab,
147
+ namePascal,
148
+ props: inputTemplate.props,
149
+ },
150
+ target: inputTarget,
137
151
  template: 'nest-server-object/template.input.ts.ejs',
138
152
  });
139
153
  // nest-server-object/inputs/xxx-create.input.ts
154
+ const createInputTarget = (0, path_1.join)(directory, `${nameKebab}-create.input.ts`);
140
155
  yield template.generate({
141
- props: { imports: createTemplate.imports, nameCamel, nameKebab, namePascal, props: createTemplate.props },
142
- target: (0, path_1.join)(directory, `${nameKebab}-create.input.ts`),
156
+ props: {
157
+ frameworkImport: importFor(createInputTarget),
158
+ imports: createTemplate.imports,
159
+ nameCamel,
160
+ nameKebab,
161
+ namePascal,
162
+ props: createTemplate.props,
163
+ },
164
+ target: createInputTarget,
143
165
  template: 'nest-server-object/template-create.input.ts.ejs',
144
166
  });
145
167
  // nest-server-module/xxx.model.ts
168
+ const objectTarget = (0, path_1.join)(directory, `${nameKebab}.object.ts`);
146
169
  yield template.generate({
147
170
  props: {
171
+ frameworkImport: importFor(objectTarget),
148
172
  imports: objectTemplate.imports,
149
173
  mappings: objectTemplate.mappings,
150
174
  nameCamel,
@@ -152,7 +176,7 @@ const NewCommand = {
152
176
  namePascal,
153
177
  props: objectTemplate.props,
154
178
  },
155
- target: (0, path_1.join)(directory, `${nameKebab}.object.ts`),
179
+ target: objectTarget,
156
180
  template: 'nest-server-object/template.object.ts.ejs',
157
181
  });
158
182
  generateSpinner.succeed('Files generated');
@@ -229,4 +253,3 @@ const NewCommand = {
229
253
  }),
230
254
  };
231
255
  exports.default = NewCommand;
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9vYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSwrQkFBNEI7QUFJNUIscUNBQWlDO0FBRWpDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEdBQTJCO0lBQ3pDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQztJQUNaLFdBQVcsRUFBRSx3QkFBd0I7SUFDckMsTUFBTSxFQUFFLEtBQUs7SUFDYixJQUFJLEVBQUUsUUFBUTtJQUNkLEdBQUcsRUFBRSxDQUNILE9BQStCLEVBQy9CLE9BS0MsRUFDRCxFQUFFOztRQUNGLFdBQVc7UUFDWCxNQUFNLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsbUJBQ3RFLFdBQVcsRUFBRSxFQUFFLEVBQ2YsWUFBWSxFQUFFLEVBQUUsRUFDaEIsa0JBQWtCLEVBQUUsS0FBSyxFQUN6QixlQUFlLEVBQUUsRUFBRSxJQUNoQixPQUFPLENBQ1gsQ0FBQztRQUVGLDZCQUE2QjtRQUM3QixNQUFNLEVBQ0osTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sVUFBVSxFQUNWLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFDOUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQ25CLE1BQU0sRUFDTixPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxFQUM3QyxNQUFNLEVBQ04sUUFBUSxHQUNULEdBQUcsT0FBTyxDQUFDO1FBRVosMEJBQTBCO1FBQzFCLElBQ0UsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDckIsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ2QsYUFBYSxFQUFFLDBCQUEwQjtZQUN6QyxXQUFXLEVBQUUsd0JB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
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const child_process_1 = require("child_process");
13
13
  const fs_1 = require("fs");
14
14
  const path_1 = require("path");
15
+ const framework_detection_1 = require("../../lib/framework-detection");
15
16
  // ────────────────────────────────────────────────────────────────────────────
16
17
  // Helper functions (alphabetically sorted per ESLint rules)
17
18
  // ────────────────────────────────────────────────────────────────────────────
@@ -82,11 +83,23 @@ function generateJson(report, projectPath) {
82
83
  */
83
84
  function loadScanner(projectPath) {
84
85
  return __awaiter(this, void 0, void 0, function* () {
85
- // Try 1: Load from project's nest-server (preferred)
86
- const scannerPaths = [
87
- (0, path_1.join)(projectPath, 'node_modules', '@lenne.tech', 'nest-server', 'dist', 'core', 'modules', 'permissions', 'permissions-scanner'),
88
- (0, path_1.join)(projectPath, 'node_modules', '@lenne.tech', 'nest-server', 'dist', 'core', 'modules', 'permissions', 'permissions-scanner.js'),
89
- ];
86
+ // Build an ordered list of candidate paths, mode-aware:
87
+ //
88
+ // - Vendored projects: the framework code lives in src/core/ as
89
+ // project-compiled TypeScript. After `nest build` the compiled output
90
+ // lands under dist/src/core/modules/permissions/. Before the build,
91
+ // the .ts source sits at src/core/modules/permissions/permissions-scanner.ts
92
+ // (which Node's `require()` cannot load directly). We try the dist
93
+ // variant first and fall back to the bundled CLI scanner if the
94
+ // project hasn't been built yet.
95
+ // - npm projects: classic path under node_modules/@lenne.tech/nest-server/dist.
96
+ const scannerPaths = [];
97
+ if ((0, framework_detection_1.isVendoredProject)(projectPath)) {
98
+ scannerPaths.push((0, path_1.join)(projectPath, 'dist', 'src', 'core', 'modules', 'permissions', 'permissions-scanner'), (0, path_1.join)(projectPath, 'dist', 'src', 'core', 'modules', 'permissions', 'permissions-scanner.js'), (0, path_1.join)(projectPath, 'dist', 'core', 'modules', 'permissions', 'permissions-scanner'), (0, path_1.join)(projectPath, 'dist', 'core', 'modules', 'permissions', 'permissions-scanner.js'));
99
+ }
100
+ else {
101
+ scannerPaths.push((0, path_1.join)(projectPath, 'node_modules', '@lenne.tech', 'nest-server', 'dist', 'core', 'modules', 'permissions', 'permissions-scanner'), (0, path_1.join)(projectPath, 'node_modules', '@lenne.tech', 'nest-server', 'dist', 'core', 'modules', 'permissions', 'permissions-scanner.js'));
102
+ }
90
103
  for (const scannerPath of scannerPaths) {
91
104
  try {
92
105
  const mod = require(scannerPath);
@@ -101,7 +114,8 @@ function loadScanner(projectPath) {
101
114
  // Not available at this path
102
115
  }
103
116
  }
104
- // Try 2: Use CLI's bundled fallback scanner
117
+ // Fallback: Use CLI's bundled scanner. Covers both "not yet built" (vendor
118
+ // mode before `nest build`) and "framework not installed" (detached clone).
105
119
  try {
106
120
  const fallback = require('../../lib/fallback-scanner');
107
121
  if (typeof fallback.scanPermissions === 'function') {
@@ -376,4 +390,3 @@ const PermissionsCommand = {
376
390
  }),
377
391
  };
378
392
  exports.default = PermissionsCommand;
379
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvc2VydmVyL3Blcm1pc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsaURBQXFDO0FBQ3JDLDJCQUFnQztBQUNoQywrQkFBNEI7QUF3RzVCLCtFQUErRTtBQUMvRSw0REFBNEQ7QUFDNUQsK0VBQStFO0FBRS9FOzs7R0FHRztBQUNILFNBQVMsZUFBZSxDQUFDLFNBQWlCO0lBQ3hDLElBQUksT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUN4QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDNUIsSUFBSSxJQUFBLGVBQVUsRUFBQyxJQUFBLFdBQUksRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDMUQsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLElBQUEsV0FBSSxFQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLE1BQU0sS0FBSyxPQUFPO1lBQUUsTUFBTTtRQUM5QixPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ25CLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLHdCQUF3QixDQUFDLE1BQXlCLEVBQUUsV0FBbUI7SUFDOUUsT0FBTyxJQUFJLENBQUMsU0FBUyxpQ0FBTSxNQUFNLEtBQUUsT0FBTyxFQUFFLFdBQVcsS0FBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdEUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxZQUFZLENBQUMsTUFBeUIsRUFBRSxXQUFtQixFQUFFLFVBQWU7SUFDbkYsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDO1FB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
@@ -22,4 +22,3 @@ module.exports = {
22
22
  return 'server';
23
23
  }),
24
24
  };
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxPQUFPLEdBQUc7SUFDZixLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDWixXQUFXLEVBQUUsaUJBQWlCO0lBQzlCLE1BQU0sRUFBRSxJQUFJO0lBQ1osSUFBSSxFQUFFLFFBQVE7SUFDZCxHQUFHLEVBQUUsQ0FBTyxPQUErQixFQUFFLEVBQUU7UUFDN0MsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLENBQUE7Q0FDRixDQUFDIn0=
@@ -39,4 +39,3 @@ const NewCommand = {
39
39
  }),
40
40
  };
41
41
  exports.default = NewCommand;
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LXNlY3JldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvc2VydmVyL3NldC1zZWNyZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBSUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsR0FBbUI7SUFDakMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDO0lBQ2QsV0FBVyxFQUFFLG9CQUFvQjtJQUNqQyxNQUFNLEVBQUUsS0FBSztJQUNiLElBQUksRUFBRSxrQkFBa0I7SUFDeEIsR0FBRyxFQUFFLENBQU8sT0FBK0IsRUFBRSxFQUFFO1FBQzdDLDZCQUE2QjtRQUM3QixNQUFNLEVBQ0osVUFBVSxFQUNWLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFDNUIsTUFBTSxHQUNQLEdBQUcsT0FBTyxDQUFDO1FBRVosdUJBQXVCO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLElBQUksbUJBQW1CLENBQUM7UUFDekQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDVCxLQUFLLENBQUMsMEJBQTBCLFFBQVEsR0FBRyxDQUFDLENBQUM7WUFDN0MsT0FBTztRQUNULENBQUM7UUFFRCxjQUFjO1FBQ2QsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLDRDQUE0QyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3BGLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLGNBQWMsQ0FBQyxPQUFPLENBQUMsdUNBQXVDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFMUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ2hELE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixDQUFDO1FBRUQsWUFBWTtRQUNaLE9BQU8scUNBQXFDLENBQUM7SUFDL0MsQ0FBQyxDQUFBO0NBQ0YsQ0FBQztBQUVGLGtCQUFlLFVBQVUsQ0FBQyJ9
@@ -10,6 +10,7 @@ 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 framework_detection_1 = require("../../lib/framework-detection");
13
14
  /**
14
15
  * Create a new server
15
16
  */
@@ -55,7 +56,12 @@ const NewCommand = {
55
56
  const generateSpinner = spin('Generate test file');
56
57
  // nest-server-tests/tests.e2e-spec.ts.ejs
57
58
  yield template.generate({
58
- props: { nameCamel, nameKebab, namePascal },
59
+ props: {
60
+ frameworkImport: (0, framework_detection_1.getFrameworkImportSpecifier)(path, filePath),
61
+ nameCamel,
62
+ nameKebab,
63
+ namePascal,
64
+ },
59
65
  target: filePath,
60
66
  template: 'nest-server-tests/tests.e2e-spec.ts.ejs',
61
67
  });
@@ -72,4 +78,3 @@ const NewCommand = {
72
78
  }),
73
79
  };
74
80
  exports.default = NewCommand;
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9zZXJ2ZXIvdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUNBLCtCQUE0QjtBQUk1Qjs7R0FFRztBQUNILE1BQU0sVUFBVSxHQUFtQjtJQUNqQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDWixXQUFXLEVBQUUseUJBQXlCO0lBQ3RDLE1BQU0sRUFBRSxLQUFLO0lBQ2IsSUFBSSxFQUFFLE1BQU07SUFDWixHQUFHLEVBQUUsQ0FBTyxPQUErQixFQUFFLEVBQUU7UUFDN0MsNkJBQTZCO1FBQzdCLE1BQU0sRUFDSixVQUFVLEVBQ1YsTUFBTSxFQUNOLFVBQVUsRUFDVixLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFDckMsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFDN0MsTUFBTSxFQUNOLFFBQVEsR0FDVCxHQUFHLE9BQU8sQ0FBQztRQUVaLGNBQWM7UUFDZCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEMsT0FBTztRQUNQLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRS9CLFdBQVc7UUFDWCxNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUNuRCxJQUFJLEVBQUUsV0FBVztTQUNsQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPO1FBQ1QsQ0FBQztRQUVELGdEQUFnRDtRQUNoRCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwQyxxQkFBcUI7UUFDckIsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdCLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFBLFdBQUksRUFBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNULEtBQUssQ0FBQywwQkFBMEIsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUMxQyxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLElBQUEsV0FBSSxFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFBLFdBQUksRUFBQyxRQUFRLEVBQUUsR0FBRyxTQUFTLGNBQWMsQ0FBQyxDQUFDO1FBRTVELCtCQUErQjtRQUMvQixJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDVCxLQUFLLENBQUMsaUNBQWlDLFFBQVEsR0FBRyxDQUFDLENBQUM7WUFDcEQsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVuRCwwQ0FBMEM7UUFDMUMsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ3RCLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFO1lBQzNDLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFFBQVEsRUFBRSx5Q0FBeUM7U0FDcEQsQ0FBQyxDQUFDO1FBRUgsZUFBZSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRTlDLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDVCxPQUFPLENBQUMsYUFBYSxVQUFVLGlCQUFpQixNQUFNLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRVQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ2hELE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixDQUFDO1FBRUQsWUFBWTtRQUNaLE9BQU8sWUFBWSxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDLENBQUE7Q0FDRixDQUFDO0FBRUYsa0JBQWUsVUFBVSxDQUFDIn0=
@@ -117,4 +117,3 @@ const NewCommand = {
117
117
  }),
118
118
  };
119
119
  exports.default = NewCommand;
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyb21lLWV4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9zdGFydGVyL2Nocm9tZS1leHRlbnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFJQTs7R0FFRztBQUNILE1BQU0sVUFBVSxHQUFtQjtJQUNqQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDYixXQUFXLEVBQUUsZ0NBQWdDO0lBQzdDLE1BQU0sRUFBRSxLQUFLO0lBQ2IsSUFBSSxFQUFFLGtCQUFrQjtJQUN4QixHQUFHLEVBQUUsQ0FBTyxPQUErQixFQUFFLEVBQUU7UUFDN0MsNkJBQTZCO1FBQzdCLE1BQU0sRUFDSixVQUFVLEVBQ1YsR0FBRyxFQUNILE1BQU0sRUFDTixJQUFJLEVBQ0osVUFBVSxFQUNWLFFBQVEsRUFDUixLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFDckMsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQ3RCLE1BQU0sR0FDUCxHQUFHLE9BQU8sQ0FBQztRQUVaLGNBQWM7UUFDZCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEMsT0FBTztRQUNQLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBRTlDLFlBQVk7UUFDWixJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTztRQUNULENBQUM7UUFFRCxXQUFXO1FBQ1gsTUFBTSxJQUFJLEdBQUcsTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUU7WUFDbkQsSUFBSSxFQUFFLGNBQWM7WUFDcEIsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTztRQUNULENBQUM7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
@@ -22,4 +22,3 @@ module.exports = {
22
22
  return 'starter';
23
23
  }),
24
24
  };
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9zdGFydGVyL3N0YXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxPQUFPLEdBQUc7SUFDZixLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDYixXQUFXLEVBQUUsa0JBQWtCO0lBQy9CLE1BQU0sRUFBRSxJQUFJO0lBQ1osSUFBSSxFQUFFLFNBQVM7SUFDZixHQUFHLEVBQUUsQ0FBTyxPQUErQixFQUFFLEVBQUU7UUFDN0MsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDLENBQUE7Q0FDRixDQUFDIn0=