@cyberismo/cli 0.0.11 → 0.0.13

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.
package/dist/index.js CHANGED
@@ -11,15 +11,19 @@
11
11
  details. You should have received a copy of the GNU Affero General Public
12
12
  License along with this program. If not, see <https://www.gnu.org/licenses/>.
13
13
  */
14
+ import { readFile } from 'node:fs/promises';
15
+ import { resolve } from 'node:path';
14
16
  import { Argument, Command, Option } from 'commander';
15
17
  import confirm from '@inquirer/confirm';
18
+ import { checkbox, select } from '@inquirer/prompts';
16
19
  import dotenv from 'dotenv';
20
+ import cliProgress from 'cli-progress';
17
21
  import { Cmd, Commands, ExportFormats, validContexts, } from '@cyberismo/data-handler';
18
22
  import { ResourceTypeParser as Parser } from './resource-type-parser.js';
19
23
  import { startServer, exportSite, previewSite } from '@cyberismo/backend';
20
- import cliProgress from 'cli-progress';
21
24
  // How many validation errors are shown when staring app, if any.
22
25
  const VALIDATION_ERROR_ROW_LIMIT = 10;
26
+ const DEFAULT_HUB = 'https://raw.githubusercontent.com/CyberismoCom/cyberismo/main/tools/assets/src/hub/';
23
27
  // To avoid duplication, fetch description and version from package.json file.
24
28
  // Importing dynamically allows filtering of warnings in cli/bin/run.
25
29
  const packageDef = (await import('../package.json', { with: { type: 'json' } }))
@@ -70,10 +74,34 @@ function handleResponse(response) {
70
74
  }
71
75
  }
72
76
  }
77
+ // Helper to get modules that have not been imported.
78
+ async function importableModules(options) {
79
+ const copyOptions = Object.assign({}, options);
80
+ copyOptions.details = true;
81
+ const importableModules = await commandHandler.command(Cmd.show, ['importableModules'], copyOptions);
82
+ if (!importableModules?.payload ||
83
+ importableModules.payload.length === 0) {
84
+ console.error('No modules available');
85
+ process.exit(1);
86
+ }
87
+ // return potential importable modules
88
+ const choices = importableModules.payload?.map((module) => ({
89
+ name: module.displayName ? module.displayName : module.name,
90
+ value: module,
91
+ })) || [];
92
+ return choices;
93
+ }
73
94
  // Load environment variables from .env file
74
95
  dotenv.config({ quiet: true });
75
96
  // Commander
76
97
  const program = new Command();
98
+ // Version information
99
+ program.command('--version', 'show binary version').action(async () => {
100
+ const pack = (await import('../package.json', {
101
+ with: { type: 'json' },
102
+ })).default;
103
+ console.log(pack.version);
104
+ });
77
105
  // CLI command handler
78
106
  const commandHandler = new Commands();
79
107
  // Ensure that all names have the same guideline.
