@acmekit/cli 2.13.1

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 (47) hide show
  1. package/cli.js +16 -0
  2. package/dist/codemods/index.d.ts +13 -0
  3. package/dist/codemods/index.d.ts.map +1 -0
  4. package/dist/codemods/index.js +30 -0
  5. package/dist/codemods/index.js.map +1 -0
  6. package/dist/codemods/replace-zod-imports.d.ts +4 -0
  7. package/dist/codemods/replace-zod-imports.d.ts.map +1 -0
  8. package/dist/codemods/replace-zod-imports.js +141 -0
  9. package/dist/codemods/replace-zod-imports.js.map +1 -0
  10. package/dist/codemods/types.d.ts +44 -0
  11. package/dist/codemods/types.d.ts.map +1 -0
  12. package/dist/codemods/types.js +3 -0
  13. package/dist/codemods/types.js.map +1 -0
  14. package/dist/commands/new.d.ts +5 -0
  15. package/dist/commands/new.d.ts.map +1 -0
  16. package/dist/commands/new.js +528 -0
  17. package/dist/commands/new.js.map +1 -0
  18. package/dist/create-cli.d.ts +3 -0
  19. package/dist/create-cli.d.ts.map +1 -0
  20. package/dist/create-cli.js +612 -0
  21. package/dist/create-cli.js.map +1 -0
  22. package/dist/did-you-mean.d.ts +2 -0
  23. package/dist/did-you-mean.d.ts.map +1 -0
  24. package/dist/did-you-mean.js +23 -0
  25. package/dist/did-you-mean.js.map +1 -0
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +34 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/reporter/index.d.ts +115 -0
  31. package/dist/reporter/index.d.ts.map +1 -0
  32. package/dist/reporter/index.js +365 -0
  33. package/dist/reporter/index.js.map +1 -0
  34. package/dist/reporter/panic-handler.d.ts +16 -0
  35. package/dist/reporter/panic-handler.d.ts.map +1 -0
  36. package/dist/reporter/panic-handler.js +32 -0
  37. package/dist/reporter/panic-handler.js.map +1 -0
  38. package/dist/tsconfig.tsbuildinfo +1 -0
  39. package/dist/util/clear-project.d.ts +2 -0
  40. package/dist/util/clear-project.d.ts.map +1 -0
  41. package/dist/util/clear-project.js +23 -0
  42. package/dist/util/clear-project.js.map +1 -0
  43. package/dist/util/package-manager.d.ts +3 -0
  44. package/dist/util/package-manager.d.ts.map +1 -0
  45. package/dist/util/package-manager.js +21 -0
  46. package/dist/util/package-manager.js.map +1 -0
  47. package/package.json +61 -0
