@rockcarver/frodo-cli 2.0.0-33 → 2.0.0-35

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 (50) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js +42 -0
  3. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js.map +1 -0
  4. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artifacts.js +44 -0
  5. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artifacts.js.map +1 -0
  6. package/esm/cli/admin/admin.js +2 -0
  7. package/esm/cli/admin/admin.js.map +1 -1
  8. package/esm/cli/esv/esv-secret-create.js +2 -1
  9. package/esm/cli/esv/esv-secret-create.js.map +1 -1
  10. package/esm/cli/esv/esv-secret-delete.js +4 -3
  11. package/esm/cli/esv/esv-secret-delete.js.map +1 -1
  12. package/esm/cli/esv/esv-secret-describe.js +2 -1
  13. package/esm/cli/esv/esv-secret-describe.js.map +1 -1
  14. package/esm/cli/esv/esv-secret-export.js +6 -4
  15. package/esm/cli/esv/esv-secret-export.js.map +1 -1
  16. package/esm/cli/esv/esv-secret-list.js +2 -1
  17. package/esm/cli/esv/esv-secret-list.js.map +1 -1
  18. package/esm/cli/esv/esv-secret-set.js +2 -1
  19. package/esm/cli/esv/esv-secret-set.js.map +1 -1
  20. package/esm/cli/esv/esv-secret-version-activate.js +2 -2
  21. package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
  22. package/esm/cli/esv/esv-secret-version-create.js +2 -1
  23. package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
  24. package/esm/cli/esv/esv-secret-version-deactivate.js +2 -2
  25. package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
  26. package/esm/cli/esv/esv-secret-version-delete.js +4 -3
  27. package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
  28. package/esm/cli/esv/esv-secret-version-list.js +2 -1
  29. package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
  30. package/esm/cli/esv/esv-variable-create.js +2 -1
  31. package/esm/cli/esv/esv-variable-create.js.map +1 -1
  32. package/esm/cli/esv/esv-variable-delete.js +4 -2
  33. package/esm/cli/esv/esv-variable-delete.js.map +1 -1
  34. package/esm/cli/esv/esv-variable-describe.js +2 -1
  35. package/esm/cli/esv/esv-variable-describe.js.map +1 -1
  36. package/esm/cli/esv/esv-variable-export.js +6 -3
  37. package/esm/cli/esv/esv-variable-export.js.map +1 -1
  38. package/esm/cli/esv/esv-variable-list.js +2 -1
  39. package/esm/cli/esv/esv-variable-list.js.map +1 -1
  40. package/esm/cli/esv/esv-variable-set.js +4 -2
  41. package/esm/cli/esv/esv-variable-set.js.map +1 -1
  42. package/esm/ops/AdminOps.js +142 -1
  43. package/esm/ops/AdminOps.js.map +1 -1
  44. package/esm/ops/SecretsOps.js +156 -59
  45. package/esm/ops/SecretsOps.js.map +1 -1
  46. package/esm/ops/VariablesOps.js +116 -48
  47. package/esm/ops/VariablesOps.js.map +1 -1
  48. package/esm/utils/Console.js +2 -1
  49. package/esm/utils/Console.js.map +1 -1
  50. package/package.json +10 -2
package/CHANGELOG.md CHANGED
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.0.0-34] - 2023-11-29
11
+
12
+ ## [2.0.0-33] - 2023-11-26
13
+
10
14
  ## [2.0.0-32] - 2023-11-21
11
15
 
12
16
  ## [2.0.0-31] - 2023-11-17
@@ -1431,7 +1435,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1431
1435
  - Fixed problem with adding connection profiles
1432
1436
  - Miscellaneous bug fixes
1433
1437
 
1434
- [Unreleased]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-32...HEAD
1438
+ [Unreleased]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-34...HEAD
1439
+
1440
+ [2.0.0-34]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-33...v2.0.0-34
1441
+
1442
+ [2.0.0-33]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-32...v2.0.0-33
1435
1443
 
1436
1444
  [2.0.0-32]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-31...v2.0.0-32
1437
1445
 