@@ -154,6 +182,9 @@ const additionalHelpForRemove = `Sub-command help:
154
182
  remove module <name>, where
155
183
  <name> Name of the module to remove
156
184
 
185
+ remove hub <location>, where
186
+ <location> URL of hub to remove
187
+
157
188
  remove <resourceName>, where
158
189
  <resourceName> is <project prefix>/<type>/<identifier>, where
159
190
  <project prefix> Prefix for the project.
@@ -195,9 +226,10 @@ program
195
226
  .addOption(new Option('-L, --log-level <level>', 'Set the log level')
196
227
  .choices(['trace', 'debug', 'info', 'warn', 'error', 'fatal'])
197
228
  .default('fatal'));
229
+ const addCmd = program.command('add').description('Add items to the project');
198
230
  // Add card to a template
199
- program
200
- .command('add')
231
+ addCmd
232
+ .command('card')
201
233
  .description('Add card to a template')
202
234
  .argument('<template>', 'Template for a new card. \nYou can list the templates in a project with "show templates" command.')
203
235
  .argument('<cardType>', 'Card type to use for the new card. \nYou can list the card types in a project with "show cardTypes" command.')
@@ -205,7 +237,16 @@ program
205
237
  .option('-p, --project-path [path]', `${pathGuideline}`)
206
238
  .option('-r, --repeat <quantity>', 'Add multiple cards to a template')
207
239
  .action(async (template, cardType, cardKey, options) => {
208
- const result = await commandHandler.command(Cmd.add, [template, cardType, cardKey], Object.assign({}, options, program.opts()));
240
+ const result = await commandHandler.command(Cmd.add, ['card', template, cardType, cardKey], Object.assign({}, options, program.opts()));
241
+ handleResponse(result);
242
+ });
243
+ addCmd
244
+ .command('hub')
245
+ .description('Add a hub to the project')
246
+ .argument('<location>', 'Hub URL')
247
+ .option('-p, --project-path [path]', `${pathGuideline}`)
248
+ .action(async (location, options) => {
249
+ const result = await commandHandler.command(Cmd.add, ['hub', location], Object.assign({}, options, program.opts()));
209
250
  handleResponse(result);
210
251
  });
211
252
  const calculate = program
@@ -213,11 +254,13 @@ const calculate = program
213
254
  .description('Used for running logic programs');
214
255
  calculate
215
256
  .command('generate')
216
- .description('DEPRECATED: Generate a logic program')
217
- .argument('[cardKey]', 'If given, calculates on the subtree of the card')
257
+ .description('Generate a logic program')
258
+ .argument('<destination>', 'Path to an output file. Command writes the logic program to this file.')
259
+ .argument('[query]', 'Query to run')
218
260
  .option('-p, --project-path [path]', `${pathGuideline}`)
219
- .action(async () => {
220
- console.warn('This command is deprecated. Use "cyberismo calc run" directly instead.');
261
+ .action(async (destination, query, options) => {
262
+ const result = await commandHandler.command(Cmd.calc, ['generate', destination, query], Object.assign({}, options, program.opts()));
263
+ handleResponse(result);
221
264
  });
222
265
  calculate
223
266
  .command('run')
@@ -238,6 +281,7 @@ program
238
281
  .argument('[parameter3]', 'Depends on context; see below for specific remove operation')
239
282
  .addHelpText('after', additionalHelpForCreate)
240
283
  .option('-p, --project-path [path]', `${pathGuideline}`)
284
+ .option('-s, --skipModuleImport', 'Skip importing modules when creating a project')
241
285
  .action(async (type, target, parameter1, parameter2, parameter3, options) => {
242
286
  if (!type) {
243
287
  program.error(`missing required argument <type>`);
@@ -293,7 +337,39 @@ program
293
337
  // Project path must be set to 'options' when creating a project.
294
338
  options.projectPath = parameter2;
295
339
  }
296
- const result = await commandHandler.command(Cmd.create, [type, target, parameter1, parameter2, parameter3], Object.assign({}, options, program.opts()));
340
+ const commandOptions = Object.assign({}, options, program.opts());
341
+ const result = await commandHandler.command(Cmd.create, [type, target, parameter1, parameter2, parameter3], commandOptions);
342
+ // Post-handling after creating a new project.
343
+ if (type === 'project' && !commandOptions.skipModuleImport) {
344
+ try {
345
+ // add default hub
346
+ await commandHandler.command(Cmd.add, ['hub', DEFAULT_HUB], commandOptions);
347
+ // fetch modules from default hub
348
+ await commandHandler.command(Cmd.fetch, ['hubs'], commandOptions);
349
+ // show importable modules
350
+ const choices = await importableModules(commandOptions);
351
+ const selectedModules = await checkbox({
352
+ message: 'Select modules to import',
353
+ theme: { helpMode: 'always' },
354
+ choices,
355
+ });
356
+ // finally, import the selected modules
357
+ for (const module of selectedModules) {
358
+ await commandHandler.command(Cmd.import, [
359
+ 'module',
360
+ module.location,
361
+ module.branch ?? '',
362
+ module.private ? 'true' : 'false',
363
+ ], commandOptions);
364
+ }
365
+ }
366
+ catch (error) {
367
+ if (error instanceof Error) {
368
+ console.warn('Module import setup failed:', error.message);
369
+ }
370
+ console.log('Project created successfully, but module import was skipped');
371
+ }
372
+ }
297
373
  handleResponse(result);
298
374
  });
299
375
  // Edit command
@@ -352,17 +428,84 @@ program
352
428
  const result = await commandHandler.command(Cmd.export, [format, output, cardKey], Object.assign({}, options, program.opts()));
353
429
  handleResponse(result);
354
430
  });
431
+ const fetchCmd = program
432
+ .command('fetch')
433
+ .description('Retrieve external data to local file system.');
434
+ fetchCmd
435
+ .command('hubs')
436
+ .description('Retrieves module lists from hubs')
437
+ .option('-p, --project-path [path]', `${pathGuideline}`)
438
+ .action(async (options) => {
439
+ const result = await commandHandler.command(Cmd.fetch, ['hubs'], Object.assign({}, options, program.opts()));
440
+ handleResponse(result);
441
+ });
355
442
  const importCmd = program.command('import');
356
443
  // Import module
357
444
  importCmd
358
445
  .command('module')
359
- .description('Imports another project to this project as a module. Source can be local relative file path, or git HTTPS URL.')
360
- .argument('<source>', 'Path to import from')
446
+ .description('Imports another project to this project as a module. Source can be local relative file path, git HTTPS URL, or module name from fetched module list.')
447
+ .argument('[source]', 'Path to import from or module name. If omitted, shows interactive selection')
361
448
  .argument('[branch]', 'When using git URL defines the branch. Default: main')
362
449
  .argument('[useCredentials]', 'When using git URL uses credentials for cloning. Default: false')
363
450
  .option('-p, --project-path [path]', `${pathGuideline}`)
364
451
  .action(async (source, branch, useCredentials, options) => {
365
- const result = await commandHandler.command(Cmd.import, ['module', source, branch, String(useCredentials)], Object.assign({}, options, program.opts()), credentials());
452
+ let resolvedSource = source;
453
+ let resolvedBranch = branch;
454
+ let resolvedUseCredentials = useCredentials;
455
+ if (!source) {
456
+ // Interactive mode: show importable modules
457
+ try {
458
+ const choices = await importableModules(options);
459
+ const selectedModule = await select({
460
+ message: 'Select a module to import:',
461
+ choices,
462
+ });
463
+ resolvedSource = selectedModule.location;
464
+ resolvedBranch = branch || selectedModule.branch || '';
465
+ resolvedUseCredentials =
466
+ useCredentials ?? selectedModule.private ?? false;
467
+ }
468
+ catch (error) {
469
+ console.error('Error in module selection:', error instanceof Error ? error.message : String(error));
470
+ process.exit(1);
471
+ }
472
+ }
473
+ else {
474
+ try {
475
+ const projectPath = await commandHandler.getProjectPath(options.projectPath);
476
+ const moduleListPath = resolve(projectPath, '.temp/moduleList.json');
477
+ let moduleListContent = '{ "modules": [] }';
478
+ try {
479
+ moduleListContent = await readFile(moduleListPath, 'utf-8');
480
+ }
481
+ catch {
482
+ // if file is missing, either project that was created before hub support, or
483
+ // creation of project done with 'skipModuleImport' flag.
484
+ // TODO: The item should be logged once we have log that is shareable between applications.
485
+ }
486
+ const moduleList = JSON.parse(moduleListContent);
487
+ const modules = moduleList.modules || [];
488
+ const foundModule = modules?.find((m) => m.name === source);
489
+ if (foundModule) {
490
+ resolvedSource = foundModule.location;
491
+ resolvedBranch = branch || foundModule.branch || '';
492
+ resolvedUseCredentials =
493
+ useCredentials ?? foundModule.private ?? false;
494
+ }
495
+ }
496
+ catch (error) {
497
+ if (error instanceof Error) {
498
+ // TODO: The item should be logged.
499
+ console.error(error.message);
500
+ }
501
+ }
502
+ }
503
+ const result = await commandHandler.command(Cmd.import, [
504
+ 'module',
505
+ resolvedSource,
506
+ resolvedBranch,
507
+ String(resolvedUseCredentials),
508
+ ], Object.assign({}, options, program.opts()), credentials());
366
509
  handleResponse(result);
367
510
  });
368
511
  // import csv
@@ -450,6 +593,9 @@ program
450
593
  if (!parameter3 && type === 'link') {
451
594
  program.error('error: missing argument <linkType>');
452
595
  }
596
+ if (!parameter1 && type === 'hub') {
597
+ program.error('error: missing argument <location>');
598
+ }
453
599
  const result = await commandHandler.command(Cmd.remove, [type, parameter1, parameter2, parameter3], Object.assign({}, options, program.opts()));
454
600
  handleResponse(result);
455
601
  }
@@ -483,11 +629,20 @@ program
483
629
  .argument('<type>', `details can be seen from: ${Parser.listTargets('show').join(', ')}`, Parser.parseShowTypes)
484
630
  .argument('[typeDetail]', 'additional information about the requested type; for example a card key')
485
631
  .option('-d --details', 'Certain types (such as cards) can have additional details')
632
+ .option('-a --showAll', 'Show all modules, irregardless if it has been imported or not. Only with "show importableModules"')
486
633
  .option('-p, --project-path [path]', `${pathGuideline}`)
487
634
  .option('-u --show-use', 'Show where resource is used. Only used with resources, otherwise will be ignored.')
488
635
  .action(async (type, typeDetail, options) => {
489
636
  if (type !== '') {
490
637
  const result = await commandHandler.command(Cmd.show, [type, typeDetail], Object.assign({}, options, program.opts()));
638
+ // By default, do not show resources' content files
639
+ if (!options.details) {
640
+ if (typeof result.payload === 'object' &&
641
+ result.payload !== null &&
642
+ 'content' in result.payload) {
643
+ delete result.payload.content;
644
+ }
645
+ }
491
646
  handleResponse(result);
492
647
  }
493
648
  });
@@ -568,7 +723,7 @@ program
568
723
  return;
569
724
  }
570
725
  }
571
- startServer(await commandHandler.getProjectPath(options.projectPath));
726
+ await startServer(await commandHandler.getProjectPath(options.projectPath));
572
727
  });
573
728
  export default program;
574
729
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -76,6 +76,8 @@ class ShowTypes {
76
76
  'attachments',
77
77
  'card',
78
78
  'cards',
79
+ 'hubs',
80
+ 'importableModules',
79
81
  'labels',
80
82
  'module',
81
83
  'project',
@@ -104,6 +106,7 @@ class RemoveTypes {
104
106
  static ResourceLikeTypes = [
105
107
  'attachment',
106
108
  'card',
109
+ 'hub',
107
110
  'label',
108
111
  'link',
109
112
  'module',
@@ -1 +1 @@
1
- {"version":3,"file":"resource-type-parser.js","sourceRoot":"","sources":["../src/resource-type-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-type-parser.js","sourceRoot":"","sources":["../src/resource-type-parser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyberismo/cli",
3
- "version": "0.0.11",
3
+ "version": "0.0.13",
4
4
  "description": "CLI tool to handle tasks.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -15,12 +15,13 @@
15
15
  "author": "",
16
16
  "license": "AGPL-3.0",
17
17
  "dependencies": {
18
- "@inquirer/confirm": "^5.1.12",
18
+ "@inquirer/confirm": "^5.1.18",
19
+ "@inquirer/prompts": "^7.8.6",
19
20
  "cli-progress": "^3.12.0",
20
- "commander": "^14.0.0",
21
- "dotenv": "^17.2.1",
22
- "@cyberismo/data-handler": "0.0.11",
23
- "@cyberismo/backend": "0.0.11"
21
+ "commander": "^14.0.1",
22
+ "dotenv": "^17.2.2",
23
+ "@cyberismo/backend": "0.0.13",
24
+ "@cyberismo/data-handler": "0.0.13"
24
25
  },
25
26
  "types": "dist/index.d.ts",
26
27
  "type": "module",
package/src/index.ts CHANGED
@@ -12,25 +12,35 @@
12
12
  License along with this program. If not, see <https://www.gnu.org/licenses/>.
13
13
  */
14
14
 
15
+ import { readFile } from 'node:fs/promises';
16
+ import { resolve } from 'node:path';
17
+
15
18
  import { Argument, Command, Option } from 'commander';
16
19
  import confirm from '@inquirer/confirm';
20
+ import { checkbox, select } from '@inquirer/prompts';
17
21
  import dotenv from 'dotenv';
22
+ import cliProgress from 'cli-progress';
23
+
24
+ import type {
25
+ CommandOptions,
26
+ Credentials,
27
+ ModuleSettingFromHub,
28
+ requestStatus,
29
+ UpdateOperations,
30
+ } from '@cyberismo/data-handler';
18
31
  import {
19
- type CardsOptions,
20
32
  Cmd,
21
33
  Commands,
22
34
  ExportFormats,
23
- type Credentials,
24
- type requestStatus,
25
- type UpdateOperations,
26
35
  validContexts,
27
36
  } from '@cyberismo/data-handler';
28
37
  import { ResourceTypeParser as Parser } from './resource-type-parser.js';
29
38
  import { startServer, exportSite, previewSite } from '@cyberismo/backend';
30
- import cliProgress from 'cli-progress';
31
39
 
32
40
  // How many validation errors are shown when staring app, if any.
33
41
  const VALIDATION_ERROR_ROW_LIMIT = 10;
42
+ const DEFAULT_HUB =
43
+ 'https://raw.githubusercontent.com/CyberismoCom/cyberismo/main/tools/assets/src/hub/';
34
44
 
35
45
  // To avoid duplication, fetch description and version from package.json file.
36
46
  // Importing dynamically allows filtering of warnings in cli/bin/run.
@@ -86,12 +96,49 @@ function handleResponse(response: requestStatus) {
86
96
  }
87
97
  }
88
98
 
99
+ // Helper to get modules that have not been imported.
100
+ async function importableModules(options: CommandOptions<'show'>) {
101
+ const copyOptions = Object.assign({}, options);
102
+ copyOptions.details = true;
103
+ const importableModules = await commandHandler.command(
104
+ Cmd.show,
105
+ ['importableModules'],
106
+ copyOptions,
107
+ );
108
+
109
+ if (
110
+ !importableModules?.payload ||
111
+ (importableModules.payload as ModuleSettingFromHub[]).length === 0
112
+ ) {
113
+ console.error('No modules available');
114
+ process.exit(1);
115
+ }
116
+
117
+ // return potential importable modules
118
+ const choices =
119
+ (importableModules.payload as ModuleSettingFromHub[])?.map((module) => ({
120
+ name: module.displayName ? module.displayName : module.name,
121
+ value: module,
122
+ })) || [];
123
+ return choices;
124
+ }
125
+
89
126
  // Load environment variables from .env file
90
127
  dotenv.config({ quiet: true });
91
128
 
92
129
  // Commander
93
130
  const program = new Command();
94
131
 
132
+ // Version information
133
+ program.command('--version', 'show binary version').action(async () => {
134
+ const pack = (
135
+ await import('../package.json', {
136
+ with: { type: 'json' },
137
+ })
138
+ ).default;
139
+ console.log(pack.version);
140
+ });
141
+
95
142
  // CLI command handler
96
143
  const commandHandler = new Commands();
97
144
 
@@ -177,6 +224,9 @@ const additionalHelpForRemove = `Sub-command help:
177
224
  remove module <name>, where