@@ -0,0 +1,612 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const telemetry_1 = require("@acmekit/telemetry");
7
+ const fs_exists_cached_1 = require("fs-exists-cached");
8
+ const path_1 = __importDefault(require("path"));
9
+ const resolve_cwd_1 = __importDefault(require("resolve-cwd"));
10
+ const index_1 = require("./codemods/index");
11
+ const new_1 = require("./commands/new");
12
+ const did_you_mean_1 = require("./did-you-mean");
13
+ const reporter_1 = __importDefault(require("./reporter"));
14
+ const yargs = require(`yargs`);
15
+ const handlerP = (fn) => (...args) => {
16
+ Promise.resolve(fn(...args)).then(() => process.exit(0), (err) => console.log(err));
17
+ };
18
+ function buildLocalCommands(cli, isLocalProject) {
19
+ const defaultPort = "9000";
20
+ const directory = path_1.default.resolve(`.`);
21
+ const projectInfo = { directory };
22
+ const useYarn = (0, fs_exists_cached_1.sync)(path_1.default.join(directory, `yarn.lock`));
23
+ if (isLocalProject) {
24
+ projectInfo["sitePackageJson"] = require(path_1.default.join(directory, `package.json`));
25
+ }
26
+ function resolveLocalCommand(command) {
27
+ if (!isLocalProject && command !== "new") {
28
+ console.error(`The "${command}" command must be run inside a AcmeKit project. Make sure you are in the root directory of a AcmeKit project and try again.`);
29
+ process.exit(1);
30
+ }
31
+ try {
32
+ const cmdPath = resolve_cwd_1.default.silent(`@acmekit/acmekit/commands/${command}`);
33
+ return require(cmdPath).default;
34
+ }
35
+ catch (err) {
36
+ console.error(err);
37
+ cli.showHelp((s) => console.error(s));
38
+ }
39
+ }
40
+ function getCommandHandler(command, handler) {
41
+ return (argv) => {
42
+ const localCmd = resolveLocalCommand(command);
43
+ const args = { ...argv, ...projectInfo, useYarn };
44
+ return handler ? handler(args, localCmd) : localCmd(args);
45
+ };
46
+ }
47
+ cli
48
+ .command({
49
+ command: `new [root] [starter]`,
50
+ builder: (_) => _.option(`seed`, {
51
+ type: `boolean`,
52
+ describe: `If flag is set the command will attempt to seed the database after setup.`,
53
+ default: false,
54
+ })
55
+ .option(`y`, {
56
+ type: `boolean`,
57
+ alias: "useDefaults",
58
+ describe: `If flag is set the command will not interactively collect database credentials`,
59
+ default: false,
60
+ })
61
+ .option(`skip-db`, {
62
+ type: `boolean`,
63
+ describe: `If flag is set the command will not attempt to complete database setup`,
64
+ default: false,
65
+ })
66
+ .option(`skip-migrations`, {
67
+ type: `boolean`,
68
+ describe: `If flag is set the command will not attempt to complete database migration`,
69
+ default: false,
70
+ })
71
+ .option(`skip-env`, {
72
+ type: `boolean`,
73
+ describe: `If flag is set the command will not attempt to populate .env`,
74
+ default: false,
75
+ })
76
+ .option(`db-user`, {
77
+ type: `string`,
78
+ describe: `The database user to use for database setup and migrations.`,
79
+ })
80
+ .option(`db-database`, {
81
+ type: `string`,
82
+ describe: `The database use for database setup and migrations.`,
83
+ })
84
+ .option(`db-pass`, {
85
+ type: `string`,
86
+ describe: `The database password to use for database setup and migrations.`,
87
+ })
88
+ .option(`db-port`, {
89
+ type: `number`,
90
+ describe: `The database port to use for database setup and migrations.`,
91
+ })
92
+ .option(`db-host`, {
93
+ type: `string`,
94
+ describe: `The database host to use for database setup and migrations.`,
95
+ })
96
+ .option(`v2`, {
97
+ type: `boolean`,
98
+ describe: `Install AcmeKit with the V2 feature flag enabled. WARNING: AcmeKit V2 is still in development and shouldn't be used in production.`,
99
+ default: false,
100
+ })
101
+ .option(`branch`, {
102
+ type: `string`,
103
+ describe: `The branch of the git repository to clone.`,
104
+ }),
105
+ desc: `Create a new AcmeKit project.`,
106
+ handler: handlerP(new_1.newStarter),
107
+ })
108
+ .command({
109
+ command: "db:setup",
110
+ desc: "Create the database, run migrations and sync links",
111
+ builder: (builder) => {
112
+ builder.option("db", {
113
+ type: "string",
114
+ describe: "Specify the name of the database you want to create",
115
+ });
116
+ builder.option("interactive", {
117
+ type: "boolean",
118
+ default: true,
119
+ describe: "Display prompts. Use --no-interactive flag to run the command without prompts",
120
+ });
121
+ builder.option("skip-links", {
122
+ type: "boolean",
123
+ describe: "Do not sync links",
124
+ });
125
+ builder.option("execute-all-links", {
126
+ type: "boolean",
127
+ describe: "Skip prompts and execute all (including unsafe) actions from sync links",
128
+ });
129
+ builder.option("execute-safe-links", {
130
+ type: "boolean",
131
+ describe: "Skip prompts and execute only safe actions from sync links",
132
+ });
133
+ },
134
+ handler: handlerP(getCommandHandler("db/setup", (args, cmd) => {
135
+ process.env.NODE_ENV = process.env.NODE_ENV || `development`;
136
+ return cmd(args);
137
+ })),
138
+ })
139
+ .command({
140
+ command: "db:create",
141
+ desc: "Create the database used by your application",
142
+ builder: (builder) => {
143
+ builder.option("db", {
144
+ type: "string",
145
+ describe: "Specify the name of the database you want to create",
146
+ });
147
+ builder.option("interactive", {
148
+ type: "boolean",
149
+ default: true,
150
+ describe: "Display prompts. Use --no-interactive flag to run the command without prompts",
151
+ });
152
+ },
153
+ handler: handlerP(getCommandHandler("db/create", (args, cmd) => {
154
+ process.env.NODE_ENV = process.env.NODE_ENV || `development`;
155
+ return cmd(args);
156
+ })),
157
+ })
158
+ .command({
159
+ command: "db:migrate",
160
+ desc: "Migrate the database by executing pending migrations",
161
+ builder: (builder) => {
162
+ builder.option("skip-scripts", {
163
+ type: "boolean",
164
+ describe: "Do not run migration scripts",
165
+ });
166
+ builder.option("skip-links", {
167
+ type: "boolean",
168
+ describe: "Do not sync links",
169
+ });
170
+ builder.option("execute-all-links", {
171
+ type: "boolean",
172
+ describe: "Skip prompts and execute all (including unsafe) actions from sync links",
173
+ });
174
+ builder.option("execute-safe-links", {
175
+ type: "boolean",
176
+ describe: "Skip prompts and execute only safe actions from sync links",
177
+ });
178
+ builder.option("concurrency", {
179
+ type: "number",
180
+ describe: "Number of concurrent migrations to run",
181
+ });
182
+ builder.option("all-or-nothing", {
183
+ type: "boolean",
184
+ describe: "If set, the command will fail if any migration fails and revert the migrations that were applied so far",
185
+ default: false,
186
+ });
187
+ },
188
+ handler: handlerP(getCommandHandler("db/migrate", (args, cmd) => {
189
+ process.env.NODE_ENV = process.env.NODE_ENV || `development`;
190
+ return cmd(args);
191
+ })),
192
+ })
193
+ .command({
194
+ command: "db:migrate:scripts",
195
+ desc: "Run all migration scripts",
196
+ handler: handlerP(getCommandHandler("db/run-scripts", (args, cmd) => {
197
+ process.env.NODE_ENV = process.env.NODE_ENV || `development`;
198
+ return cmd(args);
199
+ })),
200
+ })
201
+ .command({
202
+ command: "db:rollback [modules...]",
203
+ desc: "Rollback last batch of executed migrations for a given module",
204
+ builder: {
205
+ modules: {
206
+ type: "array",
207
+ description: "Modules for which to rollback migrations",
208
+ demand: true,
209
+ },
210
+ },
211
+ handler: handlerP(getCommandHandler("db/rollback", (args, cmd) => {
212
+ process.env.NODE_ENV = process.env.NODE_ENV || `development`;
213
+ return cmd(args);
214
+ })),
215
+ })
216
+ .command({
217
+ command: "db:generate [modules...]",
218
+ desc: "Generate migrations for a given module",
219
+ builder: {
220
+ modules: {
221
+ type: "array",
222
+ description: "Modules for which to generate migration files",
223
+ demand: true,
224
+ },
225
+ },
226
+ handler: handlerP(getCommandHandler("db/generate", (args, cmd) => {
227
+ process.env.NODE_ENV = process.env.NODE_ENV || `development`;
228
+ return cmd(args);
229
+ })),
230
+ })
231
+ .command({
232
+ command: "plugin:db:generate",
233
+ desc: "Generate migrations for modules in a plugin",
234
+ handler: handlerP(getCommandHandler("plugin/db/generate", (args, cmd) => {
235
+ process.env.NODE_ENV = process.env.NODE_ENV || `development`;
236
+ return cmd(args);
237
+ })),
238
+ })
239
+ .command({
240
+ command: "db:sync-links",
241
+ desc: "Sync database schema with the links defined by your application and AcmeKit core",
242
+ builder: (builder) => {
243
+ builder.option("execute-all", {
244
+ type: "boolean",
245
+ describe: "Skip prompts and execute all (including unsafe) actions",
246
+ });
247
+ builder.option("execute-safe", {
248
+ type: "boolean",
249
+ describe: "Skip prompts and execute only safe actions",
250
+ });
251
+ builder.option("concurrency", {
252
+ type: "number",
253
+ describe: "Number of concurrent migrations to run",
254
+ });
255
+ },
256
+ handler: handlerP(getCommandHandler("db/sync-links", (args, cmd) => {
257
+ process.env.NODE_ENV = process.env.NODE_ENV || `development`;
258
+ return cmd(args);
259
+ })),
260
+ })
261
+ .command({
262
+ command: "plugin:build",
263
+ desc: "Build plugin source for publishing to a package registry",
264
+ handler: handlerP(getCommandHandler("plugin/build", async (args, cmd) => {
265
+ process.env.NODE_ENV = process.env.NODE_ENV || `development`;
266
+ cmd(args);
267
+ return new Promise((resolve) => { });
268
+ })),
269
+ })
270
+ .command({
271
+ command: "plugin:develop",
272
+ desc: "Start plugin development process in watch mode. Changes will be re-published to the local packages registry",
273
+ handler: handlerP(getCommandHandler("plugin/develop", async (args, cmd) => {
274
+ process.env.NODE_ENV = process.env.NODE_ENV || `development`;
275
+ cmd(args);
276
+ return new Promise(() => { });
277
+ })),
278
+ })
279
+ .command({
280
+ command: "plugin:publish",
281
+ desc: "Publish the plugin to the local packages registry",
282
+ handler: handlerP(getCommandHandler("plugin/publish", async (args, cmd) => {
283
+ process.env.NODE_ENV = process.env.NODE_ENV || `development`;
284
+ cmd(args);
285
+ return new Promise(() => { });
286
+ })),
287
+ })
288
+ .command({
289
+ command: "plugin:add [plugin_names...]",
290
+ desc: "Add the specified plugin to the project from the local packages registry",
291
+ builder: {
292
+ plugin_names: {
293
+ type: "array",
294
+ description: "The name of the plugins to add",
295
+ demand: true,
296
+ },
297
+ },
298
+ handler: handlerP(getCommandHandler("plugin/add", async (args, cmd) => {
299
+ process.env.NODE_ENV = process.env.NODE_ENV || `development`;
300
+ cmd(args);
301
+ return new Promise(() => { });
302
+ })),
303
+ })
304
+ .command({
305
+ command: `telemetry`,
306
+ describe: `Enable or disable collection of anonymous usage data.`,
307
+ builder: (yargs) => yargs
308
+ .option(`enable`, {
309
+ type: `boolean`,
310
+ description: `Enable telemetry (default)`,
311
+ })
312
+ .option(`disable`, {
313
+ type: `boolean`,
314
+ description: `Disable telemetry`,
315
+ }),
316
+ handler: handlerP(({ enable, disable }) => {
317
+ const enabled = Boolean(enable) || !disable;
318
+ (0, telemetry_1.setTelemetryEnabled)(enabled);
319
+ reporter_1.default.info(`Telemetry collection ${enabled ? `enabled` : `disabled`}`);
320
+ }),
321
+ })
322
+ .command({
323
+ command: `codemod <codemod-name>`,
324
+ desc: `Run automated code transformations`,
325
+ builder: (yargs) => yargs
326
+ .positional("codemod-name", {
327
+ type: "string",
328
+ describe: "Name of the codemod to run",
329
+ demandOption: true,
330
+ })
331
+ .option(`dry-run`, {
332
+ type: `boolean`,
333
+ description: `Preview changes without modifying files`,
334
+ default: false,
335
+ }),
336
+ handler: handlerP(async ({ codemodName, dryRun }) => {
337
+ const codemod = (0, index_1.getCodemod)(codemodName);
338
+ if (!codemod) {
339
+ const available = (0, index_1.listCodemods)();
340
+ reporter_1.default.error(`Unknown codemod: ${codemodName}`);
341
+ reporter_1.default.info(`\nAvailable codemods:\n${available
342
+ .map((n) => ` - ${n}`)
343
+ .join("\n")}`);
344
+ process.exit(1);
345
+ }
346
+ reporter_1.default.info(`Running codemod: ${codemod.name}`);
347
+ reporter_1.default.info(codemod.description);
348
+ if (dryRun) {
349
+ reporter_1.default.info(`\n DRY RUN MODE - No files will be modified\n`);
350
+ }
351
+ const result = await codemod.run({ dryRun });
352
+ reporter_1.default.info(`\n Summary:`);
353
+ reporter_1.default.info(` Files scanned: ${result.filesScanned}`);
354
+ reporter_1.default.info(` Files modified: ${result.filesModified}`);
355
+ reporter_1.default.info(` Errors: ${result.errors}`);
356
+ if (dryRun && result.filesModified > 0) {
357
+ reporter_1.default.info(`\n Run without --dry-run to apply changes`);
358
+ }
359
+ else if (result.filesModified > 0) {
360
+ reporter_1.default.info(`\n Codemod completed successfully!`);
361
+ reporter_1.default.info(`\n Next steps:`);
362
+ reporter_1.default.info(` 1. Review changes: git diff`);
363
+ reporter_1.default.info(` 2. Run tests to verify`);
364
+ reporter_1.default.info(` 3. Commit if satisfied`);
365
+ }
366
+ else {
367
+ reporter_1.default.info(`\n No modifications needed`);
368
+ }
369
+ }),
370
+ })
371
+ .command({
372
+ command: `develop`,
373
+ desc: `Start development server. Watches file and rebuilds when something changes`,
374
+ builder: (_) => _.option("types", {
375
+ type: "boolean",
376
+ default: true,
377
+ describe: "Generate automated types for modules inside the .acmekit directory",
378
+ })
379
+ .option(`H`, {
380
+ alias: `host`,
381
+ type: `string`,
382
+ default: process.env.HOST,
383
+ describe: process.env.HOST
384
+ ? `Set host. Defaults to ${process.env.HOST} (set by env.HOST)`
385
+ : "",
386
+ })
387
+ .option(`p`, {
388
+ alias: `port`,
389
+ type: `string`,
390
+ default: process.env.PORT || defaultPort,
391
+ describe: process.env.PORT
392
+ ? `Set port. Defaults to ${process.env.PORT} (set by env.PORT) (otherwise defaults ${defaultPort})`
393
+ : `Set port. Defaults to ${defaultPort}`,
394
+ }),
395
+ handler: handlerP(getCommandHandler(`develop`, async (args, cmd) => {
396
+ process.env.NODE_ENV = process.env.NODE_ENV || `development`;
397
+ cmd(args);
398
+ // Return an empty promise to prevent handlerP from exiting early.
399
+ // The development server shouldn't ever exit until the user directly
400
+ // kills it so this is fine.
401
+ return new Promise(() => { });
402
+ })),
403
+ })
404
+ .command({
405
+ command: `start`,
406
+ desc: `Start production server.`,
407
+ builder: (_) => _.option("types", {
408
+ type: "boolean",
409
+ default: false,
410
+ describe: "Generate automated types for modules inside the .acmekit directory",
411
+ })
412
+ .option(`H`, {
413
+ alias: `host`,
414
+ type: `string`,
415
+ default: process.env.HOST,
416
+ describe: process.env.HOST
417
+ ? `Set host. Defaults to ${process.env.HOST} (set by env.HOST)`
418
+ : ``,
419
+ })
420
+ .option(`p`, {
421
+ alias: `port`,
422
+ type: `string`,
423
+ default: process.env.PORT || defaultPort,
424
+ describe: process.env.PORT
425
+ ? `Set port. Defaults to ${process.env.PORT} (set by env.PORT) (otherwise defaults ${defaultPort})`
426
+ : `Set port. Defaults to ${defaultPort}`,
427
+ })
428
+ .option(`cluster`, {
429
+ type: `string`,
430
+ describe: "Start the Node.js server in cluster mode. Specify the number of CPUs to use or a percentage (e.g., 50%). Defaults to the number of available CPUs.",
431
+ })
432
+ .option("workers", {
433
+ type: "string",
434
+ default: "0",
435
+ describe: "Number of worker processes in cluster mode or a percentage of cluster size (e.g., 25%).",
436
+ })
437
+ .option("servers", {
438
+ type: "string",
439
+ default: "0",
440
+ describe: "Number of server processes in cluster mode or a percentage of cluster size (e.g., 25%).",
441
+ }),
442
+ handler: handlerP(getCommandHandler(`start`, async (args, cmd) => {
443
+ process.env.NODE_ENV = process.env.NODE_ENV || `production`;
444
+ cmd(args);
445
+ // Return an empty promise to prevent handlerP from exiting early.
446
+ // The development server shouldn't ever exit until the user directly
447
+ // kills it so this is fine.
448
+ return new Promise((resolve) => { });
449
+ })),
450
+ })
451
+ .command({
452
+ command: "build",
453
+ desc: "Build your project.",
454
+ builder: (_) => _.option("admin-only", {
455
+ default: false,
456
+ type: "boolean",
457
+ describe: "Only build the admin to serve it separately (outDir .acmekit/admin)",
458
+ }),
459
+ handler: handlerP(getCommandHandler(`build`, async (args, cmd) => {
460
+ process.env.NODE_ENV = process.env.NODE_ENV || `development`;
461
+ cmd(args);
462
+ return new Promise((resolve) => { });
463
+ })),
464
+ })
465
+ .command({
466
+ command: `user`,
467
+ desc: `Create a user`,
468
+ builder: (_) => _.option(`e`, {
469
+ alias: `email`,
470
+ type: `string`,
471
+ describe: `User's email.`,
472
+ })
473
+ .option(`p`, {
474
+ alias: `password`,
475
+ type: `string`,
476
+ describe: `User's password.`,
477
+ })
478
+ .option(`i`, {
479
+ alias: `id`,
480
+ type: `string`,
481
+ describe: `User's id.`,
482
+ })
483
+ .option(`invite`, {
484
+ type: `boolean`,
485
+ describe: `If flag is set, an invitation will be created instead of a new user and the invite token will be returned.`,
486
+ default: false,
487
+ }),
488
+ handler: handlerP(getCommandHandler(`user`, async (args, cmd) => {
489
+ cmd(args);
490
+ // Return an empty promise to prevent handlerP from exiting early.
491
+ // The development server shouldn't ever exit until the user directly
492
+ // kills it so this is fine.
493
+ return new Promise((resolve) => { });
494
+ })),
495
+ })
496
+ .command({
497
+ command: `exec [file] [args..]`,
498
+ desc: `Run a function defined in a file.`,
499
+ handler: handlerP(getCommandHandler(`exec`, async (args, cmd) => {
500
+ cmd(args);
501
+ // Return an empty promise to prevent handlerP from exiting early.
502
+ // The development server shouldn't ever exit until the user directly
503
+ // kills it so this is fine.
504
+ return new Promise((resolve) => { });
505
+ })),
506
+ });
507
+ }
508
+ function isLocalAcmeKitProject() {
509
+ let inAcmeKitProject = false;
510
+ try {
511
+ const { dependencies, devDependencies } = require(path_1.default.resolve(`./package.json`));
512
+ // Draft order plugin can't have @acmekit/acmekit as dependency,
513
+ // so we also check for @acmekit/cli
514
+ inAcmeKitProject = !!((dependencies &&
515
+ (dependencies["@acmekit/acmekit"] || dependencies["@acmekit/cli"])) ||
516
+ (devDependencies &&
517
+ (devDependencies["@acmekit/acmekit"] ||
518
+ devDependencies["@acmekit/cli"])));
519
+ }
520
+ catch (err) {
521
+ // ignore
522
+ }
523
+ return inAcmeKitProject;
524
+ }
525
+ function getVersionInfo() {
526
+ const { version } = require(`../package.json`);
527
+ const isAcmeKitProject = isLocalAcmeKitProject();
528
+ if (isAcmeKitProject) {
529
+ let acmekitVersion = "";
530
+ try {
531
+ acmekitVersion = require(path_1.default.join(process.cwd(), `node_modules`, `@acmekit/acmekit`, `package.json`)).version;
532
+ }
533
+ catch (e) {
534
+ /* noop */
535
+ }
536
+ if (!acmekitVersion) {
537
+ acmekitVersion = `unknown`;
538
+ }
539
+ return `AcmeKit CLI version: ${version}
540
+ AcmeKit version: ${acmekitVersion}
541
+ Note: this is the AcmeKit version for the site at: ${process.cwd()}`;
542
+ }
543
+ else {
544
+ return `AcmeKit CLI version: ${version}`;
545
+ }
546
+ }
547
+ exports.default = (argv) => {
548
+ const cli = yargs();
549
+ const isLocalProject = isLocalAcmeKitProject();
550
+ cli
551
+ .scriptName(`acmekit`)
552
+ .usage(`Usage: $0 <command> [options]`)
553
+ .alias(`h`, `help`)
554
+ .alias(`v`, `version`)
555
+ .option(`verbose`, {
556
+ default: false,
557
+ type: `boolean`,
558
+ describe: `Turn on verbose output`,
559
+ global: true,
560
+ })
561
+ .option(`no-color`, {
562
+ alias: `no-colors`,
563
+ default: false,
564
+ type: `boolean`,
565
+ describe: `Turn off the color in output`,
566
+ global: true,
567
+ })
568
+ .option(`json`, {
569
+ describe: `Turn on the JSON logger`,
570
+ default: false,
571
+ type: `boolean`,
572
+ global: true,
573
+ });
574
+ buildLocalCommands(cli, isLocalProject);
575
+ try {
576
+ cli.version(`version`, `Show the version of the AcmeKit CLI and the AcmeKit package in the current project`, getVersionInfo());
577
+ }
578
+ catch (e) {
579
+ // ignore
580
+ }
581
+ return cli
582
+ .wrap(cli.terminalWidth())
583
+ .demandCommand(1, `Pass --help to see all available commands and options.`)
584
+ .strict()
585
+ .fail((msg, err, yargs) => {
586
+ const availableCommands = yargs
587
+ .getCommands()
588
+ .map((commandDescription) => {
589
+ const [command] = commandDescription;
590
+ return command.split(` `)[0];
591
+ });
592
+ const arg = argv.slice(2)[0];
593
+ const suggestion = arg ? (0, did_you_mean_1.didYouMean)(arg, availableCommands) : ``;
594
+ if (msg) {
595
+ reporter_1.default.error(msg);
596
+ console.log();
597
+ }
598
+ if (suggestion) {
599
+ reporter_1.default.info(suggestion);
600
+ console.log();
601
+ }
602
+ if (err) {
603
+ console.error("--------------- ERROR ---------------------");
604
+ console.error(err);
605
+ console.error("-------------------------------------------");
606
+ }
607
+ cli.showHelp((s) => console.error(s));
608
+ process.exit(1);
609
+ })
610
+ .parse(argv.slice(2));
611
+ };
612
+ //# sourceMappingURL=create-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-cli.js","sourceRoot":"","sources":["../src/create-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function didYouMean(scmd: any, commands: any): string;
2
+ //# sourceMappingURL=did-you-mean.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did-you-mean.d.ts","sourceRoot":"","sources":["../src/did-you-mean.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,IAAI,KAAA,EAAE,QAAQ,KAAA,GAAG,MAAM,CAejD"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.didYouMean = didYouMean;
7
+ const meant_1 = __importDefault(require("meant"));
8
+ function didYouMean(scmd, commands) {
9
+ const bestSimilarity = (0, meant_1.default)(scmd, commands).map((str) => {
10
+ return ` ${str}`;
11
+ });
12
+ if (bestSimilarity.length === 0)
13
+ return ``;
14
+ if (bestSimilarity.length === 1) {
15
+ return `\nDid you mean this?\n ${bestSimilarity[0]}\n`;
16
+ }
17
+ else {
18
+ return ([`\nDid you mean one of these?`]
19
+ .concat(bestSimilarity.slice(0, 3))
20
+ .join(`\n`) + `\n`);
21
+ }
22
+ }
23
+ //# sourceMappingURL=did-you-mean.js.map