@sonisoft/now-sdk-ext-cli 1.1.0-alpha.3 → 2.0.0-alpha.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 (41) hide show
  1. package/README.md +1825 -34
  2. package/dist/commands/app/index.d.ts +4 -1
  3. package/dist/commands/app/index.d.ts.map +1 -1
  4. package/dist/commands/app/index.js +25 -4
  5. package/dist/commands/app/index.js.map +1 -1
  6. package/dist/commands/app/install.d.ts +4 -1
  7. package/dist/commands/app/install.d.ts.map +1 -1
  8. package/dist/commands/app/install.js +40 -6
  9. package/dist/commands/app/install.js.map +1 -1
  10. package/dist/commands/app/repo-install.d.ts +19 -0
  11. package/dist/commands/app/repo-install.d.ts.map +1 -0
  12. package/dist/commands/app/repo-install.js +173 -0
  13. package/dist/commands/app/repo-install.js.map +1 -0
  14. package/dist/commands/app/repo-list.d.ts +17 -0
  15. package/dist/commands/app/repo-list.d.ts.map +1 -0
  16. package/dist/commands/app/repo-list.js +152 -0
  17. package/dist/commands/app/repo-list.js.map +1 -0
  18. package/dist/commands/app/uninstall.d.ts +16 -0
  19. package/dist/commands/app/uninstall.d.ts.map +1 -0
  20. package/dist/commands/app/uninstall.js +70 -0
  21. package/dist/commands/app/uninstall.js.map +1 -0
  22. package/dist/commands/atf/index.d.ts +71 -0
  23. package/dist/commands/atf/index.d.ts.map +1 -0
  24. package/dist/commands/atf/index.js +256 -0
  25. package/dist/commands/atf/index.js.map +1 -0
  26. package/dist/commands/exec/index.d.ts +17 -3
  27. package/dist/commands/exec/index.d.ts.map +1 -1
  28. package/dist/commands/exec/index.js +286 -26
  29. package/dist/commands/exec/index.js.map +1 -1
  30. package/dist/commands/log/index.d.ts +46 -0
  31. package/dist/commands/log/index.d.ts.map +1 -0
  32. package/dist/commands/log/index.js +418 -0
  33. package/dist/commands/log/index.js.map +1 -0
  34. package/dist/common/authenticated-command.js +2 -2
  35. package/dist/common/authenticated-command.js.map +1 -1
  36. package/dist/common/scope-autocomplete.d.ts +20 -0
  37. package/dist/common/scope-autocomplete.d.ts.map +1 -0
  38. package/dist/common/scope-autocomplete.js +94 -0
  39. package/dist/common/scope-autocomplete.js.map +1 -0
  40. package/oclif.manifest.json +691 -12
  41. package/package.json +31 -12