178
225
  <name> Name of the module to remove
179
226
 
227
+ remove hub <location>, where
228
+ <location> URL of hub to remove
229
+
180
230
  remove <resourceName>, where
181
231
  <resourceName> is <project prefix>/<type>/<identifier>, where
182
232
  <project prefix> Prefix for the project.
@@ -227,9 +277,11 @@ program
227
277
  .default('fatal'),
228
278
  );
229
279
 
280
+ const addCmd = program.command('add').description('Add items to the project');
281
+
230
282
  // Add card to a template
231
- program
232
- .command('add')
283
+ addCmd
284
+ .command('card')
233
285
  .description('Add card to a template')
234
286
  .argument(
235
287
  '<template>',
@@ -247,31 +299,58 @@ program
247
299
  template: string,
248
300
  cardType: string,
249
301
  cardKey: string,
250
- options: CardsOptions,
302
+ options: CommandOptions<'add'>,
251
303
  ) => {
252
304
  const result = await commandHandler.command(
253
305
  Cmd.add,
254
- [template, cardType, cardKey],
306
+ ['card', template, cardType, cardKey],
255
307
  Object.assign({}, options, program.opts()),
256
308
  );
257
309
  handleResponse(result);
258
310
  },
259
311
  );
260
312
 
313
+ addCmd
314
+ .command('hub')
315
+ .description('Add a hub to the project')
316
+ .argument('<location>', 'Hub URL')
317
+ .option('-p, --project-path [path]', `${pathGuideline}`)
318
+ .action(async (location: string, options: CommandOptions<'add'>) => {
319
+ const result = await commandHandler.command(
320
+ Cmd.add,
321
+ ['hub', location],
322
+ Object.assign({}, options, program.opts()),
323
+ );
324
+ handleResponse(result);
325
+ });
326
+
261
327
  const calculate = program
