@rockcarver/frodo-cli 2.0.0-40 → 2.0.0-42

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 (44) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js.map +1 -1
  3. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js.map +1 -1
  4. package/esm/cli/app/app-delete.js.map +1 -1
  5. package/esm/cli/app/app-describe.js.map +1 -1
  6. package/esm/cli/app/app-export.js.map +1 -1
  7. package/esm/cli/app/app-import.js.map +1 -1
  8. package/esm/cli/app/app-list.js.map +1 -1
  9. package/esm/cli/app/app.js.map +1 -1
  10. package/esm/cli/config/config-export.js +5 -3
  11. package/esm/cli/config/config-export.js.map +1 -1
  12. package/esm/cli/config/config-import.js +37 -4
  13. package/esm/cli/config/config-import.js.map +1 -1
  14. package/esm/cli/config/config.js +1 -2
  15. package/esm/cli/config/config.js.map +1 -1
  16. package/esm/cli/idp/idp-import.js +13 -5
  17. package/esm/cli/idp/idp-import.js.map +1 -1
  18. package/esm/cli/journey/journey-export.js +7 -4
  19. package/esm/cli/journey/journey-export.js.map +1 -1
  20. package/esm/cli/saml/saml-import.js +13 -5
  21. package/esm/cli/saml/saml-import.js.map +1 -1
  22. package/esm/cli/service/service-import.js +22 -5
  23. package/esm/cli/service/service-import.js.map +1 -1
  24. package/esm/ops/ApplicationOps.js +1 -1
  25. package/esm/ops/ApplicationOps.js.map +1 -1
  26. package/esm/ops/ConfigOps.js +39 -5
  27. package/esm/ops/ConfigOps.js.map +1 -1
  28. package/esm/ops/EmailTemplateOps.js +12 -17
  29. package/esm/ops/EmailTemplateOps.js.map +1 -1
  30. package/esm/ops/IdmOps.js +41 -91
  31. package/esm/ops/IdmOps.js.map +1 -1
  32. package/esm/ops/IdpOps.js +20 -8
  33. package/esm/ops/IdpOps.js.map +1 -1
  34. package/esm/ops/JourneyOps.js +10 -6
  35. package/esm/ops/JourneyOps.js.map +1 -1
  36. package/esm/ops/Saml2Ops.js +20 -8
  37. package/esm/ops/Saml2Ops.js.map +1 -1
  38. package/esm/ops/ServiceOps.js +30 -14
  39. package/esm/ops/ServiceOps.js.map +1 -1
  40. package/esm/ops/ThemeOps.js +16 -23
  41. package/esm/ops/ThemeOps.js.map +1 -1
  42. package/esm/utils/Config.js +13 -3
  43. package/esm/utils/Config.js.map +1 -1
  44. package/package.json +2 -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-41] - 2023-12-23
11
+
12
+ ## [2.0.0-40] - 2023-12-22
13
+
10
14
  ## [2.0.0-39] - 2023-12-19
11
15
 
12
16
  ## [2.0.0-38] - 2023-12-16
@@ -1445,7 +1449,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1445
1449
  - Fixed problem with adding connection profiles
1446
1450
  - Miscellaneous bug fixes
1447
1451
 
1448
- [Unreleased]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-39...HEAD
1452
+ [Unreleased]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-41...HEAD
1453
+
1454
+ [2.0.0-41]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-40...v2.0.0-41
1455
+
1456
+ [2.0.0-40]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-39...v2.0.0-40
1449
1457
 
1450
1458
  [2.0.0-39]: https://github.com/rockcarver/frodo-cli/compare/v2.0.0-38...v2.0.0-39
1451
1459
 