@@ -0,0 +1,42 @@
1
+ import { frodo, state } from '@rockcarver/frodo-lib';
2
+ import { Option } from 'commander';
3
+ import fs from 'fs';
4
+ import { v4 as uuidv4 } from 'uuid';
5
+ import * as s from '../../help/SampleData';
6
+ import { executeRfc7523AuthZGrantFlow } from '../../ops/AdminOps.js';
7
+ import { printMessage } from '../../utils/Console.js';
8
+ import { FrodoCommand } from '../FrodoCommand.js';
9
+ const {
10
+ getTokens
11
+ } = frodo.login;
12
+ const program = new FrodoCommand('frodo admin execute-rfc7523-authz-grant-flow');
13
+ program.description('Execute RFC7523 authorization grant flow.').addOption(new Option('--client-id [id]', 'Client id.')).addOption(new Option('--jwk-file [file]', 'Path to JSON Web Key (JWK) file containing private key.')).addOption(new Option('--sub [subject]', 'Subject identifier, typically a UUID. Must resolve to a valid user in the realm.')).addOption(new Option('--iss [issuer]', 'Trusted issuer, typically a URL.')).addOption(new Option('--scope [scope]', 'Space-delimited list of scopes.').default('openid fr:am:* fr:idm:*')).addOption(new Option('--json', 'Output in JSON format.')).addHelpText('after', `Usage Examples:\n` + ` If you used frodo to create the RFC7523 configuration (see 'Related Commands' below), then you can test your configuration with minimal input and frodo will locate the missing parameters. The command below returns access token and identity token:\n` + ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 ${s.amBaseUrl}\n`['brightCyan'] + ` Same as above but output raw json:\n` + ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 --json ${s.amBaseUrl}'\n`['brightCyan'] + ` Same as first command above but explicitly provide all parameters:\n` + ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 --iss https://my-issuer.com/issuer --sub 146c2230-9448-4442-b86d-eb4a81a0121d --jwk-file rfc7523-client1_private.jwk.json ${s.amBaseUrl}'\n`['brightCyan'] + `\nRelated Commands:\n` + ` Run ${'frodo admin generate-rfc7523-authz-grant-artifacts --help'['brightCyan']} to see how to create the required configuration artifacts for ${'frodo admin execute-rfc7523-authz-grant-flow'['brightCyan']}:\n`).action(
14
+ // implement command logic inside action handler
15
+ async (host, realm, user, password, options, command) => {
16
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
17
+ if (await getTokens()) {
18
+ printMessage(`Generating RFC7523 authorization grant artifacts in realm "${state.getRealm()}"...`);
19
+ let clientId = uuidv4();
20
+ if (options.clientId) {
21
+ clientId = options.clientId;
22
+ }
23
+ let jwk = undefined;
24
+ if (options.jwkFile) {
25
+ try {
26
+ const data = fs.readFileSync(options.jwkFile);
27
+ jwk = JSON.parse(data.toString());
28
+ } catch (error) {
29
+ printMessage(`Error parsing JWK from file ${options.jwkFile}: ${error.message}`, 'error');
30
+ }
31
+ }
32
+ const outcome = await executeRfc7523AuthZGrantFlow(clientId, options.iss, jwk, options.sub, options.scope.split(' '), options.json);
33
+ if (!outcome) process.exitCode = 1;
34
+ } else {
35
+ process.exitCode = 1;
36
+ }
37
+ }
38
+ // end command logic inside action handler
39
+ );
40
+
41
+ program.parse();
42
+ //# sourceMappingURL=admin-execute-rfc7523-authz-grant-flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-execute-rfc7523-authz-grant-flow.js","names":["frodo","state","Option","fs","v4","uuidv4","s","executeRfc7523AuthZGrantFlow","printMessage","FrodoCommand","getTokens","login","program","description","addOption","default","addHelpText","amBaseUrl","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","clientId","jwk","undefined","jwkFile","data","readFileSync","JSON","parse","toString","error","message","outcome","iss","sub","scope","split","json","process","exitCode"],"sources":["../../../src/cli/admin/admin-execute-rfc7523-authz-grant-flow.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { JwkRsa } from '@rockcarver/frodo-lib/types/ops/JoseOps.js';\nimport { Option } from 'commander';\nimport fs from 'fs';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport * as s from '../../help/SampleData';\nimport { executeRfc7523AuthZGrantFlow } from '../../ops/AdminOps.js';\nimport { printMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand.js';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand(\n 'frodo admin execute-rfc7523-authz-grant-flow'\n);\n\nprogram\n .description('Execute RFC7523 authorization grant flow.')\n .addOption(new Option('--client-id [id]', 'Client id.'))\n .addOption(\n new Option(\n '--jwk-file [file]',\n 'Path to JSON Web Key (JWK) file containing private key.'\n )\n )\n .addOption(\n new Option(\n '--sub [subject]',\n 'Subject identifier, typically a UUID. Must resolve to a valid user in the realm.'\n )\n )\n .addOption(new Option('--iss [issuer]', 'Trusted issuer, typically a URL.'))\n .addOption(\n new Option('--scope [scope]', 'Space-delimited list of scopes.').default(\n 'openid fr:am:* fr:idm:*'\n )\n )\n .addOption(new Option('--json', 'Output in JSON format.'))\n .addHelpText(\n 'after',\n `Usage Examples:\\n` +\n ` If you used frodo to create the RFC7523 configuration (see 'Related Commands' below), then you can test your configuration with minimal input and frodo will locate the missing parameters. The command below returns access token and identity token:\\n` +\n ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 ${s.amBaseUrl}\\n`[\n 'brightCyan'\n ] +\n ` Same as above but output raw json:\\n` +\n ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 --json ${s.amBaseUrl}'\\n`[\n 'brightCyan'\n ] +\n ` Same as first command above but explicitly provide all parameters:\\n` +\n ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 --iss https://my-issuer.com/issuer --sub 146c2230-9448-4442-b86d-eb4a81a0121d --jwk-file rfc7523-client1_private.jwk.json ${s.amBaseUrl}'\\n`[\n 'brightCyan'\n ] +\n `\\nRelated Commands:\\n` +\n ` Run ${\n 'frodo admin generate-rfc7523-authz-grant-artifacts --help'[\n 'brightCyan'\n ]\n } to see how to create the required configuration artifacts for ${\n 'frodo admin execute-rfc7523-authz-grant-flow'['brightCyan']\n }:\\n`\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n `Generating RFC7523 authorization grant artifacts in realm \"${state.getRealm()}\"...`\n );\n let clientId = uuidv4();\n if (options.clientId) {\n clientId = options.clientId;\n }\n let jwk: JwkRsa = undefined;\n if (options.jwkFile) {\n try {\n const data = fs.readFileSync(options.jwkFile);\n jwk = JSON.parse(data.toString());\n } catch (error) {\n printMessage(\n `Error parsing JWK from file ${options.jwkFile}: ${error.message}`,\n 'error'\n );\n }\n }\n const outcome = await executeRfc7523AuthZGrantFlow(\n clientId,\n options.iss,\n jwk,\n options.sub,\n options.scope.split(' '),\n options.json\n );\n if (!outcome) process.exitCode = 1;\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAEpD,SAASC,MAAM,QAAQ,WAAW;AAClC,OAAOC,EAAE,MAAM,IAAI;AACnB,SAASC,EAAE,IAAIC,MAAM,QAAQ,MAAM;AAEnC,OAAO,KAAKC,CAAC,MAAM,uBAAuB;AAC1C,SAASC,4BAA4B,QAAQ,uBAAuB;AACpE,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,YAAY,QAAQ,oBAAoB;AAEjD,MAAM;EAAEC;AAAU,CAAC,GAAGV,KAAK,CAACW,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAC9B,8CACF,CAAC;AAEDG,OAAO,CACJC,WAAW,CAAC,2CAA2C,CAAC,CACxDC,SAAS,CAAC,IAAIZ,MAAM,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,CACvDY,SAAS,CACR,IAAIZ,MAAM,CACR,mBAAmB,EACnB,yDACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,iBAAiB,EACjB,kFACF,CACF,CAAC,CACAY,SAAS,CAAC,IAAIZ,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC,CAAC,CAC3EY,SAAS,CACR,IAAIZ,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC,CAACa,OAAO,CACtE,yBACF,CACF,CAAC,CACAD,SAAS,CAAC,IAAIZ,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC,CACzDc,WAAW,CACV,OAAO,EACN,mBAAkB,GAChB,4PAA2P,GAC3P,gFAA+EV,CAAC,CAACW,SAAU,IAAG,CAC7F,YAAY,CACb,GACA,wCAAuC,GACvC,uFAAsFX,CAAC,CAACW,SAAU,KAAI,CACrG,YAAY,CACb,GACA,wEAAuE,GACvE,0MAAyMX,CAAC,CAACW,SAAU,KAAI,CACxN,YAAY,CACb,GACA,uBAAsB,GACtB,SACC,2DAA2D,CACzD,YAAY,CAEf,kEACC,8CAA8C,CAAC,YAAY,CAC5D,KACL,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMd,SAAS,CAAC,CAAC,EAAE;IACrBF,YAAY,CACT,8DAA6DP,KAAK,CAACyB,QAAQ,CAAC,CAAE,MACjF,CAAC;IACD,IAAIC,QAAQ,GAAGtB,MAAM,CAAC,CAAC;IACvB,IAAIkB,OAAO,CAACI,QAAQ,EAAE;MACpBA,QAAQ,GAAGJ,OAAO,CAACI,QAAQ;IAC7B;IACA,IAAIC,GAAW,GAAGC,SAAS;IAC3B,IAAIN,OAAO,CAACO,OAAO,EAAE;MACnB,IAAI;QACF,MAAMC,IAAI,GAAG5B,EAAE,CAAC6B,YAAY,CAACT,OAAO,CAACO,OAAO,CAAC;QAC7CF,GAAG,GAAGK,IAAI,CAACC,KAAK,CAACH,IAAI,CAACI,QAAQ,CAAC,CAAC,CAAC;MACnC,CAAC,CAAC,OAAOC,KAAK,EAAE;QACd5B,YAAY,CACT,+BAA8Be,OAAO,CAACO,OAAQ,KAAIM,KAAK,CAACC,OAAQ,EAAC,EAClE,OACF,CAAC;MACH;IACF;IACA,MAAMC,OAAO,GAAG,MAAM/B,4BAA4B,CAChDoB,QAAQ,EACRJ,OAAO,CAACgB,GAAG,EACXX,GAAG,EACHL,OAAO,CAACiB,GAAG,EACXjB,OAAO,CAACkB,KAAK,CAACC,KAAK,CAAC,GAAG,CAAC,EACxBnB,OAAO,CAACoB,IACV,CAAC;IACD,IAAI,CAACL,OAAO,EAAEM,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHjC,OAAO,CAACsB,KAAK,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { frodo, state } from '@rockcarver/frodo-lib';
2
+ import { Option } from 'commander';
3
+ import fs from 'fs';
4
+ import { v4 as uuidv4 } from 'uuid';
5
+ import * as s from '../../help/SampleData';
6
+ import { generateRfc7523AuthZGrantArtifacts } from '../../ops/AdminOps.js';
7
+ import { printMessage } from '../../utils/Console.js';
8
+ import { FrodoCommand } from '../FrodoCommand.js';
9
+ const {
10
+ getTokens
11
+ } = frodo.login;
12
+ const program = new FrodoCommand('frodo admin generate-rfc7523-authz-grant-artifacts');
13
+ program.description('Generate RFC7523 authorization grant artifacts.').addOption(new Option('--client-id [id]', 'Client id.')).addOption(new Option('--jwk-file [file]', 'Path to JSON Web Key (JWK) file containing private key.')).addOption(new Option('--sub [subject]', 'Subject identifier, typically a UUID. Must resolve to a valid user in the realm. Restricts the trusted issuer to only this subject by adding the identifier to the list of allowed subjects. Omitting this option allows the trusted issuer to request tokens for any realm user without restrictions.')).addOption(new Option('--iss [issuer]', 'Trusted issuer, typically a URL.')).addOption(new Option('--scope [scope]', 'Space-delimited list of scopes.').default('openid fr:am:* fr:idm:*')).addOption(new Option('--no-save', 'Do not save artifacts in AM and to file By default this command creates a fully configured oauth2 client and trusted issuer in AM and saves the generated JWK (private key) and JWKS (public key set) to files.')).addOption(new Option('--json', 'Output in JSON format.')).addHelpText('after', `Usage Examples:\n` + ` Generate, output to console, and save all the artifacts for an RFC7523 authorization grant flow configuration limited to one particular subject:\n` + ` - Fully configured OAuth2 client - named '<clientId>'\n` + ` - Fully configured OAuth2 trusted issuer - named '<clientId>-issuer'\n` + ` - Private Key as Json Web Key (JWK) - named '<clientId>_private.jwk.json'\n` + ` - Public Key as Json Web Key Set (JWKS) - named '<clientId>_public.jwks.json'\n` + ` $ frodo admin generate-rfc7523-authz-grant-artifacts --client-id rfc7523-client1 --iss https://my-issuer.com/issuer --sub 146c2230-9448-4442-b86d-eb4a81a0121d ${s.amBaseUrl}\n`['brightCyan'] + ` Same as above but use an existing JWK file instead of creating one.\n` + ` $ frodo admin generate-rfc7523-authz-grant-artifacts --client-id rfc7523-client1 --iss https://my-issuer.com/issuer --sub 146c2230-9448-4442-b86d-eb4a81a0121d --jwk-file rfc7523-client1_private.jwk.json ${s.amBaseUrl}\n`['brightCyan'] + ` Generate and output to console all the artifacts for an RFC7523 authorization grant flow configuration but do not create any configuration or files.\n` + ` $ frodo admin generate-rfc7523-authz-grant-artifacts --client-id rfc7523-client1 --iss https://my-issuer.com/issuer --sub 146c2230-9448-4442-b86d-eb4a81a0121d --no-save ${s.amBaseUrl}\n`['brightCyan'] + ` Generate and output in json format all the artifacts for an RFC7523 authorization grant flow configuration.\n` + ` $ frodo admin generate-rfc7523-authz-grant-artifacts --client-id rfc7523-client1 --iss https://my-issuer.com/issuer --sub 146c2230-9448-4442-b86d-eb4a81a0121d --json ${s.amBaseUrl}\n`['brightCyan'] + `\nRelated Commands:\n` + ` Run ${'frodo admin execute-rfc7523-authz-grant-flow --help'['brightCyan']} to see how to test your configuration created with ${'frodo admin generate-rfc7523-authz-grant-artifacts'['brightCyan']}:\n`).action(
14
+ // implement command logic inside action handler
15
+ async (host, realm, user, password, options, command) => {
16
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
17
+ if (await getTokens()) {
18
+ printMessage(`Generating RFC7523 authorization grant artifacts in realm "${state.getRealm()}"...`);
19
+ let clientId = uuidv4();
20
+ if (options.clientId) {
21
+ clientId = options.clientId;
22
+ }
23
+ let jwk = undefined;
24
+ if (options.jwkFile) {
25
+ try {
26
+ const data = fs.readFileSync(options.jwkFile);
27
+ jwk = JSON.parse(data.toString());
28
+ } catch (error) {
29
+ printMessage(`Error parsing JWK from file ${options.jwkFile}: ${error.message}`, 'error');
30
+ }
31
+ }
32
+ const outcome = await generateRfc7523AuthZGrantArtifacts(clientId, options.iss, jwk, options.sub, options.scope.split(' '), {
33
+ save: options.save
34
+ }, options.json);
35
+ if (!outcome) process.exitCode = 1;
36
+ } else {
37
+ process.exitCode = 1;
38
+ }
39
+ }
40
+ // end command logic inside action handler
41
+ );
42
+
43
+ program.parse();
44
+ //# sourceMappingURL=admin-generate-rfc7523-authz-grant-artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-generate-rfc7523-authz-grant-artifacts.js","names":["frodo","state","Option","fs","v4","uuidv4","s","generateRfc7523AuthZGrantArtifacts","printMessage","FrodoCommand","getTokens","login","program","description","addOption","default","addHelpText","amBaseUrl","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","clientId","jwk","undefined","jwkFile","data","readFileSync","JSON","parse","toString","error","message","outcome","iss","sub","scope","split","save","json","process","exitCode"],"sources":["../../../src/cli/admin/admin-generate-rfc7523-authz-grant-artifacts.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { JwkRsa } from '@rockcarver/frodo-lib/types/ops/JoseOps.js';\nimport { Option } from 'commander';\nimport fs from 'fs';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport * as s from '../../help/SampleData';\nimport { generateRfc7523AuthZGrantArtifacts } from '../../ops/AdminOps.js';\nimport { printMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand.js';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand(\n 'frodo admin generate-rfc7523-authz-grant-artifacts'\n);\n\nprogram\n .description('Generate RFC7523 authorization grant artifacts.')\n .addOption(new Option('--client-id [id]', 'Client id.'))\n .addOption(\n new Option(\n '--jwk-file [file]',\n 'Path to JSON Web Key (JWK) file containing private key.'\n )\n )\n .addOption(\n new Option(\n '--sub [subject]',\n 'Subject identifier, typically a UUID. Must resolve to a valid user in the realm. Restricts the trusted issuer to only this subject by adding the identifier to the list of allowed subjects. Omitting this option allows the trusted issuer to request tokens for any realm user without restrictions.'\n )\n )\n .addOption(new Option('--iss [issuer]', 'Trusted issuer, typically a URL.'))\n .addOption(\n new Option('--scope [scope]', 'Space-delimited list of scopes.').default(\n 'openid fr:am:* fr:idm:*'\n )\n )\n .addOption(\n new Option(\n '--no-save',\n 'Do not save artifacts in AM and to file By default this command creates a fully configured oauth2 client and trusted issuer in AM and saves the generated JWK (private key) and JWKS (public key set) to files.'\n )\n )\n .addOption(new Option('--json', 'Output in JSON format.'))\n .addHelpText(\n 'after',\n `Usage Examples:\\n` +\n ` Generate, output to console, and save all the artifacts for an RFC7523 authorization grant flow configuration limited to one particular subject:\\n` +\n ` - Fully configured OAuth2 client - named '<clientId>'\\n` +\n ` - Fully configured OAuth2 trusted issuer - named '<clientId>-issuer'\\n` +\n ` - Private Key as Json Web Key (JWK) - named '<clientId>_private.jwk.json'\\n` +\n ` - Public Key as Json Web Key Set (JWKS) - named '<clientId>_public.jwks.json'\\n` +\n ` $ frodo admin generate-rfc7523-authz-grant-artifacts --client-id rfc7523-client1 --iss https://my-issuer.com/issuer --sub 146c2230-9448-4442-b86d-eb4a81a0121d ${s.amBaseUrl}\\n`[\n 'brightCyan'\n ] +\n ` Same as above but use an existing JWK file instead of creating one.\\n` +\n ` $ frodo admin generate-rfc7523-authz-grant-artifacts --client-id rfc7523-client1 --iss https://my-issuer.com/issuer --sub 146c2230-9448-4442-b86d-eb4a81a0121d --jwk-file rfc7523-client1_private.jwk.json ${s.amBaseUrl}\\n`[\n 'brightCyan'\n ] +\n ` Generate and output to console all the artifacts for an RFC7523 authorization grant flow configuration but do not create any configuration or files.\\n` +\n ` $ frodo admin generate-rfc7523-authz-grant-artifacts --client-id rfc7523-client1 --iss https://my-issuer.com/issuer --sub 146c2230-9448-4442-b86d-eb4a81a0121d --no-save ${s.amBaseUrl}\\n`[\n 'brightCyan'\n ] +\n ` Generate and output in json format all the artifacts for an RFC7523 authorization grant flow configuration.\\n` +\n ` $ frodo admin generate-rfc7523-authz-grant-artifacts --client-id rfc7523-client1 --iss https://my-issuer.com/issuer --sub 146c2230-9448-4442-b86d-eb4a81a0121d --json ${s.amBaseUrl}\\n`[\n 'brightCyan'\n ] +\n `\\nRelated Commands:\\n` +\n ` Run ${\n 'frodo admin execute-rfc7523-authz-grant-flow --help'['brightCyan']\n } to see how to test your configuration created with ${\n 'frodo admin generate-rfc7523-authz-grant-artifacts'['brightCyan']\n }:\\n`\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n `Generating RFC7523 authorization grant artifacts in realm \"${state.getRealm()}\"...`\n );\n let clientId = uuidv4();\n if (options.clientId) {\n clientId = options.clientId;\n }\n let jwk: JwkRsa = undefined;\n if (options.jwkFile) {\n try {\n const data = fs.readFileSync(options.jwkFile);\n jwk = JSON.parse(data.toString());\n } catch (error) {\n printMessage(\n `Error parsing JWK from file ${options.jwkFile}: ${error.message}`,\n 'error'\n );\n }\n }\n const outcome = await generateRfc7523AuthZGrantArtifacts(\n clientId,\n options.iss,\n jwk,\n options.sub,\n options.scope.split(' '),\n { save: options.save },\n options.json\n );\n if (!outcome) process.exitCode = 1;\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
@@ -6,6 +6,8 @@ export default function setup() {
6
6
  const program = new FrodoStubCommand('admin').description('Platform admin tasks.').executableDir(__dirname);
7
7
  program.command('federation', 'Manage admin federation configuration.');
8
8
  program.command('create-oauth2-client-with-admin-privileges', 'Create an oauth2 client with admin privileges.');
9
+ program.command('generate-rfc7523-authz-grant-artifacts', 'Generate RFC7523 authorization grant artifacts.');
10
+ program.command('execute-rfc7523-authz-grant-flow', 'Execute RFC7523 authorization grant flow.');
9
11
  program.command('get-access-token', 'Get an access token using client credentials grant type.');
10
12
  program.command('list-oauth2-clients-with-admin-privileges', 'List oauth2 clients with admin privileges.');
11
13
  program.command('export-full-cloud-config', 'Export full cloud configuration for all ops that currently support export.');
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","names":["path","fileURLToPath","FrodoStubCommand","__dirname","dirname","import","meta","url","setup","program","description","executableDir","command"],"sources":["../../../src/cli/admin/admin.ts"],"sourcesContent":["import path from 'path';\nimport { fileURLToPath } from 'url';\n\nimport { FrodoStubCommand } from '../FrodoCommand';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport default function setup() {\n const program = new FrodoStubCommand('admin')\n .description('Platform admin tasks.')\n .executableDir(__dirname);\n\n program.command('federation', 'Manage admin federation configuration.');\n\n program.command(\n 'create-oauth2-client-with-admin-privileges',\n 'Create an oauth2 client with admin privileges.'\n );\n\n program.command(\n 'get-access-token',\n 'Get an access token using client credentials grant type.'\n );\n\n program.command(\n 'list-oauth2-clients-with-admin-privileges',\n 'List oauth2 clients with admin privileges.'\n );\n\n program.command(\n 'export-full-cloud-config',\n 'Export full cloud configuration for all ops that currently support export.'\n );\n\n program.command(\n 'grant-oauth2-client-admin-privileges',\n 'Grant an oauth2 client admin privileges.'\n );\n\n program.command(\n 'revoke-oauth2-client-admin-privileges',\n 'Revoke admin privileges from an oauth2 client.'\n );\n\n program.command(\n 'list-oauth2-clients-with-custom-privileges',\n 'List oauth2 clients with custom privileges.'\n );\n\n program.command(\n 'list-static-user-mappings',\n 'List all subjects of static user mappings that are not oauth2 clients.'\n );\n\n program.command(\n 'remove-static-user-mapping',\n \"Remove a subject's static user mapping.\"\n );\n\n program.command(\n 'add-autoid-static-user-mapping',\n 'Add AutoId static user mapping to enable dashboards and other AutoId-based functionality.'\n );\n\n program.command(\n 'hide-generic-extension-attributes',\n 'Hide generic extension attributes.'\n );\n\n program.command(\n 'show-generic-extension-attributes',\n 'Show generic extension attributes.'\n );\n\n program.command('repair-org-model', 'Repair org model.');\n\n // program.command('train-auto-access-model', 'Train Auto Access model.');\n\n return program;\n}\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,MAAM;AACvB,SAASC,aAAa,QAAQ,KAAK;AAEnC,SAASC,gBAAgB,QAAQ,iBAAiB;AAElD,MAAMC,SAAS,GAAGH,IAAI,CAACI,OAAO,CAACH,aAAa,CAACI,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC;AAE9D,eAAe,SAASC,KAAKA,CAAA,EAAG;EAC9B,MAAMC,OAAO,GAAG,IAAIP,gBAAgB,CAAC,OAAO,CAAC,CAC1CQ,WAAW,CAAC,uBAAuB,CAAC,CACpCC,aAAa,CAACR,SAAS,CAAC;EAE3BM,OAAO,CAACG,OAAO,CAAC,YAAY,EAAE,wCAAwC,CAAC;EAEvEH,OAAO,CAACG,OAAO,CACb,4CAA4C,EAC5C,gDACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,kBAAkB,EAClB,0DACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,2CAA2C,EAC3C,4CACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,0BAA0B,EAC1B,4EACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,sCAAsC,EACtC,0CACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,uCAAuC,EACvC,gDACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,4CAA4C,EAC5C,6CACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,2BAA2B,EAC3B,wEACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,4BAA4B,EAC5B,yCACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,gCAAgC,EAChC,2FACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,mCAAmC,EACnC,oCACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,mCAAmC,EACnC,oCACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;;EAExD;;EAEA,OAAOH,OAAO;AAChB"}
1
+ {"version":3,"file":"admin.js","names":["path","fileURLToPath","FrodoStubCommand","__dirname","dirname","import","meta","url","setup","program","description","executableDir","command"],"sources":["../../../src/cli/admin/admin.ts"],"sourcesContent":["import path from 'path';\nimport { fileURLToPath } from 'url';\n\nimport { FrodoStubCommand } from '../FrodoCommand';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport default function setup() {\n const program = new FrodoStubCommand('admin')\n .description('Platform admin tasks.')\n .executableDir(__dirname);\n\n program.command('federation', 'Manage admin federation configuration.');\n\n program.command(\n 'create-oauth2-client-with-admin-privileges',\n 'Create an oauth2 client with admin privileges.'\n );\n\n program.command(\n 'generate-rfc7523-authz-grant-artifacts',\n 'Generate RFC7523 authorization grant artifacts.'\n );\n\n program.command(\n 'execute-rfc7523-authz-grant-flow',\n 'Execute RFC7523 authorization grant flow.'\n );\n\n program.command(\n 'get-access-token',\n 'Get an access token using client credentials grant type.'\n );\n\n program.command(\n 'list-oauth2-clients-with-admin-privileges',\n 'List oauth2 clients with admin privileges.'\n );\n\n program.command(\n 'export-full-cloud-config',\n 'Export full cloud configuration for all ops that currently support export.'\n );\n\n program.command(\n 'grant-oauth2-client-admin-privileges',\n 'Grant an oauth2 client admin privileges.'\n );\n\n program.command(\n 'revoke-oauth2-client-admin-privileges',\n 'Revoke admin privileges from an oauth2 client.'\n );\n\n program.command(\n 'list-oauth2-clients-with-custom-privileges',\n 'List oauth2 clients with custom privileges.'\n );\n\n program.command(\n 'list-static-user-mappings',\n 'List all subjects of static user mappings that are not oauth2 clients.'\n );\n\n program.command(\n 'remove-static-user-mapping',\n \"Remove a subject's static user mapping.\"\n );\n\n program.command(\n 'add-autoid-static-user-mapping',\n 'Add AutoId static user mapping to enable dashboards and other AutoId-based functionality.'\n );\n\n program.command(\n 'hide-generic-extension-attributes',\n 'Hide generic extension attributes.'\n );\n\n program.command(\n 'show-generic-extension-attributes',\n 'Show generic extension attributes.'\n );\n\n program.command('repair-org-model', 'Repair org model.');\n\n // program.command('train-auto-access-model', 'Train Auto Access model.');\n\n return program;\n}\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,MAAM;AACvB,SAASC,aAAa,QAAQ,KAAK;AAEnC,SAASC,gBAAgB,QAAQ,iBAAiB;AAElD,MAAMC,SAAS,GAAGH,IAAI,CAACI,OAAO,CAACH,aAAa,CAACI,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC;AAE9D,eAAe,SAASC,KAAKA,CAAA,EAAG;EAC9B,MAAMC,OAAO,GAAG,IAAIP,gBAAgB,CAAC,OAAO,CAAC,CAC1CQ,WAAW,CAAC,uBAAuB,CAAC,CACpCC,aAAa,CAACR,SAAS,CAAC;EAE3BM,OAAO,CAACG,OAAO,CAAC,YAAY,EAAE,wCAAwC,CAAC;EAEvEH,OAAO,CAACG,OAAO,CACb,4CAA4C,EAC5C,gDACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,wCAAwC,EACxC,iDACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,kCAAkC,EAClC,2CACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,kBAAkB,EAClB,0DACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,2CAA2C,EAC3C,4CACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,0BAA0B,EAC1B,4EACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,sCAAsC,EACtC,0CACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,uCAAuC,EACvC,gDACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,4CAA4C,EAC5C,6CACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,2BAA2B,EAC3B,wEACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,4BAA4B,EAC5B,yCACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,gCAAgC,EAChC,2FACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,mCAAmC,EACnC,oCACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,mCAAmC,EACnC,oCACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;;EAExD;;EAEA,OAAOH,OAAO;AAChB"}
@@ -13,7 +13,8 @@ async (host, realm, user, password, options, command) => {
13
13
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
14
14
  if (await getTokens()) {
15
15
  verboseMessage('Creating secret...');
16
- createSecret(options.secretId, options.value, options.description, options.encoding, options.useInPlaceholders);
16
+ const outcome = await createSecret(options.secretId, options.value, options.description, options.encoding, options.useInPlaceholders);
17
+ if (!outcome) process.exitCode = 1;
17
18
  } else {
18
19
  process.exitCode = 1;
19
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"esv-secret-create.js","names":["frodo","Option","createSecret","verboseMessage","FrodoCommand","getTokens","login","program","description","requiredOption","option","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","secretId","value","encoding","useInPlaceholders","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-create.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { createSecret } from '../../ops/SecretsOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret create');\n\nprogram\n .description('Create secrets.')\n .requiredOption('-i, --secret-id <secret-id>', 'Secret id.')\n .requiredOption('--value <value>', 'Secret value.')\n .option('--description [description]', 'Secret description.')\n .addOption(\n new Option(\n '--encoding [encoding]',\n 'Secret encoding. Must be one of \"generic\", \"pem\", \"base64hmac\"'\n ).default('generic', 'generic')\n )\n .addOption(\n new Option(\n '--no-use-in-placeholders',\n 'Secret cannot be used in placeholders.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage('Creating secret...');\n createSecret(\n options.secretId,\n options.value,\n options.description,\n options.encoding,\n options.useInPlaceholders\n );\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,yBAAyB,CAAC;AAE3DG,OAAO,CACJC,WAAW,CAAC,iBAAiB,CAAC,CAC9BC,cAAc,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAC3DA,cAAc,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAClDC,MAAM,CAAC,6BAA6B,EAAE,qBAAqB,CAAC,CAC5DC,SAAS,CACR,IAAIV,MAAM,CACR,uBAAuB,EACvB,gEACF,CAAC,CAACW,OAAO,CAAC,SAAS,EAAE,SAAS,CAChC,CAAC,CACAD,SAAS,CACR,IAAIV,MAAM,CACR,0BAA0B,EAC1B,wCACF,CACF,CAAC,CACAY,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMd,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAC,oBAAoB,CAAC;IACpCD,YAAY,CACVgB,OAAO,CAACG,QAAQ,EAChBH,OAAO,CAACI,KAAK,EACbJ,OAAO,CAACV,WAAW,EACnBU,OAAO,CAACK,QAAQ,EAChBL,OAAO,CAACM,iBACV,CAAC;EACH,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHnB,OAAO,CAACoB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"esv-secret-create.js","names":["frodo","Option","createSecret","verboseMessage","FrodoCommand","getTokens","login","program","description","requiredOption","option","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","outcome","secretId","value","encoding","useInPlaceholders","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-create.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { createSecret } from '../../ops/SecretsOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret create');\n\nprogram\n .description('Create secrets.')\n .requiredOption('-i, --secret-id <secret-id>', 'Secret id.')\n .requiredOption('--value <value>', 'Secret value.')\n .option('--description [description]', 'Secret description.')\n .addOption(\n new Option(\n '--encoding [encoding]',\n 'Secret encoding. Must be one of \"generic\", \"pem\", \"base64hmac\"'\n ).default('generic', 'generic')\n )\n .addOption(\n new Option(\n '--no-use-in-placeholders',\n 'Secret cannot be used in placeholders.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage('Creating secret...');\n const outcome = await createSecret(\n options.secretId,\n options.value,\n options.description,\n options.encoding,\n options.useInPlaceholders\n );\n if (!outcome) process.exitCode = 1;\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,yBAAyB,CAAC;AAE3DG,OAAO,CACJC,WAAW,CAAC,iBAAiB,CAAC,CAC9BC,cAAc,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAC3DA,cAAc,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAClDC,MAAM,CAAC,6BAA6B,EAAE,qBAAqB,CAAC,CAC5DC,SAAS,CACR,IAAIV,MAAM,CACR,uBAAuB,EACvB,gEACF,CAAC,CAACW,OAAO,CAAC,SAAS,EAAE,SAAS,CAChC,CAAC,CACAD,SAAS,CACR,IAAIV,MAAM,CACR,0BAA0B,EAC1B,wCACF,CACF,CAAC,CACAY,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMd,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAC,oBAAoB,CAAC;IACpC,MAAMkB,OAAO,GAAG,MAAMnB,YAAY,CAChCgB,OAAO,CAACI,QAAQ,EAChBJ,OAAO,CAACK,KAAK,EACbL,OAAO,CAACV,WAAW,EACnBU,OAAO,CAACM,QAAQ,EAChBN,OAAO,CAACO,iBACV,CAAC;IACD,IAAI,CAACJ,OAAO,EAAEK,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHpB,OAAO,CAACqB,KAAK,CAAC,CAAC"}
@@ -14,17 +14,18 @@ async (host, realm, user, password, options, command) => {
14
14
  // delete by id
15
15
  if (options.secretId && (await getTokens())) {
16
16
  verboseMessage('Deleting secret...');
17
- deleteSecret(options.secretId);
17
+ const outcome = await deleteSecret(options.secretId);
18
+ if (!outcome) process.exitCode = 1;
18
19
  }
19
20
  // --all -a
20
21
  else if (options.all && (await getTokens())) {
21
22
  verboseMessage('Deleting all secrets...');
22
- deleteSecrets();
23
+ const outcome = await deleteSecrets();
24
+ if (!outcome) process.exitCode = 1;
23
25
  }
24
26
  // unrecognized combination of options or no options
25
27
  else {
26
28
  printMessage('Unrecognized combination of options or no options...');
27
- program.help();
28
29
  process.exitCode = 1;
29
30
  }
30
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"esv-secret-delete.js","names":["frodo","Option","deleteSecret","deleteSecrets","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","secretId","all","help","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-delete.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { deleteSecret, deleteSecrets } from '../../ops/SecretsOps';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret delete');\n\nprogram\n .description('Delete secrets.')\n .addOption(\n new Option(\n '-i, --secret-id <secret-id>',\n 'Secret id. If specified, -a is ignored.'\n )\n )\n .addOption(\n new Option('-a, --all', 'Delete all secrets in a realm. Ignored with -i.')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // delete by id\n if (options.secretId && (await getTokens())) {\n verboseMessage('Deleting secret...');\n deleteSecret(options.secretId);\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage('Deleting all secrets...');\n deleteSecrets();\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,YAAY,EAAEC,aAAa,QAAQ,sBAAsB;AAClE,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAwB;AACrE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGP,KAAK,CAACQ,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,yBAAyB,CAAC;AAE3DG,OAAO,CACJC,WAAW,CAAC,iBAAiB,CAAC,CAC9BC,SAAS,CACR,IAAIV,MAAM,CACR,6BAA6B,EAC7B,yCACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CAAC,WAAW,EAAE,iDAAiD,CAC3E,CAAC,CACAW,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,QAAQ,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CAAC,oBAAoB,CAAC;IACpCH,YAAY,CAACe,OAAO,CAACG,QAAQ,CAAC;EAChC;EACA;EAAA,KACK,IAAIH,OAAO,CAACI,GAAG,KAAK,MAAMd,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CAAC,yBAAyB,CAAC;IACzCF,aAAa,CAAC,CAAC;EACjB;EACA;EAAA,KACK;IACHC,YAAY,CAAC,sDAAsD,CAAC;IACpEK,OAAO,CAACa,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHf,OAAO,CAACgB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"esv-secret-delete.js","names":["frodo","Option","deleteSecret","deleteSecrets","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","secretId","outcome","process","exitCode","all","parse"],"sources":["../../../src/cli/esv/esv-secret-delete.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { deleteSecret, deleteSecrets } from '../../ops/SecretsOps';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret delete');\n\nprogram\n .description('Delete secrets.')\n .addOption(\n new Option(\n '-i, --secret-id <secret-id>',\n 'Secret id. If specified, -a is ignored.'\n )\n )\n .addOption(\n new Option('-a, --all', 'Delete all secrets in a realm. Ignored with -i.')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // delete by id\n if (options.secretId && (await getTokens())) {\n verboseMessage('Deleting secret...');\n const outcome = await deleteSecret(options.secretId);\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage('Deleting all secrets...');\n const outcome = await deleteSecrets();\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,YAAY,EAAEC,aAAa,QAAQ,sBAAsB;AAClE,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAwB;AACrE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGP,KAAK,CAACQ,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,yBAAyB,CAAC;AAE3DG,OAAO,CACJC,WAAW,CAAC,iBAAiB,CAAC,CAC9BC,SAAS,CACR,IAAIV,MAAM,CACR,6BAA6B,EAC7B,yCACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CAAC,WAAW,EAAE,iDAAiD,CAC3E,CAAC,CACAW,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,QAAQ,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CAAC,oBAAoB,CAAC;IACpC,MAAMgB,OAAO,GAAG,MAAMnB,YAAY,CAACe,OAAO,CAACG,QAAQ,CAAC;IACpD,IAAI,CAACC,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIN,OAAO,CAACO,GAAG,KAAK,MAAMjB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CAAC,yBAAyB,CAAC;IACzC,MAAMgB,OAAO,GAAG,MAAMlB,aAAa,CAAC,CAAC;IACrC,IAAI,CAACkB,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHnB,YAAY,CAAC,sDAAsD,CAAC;IACpEkB,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHd,OAAO,CAACgB,KAAK,CAAC,CAAC"}
@@ -13,7 +13,8 @@ async (host, realm, user, password, options, command) => {
13
13
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
14
14
  if (await getTokens()) {
15
15
  verboseMessage(`Describing secret ${options.secretId}...`);
16
- describeSecret(options.secretId);
16
+ const outcome = await describeSecret(options.secretId);
17
+ if (!outcome) process.exitCode = 1;
17
18
  } else {
18
19
  process.exitCode = 1;
19
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"esv-secret-describe.js","names":["frodo","Option","describeSecret","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","makeOptionMandatory","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","secretId","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-describe.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { describeSecret } from '../../ops/SecretsOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret describe');\n\nprogram\n .description('Describe secrets.')\n .addOption(\n new Option(\n '-i, --secret-id <secret-id>',\n 'Secret id.'\n ).makeOptionMandatory()\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage(`Describing secret ${options.secretId}...`);\n describeSecret(options.secretId);\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,2BAA2B,CAAC;AAE7DG,OAAO,CACJC,WAAW,CAAC,mBAAmB,CAAC,CAChCC,SAAS,CACR,IAAIR,MAAM,CACR,6BAA6B,EAC7B,YACF,CAAC,CAACS,mBAAmB,CAAC,CACxB,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMZ,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAE,qBAAoBa,OAAO,CAACG,QAAS,KAAI,CAAC;IAC1DjB,cAAc,CAACc,OAAO,CAACG,QAAQ,CAAC;EAClC,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHd,OAAO,CAACe,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"esv-secret-describe.js","names":["frodo","Option","describeSecret","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","makeOptionMandatory","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","secretId","outcome","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-describe.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { describeSecret } from '../../ops/SecretsOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret describe');\n\nprogram\n .description('Describe secrets.')\n .addOption(\n new Option(\n '-i, --secret-id <secret-id>',\n 'Secret id.'\n ).makeOptionMandatory()\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage(`Describing secret ${options.secretId}...`);\n const outcome = await describeSecret(options.secretId);\n if (!outcome) process.exitCode = 1;\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,2BAA2B,CAAC;AAE7DG,OAAO,CACJC,WAAW,CAAC,mBAAmB,CAAC,CAChCC,SAAS,CACR,IAAIR,MAAM,CACR,6BAA6B,EAC7B,YACF,CAAC,CAACS,mBAAmB,CAAC,CACxB,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMZ,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAE,qBAAoBa,OAAO,CAACG,QAAS,KAAI,CAAC;IAC1D,MAAMC,OAAO,GAAG,MAAMlB,cAAc,CAACc,OAAO,CAACG,QAAQ,CAAC;IACtD,IAAI,CAACC,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHf,OAAO,CAACgB,KAAK,CAAC,CAAC"}
@@ -13,16 +13,18 @@ async (host, realm, user, password, options, command) => {
13
13
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
14
14
  if (options.secretId && (await getTokens())) {
15
15
  verboseMessage(`Exporting secret "${options.secretId}" from realm "${state.getRealm()}"...`);
16
- await exportSecretToFile(options.secretId, options.file);
16
+ const outcome = await exportSecretToFile(options.secretId, options.file);
17
+ if (!outcome) process.exitCode = 1;
17
18
  } else if (options.all && (await getTokens())) {
18
19
  verboseMessage('Exporting all secrets to a single file...');
19
- await exportSecretsToFile(options.file);
20
+ const outcome = await exportSecretsToFile(options.file);
21
+ if (!outcome) process.exitCode = 1;
20
22
  } else if (options.allSeparate && (await getTokens())) {
21
23
  verboseMessage('Exporting all secrets to separate files...');
22
- await exportSecretsToFiles();
24
+ const outcome = await exportSecretsToFiles();
25
+ if (!outcome) process.exitCode = 1;
23
26
  } else {
24
27
  printMessage('Unrecognized combination of options or no options...', 'error');
25
- program.help();
26
28
  process.exitCode = 1;
27
29
  }
28
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"esv-secret-export.js","names":["frodo","state","Option","exportSecretsToFile","exportSecretsToFiles","exportSecretToFile","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","secretId","getRealm","file","all","allSeparate","help","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-export.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n exportSecretsToFile,\n exportSecretsToFiles,\n exportSecretToFile,\n} from '../../ops/SecretsOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret export');\n\nprogram\n .description('Export secrets.')\n .addOption(\n new Option(\n '-i, --secret-id <secret-id>',\n 'Secret id. If specified, -a and -A are ignored.'\n )\n )\n .addOption(new Option('-f, --file <file>', 'Name of the export file.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Export all secrets to a single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all sub1s to separate files (*.secret.json) in the current directory. Ignored with -i or -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (options.secretId && (await getTokens())) {\n verboseMessage(\n `Exporting secret \"${\n options.secretId\n }\" from realm \"${state.getRealm()}\"...`\n );\n await exportSecretToFile(options.secretId, options.file);\n } else if (options.all && (await getTokens())) {\n verboseMessage('Exporting all secrets to a single file...');\n await exportSecretsToFile(options.file);\n } else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Exporting all secrets to separate files...');\n await exportSecretsToFiles();\n } else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,MAAM,QAAQ,WAAW;AAElC,SACEC,mBAAmB,EACnBC,oBAAoB,EACpBC,kBAAkB,QACb,sBAAsB;AAC7B,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGT,KAAK,CAACU,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,yBAAyB,CAAC;AAE3DG,OAAO,CACJC,WAAW,CAAC,iBAAiB,CAAC,CAC9BC,SAAS,CACR,IAAIX,MAAM,CACR,6BAA6B,EAC7B,iDACF,CACF,CAAC,CACAW,SAAS,CAAC,IAAIX,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAC,CACtEW,SAAS,CACR,IAAIX,MAAM,CACR,WAAW,EACX,uDACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,oBAAoB,EACpB,qGACF,CACF,CAAC,CACAY,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAID,OAAO,CAACG,QAAQ,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CACX,qBACCY,OAAO,CAACG,QACT,iBAAgBrB,KAAK,CAACsB,QAAQ,CAAC,CAAE,MACpC,CAAC;IACD,MAAMlB,kBAAkB,CAACc,OAAO,CAACG,QAAQ,EAAEH,OAAO,CAACK,IAAI,CAAC;EAC1D,CAAC,MAAM,IAAIL,OAAO,CAACM,GAAG,KAAK,MAAMhB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC7CF,cAAc,CAAC,2CAA2C,CAAC;IAC3D,MAAMJ,mBAAmB,CAACgB,OAAO,CAACK,IAAI,CAAC;EACzC,CAAC,MAAM,IAAIL,OAAO,CAACO,WAAW,KAAK,MAAMjB,SAAS,CAAC,CAAC,CAAC,EAAE;IACrDF,cAAc,CAAC,4CAA4C,CAAC;IAC5D,MAAMH,oBAAoB,CAAC,CAAC;EAC9B,CAAC,MAAM;IACLE,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDK,OAAO,CAACgB,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHlB,OAAO,CAACmB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"esv-secret-export.js","names":["frodo","state","Option","exportSecretsToFile","exportSecretsToFiles","exportSecretToFile","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","secretId","getRealm","outcome","file","process","exitCode","all","allSeparate","parse"],"sources":["../../../src/cli/esv/esv-secret-export.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n exportSecretsToFile,\n exportSecretsToFiles,\n exportSecretToFile,\n} from '../../ops/SecretsOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret export');\n\nprogram\n .description('Export secrets.')\n .addOption(\n new Option(\n '-i, --secret-id <secret-id>',\n 'Secret id. If specified, -a and -A are ignored.'\n )\n )\n .addOption(new Option('-f, --file <file>', 'Name of the export file.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Export all secrets to a single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all sub1s to separate files (*.secret.json) in the current directory. Ignored with -i or -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (options.secretId && (await getTokens())) {\n verboseMessage(\n `Exporting secret \"${\n options.secretId\n }\" from realm \"${state.getRealm()}\"...`\n );\n const outcome = await exportSecretToFile(\n options.secretId,\n options.file\n );\n if (!outcome) process.exitCode = 1;\n } else if (options.all && (await getTokens())) {\n verboseMessage('Exporting all secrets to a single file...');\n const outcome = await exportSecretsToFile(options.file);\n if (!outcome) process.exitCode = 1;\n } else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Exporting all secrets to separate files...');\n const outcome = await exportSecretsToFiles();\n if (!outcome) process.exitCode = 1;\n } else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,MAAM,QAAQ,WAAW;AAElC,SACEC,mBAAmB,EACnBC,oBAAoB,EACpBC,kBAAkB,QACb,sBAAsB;AAC7B,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGT,KAAK,CAACU,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,yBAAyB,CAAC;AAE3DG,OAAO,CACJC,WAAW,CAAC,iBAAiB,CAAC,CAC9BC,SAAS,CACR,IAAIX,MAAM,CACR,6BAA6B,EAC7B,iDACF,CACF,CAAC,CACAW,SAAS,CAAC,IAAIX,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAC,CACtEW,SAAS,CACR,IAAIX,MAAM,CACR,WAAW,EACX,uDACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,oBAAoB,EACpB,qGACF,CACF,CAAC,CACAY,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAID,OAAO,CAACG,QAAQ,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CACX,qBACCY,OAAO,CAACG,QACT,iBAAgBrB,KAAK,CAACsB,QAAQ,CAAC,CAAE,MACpC,CAAC;IACD,MAAMC,OAAO,GAAG,MAAMnB,kBAAkB,CACtCc,OAAO,CAACG,QAAQ,EAChBH,OAAO,CAACM,IACV,CAAC;IACD,IAAI,CAACD,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM,IAAIR,OAAO,CAACS,GAAG,KAAK,MAAMnB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC7CF,cAAc,CAAC,2CAA2C,CAAC;IAC3D,MAAMiB,OAAO,GAAG,MAAMrB,mBAAmB,CAACgB,OAAO,CAACM,IAAI,CAAC;IACvD,IAAI,CAACD,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM,IAAIR,OAAO,CAACU,WAAW,KAAK,MAAMpB,SAAS,CAAC,CAAC,CAAC,EAAE;IACrDF,cAAc,CAAC,4CAA4C,CAAC;IAC5D,MAAMiB,OAAO,GAAG,MAAMpB,oBAAoB,CAAC,CAAC;IAC5C,IAAI,CAACoB,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLrB,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDoB,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHhB,OAAO,CAACmB,KAAK,CAAC,CAAC"}
@@ -13,7 +13,8 @@ async (host, realm, user, password, options, command) => {
13
13
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
14
14
  if (await getTokens()) {
15
15
  verboseMessage('Listing secrets...');
16
- listSecrets(options.long);
16
+ const outcome = await listSecrets(options.long);
17
+ if (!outcome) process.exitCode = 1;
17
18
  } else {
18
19
  process.exitCode = 1;
19
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"esv-secret-list.js","names":["frodo","Option","listSecrets","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","long","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-list.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { listSecrets } from '../../ops/SecretsOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret list');\n\nprogram\n .description('List secrets.')\n .addOption(\n new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage('Listing secrets...');\n listSecrets(options.long);\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,WAAW,QAAQ,sBAAsB;AAClD,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,uBAAuB,CAAC;AAEzDG,OAAO,CACJC,WAAW,CAAC,eAAe,CAAC,CAC5BC,SAAS,CACR,IAAIR,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACS,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1E,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMZ,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAC,oBAAoB,CAAC;IACpCD,WAAW,CAACc,OAAO,CAACG,IAAI,CAAC;EAC3B,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHd,OAAO,CAACe,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"esv-secret-list.js","names":["frodo","Option","listSecrets","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","outcome","long","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-list.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { listSecrets } from '../../ops/SecretsOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret list');\n\nprogram\n .description('List secrets.')\n .addOption(\n new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage('Listing secrets...');\n const outcome = await listSecrets(options.long);\n if (!outcome) process.exitCode = 1;\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,WAAW,QAAQ,sBAAsB;AAClD,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,uBAAuB,CAAC;AAEzDG,OAAO,CACJC,WAAW,CAAC,eAAe,CAAC,CAC5BC,SAAS,CACR,IAAIR,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACS,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1E,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMZ,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAC,oBAAoB,CAAC;IACpC,MAAMgB,OAAO,GAAG,MAAMjB,WAAW,CAACc,OAAO,CAACI,IAAI,CAAC;IAC/C,IAAI,CAACD,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHf,OAAO,CAACgB,KAAK,CAAC,CAAC"}
@@ -13,7 +13,8 @@ async (host, realm, user, password, options, command) => {
13
13
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
14
14
  if (await getTokens()) {
15
15
  verboseMessage('Setting secret description...');
16
- setSecretDescription(options.secretId, options.description);
16
+ const outcome = await setSecretDescription(options.secretId, options.description);
17
+ if (!outcome) process.exitCode = 1;
17
18
  } else {
18
19
  process.exitCode = 1;
19
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"esv-secret-set.js","names":["frodo","Option","setSecretDescription","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","secretId","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-set.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { setSecretDescription } from '../../ops/SecretsOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret set');\n\nprogram\n .description('Set secret description.')\n .addOption(new Option('-i, --secret-id <secret-id>', 'Secret id.'))\n .addOption(new Option('--description <description>', 'Secret description.'))\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage('Setting secret description...');\n setSecretDescription(options.secretId, options.description);\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,oBAAoB,QAAQ,sBAAsB;AAC3D,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,sBAAsB,CAAC;AAExDG,OAAO,CACJC,WAAW,CAAC,yBAAyB,CAAC,CACtCC,SAAS,CAAC,IAAIR,MAAM,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC,CAClEQ,SAAS,CAAC,IAAIR,MAAM,CAAC,6BAA6B,EAAE,qBAAqB,CAAC,CAAC,CAC3ES,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMX,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAC,+BAA+B,CAAC;IAC/CD,oBAAoB,CAACa,OAAO,CAACG,QAAQ,EAAEH,OAAO,CAACP,WAAW,CAAC;EAC7D,CAAC,MAAM;IACLW,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHb,OAAO,CAACc,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"esv-secret-set.js","names":["frodo","Option","setSecretDescription","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","outcome","secretId","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-set.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { setSecretDescription } from '../../ops/SecretsOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret set');\n\nprogram\n .description('Set secret description.')\n .addOption(new Option('-i, --secret-id <secret-id>', 'Secret id.'))\n .addOption(new Option('--description <description>', 'Secret description.'))\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage('Setting secret description...');\n const outcome = await setSecretDescription(\n options.secretId,\n options.description\n );\n if (!outcome) process.exitCode = 1;\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,oBAAoB,QAAQ,sBAAsB;AAC3D,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,sBAAsB,CAAC;AAExDG,OAAO,CACJC,WAAW,CAAC,yBAAyB,CAAC,CACtCC,SAAS,CAAC,IAAIR,MAAM,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC,CAClEQ,SAAS,CAAC,IAAIR,MAAM,CAAC,6BAA6B,EAAE,qBAAqB,CAAC,CAAC,CAC3ES,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMX,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAC,+BAA+B,CAAC;IAC/C,MAAMe,OAAO,GAAG,MAAMhB,oBAAoB,CACxCa,OAAO,CAACI,QAAQ,EAChBJ,OAAO,CAACP,WACV,CAAC;IACD,IAAI,CAACU,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHd,OAAO,CAACe,KAAK,CAAC,CAAC"}
@@ -14,12 +14,12 @@ async (host, realm, user, password, options, command) => {
14
14
  // activate by id
15
15
  if (options.secretId && options.version && (await getTokens())) {
16
16
  verboseMessage(`Activating version of secret...`);
17
- activateVersionOfSecret(options.secretId, options.version);
17
+ const outcome = await activateVersionOfSecret(options.secretId, options.version);
18
+ if (!outcome) process.exitCode = 1;
18
19
  }
19
20
  // unrecognized combination of options or no options
20
21
  else {
21
22
  printMessage('Unrecognized combination of options or no options...');
22
- program.help();
23
23
  process.exitCode = 1;
24
24
  }
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"esv-secret-version-activate.js","names":["frodo","Option","activateVersionOfSecret","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","secretId","version","help","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-version-activate.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { activateVersionOfSecret } from '../../ops/SecretsOps';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret version activate');\n\nprogram\n .description('Activate versions of secrets.')\n .addOption(new Option('-i, --secret-id <secret-id>', 'Secret id.'))\n .addOption(new Option('-v, --version <version>', 'Version of secret.'))\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // activate by id\n if (options.secretId && options.version && (await getTokens())) {\n verboseMessage(`Activating version of secret...`);\n activateVersionOfSecret(options.secretId, options.version);\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,uBAAuB,QAAQ,sBAAsB;AAC9D,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAwB;AACrE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGN,KAAK,CAACO,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,mCAAmC,CAAC;AAErEG,OAAO,CACJC,WAAW,CAAC,+BAA+B,CAAC,CAC5CC,SAAS,CAAC,IAAIT,MAAM,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC,CAClES,SAAS,CAAC,IAAIT,MAAM,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAAC,CACtEU,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,QAAQ,IAAIH,OAAO,CAACI,OAAO,KAAK,MAAMd,SAAS,CAAC,CAAC,CAAC,EAAE;IAC9DF,cAAc,CAAE,iCAAgC,CAAC;IACjDF,uBAAuB,CAACc,OAAO,CAACG,QAAQ,EAAEH,OAAO,CAACI,OAAO,CAAC;EAC5D;EACA;EAAA,KACK;IACHjB,YAAY,CAAC,sDAAsD,CAAC;IACpEK,OAAO,CAACa,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHf,OAAO,CAACgB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"esv-secret-version-activate.js","names":["frodo","Option","activateVersionOfSecret","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","secretId","version","outcome","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-version-activate.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { activateVersionOfSecret } from '../../ops/SecretsOps';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret version activate');\n\nprogram\n .description('Activate versions of secrets.')\n .addOption(new Option('-i, --secret-id <secret-id>', 'Secret id.'))\n .addOption(new Option('-v, --version <version>', 'Version of secret.'))\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // activate by id\n if (options.secretId && options.version && (await getTokens())) {\n verboseMessage(`Activating version of secret...`);\n const outcome = await activateVersionOfSecret(\n options.secretId,\n options.version\n );\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,uBAAuB,QAAQ,sBAAsB;AAC9D,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAwB;AACrE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGN,KAAK,CAACO,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,mCAAmC,CAAC;AAErEG,OAAO,CACJC,WAAW,CAAC,+BAA+B,CAAC,CAC5CC,SAAS,CAAC,IAAIT,MAAM,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC,CAClES,SAAS,CAAC,IAAIT,MAAM,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAAC,CACtEU,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,QAAQ,IAAIH,OAAO,CAACI,OAAO,KAAK,MAAMd,SAAS,CAAC,CAAC,CAAC,EAAE;IAC9DF,cAAc,CAAE,iCAAgC,CAAC;IACjD,MAAMiB,OAAO,GAAG,MAAMnB,uBAAuB,CAC3Cc,OAAO,CAACG,QAAQ,EAChBH,OAAO,CAACI,OACV,CAAC;IACD,IAAI,CAACC,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHpB,YAAY,CAAC,sDAAsD,CAAC;IACpEmB,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHf,OAAO,CAACgB,KAAK,CAAC,CAAC"}
@@ -13,7 +13,8 @@ async (host, realm, user, password, options, command) => {
13
13
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
14
14
  if (await getTokens()) {
15
15
  verboseMessage('Creating new version of secret...');
16
- createVersionOfSecret(options.secretId, options.value);
16
+ const outcome = await createVersionOfSecret(options.secretId, options.value);
17
+ if (!outcome) process.exitCode = 1;
17
18
  } else {
18
19
  process.exitCode = 1;
19
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"esv-secret-version-create.js","names":["frodo","Option","createVersionOfSecret","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","secretId","value","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-version-create.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { createVersionOfSecret } from '../../ops/SecretsOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret version create');\n\nprogram\n .description('Create new version of secret.')\n .addOption(new Option('-i, --secret-id <secret-id>', 'Secret id.'))\n .addOption(new Option('--value <value>', 'Secret value.'))\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage('Creating new version of secret...');\n createVersionOfSecret(options.secretId, options.value);\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,qBAAqB,QAAQ,sBAAsB;AAC5D,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,iCAAiC,CAAC;AAEnEG,OAAO,CACJC,WAAW,CAAC,+BAA+B,CAAC,CAC5CC,SAAS,CAAC,IAAIR,MAAM,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC,CAClEQ,SAAS,CAAC,IAAIR,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,CACzDS,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMX,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAC,mCAAmC,CAAC;IACnDD,qBAAqB,CAACa,OAAO,CAACG,QAAQ,EAAEH,OAAO,CAACI,KAAK,CAAC;EACxD,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHd,OAAO,CAACe,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"esv-secret-version-create.js","names":["frodo","Option","createVersionOfSecret","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","outcome","secretId","value","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-version-create.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { createVersionOfSecret } from '../../ops/SecretsOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret version create');\n\nprogram\n .description('Create new version of secret.')\n .addOption(new Option('-i, --secret-id <secret-id>', 'Secret id.'))\n .addOption(new Option('--value <value>', 'Secret value.'))\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage('Creating new version of secret...');\n const outcome = await createVersionOfSecret(\n options.secretId,\n options.value\n );\n if (!outcome) process.exitCode = 1;\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,qBAAqB,QAAQ,sBAAsB;AAC5D,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,iCAAiC,CAAC;AAEnEG,OAAO,CACJC,WAAW,CAAC,+BAA+B,CAAC,CAC5CC,SAAS,CAAC,IAAIR,MAAM,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC,CAClEQ,SAAS,CAAC,IAAIR,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,CACzDS,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMX,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAC,mCAAmC,CAAC;IACnD,MAAMe,OAAO,GAAG,MAAMhB,qBAAqB,CACzCa,OAAO,CAACI,QAAQ,EAChBJ,OAAO,CAACK,KACV,CAAC;IACD,IAAI,CAACF,OAAO,EAAEG,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHf,OAAO,CAACgB,KAAK,CAAC,CAAC"}
@@ -14,12 +14,12 @@ async (host, realm, user, password, options, command) => {
14
14
  // activate by id
15
15
  if (options.secretId && options.version && (await getTokens())) {
16
16
  verboseMessage(`Deactivating version of secret...`);
17
- deactivateVersionOfSecret(options.secretId, options.version);
17
+ const outcome = await deactivateVersionOfSecret(options.secretId, options.version);
18
+ if (!outcome) process.exitCode = 1;
18
19
  }
19
20
  // unrecognized combination of options or no options
20
21
  else {
21
22
  printMessage('Unrecognized combination of options or no options...');
22
- program.help();
23
23
  process.exitCode = 1;
24
24
  }
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"esv-secret-version-deactivate.js","names":["frodo","Option","deactivateVersionOfSecret","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","secretId","version","help","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-version-deactivate.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { deactivateVersionOfSecret } from '../../ops/SecretsOps';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret version deactivate');\n\nprogram\n .description('Deactivate versions of secrets.')\n .addOption(new Option('-i, --secret-id <secret-id>', 'Secret id.'))\n .addOption(new Option('-v, --version <version>', 'Version of secret.'))\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // activate by id\n if (options.secretId && options.version && (await getTokens())) {\n verboseMessage(`Deactivating version of secret...`);\n deactivateVersionOfSecret(options.secretId, options.version);\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,yBAAyB,QAAQ,sBAAsB;AAChE,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAwB;AACrE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGN,KAAK,CAACO,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,qCAAqC,CAAC;AAEvEG,OAAO,CACJC,WAAW,CAAC,iCAAiC,CAAC,CAC9CC,SAAS,CAAC,IAAIT,MAAM,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC,CAClES,SAAS,CAAC,IAAIT,MAAM,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAAC,CACtEU,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,QAAQ,IAAIH,OAAO,CAACI,OAAO,KAAK,MAAMd,SAAS,CAAC,CAAC,CAAC,EAAE;IAC9DF,cAAc,CAAE,mCAAkC,CAAC;IACnDF,yBAAyB,CAACc,OAAO,CAACG,QAAQ,EAAEH,OAAO,CAACI,OAAO,CAAC;EAC9D;EACA;EAAA,KACK;IACHjB,YAAY,CAAC,sDAAsD,CAAC;IACpEK,OAAO,CAACa,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHf,OAAO,CAACgB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"esv-secret-version-deactivate.js","names":["frodo","Option","deactivateVersionOfSecret","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","secretId","version","outcome","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-version-deactivate.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { deactivateVersionOfSecret } from '../../ops/SecretsOps';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret version deactivate');\n\nprogram\n .description('Deactivate versions of secrets.')\n .addOption(new Option('-i, --secret-id <secret-id>', 'Secret id.'))\n .addOption(new Option('-v, --version <version>', 'Version of secret.'))\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // activate by id\n if (options.secretId && options.version && (await getTokens())) {\n verboseMessage(`Deactivating version of secret...`);\n const outcome = await deactivateVersionOfSecret(\n options.secretId,\n options.version\n );\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,yBAAyB,QAAQ,sBAAsB;AAChE,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAwB;AACrE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGN,KAAK,CAACO,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,qCAAqC,CAAC;AAEvEG,OAAO,CACJC,WAAW,CAAC,iCAAiC,CAAC,CAC9CC,SAAS,CAAC,IAAIT,MAAM,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC,CAClES,SAAS,CAAC,IAAIT,MAAM,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAAC,CACtEU,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,QAAQ,IAAIH,OAAO,CAACI,OAAO,KAAK,MAAMd,SAAS,CAAC,CAAC,CAAC,EAAE;IAC9DF,cAAc,CAAE,mCAAkC,CAAC;IACnD,MAAMiB,OAAO,GAAG,MAAMnB,yBAAyB,CAC7Cc,OAAO,CAACG,QAAQ,EAChBH,OAAO,CAACI,OACV,CAAC;IACD,IAAI,CAACC,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHpB,YAAY,CAAC,sDAAsD,CAAC;IACpEmB,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHf,OAAO,CAACgB,KAAK,CAAC,CAAC"}
@@ -14,17 +14,18 @@ async (host, realm, user, password, options, command) => {
14
14
  // delete by id
15
15
  if (options.secretId && options.version && (await getTokens())) {
16
16
  verboseMessage(`Deleting version of secret...`);
17
- deleteVersionOfSecret(options.secretId, options.version);
17
+ const outcome = await deleteVersionOfSecret(options.secretId, options.version);
18
+ if (!outcome) process.exitCode = 1;
18
19
  }
19
20
  // --all -a
20
21
  // else if (options.all && (await getTokens())) {
21
22
  // printMessage('Deleting all versions...');
22
- // deleteJourneys(options);
23
+ // const outcome = deleteJourneys(options);
24
+ // if (!outcome) process.exitCode = 1;
23
25
  // }
24
26
  // unrecognized combination of options or no options
25
27
  else {
26
28
  printMessage('Unrecognized combination of options or no options...');
27
- program.help();
28
29
  process.exitCode = 1;
29
30
  }
30
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"esv-secret-version-delete.js","names":["frodo","Option","deleteVersionOfSecret","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","secretId","version","help","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-version-delete.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { deleteVersionOfSecret } from '../../ops/SecretsOps';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret version delete');\n\nprogram\n .description('Delete versions of secrets.')\n .addOption(\n new Option(\n '-i, --secret-id <secret-id>',\n 'Secret id. If specified, -a is ignored.'\n )\n )\n .addOption(new Option('-v, --version <version>', 'Version of secret.'))\n .addOption(\n new Option('-a, --all', 'Delete all secrets in a realm. Ignored with -i.')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // delete by id\n if (options.secretId && options.version && (await getTokens())) {\n verboseMessage(`Deleting version of secret...`);\n deleteVersionOfSecret(options.secretId, options.version);\n }\n // --all -a\n // else if (options.all && (await getTokens())) {\n // printMessage('Deleting all versions...');\n // deleteJourneys(options);\n // }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,qBAAqB,QAAQ,sBAAsB;AAC5D,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAwB;AACrE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGN,KAAK,CAACO,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,iCAAiC,CAAC;AAEnEG,OAAO,CACJC,WAAW,CAAC,6BAA6B,CAAC,CAC1CC,SAAS,CACR,IAAIT,MAAM,CACR,6BAA6B,EAC7B,yCACF,CACF,CAAC,CACAS,SAAS,CAAC,IAAIT,MAAM,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAAC,CACtES,SAAS,CACR,IAAIT,MAAM,CAAC,WAAW,EAAE,iDAAiD,CAC3E,CAAC,CACAU,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,QAAQ,IAAIH,OAAO,CAACI,OAAO,KAAK,MAAMd,SAAS,CAAC,CAAC,CAAC,EAAE;IAC9DF,cAAc,CAAE,+BAA8B,CAAC;IAC/CF,qBAAqB,CAACc,OAAO,CAACG,QAAQ,EAAEH,OAAO,CAACI,OAAO,CAAC;EAC1D;EACA;EACA;EACA;EACA;EACA;EACA;EAAA,KACK;IACHjB,YAAY,CAAC,sDAAsD,CAAC;IACpEK,OAAO,CAACa,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHf,OAAO,CAACgB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"esv-secret-version-delete.js","names":["frodo","Option","deleteVersionOfSecret","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","secretId","version","outcome","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-version-delete.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { deleteVersionOfSecret } from '../../ops/SecretsOps';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret version delete');\n\nprogram\n .description('Delete versions of secrets.')\n .addOption(\n new Option(\n '-i, --secret-id <secret-id>',\n 'Secret id. If specified, -a is ignored.'\n )\n )\n .addOption(new Option('-v, --version <version>', 'Version of secret.'))\n .addOption(\n new Option('-a, --all', 'Delete all secrets in a realm. Ignored with -i.')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // delete by id\n if (options.secretId && options.version && (await getTokens())) {\n verboseMessage(`Deleting version of secret...`);\n const outcome = await deleteVersionOfSecret(\n options.secretId,\n options.version\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n // else if (options.all && (await getTokens())) {\n // printMessage('Deleting all versions...');\n // const outcome = deleteJourneys(options);\n // if (!outcome) process.exitCode = 1;\n // }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,qBAAqB,QAAQ,sBAAsB;AAC5D,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAwB;AACrE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGN,KAAK,CAACO,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,iCAAiC,CAAC;AAEnEG,OAAO,CACJC,WAAW,CAAC,6BAA6B,CAAC,CAC1CC,SAAS,CACR,IAAIT,MAAM,CACR,6BAA6B,EAC7B,yCACF,CACF,CAAC,CACAS,SAAS,CAAC,IAAIT,MAAM,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAAC,CACtES,SAAS,CACR,IAAIT,MAAM,CAAC,WAAW,EAAE,iDAAiD,CAC3E,CAAC,CACAU,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,QAAQ,IAAIH,OAAO,CAACI,OAAO,KAAK,MAAMd,SAAS,CAAC,CAAC,CAAC,EAAE;IAC9DF,cAAc,CAAE,+BAA8B,CAAC;IAC/C,MAAMiB,OAAO,GAAG,MAAMnB,qBAAqB,CACzCc,OAAO,CAACG,QAAQ,EAChBH,OAAO,CAACI,OACV,CAAC;IACD,IAAI,CAACC,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAAA,KACK;IACHpB,YAAY,CAAC,sDAAsD,CAAC;IACpEmB,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHf,OAAO,CAACgB,KAAK,CAAC,CAAC"}
@@ -13,7 +13,8 @@ async (host, realm, user, password, options, command) => {
13
13
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
14
14
  if (await getTokens()) {
15
15
  verboseMessage('Listing versions...');
16
- listSecretVersions(options.secretId);
16
+ const outcome = await listSecretVersions(options.secretId);
17
+ if (!outcome) process.exitCode = 1;
17
18
  } else {
18
19
  process.exitCode = 1;
19
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"esv-secret-version-list.js","names":["frodo","Option","listSecretVersions","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","secretId","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-version-list.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { listSecretVersions } from '../../ops/SecretsOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret version list');\n\nprogram\n .description('List versions of secret.')\n .addOption(new Option('-i, --secret-id <secret-id>', 'Secret id.'))\n .addOption(\n new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage('Listing versions...');\n listSecretVersions(options.secretId);\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,+BAA+B,CAAC;AAEjEG,OAAO,CACJC,WAAW,CAAC,0BAA0B,CAAC,CACvCC,SAAS,CAAC,IAAIR,MAAM,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC,CAClEQ,SAAS,CACR,IAAIR,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACS,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1E,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMZ,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAC,qBAAqB,CAAC;IACrCD,kBAAkB,CAACc,OAAO,CAACG,QAAQ,CAAC;EACtC,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHd,OAAO,CAACe,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"esv-secret-version-list.js","names":["frodo","Option","listSecretVersions","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","outcome","secretId","process","exitCode","parse"],"sources":["../../../src/cli/esv/esv-secret-version-list.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { listSecretVersions } from '../../ops/SecretsOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo esv secret version list');\n\nprogram\n .description('List versions of secret.')\n .addOption(new Option('-i, --secret-id <secret-id>', 'Secret id.'))\n .addOption(\n new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage('Listing versions...');\n const outcome = await listSecretVersions(options.secretId);\n if (!outcome) process.exitCode = 1;\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,+BAA+B,CAAC;AAEjEG,OAAO,CACJC,WAAW,CAAC,0BAA0B,CAAC,CACvCC,SAAS,CAAC,IAAIR,MAAM,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC,CAClEQ,SAAS,CACR,IAAIR,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACS,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1E,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMZ,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAC,qBAAqB,CAAC;IACrC,MAAMgB,OAAO,GAAG,MAAMjB,kBAAkB,CAACc,OAAO,CAACI,QAAQ,CAAC;IAC1D,IAAI,CAACD,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHf,OAAO,CAACgB,KAAK,CAAC,CAAC"}
@@ -13,7 +13,8 @@ async (host, realm, user, password, options, command) => {
13
13
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
14
14
  if (await getTokens()) {
15
15
  verboseMessage('Creating variable...');
16
- createVariable(options.variableId, options.value, options.description, options.variableType);
16
+ const outcome = await createVariable(options.variableId, options.value, options.description, options.variableType);
17
+ if (!outcome) process.exitCode = 1;
17
18
  } else {
18
19
  process.exitCode = 1;
19
20
  }