@@ -2,7 +2,10 @@ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
2
2
  export declare class App extends AuthenticatedCommand<typeof App> {
3
3
  static args: {};
4
4
  static description: string;
5
- static examples: string[];
5
+ static examples: {
6
+ description: string;
7
+ command: string;
8
+ }[];
6
9
  static flags: {
7
10
  uninstall: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
8
11
  applicationId: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/app/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAG5E,qBAAa,GAAI,SAAQ,oBAAoB,CAAC,OAAO,GAAG,CAAC;IAEvD,MAAM,CAAC,IAAI,KACV;IAED,MAAM,CAAC,WAAW,SAAM;IACxB,MAAM,CAAC,QAAQ,WAId;IAED,MAAM,CAAC,KAAK;;;;MAMX;IAED,OAAO,CAAC,OAAO,CAAmC;IAE5C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA4C3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/app/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAG5E,qBAAa,GAAI,SAAQ,oBAAoB,CAAC,OAAO,GAAG,CAAC;IAEvD,MAAM,CAAC,IAAI,KACV;IAED,MAAM,CAAC,WAAW,SAYqC;IAEvD,MAAM,CAAC,QAAQ;;;QAad;IAED,MAAM,CAAC,KAAK;;;;MAMX;IAED,OAAO,CAAC,OAAO,CAAmC;IAE5C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA4C3B"}
@@ -6,11 +6,32 @@ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
6
6
  import { isNilOrEmpty } from '../../common/utils.js';
7
7
  export class App extends AuthenticatedCommand {
8
8
  static args = {};
9
- static description = '';
9
+ static description = 'Manage ServiceNow applications: uninstall applications from your instance.\n\n' +
10
+ 'This command provides programmatic control over ServiceNow applications, allowing you to uninstall ' +
11
+ 'applications remotely. This is useful for automated environment cleanup, testing workflows, and ' +
12
+ 'application lifecycle management.\n\n' +
13
+ 'Features:\n' +
14
+ ' • Uninstall applications by sys_id and scope\n' +
15
+ ' • Automated application removal in CI/CD pipelines\n' +
16
+ ' • Proper cleanup and rollback handling\n' +
17
+ ' • Detailed logging and error reporting\n\n' +
18
+ 'Requirements:\n' +
19
+ ' • User must have admin role\n' +
20
+ ' • Application must be in a removable state\n' +
21
+ ' • Both application sys_id and scope are required';
10
22
  static examples = [
11
- `<%= config.bin %> <%= command.id %> exec global test.js --auth sn_alias
12
- test
13
- `,
23
+ {
24
+ description: 'Uninstall an application by sys_id and scope',
25
+ command: '<%= config.bin %> <%= command.id %> --uninstall --applicationId a1b2c3d4e5f6 --scope x_my_custom_app --auth dev-instance',
26
+ },
27
+ {
28
+ description: 'Uninstall with enhanced debug logging',
29
+ command: '<%= config.bin %> <%= command.id %> -u -i a1b2c3d4e5f6 -s x_my_custom_app --auth dev-instance --log-level debug',
30
+ },
31
+ {
32
+ description: 'Uninstall using short flags',
33
+ command: '<%= config.bin %> <%= command.id %> -u -i a1b2c3d4e5f6 -s x_my_custom_app -a dev-instance',
34
+ },
14
35
  ];
15
36
  static flags = {
16
37
  // from: Flags.string({char: 'f', description: 'Who is saying hello', required: true}),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/app/index.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,+CAA+C;AAC/C,OAAO,EAAgB,KAAK,EAAC,MAAM,aAAa,CAAA;AAChD,OAAO,EAAG,WAAW,EAAiD,MAAM,EAAE,aAAa,EAAuB,MAAM,4BAA4B,CAAC;AAIrJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,OAAO,GAAI,SAAQ,oBAAgC;IAEvD,MAAM,CAAC,IAAI,GAAG,EACb,CAAA;IAED,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,MAAM,CAAC,QAAQ,GAAG;QAChB;;CAEH;KACE,CAAA;IAED,MAAM,CAAC,KAAK,GAAG;QACb,uFAAuF;QACvF,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC;QAExF,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC;QAC5F,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC;KACxF,CAAA;IAEO,OAAO,GAAU,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;IAElD,KAAK,CAAC,GAAG;QACP,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE5C,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAIxB,IAAG,KAAK,CAAC,SAAS,EAAC,CAAC;YACpB,IAAG,CAAC,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAC,CAAC;gBACnE,IAAG,CAAC;oBAEA,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;oBAE7B,IAAG,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,EAAC,CAAC;wBACnD,IAAI,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;wBAClE,OAAO;oBACT,CAAC;oBAED,IAAG,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAAC,CAAC;wBAC3C,IAAI,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;wBACzD,OAAO;oBACT,CAAC;oBAED,IAAI,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;oBAC7C,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAe,EAAG,KAAK,CAAC,aAAuB,CAAC,CAAC;oBAClG,MAAM,GAAG,CAAC,iBAAiB,EAAE,CAAC;oBAC9B,MAAM,GAAG,CAAC,SAAS,EAAE,CAAC;gBAG1B,CAAC;gBAAA,OAAM,KAAK,EAAC,CAAC;oBACZ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,KAAc,CAAC,CAAC;oBACvF,IAAI,CAAC,KAAK,CAAC,KAAc,CAAC,CAAC;gBAC7B,CAAC;YAEH,CAAC;iBAAI,CAAC;gBACJ,IAAI,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAC3E,CAAC;QAGD,CAAC;aAAI,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACpC,CAAC;IAEH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/app/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,10 @@ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
2
2
  export declare class Install extends AuthenticatedCommand<typeof Install> {
3
3
  static args: {};
4
4
  static description: string;
5
- static examples: string[];
5
+ static examples: {
6
+ command: string;
7
+ description: string;
8
+ }[];
6
9
  static flags: {
7
10
  batch: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
8
11
  definitionPath: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/app/install.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAE5E,qBAAa,OAAQ,SAAQ,oBAAoB,CAAC,OAAO,OAAO,CAAC;IAE/D,MAAM,CAAC,IAAI,KACV;IAED,MAAM,CAAC,WAAW,SAAkE;IAEpF,MAAM,CAAC,QAAQ,WAId;IAED,MAAM,CAAC,KAAK;;;MAKX;IAED,OAAO,CAAC,OAAO,CAA0C;IAEnD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2B3B"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/app/install.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAE5E,qBAAa,OAAQ,SAAQ,oBAAoB,CAAC,OAAO,OAAO,CAAC;IAE/D,MAAM,CAAC,IAAI,KACV;IAED,MAAM,CAAC,WAAW,SAiB2B;IAE7C,MAAM,CAAC,QAAQ;;;QAad;IAED,MAAM,CAAC,KAAK;;;MAWX;IAED,OAAO,CAAC,OAAO,CAA0C;IAEnD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2B3B"}
@@ -5,15 +5,49 @@ import path from 'node:path';
5
5
  import { AuthenticatedCommand } from '../../common/authenticated-command.js';
6
6
  export class Install extends AuthenticatedCommand {
7
7
  static args = {};
8
- static description = 'Install or Upgrade application(s) from batch definition file';
8
+ static description = 'Install or upgrade multiple ServiceNow applications from a batch definition file.\n\n' +
9
+ 'This command enables automated installation and upgrade of multiple applications using a JSON definition file. ' +
10
+ 'Perfect for setting up new environments, deploying application bundles, or managing application dependencies. ' +
11
+ 'The batch file can specify multiple applications with their versions, scopes, and installation options.\n\n' +
12
+ 'Features:\n' +
13
+ ' • Install multiple applications in a single operation\n' +
14
+ ' • Upgrade existing applications to new versions\n' +
15
+ ' • Control demo data loading per application\n' +
16
+ ' • Detailed installation progress and results\n' +
17
+ ' • Automatic dependency resolution\n' +
18
+ ' • Rollback support on failures\n\n' +
19
+ 'Batch Definition Format:\n' +
20
+ ' The JSON file should contain an "applications" array with objects defining:\n' +
21
+ ' • name: Application name\n' +
22
+ ' • scope: Application scope (e.g., x_my_app)\n' +
23
+ ' • version: Target version number\n' +
24
+ ' • load_demo_data: Whether to load demo data (optional)\n' +
25
+ ' • notes: Installation notes (optional)';
9
26
  static examples = [
10
- `<%= config.bin %> <%= command.id %> exec global test.js --auth sn_alias
11
- test
12
- `,
27
+ {
28
+ command: '<%= config.bin %> <%= command.id %> --batch --definitionPath ./apps-to-install.json --auth dev-instance',
29
+ description: 'Install applications from a batch definition file',
30
+ },
31
+ {
32
+ command: '<%= config.bin %> <%= command.id %> -b -d ./batch-apps.json -a dev-instance',
33
+ description: 'Install with short flags',
34
+ },
35
+ {
36
+ command: '<%= config.bin %> <%= command.id %> -b -d ./apps.json -a dev-instance --log-level debug',
37
+ description: 'Install with debug logging to troubleshoot issues',
38
+ },
13
39
  ];
14
40
  static flags = {
15
- batch: Flags.boolean({ char: 'b', description: 'Install from batch definition file', required: false }),
16
- definitionPath: Flags.string({ char: 'd', description: 'Batch definition file', required: false }),
41
+ batch: Flags.boolean({
42
+ char: 'b',
43
+ description: 'Enable batch installation mode from definition file',
44
+ required: false
45
+ }),
46
+ definitionPath: Flags.string({
47
+ char: 'd',
48
+ description: 'Path to JSON batch definition file containing applications to install',
49
+ required: false
50
+ }),
17
51
  };
18
52
  _logger = new Logger("AppInstallCommand");
19
53
  async run() {
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/app/install.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAEtD,OAAO,EAAgB,KAAK,EAAC,MAAM,aAAa,CAAA;AAChD,OAAO,EAAgB,kBAAkB,EAA6B,MAAM,EAAE,aAAa,EAAuB,MAAM,4BAA4B,CAAC;AAErJ,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAE5E,MAAM,OAAO,OAAQ,SAAQ,oBAAoC;IAE/D,MAAM,CAAC,IAAI,GAAG,EACb,CAAA;IAED,MAAM,CAAC,WAAW,GAAG,8DAA8D,CAAC;IAEpF,MAAM,CAAC,QAAQ,GAAG;QAChB;;CAEH;KACE,CAAA;IAED,MAAM,CAAC,KAAK,GAAG;QAEb,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,oCAAoC,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC;QACrG,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC;KAEjG,CAAA;IAEO,OAAO,GAAU,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAEzD,KAAK,CAAC,GAAG;QACP,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEhD,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAE1C,IAAG,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,EAAC,CAAC;YAClG,IAAG,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAE3B,IAAG,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,EAAC,CAAC;oBACpD,IAAI,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;oBACrE,OAAO;gBACT,CAAC;gBAED,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAwB,CAAC,CAAC,CAAC;gBAC3F,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE9B,CAAC;YAAA,OAAM,KAAK,EAAC,CAAC;gBACZ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAc,CAAC,CAAC;gBACtD,IAAI,CAAC,KAAK,CAAC,KAAc,CAAC,CAAC;YAC7B,CAAC;QAGH,CAAC;IAEH,CAAC"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/app/install.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAEtD,OAAO,EAAgB,KAAK,EAAC,MAAM,aAAa,CAAA;AAChD,OAAO,EAAgB,kBAAkB,EAA6B,MAAM,EAAE,aAAa,EAAuB,MAAM,4BAA4B,CAAC;AAErJ,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAE5E,MAAM,OAAO,OAAQ,SAAQ,oBAAoC;IAE/D,MAAM,CAAC,IAAI,GAAG,EACb,CAAA;IAED,MAAM,CAAC,WAAW,GAAG,uFAAuF;QAC1G,iHAAiH;QACjH,gHAAgH;QAChH,6GAA6G;QAC7G,aAAa;QACb,2DAA2D;QAC3D,qDAAqD;QACrD,iDAAiD;QACjD,kDAAkD;QAClD,uCAAuC;QACvC,sCAAsC;QACtC,4BAA4B;QAC5B,iFAAiF;QACjF,8BAA8B;QAC9B,iDAAiD;QACjD,sCAAsC;QACtC,4DAA4D;QAC5D,0CAA0C,CAAC;IAE7C,MAAM,CAAC,QAAQ,GAAG;QAChB;YACE,OAAO,EAAE,yGAAyG;YAClH,WAAW,EAAE,mDAAmD;SACjE;QACD;YACE,OAAO,EAAE,6EAA6E;YACtF,WAAW,EAAE,0BAA0B;SACxC;QACD;YACE,OAAO,EAAE,yFAAyF;YAClG,WAAW,EAAE,mDAAmD;SACjE;KACF,CAAA;IAED,MAAM,CAAC,KAAK,GAAG;QACb,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,qDAAqD;YAClE,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC;YAC3B,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,uEAAuE;YACpF,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH,CAAA;IAEO,OAAO,GAAU,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAEzD,KAAK,CAAC,GAAG;QACP,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEhD,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAE1C,IAAG,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,EAAC,CAAC;YAClG,IAAG,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAE3B,IAAG,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,EAAC,CAAC;oBACpD,IAAI,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;oBACrE,OAAO;gBACT,CAAC;gBAED,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAwB,CAAC,CAAC,CAAC;gBAC3F,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE9B,CAAC;YAAA,OAAM,KAAK,EAAC,CAAC;gBACZ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAc,CAAC,CAAC;gBACtD,IAAI,CAAC,KAAK,CAAC,KAAc,CAAC,CAAC;YAC7B,CAAC;QAGH,CAAC;IAEH,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
2
+ export declare class RepoInstall extends AuthenticatedCommand<typeof RepoInstall> {
3
+ static args: {};
4
+ static description: string;
5
+ static examples: {
6
+ command: string;
7
+ description: string;
8
+ }[];
9
+ static flags: {
10
+ 'no-wait': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
11
+ 'poll-interval': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
12
+ scope: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
13
+ timeout: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
14
+ version: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
15
+ };
16
+ private _logger;
17
+ run(): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=repo-install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-install.d.ts","sourceRoot":"","sources":["../../../src/commands/app/repo-install.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAG5E,qBAAa,WAAY,SAAQ,oBAAoB,CAAC,OAAO,WAAW,CAAC;IAEvE,MAAM,CAAC,IAAI,KACV;IAED,MAAM,CAAC,WAAW,SAqBiD;IAEnE,MAAM,CAAC,QAAQ;;;QAqBd;IAED,MAAM,CAAC,KAAK;;;;;;MA4BX;IAED,OAAO,CAAC,OAAO,CAA8C;IAEvD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA+G3B"}
@@ -0,0 +1,173 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ /* eslint-disable camelcase */
3
+ import { Flags } from '@oclif/core';
4
+ import { AppRepoApplication, CompanyApplications, Logger, NowStringUtil } from '@sonisoft/now-sdk-ext-core';
5
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
6
+ export class RepoInstall extends AuthenticatedCommand {
7
+ static args = {};
8
+ static description = 'Install an application from your ServiceNow company repository.\n\n' +
9
+ 'This command installs an application from your company\'s internal application repository. ' +
10
+ 'You can specify the application by its scope name, and optionally specify a particular version. ' +
11
+ 'The command will automatically look up the application details and initiate the installation.\n\n' +
12
+ 'Features:\n' +
13
+ ' • Install applications by scope name\n' +
14
+ ' • Automatic lookup of application sys_id\n' +
15
+ ' • Optional version specification (defaults to latest)\n' +
16
+ ' • Wait for installation completion with progress monitoring\n' +
17
+ ' • No-wait mode for background installations\n' +
18
+ ' • Configurable polling intervals and timeouts\n' +
19
+ ' • Detailed installation status and error reporting\n\n' +
20
+ 'Installation Process:\n' +
21
+ ' 1. Looks up the application in the company repository by scope\n' +
22
+ ' 2. Verifies the application is available and installable\n' +
23
+ ' 3. Initiates the installation via CI/CD API\n' +
24
+ ' 4. Monitors progress until completion (unless --no-wait specified)\n' +
25
+ ' 5. Reports final status and any errors\n\n' +
26
+ 'Requirements:\n' +
27
+ ' • User must have sn_cicd.sys_ci_automation role\n' +
28
+ ' • Application must exist in company repository\n' +
29
+ ' • Application must not be already installed (or use upgrade)';
30
+ static examples = [
31
+ {
32
+ command: '<%= config.bin %> <%= command.id %> --scope x_my_custom_app --auth dev-instance',
33
+ description: 'Install application by scope (latest version)',
34
+ },
35
+ {
36
+ command: '<%= config.bin %> <%= command.id %> --scope x_my_app --version 2.1.0 --auth dev-instance',
37
+ description: 'Install specific version of an application',
38
+ },
39
+ {
40
+ command: '<%= config.bin %> <%= command.id %> --scope x_my_app --no-wait --auth dev-instance',
41
+ description: 'Install without waiting for completion',
42
+ },
43
+ {
44
+ command: '<%= config.bin %> <%= command.id %> -s x_my_app -a dev-instance --timeout 3600000',
45
+ description: 'Install with custom timeout (1 hour)',
46
+ },
47
+ {
48
+ command: '<%= config.bin %> <%= command.id %> -s x_my_app -a dev-instance --log-level debug',
49
+ description: 'Install with debug logging',
50
+ },
51
+ ];
52
+ static flags = {
53
+ 'no-wait': Flags.boolean({
54
+ char: 'w',
55
+ default: false,
56
+ description: 'Do not wait for installation to complete',
57
+ required: false
58
+ }),
59
+ 'poll-interval': Flags.integer({
60
+ default: 5000,
61
+ description: 'Polling interval in milliseconds (default: 5000)',
62
+ required: false
63
+ }),
64
+ scope: Flags.string({
65
+ char: 's',
66
+ description: 'Application scope (e.g., x_my_custom_app)',
67
+ required: true
68
+ }),
69
+ timeout: Flags.integer({
70
+ char: 't',
71
+ default: 1_800_000,
72
+ description: 'Installation timeout in milliseconds (default: 1800000 = 30 min)',
73
+ required: false
74
+ }),
75
+ version: Flags.string({
76
+ char: 'v',
77
+ description: 'Specific version to install (defaults to latest)',
78
+ required: false
79
+ }),
80
+ };
81
+ _logger = new Logger("AppRepoInstallCommand");
82
+ async run() {
83
+ const { args, flags } = await this.parse(RepoInstall);
84
+ try {
85
+ this.log("App Repository Install Command Executed.\n");
86
+ if (NowStringUtil.isStringEmpty(flags.scope)) {
87
+ this.error("Scope is required to install an application from the company repository");
88
+ return;
89
+ }
90
+ // Step 1: Look up the application in the company repository
91
+ this.log(`Looking up application with scope: ${flags.scope}...`);
92
+ const companyApps = new CompanyApplications(this.instance);
93
+ const app = await companyApps.getCompanyApplicationByScope(flags.scope);
94
+ if (!app) {
95
+ this.error(`Application with scope '${flags.scope}' not found in company repository`);
96
+ return;
97
+ }
98
+ this.log(`✓ Found application: ${app.name}`);
99
+ this.log(` Scope: ${app.scope}`);
100
+ this.log(` Sys ID: ${app.sys_id}`);
101
+ this.log(` Latest Version: ${app.latest_version}`);
102
+ this.log(` Installed: ${app.isInstalled ? 'Yes (v' + app.version + ')' : 'No'}`);
103
+ // Check if already installed
104
+ if (app.isInstalled && !flags.version) {
105
+ this.log(`\n⚠️ Application is already installed (version ${app.version})`);
106
+ this.log('To upgrade or reinstall, specify a different version with --version');
107
+ return;
108
+ }
109
+ // Check if installation is allowed
110
+ if (!app.can_install_or_upgrade) {
111
+ this.error(`Application '${app.name}' cannot be installed or upgraded at this time`);
112
+ return;
113
+ }
114
+ // Determine version to install
115
+ const targetVersion = flags.version || app.latest_version;
116
+ this.log(`\nTarget version: ${targetVersion}`);
117
+ // Show dependencies if any
118
+ if (app.dependencies) {
119
+ this.log(`Dependencies: ${app.dependencies}`);
120
+ }
121
+ // Step 2: Prepare install request
122
+ const installRequest = {
123
+ scope: app.scope,
124
+ sys_id: app.sys_id,
125
+ version: targetVersion
126
+ };
127
+ this.log(`\nInitiating installation from company repository...`);
128
+ const appRepo = new AppRepoApplication(this.instance);
129
+ // Step 3: Install
130
+ if (flags['no-wait']) {
131
+ // Non-blocking installation
132
+ const response = await appRepo.installFromAppRepo(installRequest);
133
+ this.log(`✓ Installation initiated successfully`);
134
+ this.log(` Progress ID: ${response.links.progress.id}`);
135
+ this.log(` Status: ${response.status_label}`);
136
+ this.log(` Progress: ${response.percent_complete}%`);
137
+ this.log(`\nInstallation is running in the background.`);
138
+ this.log(`Use the progress ID to monitor status if needed.`);
139
+ }
140
+ else {
141
+ // Blocking installation with progress monitoring
142
+ this.log(`Waiting for installation to complete...`);
143
+ this.log(`(Poll interval: ${flags['poll-interval']}ms, Timeout: ${flags.timeout}ms)\n`);
144
+ const result = await appRepo.installFromAppRepoAndWait(installRequest, flags['poll-interval'], flags.timeout);
145
+ if (result.success) {
146
+ this.log('\n✓ Installation completed successfully!');
147
+ this.log(` Application: ${app.name}`);
148
+ this.log(` Scope: ${app.scope}`);
149
+ this.log(` Version: ${targetVersion}`);
150
+ this.log(` Final Status: ${result.status_label}`);
151
+ this.log(` Progress: ${result.percent_complete}%`);
152
+ // Verify installation
153
+ this.log(`\nVerifying installation...`);
154
+ const verifyApp = await companyApps.getCompanyApplicationByScope(app.scope);
155
+ if (verifyApp?.isInstalled) {
156
+ this.log(`✓ Verified: Application is now installed (version ${verifyApp.version})`);
157
+ }
158
+ }
159
+ else {
160
+ this.log('\n✗ Installation failed');
161
+ this.log(` Status: ${result.status_label}`);
162
+ this.log(` Error: ${result.error || result.status_message}`);
163
+ this.error(`Installation failed: ${result.error || result.status_label}`);
164
+ }
165
+ }
166
+ }
167
+ catch (error) {
168
+ this._logger.error("Error occurred when installing application from company repository.", error);
169
+ this.error(error);
170
+ }
171
+ }
172
+ }
173
+ //# sourceMappingURL=repo-install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-install.js","sourceRoot":"","sources":["../../../src/commands/app/repo-install.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,8BAA8B;AAE9B,OAAO,EAAgB,KAAK,EAAC,MAAM,aAAa,CAAA;AAChD,OAAO,EACL,kBAAkB,EAIlB,mBAAmB,EACnB,MAAM,EACN,aAAa,EACd,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAG5E,MAAM,OAAO,WAAY,SAAQ,oBAAwC;IAEvE,MAAM,CAAC,IAAI,GAAG,EACb,CAAA;IAED,MAAM,CAAC,WAAW,GAAG,qEAAqE;QACxF,6FAA6F;QAC7F,kGAAkG;QAClG,mGAAmG;QACnG,aAAa;QACb,0CAA0C;QAC1C,8CAA8C;QAC9C,2DAA2D;QAC3D,iEAAiE;QACjE,iDAAiD;QACjD,mDAAmD;QACnD,0DAA0D;QAC1D,yBAAyB;QACzB,oEAAoE;QACpE,8DAA8D;QAC9D,iDAAiD;QACjD,wEAAwE;QACxE,8CAA8C;QAC9C,iBAAiB;QACjB,qDAAqD;QACrD,oDAAoD;QACpD,gEAAgE,CAAC;IAEnE,MAAM,CAAC,QAAQ,GAAG;QAChB;YACE,OAAO,EAAE,iFAAiF;YAC1F,WAAW,EAAE,+CAA+C;SAC7D;QACD;YACE,OAAO,EAAE,0FAA0F;YACnG,WAAW,EAAE,4CAA4C;SAC1D;QACD;YACE,OAAO,EAAE,oFAAoF;YAC7F,WAAW,EAAE,wCAAwC;SACtD;QACD;YACE,OAAO,EAAE,mFAAmF;YAC5F,WAAW,EAAE,sCAAsC;SACpD;QACD;YACE,OAAO,EAAE,mFAAmF;YAC5F,WAAW,EAAE,4BAA4B;SAC1C;KACF,CAAA;IAED,MAAM,CAAC,KAAK,GAAG;QACb,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,0CAA0C;YACvD,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC;YAC7B,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,kDAAkD;YAC/D,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,kEAAkE;YAC/E,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,kDAAkD;YAC/D,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH,CAAA;IAEO,OAAO,GAAU,IAAI,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAE7D,KAAK,CAAC,GAAG;QACP,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAEvD,IAAI,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;gBACtF,OAAO;YACT,CAAC;YAED,4DAA4D;YAC5D,IAAI,CAAC,GAAG,CAAC,sCAAsC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;YACjE,MAAM,WAAW,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3D,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,4BAA4B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAExE,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,IAAI,CAAC,KAAK,CAAC,2BAA2B,KAAK,CAAC,KAAK,mCAAmC,CAAC,CAAC;gBACtF,OAAO;YACT,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,wBAAwB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAEvF,6BAA6B;YAC7B,IAAI,GAAG,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,mDAAmD,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;gBAC5E,IAAI,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;gBAChF,OAAO;YACT,CAAC;YAED,mCAAmC;YACnC,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;gBAChC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,IAAI,gDAAgD,CAAC,CAAC;gBACrF,OAAO;YACT,CAAC;YAED,+BAA+B;YAC/B,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,cAAc,CAAC;YAC1D,IAAI,CAAC,GAAG,CAAC,qBAAqB,aAAa,EAAE,CAAC,CAAC;YAE/C,2BAA2B;YAC3B,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;YAChD,CAAC;YAED,kCAAkC;YAClC,MAAM,cAAc,GAA0B;gBAC5C,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,aAAa;aACvB,CAAC;YAEF,IAAI,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YAEjE,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEtD,kBAAkB;YAClB,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrB,4BAA4B;gBAC5B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;gBAElE,IAAI,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;gBAClD,IAAI,CAAC,GAAG,CAAC,sBAAsB,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7D,IAAI,CAAC,GAAG,CAAC,sBAAsB,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;gBACxD,IAAI,CAAC,GAAG,CAAC,sBAAsB,QAAQ,CAAC,gBAAgB,GAAG,CAAC,CAAC;gBAC7D,IAAI,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;gBACzD,IAAI,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAE/D,CAAC;iBAAM,CAAC;gBACN,iDAAiD;gBACjD,IAAI,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;gBACpD,IAAI,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,eAAe,CAAC,gBAAgB,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;gBAExF,MAAM,MAAM,GAA2B,MAAM,OAAO,CAAC,yBAAyB,CAC5E,cAAc,EACd,KAAK,CAAC,eAAe,CAAC,EACtB,KAAK,CAAC,OAAO,CACd,CAAC;gBAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;oBACrD,IAAI,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC3C,IAAI,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC5C,IAAI,CAAC,GAAG,CAAC,sBAAsB,aAAa,EAAE,CAAC,CAAC;oBAChD,IAAI,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;oBACtD,IAAI,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC;oBAE3D,sBAAsB;oBACtB,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;oBACxC,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,4BAA4B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC5E,IAAI,SAAS,EAAE,WAAW,EAAE,CAAC;wBAC3B,IAAI,CAAC,GAAG,CAAC,qDAAqD,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC;oBACtF,CAAC;gBAEH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;oBACpC,IAAI,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;oBACtD,IAAI,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;oBACxE,IAAI,CAAC,KAAK,CAAC,wBAAwB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qEAAqE,EAAE,KAAc,CAAC,CAAC;YAC1G,IAAI,CAAC,KAAK,CAAC,KAAc,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
2
+ export declare class RepoList extends AuthenticatedCommand<typeof RepoList> {
3
+ static args: {};
4
+ static description: string;
5
+ static examples: {
6
+ command: string;
7
+ description: string;
8
+ }[];
9
+ static flags: {
10
+ installable: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
11
+ installed: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
12
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
13
+ };
14
+ private _logger;
15
+ run(): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=repo-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-list.d.ts","sourceRoot":"","sources":["../../../src/commands/app/repo-list.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAG5E,qBAAa,QAAS,SAAQ,oBAAoB,CAAC,OAAO,QAAQ,CAAC;IAEjE,MAAM,CAAC,IAAI,KACV;IAED,MAAM,CAAC,WAAW,SAgBoC;IAEtD,MAAM,CAAC,QAAQ;;;QAqBd;IAED,MAAM,CAAC,KAAK;;;;MAmBX;IAED,OAAO,CAAC,OAAO,CAA2C;IAEpD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAiG3B"}
@@ -0,0 +1,152 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ /* eslint-disable camelcase */
3
+ import { Flags } from '@oclif/core';
4
+ import { CompanyApplications, Logger } from '@sonisoft/now-sdk-ext-core';
5
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
6
+ export class RepoList extends AuthenticatedCommand {
7
+ static args = {};
8
+ static description = 'List applications available in your ServiceNow company repository.\n\n' +
9
+ 'This command retrieves and displays all applications that are available in your company\'s ' +
10
+ 'internal application repository. These are applications that have been published internally ' +
11
+ 'and are available for installation across your ServiceNow instances.\n\n' +
12
+ 'Features:\n' +
13
+ ' • List all available company repository applications\n' +
14
+ ' • Filter to show only installed applications\n' +
15
+ ' • Filter to show only installable (not yet installed) applications\n' +
16
+ ' • View application details including versions and dependencies\n' +
17
+ ' • JSON output support for automation and scripting\n' +
18
+ ' • Vendor-based filtering\n\n' +
19
+ 'Use Cases:\n' +
20
+ ' • Discover available applications for installation\n' +
21
+ ' • Audit installed company applications\n' +
22
+ ' • Find applications that can be upgraded\n' +
23
+ ' • Integration with CI/CD pipelines\n' +
24
+ ' • Automated environment setup and configuration';
25
+ static examples = [
26
+ {
27
+ command: '<%= config.bin %> <%= command.id %> --auth dev-instance',
28
+ description: 'List all company repository applications',
29
+ },
30
+ {
31
+ command: '<%= config.bin %> <%= command.id %> --installed --auth dev-instance',
32
+ description: 'List only installed applications',
33
+ },
34
+ {
35
+ command: '<%= config.bin %> <%= command.id %> --installable --auth dev-instance',
36
+ description: 'List only installable (not installed) applications',
37
+ },
38
+ {
39
+ command: '<%= config.bin %> <%= command.id %> --json --auth dev-instance',
40
+ description: 'Get JSON output for scripting',
41
+ },
42
+ {
43
+ command: '<%= config.bin %> <%= command.id %> -a dev-instance',
44
+ description: 'List with short flags',
45
+ },
46
+ ];
47
+ static flags = {
48
+ installable: Flags.boolean({
49
+ char: 'n',
50
+ default: false,
51
+ description: 'Show only applications that can be installed (not yet installed)',
52
+ required: false
53
+ }),
54
+ installed: Flags.boolean({
55
+ char: 'i',
56
+ default: false,
57
+ description: 'Show only installed applications',
58
+ required: false
59
+ }),
60
+ json: Flags.boolean({
61
+ char: 'j',
62
+ default: false,
63
+ description: 'Output results as JSON',
64
+ required: false
65
+ }),
66
+ };
67
+ _logger = new Logger("AppRepoListCommand");
68
+ async run() {
69
+ const { args, flags } = await this.parse(RepoList);
70
+ try {
71
+ this.log("Fetching company repository applications...\n");
72
+ const companyApps = new CompanyApplications(this.instance);
73
+ const response = await companyApps.getCompanyApplications();
74
+ let apps = response.data;
75
+ // Apply filters
76
+ if (flags.installed) {
77
+ apps = apps.filter(app => app.isInstalled);
78
+ }
79
+ else if (flags.installable) {
80
+ apps = apps.filter(app => !app.isInstalled && app.can_install_or_upgrade);
81
+ }
82
+ // Output results
83
+ if (flags.json) {
84
+ // JSON output
85
+ this.log(JSON.stringify({
86
+ applications: apps.map(app => ({
87
+ available_versions: app.versions.length,
88
+ can_install_or_upgrade: app.can_install_or_upgrade,
89
+ current_version: app.version || null,
90
+ dependencies: app.dependencies || null,
91
+ isInstalled: app.isInstalled,
92
+ latest_version: app.latest_version,
93
+ name: app.name,
94
+ scope: app.scope,
95
+ short_description: app.short_description,
96
+ sys_id: app.sys_id,
97
+ vendor: app.vendor
98
+ })),
99
+ processingTime: response.dataProcessingTime,
100
+ total: apps.length
101
+ }, null, 2));
102
+ }
103
+ else {
104
+ // Human-readable output
105
+ this.log(`Found ${apps.length} application(s)`);
106
+ this.log(`Processing Time: ${response.dataProcessingTime}ms\n`);
107
+ if (apps.length === 0) {
108
+ this.log("No applications found matching the specified criteria.");
109
+ return;
110
+ }
111
+ this.log("─".repeat(100));
112
+ for (const [index, app] of apps.entries()) {
113
+ this.log(`${index + 1}. ${app.name}`);
114
+ this.log(` Scope: ${app.scope}`);
115
+ this.log(` Sys ID: ${app.sys_id}`);
116
+ this.log(` Vendor: ${app.vendor}`);
117
+ this.log(` Latest Version: ${app.latest_version}`);
118
+ this.log(` Installed: ${app.isInstalled ? 'Yes (v' + app.version + ')' : 'No'}`);
119
+ this.log(` Can Install: ${app.can_install_or_upgrade ? 'Yes' : 'No'}`);
120
+ if (app.dependencies) {
121
+ this.log(` Dependencies: ${app.dependencies}`);
122
+ }
123
+ if (app.short_description) {
124
+ this.log(` Description: ${app.short_description}`);
125
+ }
126
+ this.log(` Available Versions: ${app.versions.length}`);
127
+ if (app.versions.length > 0) {
128
+ const recentVersions = app.versions.slice(-3).reverse();
129
+ this.log(` Recent Versions:`);
130
+ for (const v of recentVersions) {
131
+ this.log(` - v${v.version} (${v.publish_date_display})`);
132
+ }
133
+ }
134
+ this.log("─".repeat(100));
135
+ }
136
+ this.log(`\nTotal: ${apps.length} application(s)`);
137
+ // Show summary statistics
138
+ const installedCount = apps.filter(a => a.isInstalled).length;
139
+ const installableCount = apps.filter(a => !a.isInstalled && a.can_install_or_upgrade).length;
140
+ this.log("\nSummary:");
141
+ this.log(` Installed: ${installedCount}`);
142
+ this.log(` Installable: ${installableCount}`);
143
+ this.log(` Other: ${apps.length - installedCount - installableCount}`);
144
+ }
145
+ }
146
+ catch (error) {
147
+ this._logger.error("Error occurred when fetching company applications.", error);
148
+ this.error(error);
149
+ }
150
+ }
151
+ }
152
+ //# sourceMappingURL=repo-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-list.js","sourceRoot":"","sources":["../../../src/commands/app/repo-list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { AuthenticatedCommand } from '../../common/authenticated-command.js';
2
+ export declare class Uninstall extends AuthenticatedCommand<typeof Uninstall> {
3
+ static args: {};
4
+ static description: string;
5
+ static examples: {
6
+ command: string;
7
+ description: string;
8
+ }[];
9
+ static flags: {
10
+ applicationId: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ scope: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
12
+ };
13
+ private _logger;
14
+ run(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=uninstall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/commands/app/uninstall.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAG5E,qBAAa,SAAU,SAAQ,oBAAoB,CAAC,OAAO,SAAS,CAAC;IAEnE,MAAM,CAAC,IAAI,KACV;IAED,MAAM,CAAC,WAAW,SAYqC;IAEvD,MAAM,CAAC,QAAQ;;;QAad;IAED,MAAM,CAAC,KAAK;;;MAGX;IAED,OAAO,CAAC,OAAO,CAA4C;IAErD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAoC3B"}