262
328
  .command('calc')
263
329
  .description('Used for running logic programs');
264
330
 
265
331
  calculate
266
332
  .command('generate')
267
- .description('DEPRECATED: Generate a logic program')
268
- .argument('[cardKey]', 'If given, calculates on the subtree of the card')
333
+ .description('Generate a logic program')
334
+ .argument(
335
+ '<destination>',
336
+ 'Path to an output file. Command writes the logic program to this file.',
337
+ )
338
+ .argument('[query]', 'Query to run')
269
339
  .option('-p, --project-path [path]', `${pathGuideline}`)
270
- .action(async () => {
271
- console.warn(
272
- 'This command is deprecated. Use "cyberismo calc run" directly instead.',
273
- );
274
- });
340
+ .action(
341
+ async (
342
+ destination: string,
343
+ query: string,
344
+ options: CommandOptions<'calc'>,
345
+ ) => {
346
+ const result = await commandHandler.command(
347
+ Cmd.calc,
348
+ ['generate', destination, query],
349
+ Object.assign({}, options, program.opts()),
350
+ );
351
+ handleResponse(result);
352
+ },
353
+ );
275
354
 
276
355
  calculate
277
356
  .command('run')
@@ -279,7 +358,7 @@ calculate
279
358
  .argument('<filePath>', 'Path to the logic program')