@@ -1 +1 @@
1
- {"version":3,"file":"admin-execute-rfc7523-authz-grant-flow.js","names":["frodo","Option","fs","v4","uuidv4","s","executeRfc7523AuthZGrantFlow","printMessage","FrodoCommand","getTokens","login","program","description","addOption","default","addHelpText","amBaseUrl","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","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 } 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 ${'frodo admin generate-rfc7523-authz-grant-artefacts --help'['brightCyan']} to see how to create the required configuration artefacts for ${'frodo admin execute-rfc7523-authz-grant-flow'['brightCyan']}:\\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(`Executing RFC7523 authorization grant flow...`);\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,QAAQ,uBAAuB;AAE7C,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,GAAGT,KAAK,CAACU,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,SAAQ,2DAA2D,CAAC,YAAY,CAAE,kEAAiE,8CAA8C,CAAC,YAAY,CAAE,KACrN,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,CAAE,+CAA8C,CAAC;IAC7D,IAAIkB,QAAQ,GAAGrB,MAAM,CAAC,CAAC;IACvB,IAAIkB,OAAO,CAACG,QAAQ,EAAE;MACpBA,QAAQ,GAAGH,OAAO,CAACG,QAAQ;IAC7B;IACA,IAAIC,GAAW,GAAGC,SAAS;IAC3B,IAAIL,OAAO,CAACM,OAAO,EAAE;MACnB,IAAI;QACF,MAAMC,IAAI,GAAG3B,EAAE,CAAC4B,YAAY,CAACR,OAAO,CAACM,OAAO,CAAC;QAC7CF,GAAG,GAAGK,IAAI,CAACC,KAAK,CAACH,IAAI,CAACI,QAAQ,CAAC,CAAC,CAAC;MACnC,CAAC,CAAC,OAAOC,KAAK,EAAE;QACd3B,YAAY,CACT,+BAA8Be,OAAO,CAACM,OAAQ,KAAIM,KAAK,CAACC,OAAQ,EAAC,EAClE,OACF,CAAC;MACH;IACF;IACA,MAAMC,OAAO,GAAG,MAAM9B,4BAA4B,CAChDmB,QAAQ,EACRH,OAAO,CAACe,GAAG,EACXX,GAAG,EACHJ,OAAO,CAACgB,GAAG,EACXhB,OAAO,CAACiB,KAAK,CAACC,KAAK,CAAC,GAAG,CAAC,EACxBlB,OAAO,CAACmB,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;AAEHhC,OAAO,CAACqB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"admin-execute-rfc7523-authz-grant-flow.js","names":["frodo","Option","fs","v4","uuidv4","s","executeRfc7523AuthZGrantFlow","printMessage","FrodoCommand","getTokens","login","program","description","addOption","default","addHelpText","amBaseUrl","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","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 } 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-artefacts --help'[\n 'brightCyan'\n ]\n } to see how to create the required configuration artefacts 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(`Executing RFC7523 authorization grant flow...`);\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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin-generate-rfc7523-authz-grant-artefacts.js","names":["frodo","state","Option","fs","v4","uuidv4","s","generateRfc7523AuthZGrantArtefacts","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-artefacts.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 { generateRfc7523AuthZGrantArtefacts } 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-artefacts'\n);\n\nprogram\n .description('Generate RFC7523 authorization grant artefacts.')\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 artefacts 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 artefacts 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-artefacts --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-artefacts --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 artefacts for an RFC7523 authorization grant flow configuration but do not create any configuration or files.\\n` +\n ` $ frodo admin generate-rfc7523-authz-grant-artefacts --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 artefacts for an RFC7523 authorization grant flow configuration.\\n` +\n ` $ frodo admin generate-rfc7523-authz-grant-artefacts --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 ${'frodo admin execute-rfc7523-authz-grant-flow --help'['brightCyan']} to see how to test your configuration created with ${'frodo admin generate-rfc7523-authz-grant-artefacts'['brightCyan']}:\\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 artefacts 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 generateRfc7523AuthZGrantArtefacts(\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":"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,kCAAkC,QAAQ,uBAAuB;AAC1E,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,oDACF,CAAC;AAEDG,OAAO,CACJC,WAAW,CAAC,iDAAiD,CAAC,CAC9DC,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,wSACF,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,CACR,IAAIZ,MAAM,CACR,WAAW,EACX,iNACF,CACF,CAAC,CACAY,SAAS,CAAC,IAAIZ,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC,CACzDc,WAAW,CACV,OAAO,EACN,mBAAkB,GAChB,sJAAqJ,GACrJ,2DAA0D,GAC1D,0EAAyE,GACzE,+EAA8E,GAC9E,mFAAkF,GAClF,oKAAmKV,CAAC,CAACW,SAAU,IAAG,CACjL,YAAY,CACb,GACA,yEAAwE,GACxE,gNAA+MX,CAAC,CAACW,SAAU,IAAG,CAC7N,YAAY,CACb,GACA,0JAAyJ,GACzJ,8KAA6KX,CAAC,CAACW,SAAU,IAAG,CAC3L,YAAY,CACb,GACA,iHAAgH,GAChH,2KAA0KX,CAAC,CAACW,SAAU,IAAG,CACxL,YAAY,CACb,GACA,uBAAsB,GACtB,SAAQ,qDAAqD,CAAC,YAAY,CAAE,uDAAsD,oDAAoD,CAAC,YAAY,CAAE,KAC1M,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,kCAAkC,CACtDoB,QAAQ,EACRJ,OAAO,CAACgB,GAAG,EACXX,GAAG,EACHL,OAAO,CAACiB,GAAG,EACXjB,OAAO,CAACkB,KAAK,CAACC,KAAK,CAAC,GAAG,CAAC,EACxB;MAAEC,IAAI,EAAEpB,OAAO,CAACoB;IAAK,CAAC,EACtBpB,OAAO,CAACqB,IACV,CAAC;IACD,IAAI,CAACN,OAAO,EAAEO,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHlC,OAAO,CAACsB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"admin-generate-rfc7523-authz-grant-artefacts.js","names":["frodo","state","Option","fs","v4","uuidv4","s","generateRfc7523AuthZGrantArtefacts","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-artefacts.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 { generateRfc7523AuthZGrantArtefacts } 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-artefacts'\n);\n\nprogram\n .description('Generate RFC7523 authorization grant artefacts.')\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 artefacts 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 artefacts 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-artefacts --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-artefacts --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 artefacts for an RFC7523 authorization grant flow configuration but do not create any configuration or files.\\n` +\n ` $ frodo admin generate-rfc7523-authz-grant-artefacts --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 artefacts for an RFC7523 authorization grant flow configuration.\\n` +\n ` $ frodo admin generate-rfc7523-authz-grant-artefacts --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-artefacts'['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 artefacts 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 generateRfc7523AuthZGrantArtefacts(\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":"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,kCAAkC,QAAQ,uBAAuB;AAC1E,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,oDACF,CAAC;AAEDG,OAAO,CACJC,WAAW,CAAC,iDAAiD,CAAC,CAC9DC,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,wSACF,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,CACR,IAAIZ,MAAM,CACR,WAAW,EACX,iNACF,CACF,CAAC,CACAY,SAAS,CAAC,IAAIZ,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC,CACzDc,WAAW,CACV,OAAO,EACN,mBAAkB,GAChB,sJAAqJ,GACrJ,2DAA0D,GAC1D,0EAAyE,GACzE,+EAA8E,GAC9E,mFAAkF,GAClF,oKAAmKV,CAAC,CAACW,SAAU,IAAG,CACjL,YAAY,CACb,GACA,yEAAwE,GACxE,gNAA+MX,CAAC,CAACW,SAAU,IAAG,CAC7N,YAAY,CACb,GACA,0JAAyJ,GACzJ,8KAA6KX,CAAC,CAACW,SAAU,IAAG,CAC3L,YAAY,CACb,GACA,iHAAgH,GAChH,2KAA0KX,CAAC,CAACW,SAAU,IAAG,CACxL,YAAY,CACb,GACA,uBAAsB,GACtB,SACC,qDAAqD,CAAC,YAAY,CACnE,uDACC,oDAAoD,CAAC,YAAY,CAClE,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,kCAAkC,CACtDoB,QAAQ,EACRJ,OAAO,CAACgB,GAAG,EACXX,GAAG,EACHL,OAAO,CAACiB,GAAG,EACXjB,OAAO,CAACkB,KAAK,CAACC,KAAK,CAAC,GAAG,CAAC,EACxB;MAAEC,IAAI,EAAEpB,OAAO,CAACoB;IAAK,CAAC,EACtBpB,OAAO,CAACqB,IACV,CAAC;IACD,IAAI,CAACN,OAAO,EAAEO,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHlC,OAAO,CAACsB,KAAK,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"app-delete.js","names":["frodo","Option","s","deleteApplication","deleteApplications","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","addHelpText","amBaseUrl","connId","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","appId","status","deep","process","exitCode","all","help","parse"],"sources":["../../../src/cli/app/app-delete.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport * as s from '../../help/SampleData';\nimport {\n deleteApplication,\n deleteApplications,\n} from '../../ops/ApplicationOps';\nimport { verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo app delete');\n\nprogram\n .description('Delete applications.')\n .addOption(\n new Option(\n '-i, --app-id <id>',\n 'Application name. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option('-a, --all', 'Delete all applications. Ignored with -i.')\n )\n .addOption(\n new Option(\n '--no-deep',\n 'No deep delete. This leaves orphaned configuration artifacts behind.'\n )\n )\n .addHelpText(\n 'after',\n `Important Note:\\n`['brightYellow'] +\n ` The ${'frodo app'['brightCyan']} command to manage OAuth2 clients in v1.x has been renamed to ${'frodo oauth client'['brightCyan']} in v2.x\\n` +\n ` The ${'frodo app'['brightCyan']} command in v2.x manages the new applications created using the new application templates in ForgeRock Identity Cloud. To manage oauth clients, use the ${'frodo oauth client'['brightCyan']} command.\\n\\n` +\n `Usage Examples:\\n` +\n ` Delete application 'myApp':\\n` +\n ` $ frodo app delete -i 'myApp' ${s.amBaseUrl}\\n`['brightCyan'] +\n ` Delete all applications:\\n` +\n ` $ frodo app delete -a ${s.connId}\\n`['brightCyan']\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 app by name\n if (options.appId && (await getTokens())) {\n verboseMessage('Deleting application...');\n const status = await deleteApplication(options.appId, options.deep);\n if (!status) process.exitCode = 1;\n }\n // -a/--all\n else if (options.all && (await getTokens())) {\n verboseMessage('Deleting all applications...');\n const status = await deleteApplications(options.deep);\n if (!status) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n verboseMessage('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,OAAO,KAAKC,CAAC,MAAM,uBAAuB;AAC1C,SACEC,iBAAiB,EACjBC,kBAAkB,QACb,0BAA0B;AACjC,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGP,KAAK,CAACQ,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,kBAAkB,CAAC;AAEpDG,OAAO,CACJC,WAAW,CAAC,sBAAsB,CAAC,CACnCC,SAAS,CACR,IAAIV,MAAM,CACR,mBAAmB,EACnB,wDACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CAAC,WAAW,EAAE,2CAA2C,CACrE,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,WAAW,EACX,sEACF,CACF,CAAC,CACAW,WAAW,CACV,OAAO,EACN,mBAAkB,CAAC,cAAc,CAAC,GAChC,SAAQ,WAAW,CAAC,YAAY,CAAE,iEAAgE,oBAAoB,CAAC,YAAY,CAAE,YAAW,GAChJ,SAAQ,WAAW,CAAC,YAAY,CAAE,2JAA0J,oBAAoB,CAAC,YAAY,CAAE,eAAc,GAC7O,mBAAkB,GAClB,iCAAgC,GAChC,mCAAkCV,CAAC,CAACW,SAAU,IAAG,CAAC,YAAY,CAAC,GAC/D,8BAA6B,GAC7B,2BAA0BX,CAAC,CAACY,MAAO,IAAG,CAAC,YAAY,CACxD,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;EACA,IAAID,OAAO,CAACG,KAAK,KAAK,MAAMhB,SAAS,CAAC,CAAC,CAAC,EAAE;IACxCF,cAAc,CAAC,yBAAyB,CAAC;IACzC,MAAMmB,MAAM,GAAG,MAAMrB,iBAAiB,CAACiB,OAAO,CAACG,KAAK,EAAEH,OAAO,CAACK,IAAI,CAAC;IACnE,IAAI,CAACD,MAAM,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACnC;EACA;EAAA,KACK,IAAIP,OAAO,CAACQ,GAAG,KAAK,MAAMrB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CAAC,8BAA8B,CAAC;IAC9C,MAAMmB,MAAM,GAAG,MAAMpB,kBAAkB,CAACgB,OAAO,CAACK,IAAI,CAAC;IACrD,IAAI,CAACD,MAAM,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACnC;EACA;EAAA,KACK;IACHtB,cAAc,CAAC,sDAAsD,CAAC;IACtEI,OAAO,CAACoB,IAAI,CAAC,CAAC;IACdH,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHlB,OAAO,CAACqB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"app-delete.js","names":["frodo","Option","s","deleteApplication","deleteApplications","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","addHelpText","amBaseUrl","connId","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","appId","status","deep","process","exitCode","all","help","parse"],"sources":["../../../src/cli/app/app-delete.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport * as s from '../../help/SampleData';\nimport {\n deleteApplication,\n deleteApplications,\n} from '../../ops/ApplicationOps';\nimport { verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo app delete');\n\nprogram\n .description('Delete applications.')\n .addOption(\n new Option(\n '-i, --app-id <id>',\n 'Application name. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option('-a, --all', 'Delete all applications. Ignored with -i.')\n )\n .addOption(\n new Option(\n '--no-deep',\n 'No deep delete. This leaves orphaned configuration artifacts behind.'\n )\n )\n .addHelpText(\n 'after',\n `Important Note:\\n`['brightYellow'] +\n ` The ${\n 'frodo app'['brightCyan']\n } command to manage OAuth2 clients in v1.x has been renamed to ${\n 'frodo oauth client'['brightCyan']\n } in v2.x\\n` +\n ` The ${\n 'frodo app'['brightCyan']\n } command in v2.x manages the new applications created using the new application templates in ForgeRock Identity Cloud. To manage oauth clients, use the ${\n 'frodo oauth client'['brightCyan']\n } command.\\n\\n` +\n `Usage Examples:\\n` +\n ` Delete application 'myApp':\\n` +\n ` $ frodo app delete -i 'myApp' ${s.amBaseUrl}\\n`['brightCyan'] +\n ` Delete all applications:\\n` +\n ` $ frodo app delete -a ${s.connId}\\n`['brightCyan']\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 app by name\n if (options.appId && (await getTokens())) {\n verboseMessage('Deleting application...');\n const status = await deleteApplication(options.appId, options.deep);\n if (!status) process.exitCode = 1;\n }\n // -a/--all\n else if (options.all && (await getTokens())) {\n verboseMessage('Deleting all applications...');\n const status = await deleteApplications(options.deep);\n if (!status) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n verboseMessage('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,OAAO,KAAKC,CAAC,MAAM,uBAAuB;AAC1C,SACEC,iBAAiB,EACjBC,kBAAkB,QACb,0BAA0B;AACjC,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGP,KAAK,CAACQ,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,kBAAkB,CAAC;AAEpDG,OAAO,CACJC,WAAW,CAAC,sBAAsB,CAAC,CACnCC,SAAS,CACR,IAAIV,MAAM,CACR,mBAAmB,EACnB,wDACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CAAC,WAAW,EAAE,2CAA2C,CACrE,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,WAAW,EACX,sEACF,CACF,CAAC,CACAW,WAAW,CACV,OAAO,EACN,mBAAkB,CAAC,cAAc,CAAC,GAChC,SACC,WAAW,CAAC,YAAY,CACzB,iEACC,oBAAoB,CAAC,YAAY,CAClC,YAAW,GACX,SACC,WAAW,CAAC,YAAY,CACzB,2JACC,oBAAoB,CAAC,YAAY,CAClC,eAAc,GACd,mBAAkB,GAClB,iCAAgC,GAChC,mCAAkCV,CAAC,CAACW,SAAU,IAAG,CAAC,YAAY,CAAC,GAC/D,8BAA6B,GAC7B,2BAA0BX,CAAC,CAACY,MAAO,IAAG,CAAC,YAAY,CACxD,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;EACA,IAAID,OAAO,CAACG,KAAK,KAAK,MAAMhB,SAAS,CAAC,CAAC,CAAC,EAAE;IACxCF,cAAc,CAAC,yBAAyB,CAAC;IACzC,MAAMmB,MAAM,GAAG,MAAMrB,iBAAiB,CAACiB,OAAO,CAACG,KAAK,EAAEH,OAAO,CAACK,IAAI,CAAC;IACnE,IAAI,CAACD,MAAM,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACnC;EACA;EAAA,KACK,IAAIP,OAAO,CAACQ,GAAG,KAAK,MAAMrB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CAAC,8BAA8B,CAAC;IAC9C,MAAMmB,MAAM,GAAG,MAAMpB,kBAAkB,CAACgB,OAAO,CAACK,IAAI,CAAC;IACrD,IAAI,CAACD,MAAM,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACnC;EACA;EAAA,KACK;IACHtB,cAAc,CAAC,sDAAsD,CAAC;IACtEI,OAAO,CAACoB,IAAI,CAAC,CAAC;IACdH,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHlB,OAAO,CAACqB,KAAK,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"app-describe.js","names":["frodo","Option","s","FrodoCommand","getTokens","login","program","description","addOption","addHelpText","connId","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","process","exitCode","parse"],"sources":["../../../src/cli/app/app-describe.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport * as s from '../../help/SampleData';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo app describe');\n\nprogram\n .description('Describe application.')\n .addOption(new Option('-i, --app-id <id>', 'Application name.'))\n .addHelpText(\n 'after',\n `Important Note:\\n`['brightYellow'] +\n ` The ${'frodo app'['brightCyan']} command to manage OAuth2 clients in v1.x has been renamed to ${'frodo oauth client'['brightCyan']} in v2.x\\n` +\n ` The ${'frodo app'['brightCyan']} command in v2.x manages the new applications created using the new application templates in ForgeRock Identity Cloud. To manage oauth clients, use the ${'frodo oauth client'['brightCyan']} command.\\n\\n` +\n `Usage Examples:\\n` +\n ` Describe application 'myApp':\\n` +\n ` $ frodo app describe -i myApp ${s.connId}\\n`['brightCyan'] +\n ` Describe application 'myApp' in raw JSON:\\n` +\n ` $ frodo app describe -i myApp --json ${s.connId}\\n`['brightCyan']\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 // code goes here\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,OAAO,KAAKC,CAAC,MAAM,uBAAuB;AAC1C,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGJ,KAAK,CAACK,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,oBAAoB,CAAC;AAEtDG,OAAO,CACJC,WAAW,CAAC,uBAAuB,CAAC,CACpCC,SAAS,CAAC,IAAIP,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAC/DQ,WAAW,CACV,OAAO,EACN,mBAAkB,CAAC,cAAc,CAAC,GAChC,SAAQ,WAAW,CAAC,YAAY,CAAE,iEAAgE,oBAAoB,CAAC,YAAY,CAAE,YAAW,GAChJ,SAAQ,WAAW,CAAC,YAAY,CAAE,2JAA0J,oBAAoB,CAAC,YAAY,CAAE,eAAc,GAC7O,mBAAkB,GAClB,mCAAkC,GAClC,mCAAkCP,CAAC,CAACQ,MAAO,IAAG,CAAC,YAAY,CAAC,GAC5D,+CAA8C,GAC9C,0CAAyCR,CAAC,CAACQ,MAAO,IAAG,CAAC,YAAY,CACvE,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,MAAMb,SAAS,CAAC,CAAC,EAAE;IACrB;EAAA,CACD,MAAM;IACLe,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHd,OAAO,CAACe,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"app-describe.js","names":["frodo","Option","s","FrodoCommand","getTokens","login","program","description","addOption","addHelpText","connId","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","process","exitCode","parse"],"sources":["../../../src/cli/app/app-describe.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport * as s from '../../help/SampleData';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo app describe');\n\nprogram\n .description('Describe application.')\n .addOption(new Option('-i, --app-id <id>', 'Application name.'))\n .addHelpText(\n 'after',\n `Important Note:\\n`['brightYellow'] +\n ` The ${\n 'frodo app'['brightCyan']\n } command to manage OAuth2 clients in v1.x has been renamed to ${\n 'frodo oauth client'['brightCyan']\n } in v2.x\\n` +\n ` The ${\n 'frodo app'['brightCyan']\n } command in v2.x manages the new applications created using the new application templates in ForgeRock Identity Cloud. To manage oauth clients, use the ${\n 'frodo oauth client'['brightCyan']\n } command.\\n\\n` +\n `Usage Examples:\\n` +\n ` Describe application 'myApp':\\n` +\n ` $ frodo app describe -i myApp ${s.connId}\\n`['brightCyan'] +\n ` Describe application 'myApp' in raw JSON:\\n` +\n ` $ frodo app describe -i myApp --json ${s.connId}\\n`['brightCyan']\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 // code goes here\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,OAAO,KAAKC,CAAC,MAAM,uBAAuB;AAC1C,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGJ,KAAK,CAACK,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,oBAAoB,CAAC;AAEtDG,OAAO,CACJC,WAAW,CAAC,uBAAuB,CAAC,CACpCC,SAAS,CAAC,IAAIP,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAC/DQ,WAAW,CACV,OAAO,EACN,mBAAkB,CAAC,cAAc,CAAC,GAChC,SACC,WAAW,CAAC,YAAY,CACzB,iEACC,oBAAoB,CAAC,YAAY,CAClC,YAAW,GACX,SACC,WAAW,CAAC,YAAY,CACzB,2JACC,oBAAoB,CAAC,YAAY,CAClC,eAAc,GACd,mBAAkB,GAClB,mCAAkC,GAClC,mCAAkCP,CAAC,CAACQ,MAAO,IAAG,CAAC,YAAY,CAAC,GAC5D,+CAA8C,GAC9C,0CAAyCR,CAAC,CAACQ,MAAO,IAAG,CAAC,YAAY,CACvE,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,MAAMb,SAAS,CAAC,CAAC,EAAE;IACrB;EAAA,CACD,MAAM;IACLe,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHd,OAAO,CAACe,KAAK,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"app-export.js","names":["frodo","Option","s","exportApplicationsToFile","exportApplicationsToFiles","exportApplicationToFile","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","addHelpText","connId","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","appId","status","file","metadata","useStringArrays","deps","process","exitCode","all","allSeparate","help","parse"],"sources":["../../../src/cli/app/app-export.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport * as s from '../../help/SampleData';\nimport {\n exportApplicationsToFile,\n exportApplicationsToFiles,\n exportApplicationToFile,\n} from '../../ops/ApplicationOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo app export');\n\nprogram\n .description('Export applications.')\n .addOption(\n new Option(\n '-i, --app-id <app-id>',\n 'Application name. 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 applications to a single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all applications to separate files (*.application.json) in the current directory. Ignored with -i or -a.'\n )\n )\n .addOption(\n new Option(\n '-N, --no-metadata',\n 'Does not include metadata in the export file.'\n )\n )\n .addOption(\n new Option('--no-deps', 'Do not include any dependencies (scripts).')\n )\n .addHelpText(\n 'after',\n `Important Note:\\n`['brightYellow'] +\n ` The ${'frodo app'['brightCyan']} command to manage OAuth2 clients in v1.x has been renamed to ${'frodo oauth client'['brightCyan']} in v2.x\\n` +\n ` The ${'frodo app'['brightCyan']} command in v2.x manages the new applications created using the new application templates in ForgeRock Identity Cloud. To manage oauth clients, use the ${'frodo oauth client'['brightCyan']} command.\\n\\n` +\n `Usage Examples:\\n` +\n ` Export all applications to a single export file with an auto-generated filename using a connection profile:\\n` +\n ` $ frodo app export -a ${s.connId}\\n`['brightCyan'] +\n ` Export the first application to a single export file with a custom filename:\\n` +\n ` $ frodo app export -f ./allMyApplications.application.json ${s.connId}\\n`[\n 'brightCyan'\n ] +\n ` Export all applications to separate export files with an auto-generated filenames:\\n` +\n ` $ frodo app export -A ${s.connId}\\n`['brightCyan'] +\n ` Export all applications without dependencies to a single export file:\\n` +\n ` $ frodo app export --no-deps -a ${s.connId}\\n`['brightCyan'] +\n ` Export the application 'myApp' to a file with an auto-generated filename of 'myApp.application.json':\\n` +\n ` $ frodo app export -i myApp ${s.connId}\\n`['brightCyan']\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 // export\n if (options.appId && (await getTokens())) {\n verboseMessage('Exporting application...');\n const status = await exportApplicationToFile(\n options.appId,\n options.file,\n options.metadata,\n {\n useStringArrays: true,\n deps: options.deps,\n }\n );\n if (!status) process.exitCode = 1;\n }\n // -a/--all\n else if (options.all && (await getTokens())) {\n verboseMessage('Exporting all applications to file...');\n const status = await exportApplicationsToFile(\n options.file,\n options.metadata,\n {\n useStringArrays: true,\n deps: options.deps,\n }\n );\n if (!status) process.exitCode = 1;\n }\n // -A/--all-separate\n else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Exporting all applications to separate files...');\n const status = await exportApplicationsToFiles(options.metadata, {\n useStringArrays: true,\n deps: options.deps,\n });\n if (!status) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n verboseMessage('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":"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"}
1
+ {"version":3,"file":"app-export.js","names":["frodo","Option","s","exportApplicationsToFile","exportApplicationsToFiles","exportApplicationToFile","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","addHelpText","connId","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","appId","status","file","metadata","useStringArrays","deps","process","exitCode","all","allSeparate","help","parse"],"sources":["../../../src/cli/app/app-export.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport * as s from '../../help/SampleData';\nimport {\n exportApplicationsToFile,\n exportApplicationsToFiles,\n exportApplicationToFile,\n} from '../../ops/ApplicationOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo app export');\n\nprogram\n .description('Export applications.')\n .addOption(\n new Option(\n '-i, --app-id <app-id>',\n 'Application name. 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 applications to a single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all applications to separate files (*.application.json) in the current directory. Ignored with -i or -a.'\n )\n )\n .addOption(\n new Option(\n '-N, --no-metadata',\n 'Does not include metadata in the export file.'\n )\n )\n .addOption(\n new Option('--no-deps', 'Do not include any dependencies (scripts).')\n )\n .addHelpText(\n 'after',\n `Important Note:\\n`['brightYellow'] +\n ` The ${\n 'frodo app'['brightCyan']\n } command to manage OAuth2 clients in v1.x has been renamed to ${\n 'frodo oauth client'['brightCyan']\n } in v2.x\\n` +\n ` The ${\n 'frodo app'['brightCyan']\n } command in v2.x manages the new applications created using the new application templates in ForgeRock Identity Cloud. To manage oauth clients, use the ${\n 'frodo oauth client'['brightCyan']\n } command.\\n\\n` +\n `Usage Examples:\\n` +\n ` Export all applications to a single export file with an auto-generated filename using a connection profile:\\n` +\n ` $ frodo app export -a ${s.connId}\\n`['brightCyan'] +\n ` Export the first application to a single export file with a custom filename:\\n` +\n ` $ frodo app export -f ./allMyApplications.application.json ${s.connId}\\n`[\n 'brightCyan'\n ] +\n ` Export all applications to separate export files with an auto-generated filenames:\\n` +\n ` $ frodo app export -A ${s.connId}\\n`['brightCyan'] +\n ` Export all applications without dependencies to a single export file:\\n` +\n ` $ frodo app export --no-deps -a ${s.connId}\\n`['brightCyan'] +\n ` Export the application 'myApp' to a file with an auto-generated filename of 'myApp.application.json':\\n` +\n ` $ frodo app export -i myApp ${s.connId}\\n`['brightCyan']\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 // export\n if (options.appId && (await getTokens())) {\n verboseMessage('Exporting application...');\n const status = await exportApplicationToFile(\n options.appId,\n options.file,\n options.metadata,\n {\n useStringArrays: true,\n deps: options.deps,\n }\n );\n if (!status) process.exitCode = 1;\n }\n // -a/--all\n else if (options.all && (await getTokens())) {\n verboseMessage('Exporting all applications to file...');\n const status = await exportApplicationsToFile(\n options.file,\n options.metadata,\n {\n useStringArrays: true,\n deps: options.deps,\n }\n );\n if (!status) process.exitCode = 1;\n }\n // -A/--all-separate\n else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Exporting all applications to separate files...');\n const status = await exportApplicationsToFiles(options.metadata, {\n useStringArrays: true,\n deps: options.deps,\n });\n if (!status) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n verboseMessage('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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"app-import.js","names":["frodo","Option","s","importApplicationFromFile","importApplicationsFromFile","importApplicationsFromFiles","importFirstApplicationFromFile","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","addHelpText","connId","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","file","appId","status","deps","process","exitCode","all","allSeparate","help","parse"],"sources":["../../../src/cli/app/app-import.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport * as s from '../../help/SampleData';\nimport {\n importApplicationFromFile,\n importApplicationsFromFile,\n importApplicationsFromFiles,\n importFirstApplicationFromFile,\n} from '../../ops/ApplicationOps';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo app import');\n\nprogram\n .description('Import applications.')\n .addOption(\n new Option(\n '-i, --app-id <id>',\n 'Application name. If specified, only one application is imported and the options -a and -A are ignored.'\n )\n )\n .addOption(new Option('-f, --file <file>', 'Name of the file to import.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Import all applications from single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all applications from separate files (*.app.json) in the current directory. Ignored with -i or -a.'\n )\n )\n .addOption(\n new Option('--no-deps', 'Do not include any dependencies (scripts).')\n )\n .addHelpText(\n 'after',\n `Important Note:\\n`['brightYellow'] +\n ` The ${'frodo app'['brightCyan']} command to manage OAuth2 clients in v1.x has been renamed to ${'frodo oauth client'['brightCyan']} in v2.x\\n` +\n ` The ${'frodo app'['brightCyan']} command in v2.x manages the new applications created using the new application templates in ForgeRock Identity Cloud. To manage oauth clients, use the ${'frodo oauth client'['brightCyan']} command.\\n\\n` +\n `Usage Examples:\\n` +\n ` Import all applications from a single export file using a connection profile:\\n` +\n ` $ frodo app import -a -f ./allAlphaApplications.application.json ${s.connId}\\n`[\n 'brightCyan'\n ] +\n ` Import the first application from a single export file:\\n` +\n ` $ frodo app import -f ./allAlphaApplications.application.json ${s.connId}\\n`[\n 'brightCyan'\n ] +\n ` Import all applications from separate export files:\\n` +\n ` $ frodo app import -A ${s.connId}\\n`['brightCyan'] +\n ` Import all applications without dependencies from a single export file:\\n` +\n ` $ frodo app import --no-deps -a -f ./allAlphaApplications.application.json ${s.connId}\\n`[\n 'brightCyan'\n ] +\n ` Import only the application 'myApp' from a file with an export file containing multiple applications:\\n` +\n ` $ frodo app import -i myApp -f ./allAlphaApplications.application.json ${s.connId}\\n`[\n 'brightCyan'\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 // import by id\n if (options.file && options.appId && (await getTokens())) {\n verboseMessage(`Importing application \"${options.appId}\"...`);\n const status = await importApplicationFromFile(\n options.appId,\n options.file,\n {\n deps: options.deps,\n }\n );\n if (!status) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && options.file && (await getTokens())) {\n verboseMessage(\n `Importing all applications from a single file (${options.file})...`\n );\n const status = await importApplicationsFromFile(options.file, {\n deps: options.deps,\n });\n if (!status) process.exitCode = 1;\n }\n // --all-separate -A\n else if (options.allSeparate && !options.file && (await getTokens())) {\n verboseMessage(\n 'Importing all applications from separate files in current directory...'\n );\n const status = await importApplicationsFromFiles({\n deps: options.deps,\n });\n if (!status) process.exitCode = 1;\n }\n // import first provider from file\n else if (options.file && (await getTokens())) {\n verboseMessage(\n `Importing first application from file \"${options.file}\"...`\n );\n const status = await importFirstApplicationFromFile(options.file, {\n deps: options.deps,\n });\n if (!status) process.exitCode = 1;\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":"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"}
1
+ {"version":3,"file":"app-import.js","names":["frodo","Option","s","importApplicationFromFile","importApplicationsFromFile","importApplicationsFromFiles","importFirstApplicationFromFile","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","addHelpText","connId","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","file","appId","status","deps","process","exitCode","all","allSeparate","help","parse"],"sources":["../../../src/cli/app/app-import.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport * as s from '../../help/SampleData';\nimport {\n importApplicationFromFile,\n importApplicationsFromFile,\n importApplicationsFromFiles,\n importFirstApplicationFromFile,\n} from '../../ops/ApplicationOps';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo app import');\n\nprogram\n .description('Import applications.')\n .addOption(\n new Option(\n '-i, --app-id <id>',\n 'Application name. If specified, only one application is imported and the options -a and -A are ignored.'\n )\n )\n .addOption(new Option('-f, --file <file>', 'Name of the file to import.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Import all applications from single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all applications from separate files (*.app.json) in the current directory. Ignored with -i or -a.'\n )\n )\n .addOption(\n new Option('--no-deps', 'Do not include any dependencies (scripts).')\n )\n .addHelpText(\n 'after',\n `Important Note:\\n`['brightYellow'] +\n ` The ${\n 'frodo app'['brightCyan']\n } command to manage OAuth2 clients in v1.x has been renamed to ${\n 'frodo oauth client'['brightCyan']\n } in v2.x\\n` +\n ` The ${\n 'frodo app'['brightCyan']\n } command in v2.x manages the new applications created using the new application templates in ForgeRock Identity Cloud. To manage oauth clients, use the ${\n 'frodo oauth client'['brightCyan']\n } command.\\n\\n` +\n `Usage Examples:\\n` +\n ` Import all applications from a single export file using a connection profile:\\n` +\n ` $ frodo app import -a -f ./allAlphaApplications.application.json ${s.connId}\\n`[\n 'brightCyan'\n ] +\n ` Import the first application from a single export file:\\n` +\n ` $ frodo app import -f ./allAlphaApplications.application.json ${s.connId}\\n`[\n 'brightCyan'\n ] +\n ` Import all applications from separate export files:\\n` +\n ` $ frodo app import -A ${s.connId}\\n`['brightCyan'] +\n ` Import all applications without dependencies from a single export file:\\n` +\n ` $ frodo app import --no-deps -a -f ./allAlphaApplications.application.json ${s.connId}\\n`[\n 'brightCyan'\n ] +\n ` Import only the application 'myApp' from a file with an export file containing multiple applications:\\n` +\n ` $ frodo app import -i myApp -f ./allAlphaApplications.application.json ${s.connId}\\n`[\n 'brightCyan'\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 // import by id\n if (options.file && options.appId && (await getTokens())) {\n verboseMessage(`Importing application \"${options.appId}\"...`);\n const status = await importApplicationFromFile(\n options.appId,\n options.file,\n {\n deps: options.deps,\n }\n );\n if (!status) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && options.file && (await getTokens())) {\n verboseMessage(\n `Importing all applications from a single file (${options.file})...`\n );\n const status = await importApplicationsFromFile(options.file, {\n deps: options.deps,\n });\n if (!status) process.exitCode = 1;\n }\n // --all-separate -A\n else if (options.allSeparate && !options.file && (await getTokens())) {\n verboseMessage(\n 'Importing all applications from separate files in current directory...'\n );\n const status = await importApplicationsFromFiles({\n deps: options.deps,\n });\n if (!status) process.exitCode = 1;\n }\n // import first provider from file\n else if (options.file && (await getTokens())) {\n verboseMessage(\n `Importing first application from file \"${options.file}\"...`\n );\n const status = await importFirstApplicationFromFile(options.file, {\n deps: options.deps,\n });\n if (!status) process.exitCode = 1;\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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"app-list.js","names":["frodo","Option","s","listApplications","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","default","addHelpText","amBaseUrl","username","password","connId","action","host","realm","user","options","command","handleDefaultArgsAndOpts","long","process","exitCode","parse"],"sources":["../../../src/cli/app/app-list.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport * as s from '../../help/SampleData';\nimport { listApplications } from '../../ops/ApplicationOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo app list');\n\nprogram\n .description('List applications.')\n .addOption(\n new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n )\n .addHelpText(\n 'after',\n `Important Note:\\n`['brightYellow'] +\n ` The ${'frodo app'['brightCyan']} command to manage OAuth2 clients in v1.x has been renamed to ${'frodo oauth client'['brightCyan']} in v2.x\\n` +\n ` The ${'frodo app'['brightCyan']} command in v2.x manages the new applications created using the new application templates in ForgeRock Identity Cloud. To manage oauth clients, use the ${'frodo oauth client'['brightCyan']} command.\\n\\n` +\n `Usage Examples:\\n` +\n ` List applications using AM base URL, username, and password (note the quotes around password to allow special characters):\\n` +\n ` $ frodo app list ${s.amBaseUrl} ${s.username} '${s.password}'\\n`[\n 'brightCyan'\n ] +\n ` List applications using a connection profile (identified by the full AM base URL):\\n` +\n ` $ frodo app list ${s.amBaseUrl}\\n`['brightCyan'] +\n ` List applications using a connection profile (identified by a unique substring of the AM base URL):\\n` +\n ` $ frodo app list ${s.connId}\\n`['brightCyan']\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 applications...`);\n await listApplications(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,OAAO,KAAKC,CAAC,MAAM,uBAAuB;AAC1C,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGN,KAAK,CAACO,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,gBAAgB,CAAC;AAElDG,OAAO,CACJC,WAAW,CAAC,oBAAoB,CAAC,CACjCC,SAAS,CACR,IAAIT,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACU,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1E,CAAC,CACAC,WAAW,CACV,OAAO,EACN,mBAAkB,CAAC,cAAc,CAAC,GAChC,SAAQ,WAAW,CAAC,YAAY,CAAE,iEAAgE,oBAAoB,CAAC,YAAY,CAAE,YAAW,GAChJ,SAAQ,WAAW,CAAC,YAAY,CAAE,2JAA0J,oBAAoB,CAAC,YAAY,CAAE,eAAc,GAC7O,mBAAkB,GAClB,gIAA+H,GAC/H,sBAAqBV,CAAC,CAACW,SAAU,IAAGX,CAAC,CAACY,QAAS,KAAIZ,CAAC,CAACa,QAAS,KAAI,CACjE,YAAY,CACb,GACA,wFAAuF,GACvF,sBAAqBb,CAAC,CAACW,SAAU,IAAG,CAAC,YAAY,CAAC,GAClD,yGAAwG,GACxG,sBAAqBX,CAAC,CAACc,MAAO,IAAG,CAAC,YAAY,CACnD,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEL,QAAQ,EAAEM,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BL,IAAI,EACJC,KAAK,EACLC,IAAI,EACJL,QAAQ,EACRM,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMhB,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAE,yBAAwB,CAAC;IACzC,MAAMD,gBAAgB,CAACkB,OAAO,CAACG,IAAI,CAAC;EACtC,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHlB,OAAO,CAACmB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"app-list.js","names":["frodo","Option","s","listApplications","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","default","addHelpText","amBaseUrl","username","password","connId","action","host","realm","user","options","command","handleDefaultArgsAndOpts","long","process","exitCode","parse"],"sources":["../../../src/cli/app/app-list.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport * as s from '../../help/SampleData';\nimport { listApplications } from '../../ops/ApplicationOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo app list');\n\nprogram\n .description('List applications.')\n .addOption(\n new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n )\n .addHelpText(\n 'after',\n `Important Note:\\n`['brightYellow'] +\n ` The ${\n 'frodo app'['brightCyan']\n } command to manage OAuth2 clients in v1.x has been renamed to ${\n 'frodo oauth client'['brightCyan']\n } in v2.x\\n` +\n ` The ${\n 'frodo app'['brightCyan']\n } command in v2.x manages the new applications created using the new application templates in ForgeRock Identity Cloud. To manage oauth clients, use the ${\n 'frodo oauth client'['brightCyan']\n } command.\\n\\n` +\n `Usage Examples:\\n` +\n ` List applications using AM base URL, username, and password (note the quotes around password to allow special characters):\\n` +\n ` $ frodo app list ${s.amBaseUrl} ${s.username} '${s.password}'\\n`[\n 'brightCyan'\n ] +\n ` List applications using a connection profile (identified by the full AM base URL):\\n` +\n ` $ frodo app list ${s.amBaseUrl}\\n`['brightCyan'] +\n ` List applications using a connection profile (identified by a unique substring of the AM base URL):\\n` +\n ` $ frodo app list ${s.connId}\\n`['brightCyan']\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 applications...`);\n await listApplications(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,OAAO,KAAKC,CAAC,MAAM,uBAAuB;AAC1C,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGN,KAAK,CAACO,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,gBAAgB,CAAC;AAElDG,OAAO,CACJC,WAAW,CAAC,oBAAoB,CAAC,CACjCC,SAAS,CACR,IAAIT,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACU,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1E,CAAC,CACAC,WAAW,CACV,OAAO,EACN,mBAAkB,CAAC,cAAc,CAAC,GAChC,SACC,WAAW,CAAC,YAAY,CACzB,iEACC,oBAAoB,CAAC,YAAY,CAClC,YAAW,GACX,SACC,WAAW,CAAC,YAAY,CACzB,2JACC,oBAAoB,CAAC,YAAY,CAClC,eAAc,GACd,mBAAkB,GAClB,gIAA+H,GAC/H,sBAAqBV,CAAC,CAACW,SAAU,IAAGX,CAAC,CAACY,QAAS,KAAIZ,CAAC,CAACa,QAAS,KAAI,CACjE,YAAY,CACb,GACA,wFAAuF,GACvF,sBAAqBb,CAAC,CAACW,SAAU,IAAG,CAAC,YAAY,CAAC,GAClD,yGAAwG,GACxG,sBAAqBX,CAAC,CAACc,MAAO,IAAG,CAAC,YAAY,CACnD,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEL,QAAQ,EAAEM,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BL,IAAI,EACJC,KAAK,EACLC,IAAI,EACJL,QAAQ,EACRM,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMhB,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAE,yBAAwB,CAAC;IACzC,MAAMD,gBAAgB,CAACkB,OAAO,CAACG,IAAI,CAAC;EACtC,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHlB,OAAO,CAACmB,KAAK,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","names":["path","fileURLToPath","FrodoStubCommand","__dirname","dirname","import","meta","url","setup","program","description","executableDir","addHelpText","command"],"sources":["../../../src/cli/app/app.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('app')\n .description('Manage applications.')\n .executableDir(__dirname)\n .addHelpText(\n 'after',\n `\\nImportant Note:\\n`['brightYellow'] +\n ` The ${'frodo app'['brightCyan']} command to manage OAuth2 clients in v1.x has been renamed to ${'frodo oauth client'['brightCyan']} in v2.x\\n` +\n ` The ${'frodo app'['brightCyan']} command in v2.x manages the new applications created using the new application templates in ForgeRock Identity Cloud. To manage oauth clients, use the ${'frodo oauth client'['brightCyan']} command.\\n\\n`\n );\n\n program.command('list', 'List applications.');\n\n // program\n // .command('describe', 'Describe applications.');\n\n program.command('export', 'Export applications.');\n\n program.command('import', 'Import applications.');\n\n program.command('delete', 'Delete applications.');\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,KAAK,CAAC,CACxCQ,WAAW,CAAC,sBAAsB,CAAC,CACnCC,aAAa,CAACR,SAAS,CAAC,CACxBS,WAAW,CACV,OAAO,EACN,qBAAoB,CAAC,cAAc,CAAC,GAClC,SAAQ,WAAW,CAAC,YAAY,CAAE,iEAAgE,oBAAoB,CAAC,YAAY,CAAE,YAAW,GAChJ,SAAQ,WAAW,CAAC,YAAY,CAAE,2JAA0J,oBAAoB,CAAC,YAAY,CAAE,eACpO,CAAC;EAEHH,OAAO,CAACI,OAAO,CAAC,MAAM,EAAE,oBAAoB,CAAC;;EAE7C;EACA;;EAEAJ,OAAO,CAACI,OAAO,CAAC,QAAQ,EAAE,sBAAsB,CAAC;EAEjDJ,OAAO,CAACI,OAAO,CAAC,QAAQ,EAAE,sBAAsB,CAAC;EAEjDJ,OAAO,CAACI,OAAO,CAAC,QAAQ,EAAE,sBAAsB,CAAC;EAEjD,OAAOJ,OAAO;AAChB"}
1
+ {"version":3,"file":"app.js","names":["path","fileURLToPath","FrodoStubCommand","__dirname","dirname","import","meta","url","setup","program","description","executableDir","addHelpText","command"],"sources":["../../../src/cli/app/app.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('app')\n .description('Manage applications.')\n .executableDir(__dirname)\n .addHelpText(\n 'after',\n `\\nImportant Note:\\n`['brightYellow'] +\n ` The ${\n 'frodo app'['brightCyan']\n } command to manage OAuth2 clients in v1.x has been renamed to ${\n 'frodo oauth client'['brightCyan']\n } in v2.x\\n` +\n ` The ${\n 'frodo app'['brightCyan']\n } command in v2.x manages the new applications created using the new application templates in ForgeRock Identity Cloud. To manage oauth clients, use the ${\n 'frodo oauth client'['brightCyan']\n } command.\\n\\n`\n );\n\n program.command('list', 'List applications.');\n\n // program\n // .command('describe', 'Describe applications.');\n\n program.command('export', 'Export applications.');\n\n program.command('import', 'Import applications.');\n\n program.command('delete', 'Delete applications.');\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,KAAK,CAAC,CACxCQ,WAAW,CAAC,sBAAsB,CAAC,CACnCC,aAAa,CAACR,SAAS,CAAC,CACxBS,WAAW,CACV,OAAO,EACN,qBAAoB,CAAC,cAAc,CAAC,GAClC,SACC,WAAW,CAAC,YAAY,CACzB,iEACC,oBAAoB,CAAC,YAAY,CAClC,YAAW,GACX,SACC,WAAW,CAAC,YAAY,CACzB,2JACC,oBAAoB,CAAC,YAAY,CAClC,eACL,CAAC;EAEHH,OAAO,CAACI,OAAO,CAAC,MAAM,EAAE,oBAAoB,CAAC;;EAE7C;EACA;;EAEAJ,OAAO,CAACI,OAAO,CAAC,QAAQ,EAAE,sBAAsB,CAAC;EAEjDJ,OAAO,CAACI,OAAO,CAAC,QAAQ,EAAE,sBAAsB,CAAC;EAEjDJ,OAAO,CAACI,OAAO,CAAC,QAAQ,EAAE,sBAAsB,CAAC;EAEjD,OAAOJ,OAAO;AAChB"}
@@ -7,7 +7,7 @@ const {
7
7
  getTokens
8
8
  } = frodo.login;
9
9
  const program = new FrodoCommand('frodo config export');
10
- program.description('Export full cloud configuration for all ops that currently support export.').addOption(new Option('-f, --file <file>', 'Name of the export file.')).addOption(new Option('-a, --all', 'Export everything to a single file.')).addOption(new Option('-A, --all-separate', 'Export everything to separate files in the -D directory. Ignored with -a.')).addOption(new Option('--use-string-arrays', 'Where applicable, use string arrays to store multi-line text (e.g. scripts).').default(false, 'off')).addOption(new Option('--no-decode', 'Do not include decoded variable value in variable export').default(false, 'false')).addOption(new Option('-x, --extract', 'Extract scripts from the exported file, and save it to a separate file. Ignored with -a.')).addOption(new Option('-N, --no-metadata', 'Does not include metadata in the export file.')).action(
10
+ program.description('Export full cloud configuration for all ops that currently support export.').addOption(new Option('-f, --file <file>', 'Name of the export file.')).addOption(new Option('-a, --all', 'Export everything to a single file.')).addOption(new Option('-A, --all-separate', 'Export everything to separate files in the -D directory. Ignored with -a.')).addOption(new Option('--use-string-arrays', 'Where applicable, use string arrays to store multi-line text (e.g. scripts).').default(false, 'off')).addOption(new Option('--no-decode', 'Do not include decoded variable value in variable export').default(false, 'false')).addOption(new Option('-x, --extract', 'Extract scripts from the exported file, and save it to a separate file. Ignored with -a.')).addOption(new Option('-N, --no-metadata', 'Does not include metadata in the export file.')).addOption(new Option('--no-coords', 'Do not include the x and y coordinate positions of the journey/tree nodes.')).action(
11
11
  // implement command logic inside action handler
12
12
  async (host, realm, user, password, options, command) => {
13
13
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
@@ -16,7 +16,8 @@ async (host, realm, user, password, options, command) => {
16
16
  verboseMessage('Exporting everything to a single file...');
17
17
  await exportEverythingToFile(options.file, options.metadata, {
18
18
  useStringArrays: options.useStringArrays,
19
- noDecode: options.decode
19
+ noDecode: options.decode,
20
+ coords: options.coords
20
21
  });
21
22
  // require --directory -D for all-separate function
22
23
  } else if (options.allSeparate && !state.getDirectory()) {
@@ -28,7 +29,8 @@ async (host, realm, user, password, options, command) => {
28
29
  verboseMessage('Exporting everything to separate files...');
29
30
  await exportEverythingToFiles(options.extract, options.metadata, {
30
31
  useStringArrays: options.useStringArrays,
31
- noDecode: options.decode
32
+ noDecode: options.decode,
33
+ coords: options.coords
32
34
  });
33
35
  // unrecognized combination of options or no options
34
36
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"config-export.js","names":["frodo","state","Option","exportEverythingToFile","exportEverythingToFiles","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","all","file","metadata","useStringArrays","noDecode","decode","allSeparate","getDirectory","help","process","exitCode","extract","parse"],"sources":["../../../src/cli/config/config-export.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n exportEverythingToFile,\n exportEverythingToFiles,\n} from '../../ops/ConfigOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo config export');\n\nprogram\n .description(\n 'Export full cloud configuration for all ops that currently support export.'\n )\n .addOption(new Option('-f, --file <file>', 'Name of the export file.'))\n .addOption(new Option('-a, --all', 'Export everything to a single file.'))\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export everything to separate files in the -D directory. Ignored with -a.'\n )\n )\n .addOption(\n new Option(\n '--use-string-arrays',\n 'Where applicable, use string arrays to store multi-line text (e.g. scripts).'\n ).default(false, 'off')\n )\n .addOption(\n new Option(\n '--no-decode',\n 'Do not include decoded variable value in variable export'\n ).default(false, 'false')\n )\n .addOption(\n new Option(\n '-x, --extract',\n 'Extract scripts from the exported file, and save it to a separate file. Ignored with -a.'\n )\n )\n .addOption(\n new Option(\n '-N, --no-metadata',\n 'Does not include metadata in the export file.'\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 // --all -a\n if (options.all && (await getTokens())) {\n verboseMessage('Exporting everything to a single file...');\n await exportEverythingToFile(options.file, options.metadata, {\n useStringArrays: options.useStringArrays,\n noDecode: options.decode,\n });\n // require --directory -D for all-separate function\n } else if (options.allSeparate && !state.getDirectory()) {\n printMessage(\n '-D or --directory required when using -A or --all-separate',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n // --all-separate -A\n } else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Exporting everything to separate files...');\n await exportEverythingToFiles(options.extract, options.metadata, {\n useStringArrays: options.useStringArrays,\n noDecode: options.decode,\n });\n // unrecognized combination of options or no options\n } else {\n verboseMessage('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,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,MAAM,QAAQ,WAAW;AAElC,SACEC,sBAAsB,EACtBC,uBAAuB,QAClB,qBAAqB;AAC5B,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGR,KAAK,CAACS,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,qBAAqB,CAAC;AAEvDG,OAAO,CACJC,WAAW,CACV,4EACF,CAAC,CACAC,SAAS,CAAC,IAAIV,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAC,CACtEU,SAAS,CAAC,IAAIV,MAAM,CAAC,WAAW,EAAE,qCAAqC,CAAC,CAAC,CACzEU,SAAS,CACR,IAAIV,MAAM,CACR,oBAAoB,EACpB,2EACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,qBAAqB,EACrB,8EACF,CAAC,CAACW,OAAO,CAAC,KAAK,EAAE,KAAK,CACxB,CAAC,CACAD,SAAS,CACR,IAAIV,MAAM,CACR,aAAa,EACb,0DACF,CAAC,CAACW,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1B,CAAC,CACAD,SAAS,CACR,IAAIV,MAAM,CACR,eAAe,EACf,0FACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,mBAAmB,EACnB,+CACF,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;EACA,IAAID,OAAO,CAACG,GAAG,KAAK,MAAMd,SAAS,CAAC,CAAC,CAAC,EAAE;IACtCF,cAAc,CAAC,0CAA0C,CAAC;IAC1D,MAAMH,sBAAsB,CAACgB,OAAO,CAACI,IAAI,EAAEJ,OAAO,CAACK,QAAQ,EAAE;MAC3DC,eAAe,EAAEN,OAAO,CAACM,eAAe;MACxCC,QAAQ,EAAEP,OAAO,CAACQ;IACpB,CAAC,CAAC;IACF;EACF,CAAC,MAAM,IAAIR,OAAO,CAACS,WAAW,IAAI,CAAC3B,KAAK,CAAC4B,YAAY,CAAC,CAAC,EAAE;IACvDxB,YAAY,CACV,4DAA4D,EAC5D,OACF,CAAC;IACDK,OAAO,CAACoB,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;IACpB;EACF,CAAC,MAAM,IAAIb,OAAO,CAACS,WAAW,KAAK,MAAMpB,SAAS,CAAC,CAAC,CAAC,EAAE;IACrDF,cAAc,CAAC,2CAA2C,CAAC;IAC3D,MAAMF,uBAAuB,CAACe,OAAO,CAACc,OAAO,EAAEd,OAAO,CAACK,QAAQ,EAAE;MAC/DC,eAAe,EAAEN,OAAO,CAACM,eAAe;MACxCC,QAAQ,EAAEP,OAAO,CAACQ;IACpB,CAAC,CAAC;IACF;EACF,CAAC,MAAM;IACLrB,cAAc,CAAC,sDAAsD,CAAC;IACtEI,OAAO,CAACoB,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHtB,OAAO,CAACwB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"config-export.js","names":["frodo","state","Option","exportEverythingToFile","exportEverythingToFiles","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","all","file","metadata","useStringArrays","noDecode","decode","coords","allSeparate","getDirectory","help","process","exitCode","extract","parse"],"sources":["../../../src/cli/config/config-export.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n exportEverythingToFile,\n exportEverythingToFiles,\n} from '../../ops/ConfigOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo config export');\n\nprogram\n .description(\n 'Export full cloud configuration for all ops that currently support export.'\n )\n .addOption(new Option('-f, --file <file>', 'Name of the export file.'))\n .addOption(new Option('-a, --all', 'Export everything to a single file.'))\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export everything to separate files in the -D directory. Ignored with -a.'\n )\n )\n .addOption(\n new Option(\n '--use-string-arrays',\n 'Where applicable, use string arrays to store multi-line text (e.g. scripts).'\n ).default(false, 'off')\n )\n .addOption(\n new Option(\n '--no-decode',\n 'Do not include decoded variable value in variable export'\n ).default(false, 'false')\n )\n .addOption(\n new Option(\n '-x, --extract',\n 'Extract scripts from the exported file, and save it to a separate file. Ignored with -a.'\n )\n )\n .addOption(\n new Option(\n '-N, --no-metadata',\n 'Does not include metadata in the export file.'\n )\n )\n .addOption(\n new Option(\n '--no-coords',\n 'Do not include the x and y coordinate positions of the journey/tree nodes.'\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 // --all -a\n if (options.all && (await getTokens())) {\n verboseMessage('Exporting everything to a single file...');\n await exportEverythingToFile(options.file, options.metadata, {\n useStringArrays: options.useStringArrays,\n noDecode: options.decode,\n coords: options.coords,\n });\n // require --directory -D for all-separate function\n } else if (options.allSeparate && !state.getDirectory()) {\n printMessage(\n '-D or --directory required when using -A or --all-separate',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n // --all-separate -A\n } else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Exporting everything to separate files...');\n await exportEverythingToFiles(options.extract, options.metadata, {\n useStringArrays: options.useStringArrays,\n noDecode: options.decode,\n coords: options.coords,\n });\n // unrecognized combination of options or no options\n } else {\n verboseMessage('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,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,MAAM,QAAQ,WAAW;AAElC,SACEC,sBAAsB,EACtBC,uBAAuB,QAClB,qBAAqB;AAC5B,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGR,KAAK,CAACS,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,qBAAqB,CAAC;AAEvDG,OAAO,CACJC,WAAW,CACV,4EACF,CAAC,CACAC,SAAS,CAAC,IAAIV,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAC,CACtEU,SAAS,CAAC,IAAIV,MAAM,CAAC,WAAW,EAAE,qCAAqC,CAAC,CAAC,CACzEU,SAAS,CACR,IAAIV,MAAM,CACR,oBAAoB,EACpB,2EACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,qBAAqB,EACrB,8EACF,CAAC,CAACW,OAAO,CAAC,KAAK,EAAE,KAAK,CACxB,CAAC,CACAD,SAAS,CACR,IAAIV,MAAM,CACR,aAAa,EACb,0DACF,CAAC,CAACW,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1B,CAAC,CACAD,SAAS,CACR,IAAIV,MAAM,CACR,eAAe,EACf,0FACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,mBAAmB,EACnB,+CACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,aAAa,EACb,4EACF,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;EACA,IAAID,OAAO,CAACG,GAAG,KAAK,MAAMd,SAAS,CAAC,CAAC,CAAC,EAAE;IACtCF,cAAc,CAAC,0CAA0C,CAAC;IAC1D,MAAMH,sBAAsB,CAACgB,OAAO,CAACI,IAAI,EAAEJ,OAAO,CAACK,QAAQ,EAAE;MAC3DC,eAAe,EAAEN,OAAO,CAACM,eAAe;MACxCC,QAAQ,EAAEP,OAAO,CAACQ,MAAM;MACxBC,MAAM,EAAET,OAAO,CAACS;IAClB,CAAC,CAAC;IACF;EACF,CAAC,MAAM,IAAIT,OAAO,CAACU,WAAW,IAAI,CAAC5B,KAAK,CAAC6B,YAAY,CAAC,CAAC,EAAE;IACvDzB,YAAY,CACV,4DAA4D,EAC5D,OACF,CAAC;IACDK,OAAO,CAACqB,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;IACpB;EACF,CAAC,MAAM,IAAId,OAAO,CAACU,WAAW,KAAK,MAAMrB,SAAS,CAAC,CAAC,CAAC,EAAE;IACrDF,cAAc,CAAC,2CAA2C,CAAC;IAC3D,MAAMF,uBAAuB,CAACe,OAAO,CAACe,OAAO,EAAEf,OAAO,CAACK,QAAQ,EAAE;MAC/DC,eAAe,EAAEN,OAAO,CAACM,eAAe;MACxCC,QAAQ,EAAEP,OAAO,CAACQ,MAAM;MACxBC,MAAM,EAAET,OAAO,CAACS;IAClB,CAAC,CAAC;IACF;EACF,CAAC,MAAM;IACLtB,cAAc,CAAC,sDAAsD,CAAC;IACtEI,OAAO,CAACqB,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHvB,OAAO,CAACyB,KAAK,CAAC,CAAC"}
@@ -1,17 +1,50 @@
1
- import { frodo } from '@rockcarver/frodo-lib';
1
+ import { frodo, state } from '@rockcarver/frodo-lib';
2
2
  import { Option } from 'commander';
3
+ import { importEverythingFromFile, importEverythingFromFiles } from '../../ops/ConfigOps';
4
+ import { printMessage, verboseMessage } from '../../utils/Console';
3
5
  import { FrodoCommand } from '../FrodoCommand';
4
6
  const {
5
7
  getTokens
6
8
  } = frodo.login;
7
9
  const program = new FrodoCommand('frodo config import');
8
- program.description('Import full cloud configuration.').addOption(new Option('-i, --config-id <config-id>', 'Configuration id. If specified, only one configuration is imported and the options -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the file to import.')).addOption(new Option('-a, --all', 'Import all configuration from a single file. Ignored with -i.')).addOption(new Option('-A, --all-separate', 'Import all configuration from separate (.json) files in the working directory. Ignored with -i or -a.')).action(
10
+ program.description('Import full cloud configuration.').addOption(new Option('-f, --file <file>', 'Name of the file to import.')).addOption(new Option('-a, --all', 'Import all configuration from the single file -f. Ignored with -i.')).addOption(new Option('-A, --all-separate', 'Import all configuration from separate (.json) files in the (working) directory -D. Ignored with -i or -a.')).addOption(new Option('-C, --clean', 'Remove existing service(s) before importing.')).addOption(new Option('-g, --global', 'Import service(s) as global service(s).')).addOption(new Option('-r, --current-realm', 'Import service(s) into the current realm.')).addOption(new Option('--re-uuid-journeys', 'Generate new UUIDs for all journey nodes during import.').default(false, 'off')).addOption(new Option('--re-uuid-scripts', 'Create new UUIDs for the scripts upon import. Use this to duplicate scripts or create a new versions of the same scripts.').default(false, 'off')).action(
9
11
  // implement command logic inside action handler
10
12
  async (host, realm, user, password, options, command) => {
11
13
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
12
- if (await getTokens()) {
13
- // code goes here
14
+ // Require --file -f for all function
15
+ if (options.all && !options.file) {
16
+ printMessage('-f or --file required when using -a or --all', 'error');
17
+ program.help();
18
+ process.exitCode = 1;
19
+ // --all -a
20
+ } else if (options.all && (await getTokens())) {
21
+ verboseMessage('Exporting everything from a single file...');
22
+ await importEverythingFromFile(options.file, {
23
+ reUuidJourneys: options.reUuidJourneys,
24
+ reUuidScripts: options.reUuidScripts,
25
+ cleanServices: options.clean,
26
+ global: options.global,
27
+ realm: options.realm
28
+ });
29
+ // require --directory -D for all-separate function
30
+ } else if (options.allSeparate && !state.getDirectory()) {
31
+ printMessage('-D or --directory required when using -A or --all-separate', 'error');
32
+ program.help();
33
+ process.exitCode = 1;
34
+ // --all-separate -A
35
+ } else if (options.allSeparate && (await getTokens())) {
36
+ verboseMessage('Importing everything from separate files...');
37
+ await importEverythingFromFiles({
38
+ reUuidJourneys: options.reUuidJourneys,
39
+ reUuidScripts: options.reUuidScripts,
40
+ cleanServices: options.clean,
41
+ global: options.global,
42
+ realm: options.realm
43
+ });
44
+ // unrecognized combination of options or no options
14
45
  } else {
46
+ verboseMessage('Unrecognized combination of options or no options...');
47
+ program.help();
15
48
  process.exitCode = 1;
16
49
  }
17
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config-import.js","names":["frodo","Option","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","process","exitCode","parse"],"sources":["../../../src/cli/config/config-import.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo config import');\n\nprogram\n .description('Import full cloud configuration.')\n .addOption(\n new Option(\n '-i, --config-id <config-id>',\n 'Configuration id. If specified, only one configuration is imported and the options -a and -A are ignored.'\n )\n )\n .addOption(new Option('-f, --file <file>', 'Name of the file to import.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Import all configuration from a single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all configuration from separate (.json) files in the working 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 (await getTokens()) {\n // code goes here\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,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGH,KAAK,CAACI,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,qBAAqB,CAAC;AAEvDG,OAAO,CACJC,WAAW,CAAC,kCAAkC,CAAC,CAC/CC,SAAS,CACR,IAAIN,MAAM,CACR,6BAA6B,EAC7B,2GACF,CACF,CAAC,CACAM,SAAS,CAAC,IAAIN,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,CAAC,CACzEM,SAAS,CACR,IAAIN,MAAM,CACR,WAAW,EACX,+DACF,CACF,CAAC,CACAM,SAAS,CACR,IAAIN,MAAM,CACR,oBAAoB,EACpB,uGACF,CACF,CAAC,CACAO,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;IACrB;EAAA,CACD,MAAM;IACLa,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHZ,OAAO,CAACa,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"config-import.js","names":["frodo","state","Option","importEverythingFromFile","importEverythingFromFiles","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","all","file","help","process","exitCode","reUuidJourneys","reUuidScripts","cleanServices","clean","global","allSeparate","getDirectory","parse"],"sources":["../../../src/cli/config/config-import.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n importEverythingFromFile,\n importEverythingFromFiles,\n} from '../../ops/ConfigOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo config import');\n\nprogram\n .description('Import full cloud configuration.')\n .addOption(new Option('-f, --file <file>', 'Name of the file to import.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Import all configuration from the single file -f. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all configuration from separate (.json) files in the (working) directory -D. Ignored with -i or -a.'\n )\n )\n .addOption(\n new Option('-C, --clean', 'Remove existing service(s) before importing.')\n )\n .addOption(\n new Option('-g, --global', 'Import service(s) as global service(s).')\n )\n .addOption(\n new Option(\n '-r, --current-realm',\n 'Import service(s) into the current realm.'\n )\n )\n .addOption(\n new Option(\n '--re-uuid-journeys',\n 'Generate new UUIDs for all journey nodes during import.'\n ).default(false, 'off')\n )\n .addOption(\n new Option(\n '--re-uuid-scripts',\n 'Create new UUIDs for the scripts upon import. Use this to duplicate scripts or create a new versions of the same scripts.'\n ).default(false, 'off')\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 // Require --file -f for all function\n if (options.all && !options.file) {\n printMessage('-f or --file required when using -a or --all', 'error');\n program.help();\n process.exitCode = 1;\n // --all -a\n } else if (options.all && (await getTokens())) {\n verboseMessage('Exporting everything from a single file...');\n await importEverythingFromFile(options.file, {\n reUuidJourneys: options.reUuidJourneys,\n reUuidScripts: options.reUuidScripts,\n cleanServices: options.clean,\n global: options.global,\n realm: options.realm,\n });\n // require --directory -D for all-separate function\n } else if (options.allSeparate && !state.getDirectory()) {\n printMessage(\n '-D or --directory required when using -A or --all-separate',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n // --all-separate -A\n } else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Importing everything from separate files...');\n await importEverythingFromFiles({\n reUuidJourneys: options.reUuidJourneys,\n reUuidScripts: options.reUuidScripts,\n cleanServices: options.clean,\n global: options.global,\n realm: options.realm,\n });\n // unrecognized combination of options or no options\n } else {\n verboseMessage('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":"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"}
@@ -10,8 +10,7 @@ export default function setup() {
10
10
  //program.command('describe', 'Describe full cloud configuration.');
11
11
 
12
12
  program.command('export', 'Export full cloud configuration for all ops that currently support export..');
13
-
14
- //program.command('import', 'Import full cloud configuration.');
13
+ program.command('import', 'Import full cloud configuration for all ops that currently support import.');
15
14
 
16
15
  //program.command('delete', 'Delete full cloud configuration.');
17
16
 
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","names":["path","fileURLToPath","FrodoStubCommand","__dirname","dirname","import","meta","url","setup","program","description","executableDir","command"],"sources":["../../../src/cli/config/config.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('config')\n .description('Manage full cloud configuration.')\n .executableDir(__dirname);\n\n //program.command('list', 'List full cloud configuration.');\n\n //program.command('describe', 'Describe full cloud configuration.');\n\n program.command(\n 'export',\n 'Export full cloud configuration for all ops that currently support export..'\n );\n\n //program.command('import', 'Import full cloud configuration.');\n\n //program.command('delete', 'Delete full cloud configuration.');\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,QAAQ,CAAC,CAC3CQ,WAAW,CAAC,kCAAkC,CAAC,CAC/CC,aAAa,CAACR,SAAS,CAAC;;EAE3B;;EAEA;;EAEAM,OAAO,CAACG,OAAO,CACb,QAAQ,EACR,6EACF,CAAC;;EAED;;EAEA;;EAEA,OAAOH,OAAO;AAChB"}
1
+ {"version":3,"file":"config.js","names":["path","fileURLToPath","FrodoStubCommand","__dirname","dirname","import","meta","url","setup","program","description","executableDir","command"],"sources":["../../../src/cli/config/config.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('config')\n .description('Manage full cloud configuration.')\n .executableDir(__dirname);\n\n //program.command('list', 'List full cloud configuration.');\n\n //program.command('describe', 'Describe full cloud configuration.');\n\n program.command(\n 'export',\n 'Export full cloud configuration for all ops that currently support export..'\n );\n\n program.command(\n 'import',\n 'Import full cloud configuration for all ops that currently support import.'\n );\n\n //program.command('delete', 'Delete full cloud configuration.');\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,QAAQ,CAAC,CAC3CQ,WAAW,CAAC,kCAAkC,CAAC,CAC/CC,aAAa,CAACR,SAAS,CAAC;;EAE3B;;EAEA;;EAEAM,OAAO,CAACG,OAAO,CACb,QAAQ,EACR,6EACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,QAAQ,EACR,4EACF,CAAC;;EAED;;EAEA,OAAOH,OAAO;AAChB"}
@@ -7,29 +7,37 @@ const {
7
7
  getTokens
8
8
  } = frodo.login;
9
9
  const program = new FrodoCommand('frodo idp import');
10
- program.description('Import (social) identity providers.').addOption(new Option('-i, --idp-id <id>', 'Provider id. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the file to import the provider(s) from.')).addOption(new Option('-a, --all', 'Import all the providers from single file. Ignored with -t or -i.')).addOption(new Option('-A, --all-separate', 'Import all the providers from separate files (*.json) in the current directory. Ignored with -t or -i or -a.')).action(
10
+ program.description('Import (social) identity providers.').addOption(new Option('-i, --idp-id <id>', 'Provider id. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the file to import the provider(s) from.')).addOption(new Option('-a, --all', 'Import all the providers from single file. Ignored with -t or -i.')).addOption(new Option('-A, --all-separate', 'Import all the providers from separate files (*.json) in the current directory. Ignored with -t or -i or -a.')).addOption(new Option('--no-deps', 'Do not include any dependencies (scripts).')).action(
11
11
  // implement command logic inside action handler
12
12
  async (host, realm, user, password, options, command) => {
13
13
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
14
14
  // import by id
15
15
  if (options.file && options.idpId && (await getTokens())) {
16
16
  verboseMessage(`Importing provider "${options.idpId}" into realm "${state.getRealm()}"...`);
17
- await importSocialIdentityProviderFromFile(options.idpId, options.file);
17
+ await importSocialIdentityProviderFromFile(options.idpId, options.file, {
18
+ deps: options.deps
19
+ });
18
20
  }
19
21
  // --all -a
20
22
  else if (options.all && options.file && (await getTokens())) {
21
23
  verboseMessage(`Importing all providers from a single file (${options.file})...`);
22
- await importSocialIdentityProvidersFromFile(options.file);
24
+ await importSocialIdentityProvidersFromFile(options.file, {
25
+ deps: options.deps
26
+ });
23
27
  }
24
28
  // --all-separate -A
25
29
  else if (options.allSeparate && !options.file && (await getTokens())) {
26
30
  verboseMessage('Importing all providers from separate files in current directory...');
27
- await importSocialIdentityProvidersFromFiles();
31
+ await importSocialIdentityProvidersFromFiles({
32
+ deps: options.deps
33
+ });
28
34
  }
29
35
  // import first provider from file
30
36
  else if (options.file && (await getTokens())) {
31
37
  verboseMessage(`Importing first provider from file "${options.file}" into realm "${state.getRealm()}"...`);
32
- await importFirstSocialIdentityProviderFromFile(options.file);
38
+ await importFirstSocialIdentityProviderFromFile(options.file, {
39
+ deps: options.deps
40
+ });
33
41
  }
34
42
  // unrecognized combination of options or no options
35
43
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"idp-import.js","names":["frodo","state","Option","importFirstSocialIdentityProviderFromFile","importSocialIdentityProviderFromFile","importSocialIdentityProvidersFromFile","importSocialIdentityProvidersFromFiles","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","file","idpId","getRealm","all","allSeparate","help","process","exitCode","parse"],"sources":["../../../src/cli/idp/idp-import.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n importFirstSocialIdentityProviderFromFile,\n importSocialIdentityProviderFromFile,\n importSocialIdentityProvidersFromFile,\n importSocialIdentityProvidersFromFiles,\n} from '../../ops/IdpOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo idp import');\n\nprogram\n .description('Import (social) identity providers.')\n .addOption(\n new Option(\n '-i, --idp-id <id>',\n 'Provider id. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file <file>',\n 'Name of the file to import the provider(s) from.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Import all the providers from single file. Ignored with -t or -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all the providers from separate files (*.json) in the current directory. Ignored with -t or -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 // import by id\n if (options.file && options.idpId && (await getTokens())) {\n verboseMessage(\n `Importing provider \"${\n options.idpId\n }\" into realm \"${state.getRealm()}\"...`\n );\n await importSocialIdentityProviderFromFile(options.idpId, options.file);\n }\n // --all -a\n else if (options.all && options.file && (await getTokens())) {\n verboseMessage(\n `Importing all providers from a single file (${options.file})...`\n );\n await importSocialIdentityProvidersFromFile(options.file);\n }\n // --all-separate -A\n else if (options.allSeparate && !options.file && (await getTokens())) {\n verboseMessage(\n 'Importing all providers from separate files in current directory...'\n );\n await importSocialIdentityProvidersFromFiles();\n }\n // import first provider from file\n else if (options.file && (await getTokens())) {\n verboseMessage(\n `Importing first provider from file \"${\n options.file\n }\" into realm \"${state.getRealm()}\"...`\n );\n await importFirstSocialIdentityProviderFromFile(options.file);\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,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,MAAM,QAAQ,WAAW;AAElC,SACEC,yCAAyC,EACzCC,oCAAoC,EACpCC,qCAAqC,EACrCC,sCAAsC,QACjC,kBAAkB;AACzB,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGV,KAAK,CAACW,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,kBAAkB,CAAC;AAEpDG,OAAO,CACJC,WAAW,CAAC,qCAAqC,CAAC,CAClDC,SAAS,CACR,IAAIZ,MAAM,CACR,mBAAmB,EACnB,mDACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,mBAAmB,EACnB,kDACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,WAAW,EACX,mEACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,oBAAoB,EACpB,8GACF,CACF,CAAC,CACAa,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,IAAI,IAAIH,OAAO,CAACI,KAAK,KAAK,MAAMd,SAAS,CAAC,CAAC,CAAC,EAAE;IACxDF,cAAc,CACX,uBACCY,OAAO,CAACI,KACT,iBAAgBvB,KAAK,CAACwB,QAAQ,CAAC,CAAE,MACpC,CAAC;IACD,MAAMrB,oCAAoC,CAACgB,OAAO,CAACI,KAAK,EAAEJ,OAAO,CAACG,IAAI,CAAC;EACzE;EACA;EAAA,KACK,IAAIH,OAAO,CAACM,GAAG,IAAIN,OAAO,CAACG,IAAI,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3DF,cAAc,CACX,+CAA8CY,OAAO,CAACG,IAAK,MAC9D,CAAC;IACD,MAAMlB,qCAAqC,CAACe,OAAO,CAACG,IAAI,CAAC;EAC3D;EACA;EAAA,KACK,IAAIH,OAAO,CAACO,WAAW,IAAI,CAACP,OAAO,CAACG,IAAI,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IACpEF,cAAc,CACZ,qEACF,CAAC;IACD,MAAMF,sCAAsC,CAAC,CAAC;EAChD;EACA;EAAA,KACK,IAAIc,OAAO,CAACG,IAAI,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IAC5CF,cAAc,CACX,uCACCY,OAAO,CAACG,IACT,iBAAgBtB,KAAK,CAACwB,QAAQ,CAAC,CAAE,MACpC,CAAC;IACD,MAAMtB,yCAAyC,CAACiB,OAAO,CAACG,IAAI,CAAC;EAC/D;EACA;EAAA,KACK;IACHhB,YAAY,CAAC,sDAAsD,CAAC;IACpEK,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":"idp-import.js","names":["frodo","state","Option","importFirstSocialIdentityProviderFromFile","importSocialIdentityProviderFromFile","importSocialIdentityProvidersFromFile","importSocialIdentityProvidersFromFiles","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","file","idpId","getRealm","deps","all","allSeparate","help","process","exitCode","parse"],"sources":["../../../src/cli/idp/idp-import.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n importFirstSocialIdentityProviderFromFile,\n importSocialIdentityProviderFromFile,\n importSocialIdentityProvidersFromFile,\n importSocialIdentityProvidersFromFiles,\n} from '../../ops/IdpOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo idp import');\n\nprogram\n .description('Import (social) identity providers.')\n .addOption(\n new Option(\n '-i, --idp-id <id>',\n 'Provider id. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file <file>',\n 'Name of the file to import the provider(s) from.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Import all the providers from single file. Ignored with -t or -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all the providers from separate files (*.json) in the current directory. Ignored with -t or -i or -a.'\n )\n )\n .addOption(\n new Option('--no-deps', 'Do not include any dependencies (scripts).')\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 // import by id\n if (options.file && options.idpId && (await getTokens())) {\n verboseMessage(\n `Importing provider \"${\n options.idpId\n }\" into realm \"${state.getRealm()}\"...`\n );\n await importSocialIdentityProviderFromFile(\n options.idpId,\n options.file,\n {\n deps: options.deps,\n }\n );\n }\n // --all -a\n else if (options.all && options.file && (await getTokens())) {\n verboseMessage(\n `Importing all providers from a single file (${options.file})...`\n );\n await importSocialIdentityProvidersFromFile(options.file, {\n deps: options.deps,\n });\n }\n // --all-separate -A\n else if (options.allSeparate && !options.file && (await getTokens())) {\n verboseMessage(\n 'Importing all providers from separate files in current directory...'\n );\n await importSocialIdentityProvidersFromFiles({\n deps: options.deps,\n });\n }\n // import first provider from file\n else if (options.file && (await getTokens())) {\n verboseMessage(\n `Importing first provider from file \"${\n options.file\n }\" into realm \"${state.getRealm()}\"...`\n );\n await importFirstSocialIdentityProviderFromFile(options.file, {\n deps: options.deps,\n });\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":"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"}
@@ -7,7 +7,7 @@ const {
7
7
  getTokens
8
8
  } = frodo.login;
9
9
  const program = new FrodoCommand('frodo journey export');
10
- program.description('Export journeys/trees.').addOption(new Option('-i, --journey-id <journey>', 'Name of a journey/tree. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the file to write the exported journey(s) to. Ignored with -A.')).addOption(new Option('-a, --all', 'Export all the journeys/trees in a realm. Ignored with -i.')).addOption(new Option('-A, --all-separate', 'Export all the journeys/trees in a realm as separate files <journey/tree name>.json. Ignored with -i or -a.')).addOption(new Option('-N, --no-metadata', 'Does not include metadata in the export file.')).addOption(new Option('--use-string-arrays', 'Where applicable, use string arrays to store multi-line text (e.g. scripts).').default(false, 'off')).addOption(new Option('--no-deps', 'Do not include any dependencies (scripts, email templates, SAML entity providers and circles of trust, social identity providers, themes).'))
10
+ program.description('Export journeys/trees.').addOption(new Option('-i, --journey-id <journey>', 'Name of a journey/tree. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the file to write the exported journey(s) to. Ignored with -A.')).addOption(new Option('-a, --all', 'Export all the journeys/trees in a realm. Ignored with -i.')).addOption(new Option('-A, --all-separate', 'Export all the journeys/trees in a realm as separate files <journey/tree name>.json. Ignored with -i or -a.')).addOption(new Option('-N, --no-metadata', 'Does not include metadata in the export file.')).addOption(new Option('--use-string-arrays', 'Where applicable, use string arrays to store multi-line text (e.g. scripts).').default(false, 'off')).addOption(new Option('--no-deps', 'Do not include any dependencies (scripts, email templates, SAML entity providers and circles of trust, social identity providers, themes).')).addOption(new Option('--no-coords', 'Do not include the x and y coordinate positions of the journey/tree nodes.'))
11
11
  // .addOption(
12
12
  // new Option(
13
13
  // '-O, --organize <method>',
@@ -26,7 +26,8 @@ async (host, realm, user, password, options, command) => {
26
26
  verboseMessage('Exporting journey...');
27
27
  await exportJourneyToFile(options.journeyId, options.file, options.metadata, {
28
28
  useStringArrays: options.useStringArrays,
29
- deps: options.deps
29
+ deps: options.deps,
30
+ coords: options.coords
30
31
  });
31
32
  }
32
33
  // --all -a
@@ -34,7 +35,8 @@ async (host, realm, user, password, options, command) => {
34
35
  verboseMessage('Exporting all journeys to a single file...');
35
36
  await exportJourneysToFile(options.file, options.metadata, {
36
37
  useStringArrays: options.useStringArrays,
37
- deps: options.deps
38
+ deps: options.deps,
39
+ coords: options.coords
38
40
  });
39
41
  }
40
42
  // --all-separate -A
@@ -42,7 +44,8 @@ async (host, realm, user, password, options, command) => {
42
44
  verboseMessage('Exporting all journeys to separate files...');
43
45
  await exportJourneysToFiles(options.metadata, {
44
46
  useStringArrays: options.useStringArrays,
45
- deps: options.deps
47
+ deps: options.deps,
48
+ coords: options.coords
46
49
  });
47
50
  }
48
51
  // unrecognized combination of options or no options