280
359
  .addOption(contextOption)
281
360
  .option('-p, --project-path [path]', `${pathGuideline}`)
282
- .action(async (filePath: string, options: CardsOptions) => {
361
+ .action(async (filePath: string, options: CommandOptions<'calc'>) => {
283
362
  const result = await commandHandler.command(
284
363
  Cmd.calc,
285
364
  ['run', filePath],
@@ -313,6 +392,10 @@ program
313
392
  )
314
393
  .addHelpText('after', additionalHelpForCreate)
315
394
  .option('-p, --project-path [path]', `${pathGuideline}`)
395
+ .option(
396
+ '-s, --skipModuleImport',
397
+ 'Skip importing modules when creating a project',
398
+ )
316
399
  .action(
317
400
  async (
318
401
  type: string,
@@ -320,7 +403,7 @@ program
320
403
  parameter1: string,
321
404
  parameter2: string,
322
405
  parameter3: string,
323
- options: CardsOptions,
406
+ options: CommandOptions<'create'>,
324
407
  ) => {
325
408
  if (!type) {
326
409
  program.error(`missing required argument <type>`);
@@ -384,12 +467,57 @@ program
384
467
  // Project path must be set to 'options' when creating a project.
385
468
  options.projectPath = parameter2;
386
469
  }
387
-
470
+ const commandOptions = Object.assign({}, options, program.opts());
388
471
  const result = await commandHandler.command(
389
472
  Cmd.create,
390
473
  [type, target, parameter1, parameter2, parameter3],
391
- Object.assign({}, options, program.opts()),
474
+ commandOptions,
392
475
  );
476
+
477
+ // Post-handling after creating a new project.
478
+ if (type === 'project' && !commandOptions.skipModuleImport) {
479
+ try {
480
+ // add default hub
481
+ await commandHandler.command(
482
+ Cmd.add,
483
+ ['hub', DEFAULT_HUB],
484
+ commandOptions,
485
+ );
486
+
487
+ // fetch modules from default hub
488
+ await commandHandler.command(Cmd.fetch, ['hubs'], commandOptions);
489
+
490
+ // show importable modules
491
+ const choices = await importableModules(commandOptions);
492
+ const selectedModules = await checkbox({
493
+ message: 'Select modules to import',
494
+ theme: { helpMode: 'always' },
495
+ choices,
496
+ });
497
+
498
+ // finally, import the selected modules
499
+ for (const module of selectedModules) {
500
+ await commandHandler.command(
501
+ Cmd.import,
502
+ [
503
+ 'module',
504
+ module.location,
505
+ module.branch ?? '',
506
+ module.private ? 'true' : 'false',
507
+ ],
508
+ commandOptions,
509
+ );
510
+ }
511
+ } catch (error) {
512
+ if (error instanceof Error) {
513
+ console.warn('Module import setup failed:', error.message);
514
+ }
515
+ console.log(
516
+ 'Project created successfully, but module import was skipped',
517
+ );
518
+ }
519
+ }
520
+
393
521
  handleResponse(result);
394
522
  },
395
523
  );
@@ -400,7 +528,7 @@ program
400
528
  .description('Edit a card')
401
529
  .argument('<cardKey>', 'Card key of card')
402
530
  .option('-p, --project-path [path]', `${pathGuideline}`)
403
- .action(async (cardKey: string, options: CardsOptions) => {
531
+ .action(async (cardKey: string, options: CommandOptions<'edit'>) => {
404
532
  const result = await commandHandler.command(
405
533
  Cmd.edit,
406
534
  [cardKey],
@@ -444,7 +572,7 @@ program
444
572
  format: string,
445
573
  output: ExportFormats,
446
574
  cardKey: string,
447
- options: CardsOptions,
575
+ options: CommandOptions<'export'>,
448
576
  ) => {
449
577
  if (format === 'site') {
450
578
  const progress = new cliProgress.SingleBar(
@@ -489,15 +617,35 @@ program
489
617
  },
490
618
  );
491
619
 
620
+ const fetchCmd = program
621
+ .command('fetch')
622
+ .description('Retrieve external data to local file system.');
623
+
624
+ fetchCmd
625
+ .command('hubs')
626
+ .description('Retrieves module lists from hubs')
627
+ .option('-p, --project-path [path]', `${pathGuideline}`)
628
+ .action(async (options: CommandOptions<'fetch'>) => {
629
+ const result = await commandHandler.command(
630
+ Cmd.fetch,
631
+ ['hubs'],
632
+ Object.assign({}, options, program.opts()),
633
+ );
634
+ handleResponse(result);
635
+ });
636
+
492
637
  const importCmd = program.command('import');
493
638
 
494
639
  // Import module
495
640
  importCmd
496
641
  .command('module')
497
642
  .description(
498
- 'Imports another project to this project as a module. Source can be local relative file path, or git HTTPS URL.',
643
+ 'Imports another project to this project as a module. Source can be local relative file path, git HTTPS URL, or module name from fetched module list.',
644
+ )
645
+ .argument(
646
+ '[source]',
647
+ 'Path to import from or module name. If omitted, shows interactive selection',
499
648
  )
500
- .argument('<source>', 'Path to import from')
501
649
  .argument('[branch]', 'When using git URL defines the branch. Default: main')
502
650
  .argument(
503
651
  '[useCredentials]',
@@ -509,11 +657,74 @@ importCmd
509
657
  source: string,
510
658
  branch: string,
511
659
  useCredentials: boolean,
512
- options: CardsOptions,
660
+ options: CommandOptions<'import'>,
513
661
  ) => {
662
+ let resolvedSource = source;
663
+ let resolvedBranch = branch;
664
+ let resolvedUseCredentials = useCredentials;
665
+
666
+ if (!source) {
667
+ // Interactive mode: show importable modules
668
+ try {
669
+ const choices = await importableModules(options);
670
+ const selectedModule = await select({
671
+ message: 'Select a module to import:',
672
+ choices,
673
+ });
674
+
675
+ resolvedSource = selectedModule.location;
676
+ resolvedBranch = branch || selectedModule.branch || '';
677
+ resolvedUseCredentials =
678
+ useCredentials ?? selectedModule.private ?? false;
679
+ } catch (error) {
680
+ console.error(
681
+ 'Error in module selection:',
682
+ error instanceof Error ? error.message : String(error),
683
+ );
684
+ process.exit(1);
685
+ }
686
+ } else {
687
+ try {
688
+ const projectPath = await commandHandler.getProjectPath(
689
+ options.projectPath,
690
+ );
691
+ const moduleListPath = resolve(projectPath, '.temp/moduleList.json');
692
+ let moduleListContent = '{ "modules": [] }';
693
+ try {
694
+ moduleListContent = await readFile(moduleListPath, 'utf-8');
695
+ } catch {
696
+ // if file is missing, either project that was created before hub support, or
697
+ // creation of project done with 'skipModuleImport' flag.
698
+ // TODO: The item should be logged once we have log that is shareable between applications.
699
+ }
700
+ const moduleList = JSON.parse(moduleListContent);
701
+ const modules = moduleList.modules || [];
702
+ const foundModule = modules?.find(
703
+ (m: ModuleSettingFromHub) => m.name === source,
704
+ );
705
+
706
+ if (foundModule) {
707
+ resolvedSource = foundModule.location;
708
+ resolvedBranch = branch || foundModule.branch || '';
709
+ resolvedUseCredentials =
710
+ useCredentials ?? foundModule.private ?? false;
711
+ }
712
+ } catch (error) {
713
+ if (error instanceof Error) {
714
+ // TODO: The item should be logged.
715
+ console.error(error.message);
716
+ }
717
+ }
718
+ }
719
+
514
720
  const result = await commandHandler.command(
515
721
  Cmd.import,
516
- ['module', source, branch, String(useCredentials)],
722
+ [
723
+ 'module',
724
+ resolvedSource!,
725
+ resolvedBranch,
726
+ String(resolvedUseCredentials),
727
+ ],
517
728
  Object.assign({}, options, program.opts()),
518
729
  credentials(),
519
730
  );
@@ -531,14 +742,20 @@ importCmd
531
742
  'Card key of the parent. If defined, cards are created as children of this card',
532
743
  )
533
744
  .option('-p, --project-path [path]', `${pathGuideline}`)
534
- .action(async (csvFile: string, cardKey: string, options: CardsOptions) => {
535
- const result = await commandHandler.command(
536
- Cmd.import,
537
- ['csv', csvFile, cardKey],
538
- Object.assign({}, options, program.opts()),
539
- );
540
- handleResponse(result);
541
- });
745
+ .action(
746
+ async (
747
+ csvFile: string,
748
+ cardKey: string,
749
+ options: CommandOptions<'import'>,
750
+ ) => {
751
+ const result = await commandHandler.command(
752
+ Cmd.import,
753
+ ['csv', csvFile, cardKey],
754
+ Object.assign({}, options, program.opts()),
755
+ );
756
+ handleResponse(result);
757
+ },
758
+ );
542
759
 
543
760
  // Move command
544
761
  program
@@ -553,7 +770,11 @@ program
553
770
  )
554
771
  .option('-p, --project-path [path]', `${pathGuideline}`)
555
772
  .action(
556
- async (source: string, destination: string, options: CardsOptions) => {
773
+ async (
774
+ source: string,
775
+ destination: string,
776
+ options: CommandOptions<'move'>,
777
+ ) => {
557
778
  const result = await commandHandler.command(
558
779
  Cmd.move,
559
780
  [source, destination],
@@ -588,7 +809,11 @@ rank
588
809
  )
589
810
  .option('-p, --project-path [path]', `${pathGuideline}`)
590
811
  .action(
591
- async (cardKey: string, afterCardKey: string, options: CardsOptions) => {
812
+ async (
813
+ cardKey: string,
814
+ afterCardKey: string,
815
+ options: CommandOptions<'rank'>,
816
+ ) => {
592
817
  const result = await commandHandler.command(
593
818
  Cmd.rank,
594
819
  ['card', cardKey, afterCardKey],
@@ -608,7 +833,7 @@ rank
608
833
  'if null, rebalance the whole project, otherwise rebalance only the direct children of the card key',
609
834
  )
610
835
  .option('-p, --project-path [path]', `${pathGuideline}`)
611
- .action(async (cardKey: string, options: CardsOptions) => {
836
+ .action(async (cardKey: string, options: CommandOptions<'rank'>) => {
612
837
  const result = await commandHandler.command(
613
838
  Cmd.rank,
614
839
  ['rebalance', cardKey],
@@ -645,7 +870,7 @@ program
645
870
  parameter1: string,
646
871
  parameter2: string,
647
872
  parameter3: string,
648
- options: CardsOptions,
873
+ options: CommandOptions<'remove'>,
649
874
  ) => {
650
875
  if (type) {
651
876
  if (!parameter1) {
@@ -671,6 +896,10 @@ program
671
896
  program.error('error: missing argument <linkType>');
672
897
  }
673
898
 
899
+ if (!parameter1 && type === 'hub') {
900
+ program.error('error: missing argument <location>');
901
+ }
902
+
674
903
  const result = await commandHandler.command(
675
904
  Cmd.remove,
676
905
  [type, parameter1, parameter2, parameter3],
@@ -689,7 +918,7 @@ program
689
918
  )
690
919
  .argument('<to>', 'New project prefix')
691
920
  .option('-p, --project-path [path]', `${pathGuideline}`)
692
- .action(async (to: string, options: CardsOptions) => {
921
+ .action(async (to: string, options: CommandOptions<'rename'>) => {
693
922
  const result = await commandHandler.command(
694
923
  Cmd.rename,
695
924
  [to],
@@ -712,14 +941,20 @@ program
712
941
  )
713
942
  .addOption(contextOption)
714
943
  .option('-p, --project-path [path]', `${pathGuideline}`)
715
- .action(async (parameters: string, output: string, options: CardsOptions) => {
716
- const result = await commandHandler.command(
717
- Cmd.report,
718
- [parameters, output],
719
- Object.assign({}, options, program.opts()),
720
- );
721
- handleResponse(result);
722
- });
944
+ .action(
945
+ async (
946
+ parameters: string,
947
+ output: string,
948
+ options: CommandOptions<'report'>,
949
+ ) => {
950
+ const result = await commandHandler.command(
951
+ Cmd.report,
952
+ [parameters, output],
953
+ Object.assign({}, options, program.opts()),
954
+ );
955
+ handleResponse(result);
956
+ },
957
+ );
723
958
 
724
959
  // Show command
725
960
  program
@@ -738,18 +973,32 @@ program
738
973
  '-d --details',
739
974
  'Certain types (such as cards) can have additional details',
740
975
  )
976
+ .option(
977
+ '-a --showAll',
978
+ 'Show all modules, irregardless if it has been imported or not. Only with "show importableModules"',
979
+ )
741
980
  .option('-p, --project-path [path]', `${pathGuideline}`)
742
981
  .option(
743
982
  '-u --show-use',
744
983
  'Show where resource is used. Only used with resources, otherwise will be ignored.',
745
984
  )
746
- .action(async (type: string, typeDetail, options: CardsOptions) => {
985
+ .action(async (type: string, typeDetail, options: CommandOptions<'show'>) => {
747
986
  if (type !== '') {
748
987
  const result = await commandHandler.command(
749
988
  Cmd.show,
750
989
  [type, typeDetail],
751
990
  Object.assign({}, options, program.opts()),
752
991
  );
992
+ // By default, do not show resources' content files
993
+ if (!options.details) {
994
+ if (
995
+ typeof result.payload === 'object' &&
996
+ result.payload !== null &&
997
+ 'content' in result.payload
998
+ ) {
999
+ delete (result.payload as { content?: unknown }).content;
1000
+ }
1001
+ }
753
1002
  handleResponse(result);
754
1003
  }
755
1004
  });
@@ -765,7 +1014,11 @@ program
765
1014
  )
766
1015
  .option('-p, --project-path [path]', `${pathGuideline}`)
767
1016
  .action(
768
- async (cardKey: string, transition: string, options: CardsOptions) => {
1017
+ async (
1018
+ cardKey: string,
1019
+ transition: string,
1020
+ options: CommandOptions<'transition'>,
1021
+ ) => {
769
1022
  const result = await commandHandler.command(
770
1023
  Cmd.transition,
771
1024
  [cardKey, transition],
@@ -803,7 +1056,7 @@ program
803
1056
  key: string,
804
1057
  value: string,
805
1058
  newValue: string,
806
- options: CardsOptions,
1059
+ options: CommandOptions<'update'>,
807
1060
  ) => {
808
1061
  const result = await commandHandler.command(
809
1062
  Cmd.update,
@@ -822,7 +1075,7 @@ program
822
1075
  )
823
1076
  .argument('[moduleName]', 'Module name')
824
1077
  .option('-p, --project-path [path]', `${pathGuideline}`)
825
- .action(async (moduleName, options: CardsOptions) => {
1078
+ .action(async (moduleName, options: CommandOptions<'updateModules'>) => {
826
1079
  const result = await commandHandler.command(
827
1080
  Cmd.updateModules,
828
1081
  [moduleName],
@@ -837,7 +1090,7 @@ program
837
1090
  .command('validate')
838
1091
  .description('Validate project structure')
839
1092
  .option('-p, --project-path [path]', `${pathGuideline}`)
840
- .action(async (options: CardsOptions) => {
1093
+ .action(async (options: CommandOptions<'validate'>) => {
841
1094
  const result = await commandHandler.command(
842
1095
  Cmd.validate,
843
1096
  [],
@@ -861,7 +1114,7 @@ program
861
1114
  'Project watches changes in .cards folder resources',
862
1115
  )
863
1116
  .option('-p, --project-path [path]', `${pathGuideline}`)
864
- .action(async (options: CardsOptions) => {
1117
+ .action(async (options: CommandOptions<'start'>) => {
865
1118
  // validate project
866
1119
  const result = await commandHandler.command(
867
1120
  Cmd.validate,
@@ -889,7 +1142,7 @@ program
889
1142
  return;
890
1143
  }
891
1144
  }
892
- startServer(await commandHandler.getProjectPath(options.projectPath));
1145
+ await startServer(await commandHandler.getProjectPath(options.projectPath));
893
1146
  });
894
1147
 
895
1148
  export default program;
@@ -84,6 +84,8 @@ abstract class ShowTypes {
84
84
  'attachments',
85
85
  'card',
86
86
  'cards',
87
+ 'hubs',
88
+ 'importableModules',
87
89
  'labels',
88
90
  'module',
89
91
  'project',
@@ -117,6 +119,7 @@ abstract class RemoveTypes {
117
119
  private static ResourceLikeTypes = [
118
120
  'attachment',
119
121
  'card',
122
+ 'hub',
120
123
  'label',
121
124
  'link',
122
125
  'module',