@rockcarver/frodo-cli 0.23.1-7 → 0.24.1-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/CHANGELOG.md +75 -1
  2. package/esm/app.js.map +1 -1
  3. package/esm/cli/FrodoCommand.js.map +1 -1
  4. package/esm/cli/_template/something-delete.js.map +1 -1
  5. package/esm/cli/_template/something-describe.js.map +1 -1
  6. package/esm/cli/_template/something-else-delete.js.map +1 -1
  7. package/esm/cli/_template/something-else-describe.js.map +1 -1
  8. package/esm/cli/_template/something-else-export.js.map +1 -1
  9. package/esm/cli/_template/something-else-import.js.map +1 -1
  10. package/esm/cli/_template/something-else-list.js.map +1 -1
  11. package/esm/cli/_template/something-else.js.map +1 -1
  12. package/esm/cli/_template/something-export.js.map +1 -1
  13. package/esm/cli/_template/something-import.js.map +1 -1
  14. package/esm/cli/_template/something-list.js.map +1 -1
  15. package/esm/cli/_template/something-other-delete.js.map +1 -1
  16. package/esm/cli/_template/something-other-describe.js.map +1 -1
  17. package/esm/cli/_template/something-other-export.js.map +1 -1
  18. package/esm/cli/_template/something-other-import.js.map +1 -1
  19. package/esm/cli/_template/something-other-list.js.map +1 -1
  20. package/esm/cli/_template/something-other.js.map +1 -1
  21. package/esm/cli/_template/something.js.map +1 -1
  22. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
  23. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
  24. package/esm/cli/admin/admin-get-access-token.js.map +1 -1
  25. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
  26. package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
  27. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
  28. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
  29. package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
  30. package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
  31. package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
  32. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
  33. package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
  34. package/esm/cli/admin/admin.js.map +1 -1
  35. package/esm/cli/agent/agent-delete.js.map +1 -1
  36. package/esm/cli/agent/agent-describe.js.map +1 -1
  37. package/esm/cli/agent/agent-export.js.map +1 -1
  38. package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
  39. package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
  40. package/esm/cli/agent/agent-gateway-export.js.map +1 -1
  41. package/esm/cli/agent/agent-gateway-import.js.map +1 -1
  42. package/esm/cli/agent/agent-gateway-list.js.map +1 -1
  43. package/esm/cli/agent/agent-gateway.js.map +1 -1
  44. package/esm/cli/agent/agent-import.js.map +1 -1
  45. package/esm/cli/agent/agent-java-delete.js.map +1 -1
  46. package/esm/cli/agent/agent-java-describe.js.map +1 -1
  47. package/esm/cli/agent/agent-java-export.js.map +1 -1
  48. package/esm/cli/agent/agent-java-import.js.map +1 -1
  49. package/esm/cli/agent/agent-java-list.js.map +1 -1
  50. package/esm/cli/agent/agent-java.js.map +1 -1
  51. package/esm/cli/agent/agent-list.js.map +1 -1
  52. package/esm/cli/agent/agent-web-delete.js.map +1 -1
  53. package/esm/cli/agent/agent-web-describe.js.map +1 -1
  54. package/esm/cli/agent/agent-web-export.js.map +1 -1
  55. package/esm/cli/agent/agent-web-import.js.map +1 -1
  56. package/esm/cli/agent/agent-web-list.js.map +1 -1
  57. package/esm/cli/agent/agent-web.js.map +1 -1
  58. package/esm/cli/agent/agent.js.map +1 -1
  59. package/esm/cli/app/app-delete.js.map +1 -1
  60. package/esm/cli/app/app-describe.js.map +1 -1
  61. package/esm/cli/app/app-export.js.map +1 -1
  62. package/esm/cli/app/app-import.js.map +1 -1
  63. package/esm/cli/app/app-list.js.map +1 -1
  64. package/esm/cli/app/app.js.map +1 -1
  65. package/esm/cli/authz/authz-policy-delete.js.map +1 -1
  66. package/esm/cli/authz/authz-policy-describe.js.map +1 -1
  67. package/esm/cli/authz/authz-policy-export.js +16 -11
  68. package/esm/cli/authz/authz-policy-export.js.map +1 -1
  69. package/esm/cli/authz/authz-policy-import.js +44 -5
  70. package/esm/cli/authz/authz-policy-import.js.map +1 -1
  71. package/esm/cli/authz/authz-policy-list.js.map +1 -1
  72. package/esm/cli/authz/authz-policy.js.map +1 -1
  73. package/esm/cli/authz/authz-set-delete.js.map +1 -1
  74. package/esm/cli/authz/authz-set-describe.js.map +1 -1
  75. package/esm/cli/authz/authz-set-export.js +7 -4
  76. package/esm/cli/authz/authz-set-export.js.map +1 -1
  77. package/esm/cli/authz/authz-set-import.js +10 -6
  78. package/esm/cli/authz/authz-set-import.js.map +1 -1
  79. package/esm/cli/authz/authz-set-list.js.map +1 -1
  80. package/esm/cli/authz/authz-set.js.map +1 -1
  81. package/esm/cli/authz/authz-type-delete.js +18 -13
  82. package/esm/cli/authz/authz-type-delete.js.map +1 -1
  83. package/esm/cli/authz/authz-type-describe.js +7 -3
  84. package/esm/cli/authz/authz-type-describe.js.map +1 -1
  85. package/esm/cli/authz/authz-type-export.js +32 -5
  86. package/esm/cli/authz/authz-type-export.js.map +1 -1
  87. package/esm/cli/authz/authz-type-import.js +38 -5
  88. package/esm/cli/authz/authz-type-import.js.map +1 -1
  89. package/esm/cli/authz/authz-type-list.js +4 -10
  90. package/esm/cli/authz/authz-type-list.js.map +1 -1
  91. package/esm/cli/authz/authz-type.js.map +1 -1
  92. package/esm/cli/authz/authz.js.map +1 -1
  93. package/esm/cli/conn/conn-delete.js.map +1 -1
  94. package/esm/cli/conn/conn-describe.js.map +1 -1
  95. package/esm/cli/conn/conn-list.js.map +1 -1
  96. package/esm/cli/conn/conn-save.js.map +1 -1
  97. package/esm/cli/conn/conn.js.map +1 -1
  98. package/esm/cli/email/email-template-export.js.map +1 -1
  99. package/esm/cli/email/email-template-import.js.map +1 -1
  100. package/esm/cli/email/email-template-list.js.map +1 -1
  101. package/esm/cli/email/email-template.js.map +1 -1
  102. package/esm/cli/email/email.js.map +1 -1
  103. package/esm/cli/esv/esv-apply.js.map +1 -1
  104. package/esm/cli/esv/esv-secret-create.js.map +1 -1
  105. package/esm/cli/esv/esv-secret-delete.js.map +1 -1
  106. package/esm/cli/esv/esv-secret-describe.js.map +1 -1
  107. package/esm/cli/esv/esv-secret-export.js.map +1 -1
  108. package/esm/cli/esv/esv-secret-import.js.map +1 -1
  109. package/esm/cli/esv/esv-secret-list.js.map +1 -1
  110. package/esm/cli/esv/esv-secret-set.js.map +1 -1
  111. package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
  112. package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
  113. package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
  114. package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
  115. package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
  116. package/esm/cli/esv/esv-secret-version.js.map +1 -1
  117. package/esm/cli/esv/esv-secret.js.map +1 -1
  118. package/esm/cli/esv/esv-variable-create.js.map +1 -1
  119. package/esm/cli/esv/esv-variable-delete.js.map +1 -1
  120. package/esm/cli/esv/esv-variable-describe.js.map +1 -1
  121. package/esm/cli/esv/esv-variable-export.js.map +1 -1
  122. package/esm/cli/esv/esv-variable-import.js.map +1 -1
  123. package/esm/cli/esv/esv-variable-list.js.map +1 -1
  124. package/esm/cli/esv/esv-variable-set.js.map +1 -1
  125. package/esm/cli/esv/esv-variable.js.map +1 -1
  126. package/esm/cli/esv/esv.js.map +1 -1
  127. package/esm/cli/idm/idm-count.js.map +1 -1
  128. package/esm/cli/idm/idm-export.js.map +1 -1
  129. package/esm/cli/idm/idm-import.js.map +1 -1
  130. package/esm/cli/idm/idm-list.js.map +1 -1
  131. package/esm/cli/idm/idm.js.map +1 -1
  132. package/esm/cli/idp/idp-export.js.map +1 -1
  133. package/esm/cli/idp/idp-import.js.map +1 -1
  134. package/esm/cli/idp/idp-list.js.map +1 -1
  135. package/esm/cli/idp/idp.js.map +1 -1
  136. package/esm/cli/info/info.js.map +1 -1
  137. package/esm/cli/journey/journey-delete.js.map +1 -1
  138. package/esm/cli/journey/journey-describe.js.map +1 -1
  139. package/esm/cli/journey/journey-disable.js.map +1 -1
  140. package/esm/cli/journey/journey-enable.js.map +1 -1
  141. package/esm/cli/journey/journey-export.js.map +1 -1
  142. package/esm/cli/journey/journey-import.js.map +1 -1
  143. package/esm/cli/journey/journey-list.js.map +1 -1
  144. package/esm/cli/journey/journey-prune.js.map +1 -1
  145. package/esm/cli/journey/journey.js.map +1 -1
  146. package/esm/cli/logging/logs-fetch.js.map +1 -1
  147. package/esm/cli/logging/logs-list.js.map +1 -1
  148. package/esm/cli/logging/logs-tail.js.map +1 -1
  149. package/esm/cli/logging/logs.js.map +1 -1
  150. package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
  151. package/esm/cli/realm/realm-describe.js.map +1 -1
  152. package/esm/cli/realm/realm-list.js.map +1 -1
  153. package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
  154. package/esm/cli/realm/realm.js.map +1 -1
  155. package/esm/cli/saml/saml-cot-export.js.map +1 -1
  156. package/esm/cli/saml/saml-cot-import.js.map +1 -1
  157. package/esm/cli/saml/saml-cot-list.js.map +1 -1
  158. package/esm/cli/saml/saml-cot.js.map +1 -1
  159. package/esm/cli/saml/saml-delete.js.map +1 -1
  160. package/esm/cli/saml/saml-describe.js.map +1 -1
  161. package/esm/cli/saml/saml-export.js.map +1 -1
  162. package/esm/cli/saml/saml-import.js.map +1 -1
  163. package/esm/cli/saml/saml-list.js.map +1 -1
  164. package/esm/cli/saml/saml-metadata-export.js.map +1 -1
  165. package/esm/cli/saml/saml-metadata.js.map +1 -1
  166. package/esm/cli/saml/saml.js.map +1 -1
  167. package/esm/cli/script/script-delete.js.map +1 -1
  168. package/esm/cli/script/script-describe.js.map +1 -1
  169. package/esm/cli/script/script-export.js.map +1 -1
  170. package/esm/cli/script/script-import.js.map +1 -1
  171. package/esm/cli/script/script-list.js.map +1 -1
  172. package/esm/cli/script/script.js.map +1 -1
  173. package/esm/cli/service/service-delete.js.map +1 -1
  174. package/esm/cli/service/service-export.js.map +1 -1
  175. package/esm/cli/service/service-import.js.map +1 -1
  176. package/esm/cli/service/service-list.js.map +1 -1
  177. package/esm/cli/service/service.js.map +1 -1
  178. package/esm/cli/theme/theme-delete.e2e.test_.js.map +1 -1
  179. package/esm/cli/theme/theme-delete.js.map +1 -1
  180. package/esm/cli/theme/theme-export.js.map +1 -1
  181. package/esm/cli/theme/theme-import.js.map +1 -1
  182. package/esm/cli/theme/theme-list.e2e.test_.js.map +1 -1
  183. package/esm/cli/theme/theme-list.js.map +1 -1
  184. package/esm/cli/theme/theme.js.map +1 -1
  185. package/esm/loader.js.map +1 -1
  186. package/esm/ops/AgentOps.js.map +1 -1
  187. package/esm/ops/CirclesOfTrustOps.js.map +1 -1
  188. package/esm/ops/ConnectionProfileOps.js.map +1 -1
  189. package/esm/ops/EmailTemplateOps.js.map +1 -1
  190. package/esm/ops/IdmOps.js.map +1 -1
  191. package/esm/ops/IdpOps.js.map +1 -1
  192. package/esm/ops/JourneyOps.js.map +1 -1
  193. package/esm/ops/NodeOps.js.map +1 -1
  194. package/esm/ops/OAuth2ClientOps.js.map +1 -1
  195. package/esm/ops/PolicyOps.js +117 -15
  196. package/esm/ops/PolicyOps.js.map +1 -1
  197. package/esm/ops/PolicySetOps.js +17 -10
  198. package/esm/ops/PolicySetOps.js.map +1 -1
  199. package/esm/ops/ResourceTypeOps.js +156 -25
  200. package/esm/ops/ResourceTypeOps.js.map +1 -1
  201. package/esm/ops/Saml2Ops.js.map +1 -1
  202. package/esm/ops/Saml2Ops.test_.js.map +1 -1
  203. package/esm/ops/ScriptOps.js.map +1 -1
  204. package/esm/ops/ServiceOps.js.map +1 -1
  205. package/esm/ops/ThemeOps.js.map +1 -1
  206. package/esm/ops/utils/OpsUtils.js.map +1 -1
  207. package/esm/ops/utils/Wordwrap.js.map +1 -1
  208. package/esm/utils/Config.js.map +1 -1
  209. package/esm/utils/Console.js.map +1 -1
  210. package/esm/utils/ExportImportUtils.js.map +1 -1
  211. package/esm/utils/Version.js.map +1 -1
  212. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ExportImportUtils.js","names":["fs","slugify","ExportImportUtils","state","printMessage","getMetadata","getTypedFilename","name","type","suffix","slug","replace","saveJsonToFile","data","filename","exportData","meta","writeFile","JSON","stringify","err","saveToFile","identifier","Array","isArray","forEach","element","saveTextToFile","writeFileSync","error","titleCase","input","str","toString","splitStr","toLowerCase","split","i","length","charAt","toUpperCase","slice","join","getRealmString","realm","getRealm","reduce","result","item"],"sources":["utils/ExportImportUtils.ts"],"sourcesContent":["import fs from 'fs';\nimport slugify from 'slugify';\nimport { ExportImportUtils, state } from '@rockcarver/frodo-lib';\nimport { printMessage } from './Console';\n\nconst { getMetadata } = ExportImportUtils;\n\n/**\n * Get a typed filename. E.g. \"my-script.script.json\"\n *\n * @param name The name of the file\n * @param type The type of the file, e.g. script, idp, etc.\n * @param suffix The suffix of the file, e.g. json, xml, etc. Defaults to json.\n * @returns The typed filename\n */\nexport function getTypedFilename(\n name: string,\n type: string,\n suffix = 'json'\n): string {\n const slug = slugify(name.replace(/^http(s?):\\/\\//, ''));\n return `${slug}.${type}.${suffix}`;\n}\n\n/**\n * Save JSON object to file\n *\n * @param data data object\n * @param filename file name\n */\nexport function saveJsonToFile(data: any, filename: string) {\n const exportData = data;\n if (!exportData.meta) {\n exportData.meta = getMetadata();\n }\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${filename}`, 'error');\n }\n return '';\n });\n}\n\nexport function saveToFile(type, data, identifier, filename) {\n const exportData = {};\n exportData['meta'] = getMetadata();\n exportData[type] = {};\n\n if (Array.isArray(data)) {\n data.forEach((element) => {\n exportData[type][element[identifier]] = element;\n });\n } else {\n exportData[type][data[identifier]] = data;\n }\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${type} to file`, 'error');\n }\n return '';\n });\n}\n\n/**\n * Save text data to file\n * @param data text data\n * @param filename file name\n * @return true if successful, false otherwise\n */\nexport function saveTextToFile(data: string, filename: string): boolean {\n try {\n fs.writeFileSync(filename, data);\n return true;\n } catch (error) {\n printMessage(`ERROR - can't save ${filename}`, 'error');\n return false;\n }\n}\n\n/*\n * Output str in title case\n *\n * e.g.: 'ALL UPPERCASE AND all lowercase' = 'All Uppercase And All Lowercase'\n */\nexport function titleCase(input) {\n const str = input.toString();\n const splitStr = str.toLowerCase().split(' ');\n for (let i = 0; i < splitStr.length; i += 1) {\n splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].slice(1);\n }\n return splitStr.join(' ');\n}\n\nexport function getRealmString() {\n const realm = state.getRealm();\n return realm\n .split('/')\n .reduce((result, item) => `${result}${titleCase(item)}`, '');\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ExportImportUtils.js","names":["fs","slugify","ExportImportUtils","state","printMessage","getMetadata","getTypedFilename","name","type","suffix","slug","replace","saveJsonToFile","data","filename","exportData","meta","writeFile","JSON","stringify","err","saveToFile","identifier","Array","isArray","forEach","element","saveTextToFile","writeFileSync","error","titleCase","input","str","toString","splitStr","toLowerCase","split","i","length","charAt","toUpperCase","slice","join","getRealmString","realm","getRealm","reduce","result","item"],"sources":["utils/ExportImportUtils.ts"],"sourcesContent":["import fs from 'fs';\nimport slugify from 'slugify';\nimport { ExportImportUtils, state } from '@rockcarver/frodo-lib';\nimport { printMessage } from './Console';\n\nconst { getMetadata } = ExportImportUtils;\n\n/**\n * Get a typed filename. E.g. \"my-script.script.json\"\n *\n * @param name The name of the file\n * @param type The type of the file, e.g. script, idp, etc.\n * @param suffix The suffix of the file, e.g. json, xml, etc. Defaults to json.\n * @returns The typed filename\n */\nexport function getTypedFilename(\n name: string,\n type: string,\n suffix = 'json'\n): string {\n const slug = slugify(name.replace(/^http(s?):\\/\\//, ''));\n return `${slug}.${type}.${suffix}`;\n}\n\n/**\n * Save JSON object to file\n *\n * @param data data object\n * @param filename file name\n */\nexport function saveJsonToFile(data: any, filename: string) {\n const exportData = data;\n if (!exportData.meta) {\n exportData.meta = getMetadata();\n }\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${filename}`, 'error');\n }\n return '';\n });\n}\n\nexport function saveToFile(type, data, identifier, filename) {\n const exportData = {};\n exportData['meta'] = getMetadata();\n exportData[type] = {};\n\n if (Array.isArray(data)) {\n data.forEach((element) => {\n exportData[type][element[identifier]] = element;\n });\n } else {\n exportData[type][data[identifier]] = data;\n }\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${type} to file`, 'error');\n }\n return '';\n });\n}\n\n/**\n * Save text data to file\n * @param data text data\n * @param filename file name\n * @return true if successful, false otherwise\n */\nexport function saveTextToFile(data: string, filename: string): boolean {\n try {\n fs.writeFileSync(filename, data);\n return true;\n } catch (error) {\n printMessage(`ERROR - can't save ${filename}`, 'error');\n return false;\n }\n}\n\n/*\n * Output str in title case\n *\n * e.g.: 'ALL UPPERCASE AND all lowercase' = 'All Uppercase And All Lowercase'\n */\nexport function titleCase(input) {\n const str = input.toString();\n const splitStr = str.toLowerCase().split(' ');\n for (let i = 0; i < splitStr.length; i += 1) {\n splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].slice(1);\n }\n return splitStr.join(' ');\n}\n\nexport function getRealmString() {\n const realm = state.getRealm();\n return realm\n .split('/')\n .reduce((result, item) => `${result}${titleCase(item)}`, '');\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Version.js","names":["fs","path","os","fileURLToPath","compareVersions","Color","LibVersion","VERSION_CACHE_FILE","homedir","VERSION_CHECK_INTERVAL","GITHUB_REPOS_URL","GITHUB_RELEASES_PATH_CLI","NPM_BASE_URL","NPM_PACKAGE_PATH_CLI","ENDPOINTS","base","versionObject","last_checked","github","npm","__dirname","dirname","import","meta","url","enable","pkg","JSON","parse","readFileSync","resolve","getCliVersion","version","getLibVersion","getVersion","extractGithubReleaseInfo","data","release","type","name","published_at","r","find","rel","prerelease","extractNpmReleaseInfo","latest","time","getRemoteVersionData","useCache","existsSync","Math","floor","Date","now","allVersions","result","getAllVersions","forEach","item","Array","isArray","push","element","writeFileSync","stringify","getBinaryName","basename","process","execPath","getVersions","checkOnly","updateAvailable","usingBinary","e","versionString","newVersionString","green"],"sources":["utils/Version.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport os from 'os';\nimport { fileURLToPath } from 'url';\nimport { compareVersions } from 'compare-versions';\n\nimport Color from 'colors';\n\nimport { LibVersion } from '@rockcarver/frodo-lib';\n\nconst VERSION_CACHE_FILE = `${os.homedir()}/.frodo/Versions.json`;\nconst VERSION_CHECK_INTERVAL = 3600;\n\nconst GITHUB_REPOS_URL = `https://api.github.com`;\nconst GITHUB_RELEASES_PATH_CLI = `/repos/rockcarver/frodo-cli/releases`;\n\nconst NPM_BASE_URL = `https://registry.npmjs.org`;\nconst NPM_PACKAGE_PATH_CLI = `/@rockcarver/frodo-cli`;\n\nconst ENDPOINTS = [\n {\n base: GITHUB_REPOS_URL,\n path: GITHUB_RELEASES_PATH_CLI,\n },\n {\n base: NPM_BASE_URL,\n path: NPM_PACKAGE_PATH_CLI,\n },\n];\n\nlet versionObject = {\n last_checked: 0,\n github: '',\n npm: '',\n};\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nColor.enable();\n\nconst pkg = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, '../../package.json'), 'utf8')\n);\n\nfunction getCliVersion() {\n return `${pkg.version}`;\n}\n\nfunction getLibVersion() {\n return LibVersion.getVersion();\n}\n\nfunction extractGithubReleaseInfo(data) {\n const release = {\n type: 'github',\n name: '',\n published_at: '',\n };\n // find first stable release\n const r = data.find((rel) => rel.prerelease == false);\n release.name = r.name;\n release.published_at = r.published_at;\n return release;\n}\n\nfunction extractNpmReleaseInfo(data) {\n const release = {\n type: 'npm',\n name: '',\n published_at: '',\n };\n // stable release\n release.name = data[`dist-tags`].latest;\n release.published_at = data.time[data[`dist-tags`].latest];\n return release;\n}\n\nasync function getRemoteVersionData() {\n let useCache = true;\n if (fs.existsSync(VERSION_CACHE_FILE)) {\n const data = fs.readFileSync(VERSION_CACHE_FILE, 'utf8');\n versionObject = JSON.parse(data);\n if (\n versionObject.last_checked + VERSION_CHECK_INTERVAL <\n Math.floor(Date.now() / 1000)\n ) {\n useCache = false;\n }\n } else {\n useCache = false;\n }\n\n if (!useCache) {\n const allVersions = [];\n const result = await LibVersion.getAllVersions(ENDPOINTS);\n result.forEach((item) => {\n if (Array.isArray(item['value'].data)) {\n allVersions.push(extractGithubReleaseInfo(item['value'].data));\n } else {\n allVersions.push(extractNpmReleaseInfo(item['value'].data));\n }\n });\n // const allVersions = await LibVersion.getAllVersions(ENDPOINTS);\n allVersions.forEach((element) => {\n // cli\n if (element.type == 'github') {\n versionObject.github = element.name;\n } else {\n versionObject.npm = element.name;\n }\n });\n versionObject.last_checked = Math.floor(Date.now() / 1000);\n fs.writeFileSync(\n VERSION_CACHE_FILE,\n JSON.stringify(versionObject, null, 2)\n );\n }\n}\n\nfunction getBinaryName() {\n return path.basename(process.execPath);\n}\n\nexport async function getVersions(checkOnly: boolean) {\n let updateAvailable = false;\n let usingBinary = false;\n if (getBinaryName() == 'frodo') {\n usingBinary = true;\n }\n try {\n await getRemoteVersionData();\n } catch (e) {\n // Do not report error if remote version can not be obtained.\n // Just silently report installed version\n versionObject = {\n last_checked: 0,\n github: null,\n npm: null,\n };\n }\n\n let versionString = `You seem to be running the ${\n usingBinary ? 'binary' : 'NPM'\n } package`;\n\n versionString += `\\nInstalled versions:`;\n versionString += `\\ncli: v${getCliVersion()}\\nlib: v${getLibVersion()}\\nnode: ${\n process.version\n }`;\n let newVersionString = '';\n if (\n (usingBinary &&\n versionObject.github != null &&\n compareVersions(getCliVersion(), versionObject.github) == -1) ||\n (!usingBinary &&\n versionObject.npm != null &&\n compareVersions(getCliVersion(), versionObject.npm) == -1)\n ) {\n updateAvailable = true;\n newVersionString += `\\n\\nNewer version(s) available`;\n if (usingBinary) {\n newVersionString +=\n compareVersions(getCliVersion(), versionObject.github) == -1\n ? `\\ncli (github): v${versionObject.github}`.green\n : ``;\n } else {\n newVersionString +=\n compareVersions(getCliVersion(), versionObject.npm) == -1\n ? `\\ncli (npm): v${versionObject.npm}`.green\n : ``;\n }\n }\n if (checkOnly) {\n if (updateAvailable) {\n return `A new version of frodo is available.\\nPlease run 'frodo -v' for more details.\\n`\n .green;\n } else {\n return ``;\n }\n } else {\n return versionString + newVersionString;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Version.js","names":["fs","path","os","fileURLToPath","compareVersions","Color","LibVersion","VERSION_CACHE_FILE","homedir","VERSION_CHECK_INTERVAL","GITHUB_REPOS_URL","GITHUB_RELEASES_PATH_CLI","NPM_BASE_URL","NPM_PACKAGE_PATH_CLI","ENDPOINTS","base","versionObject","last_checked","github","npm","__dirname","dirname","import","meta","url","enable","pkg","JSON","parse","readFileSync","resolve","getCliVersion","version","getLibVersion","getVersion","extractGithubReleaseInfo","data","release","type","name","published_at","r","find","rel","prerelease","extractNpmReleaseInfo","latest","time","getRemoteVersionData","useCache","existsSync","Math","floor","Date","now","allVersions","result","getAllVersions","forEach","item","Array","isArray","push","element","writeFileSync","stringify","getBinaryName","basename","process","execPath","getVersions","checkOnly","updateAvailable","usingBinary","e","versionString","newVersionString","green"],"sources":["utils/Version.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport os from 'os';\nimport { fileURLToPath } from 'url';\nimport { compareVersions } from 'compare-versions';\n\nimport Color from 'colors';\n\nimport { LibVersion } from '@rockcarver/frodo-lib';\n\nconst VERSION_CACHE_FILE = `${os.homedir()}/.frodo/Versions.json`;\nconst VERSION_CHECK_INTERVAL = 3600;\n\nconst GITHUB_REPOS_URL = `https://api.github.com`;\nconst GITHUB_RELEASES_PATH_CLI = `/repos/rockcarver/frodo-cli/releases`;\n\nconst NPM_BASE_URL = `https://registry.npmjs.org`;\nconst NPM_PACKAGE_PATH_CLI = `/@rockcarver/frodo-cli`;\n\nconst ENDPOINTS = [\n {\n base: GITHUB_REPOS_URL,\n path: GITHUB_RELEASES_PATH_CLI,\n },\n {\n base: NPM_BASE_URL,\n path: NPM_PACKAGE_PATH_CLI,\n },\n];\n\nlet versionObject = {\n last_checked: 0,\n github: '',\n npm: '',\n};\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nColor.enable();\n\nconst pkg = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, '../../package.json'), 'utf8')\n);\n\nfunction getCliVersion() {\n return `${pkg.version}`;\n}\n\nfunction getLibVersion() {\n return LibVersion.getVersion();\n}\n\nfunction extractGithubReleaseInfo(data) {\n const release = {\n type: 'github',\n name: '',\n published_at: '',\n };\n // find first stable release\n const r = data.find((rel) => rel.prerelease == false);\n release.name = r.name;\n release.published_at = r.published_at;\n return release;\n}\n\nfunction extractNpmReleaseInfo(data) {\n const release = {\n type: 'npm',\n name: '',\n published_at: '',\n };\n // stable release\n release.name = data[`dist-tags`].latest;\n release.published_at = data.time[data[`dist-tags`].latest];\n return release;\n}\n\nasync function getRemoteVersionData() {\n let useCache = true;\n if (fs.existsSync(VERSION_CACHE_FILE)) {\n const data = fs.readFileSync(VERSION_CACHE_FILE, 'utf8');\n versionObject = JSON.parse(data);\n if (\n versionObject.last_checked + VERSION_CHECK_INTERVAL <\n Math.floor(Date.now() / 1000)\n ) {\n useCache = false;\n }\n } else {\n useCache = false;\n }\n\n if (!useCache) {\n const allVersions = [];\n const result = await LibVersion.getAllVersions(ENDPOINTS);\n result.forEach((item) => {\n if (Array.isArray(item['value'].data)) {\n allVersions.push(extractGithubReleaseInfo(item['value'].data));\n } else {\n allVersions.push(extractNpmReleaseInfo(item['value'].data));\n }\n });\n // const allVersions = await LibVersion.getAllVersions(ENDPOINTS);\n allVersions.forEach((element) => {\n // cli\n if (element.type == 'github') {\n versionObject.github = element.name;\n } else {\n versionObject.npm = element.name;\n }\n });\n versionObject.last_checked = Math.floor(Date.now() / 1000);\n fs.writeFileSync(\n VERSION_CACHE_FILE,\n JSON.stringify(versionObject, null, 2)\n );\n }\n}\n\nfunction getBinaryName() {\n return path.basename(process.execPath);\n}\n\nexport async function getVersions(checkOnly: boolean) {\n let updateAvailable = false;\n let usingBinary = false;\n if (getBinaryName() == 'frodo') {\n usingBinary = true;\n }\n try {\n await getRemoteVersionData();\n } catch (e) {\n // Do not report error if remote version can not be obtained.\n // Just silently report installed version\n versionObject = {\n last_checked: 0,\n github: null,\n npm: null,\n };\n }\n\n let versionString = `You seem to be running the ${\n usingBinary ? 'binary' : 'NPM'\n } package`;\n\n versionString += `\\nInstalled versions:`;\n versionString += `\\ncli: v${getCliVersion()}\\nlib: v${getLibVersion()}\\nnode: ${\n process.version\n }`;\n let newVersionString = '';\n if (\n (usingBinary &&\n versionObject.github != null &&\n compareVersions(getCliVersion(), versionObject.github) == -1) ||\n (!usingBinary &&\n versionObject.npm != null &&\n compareVersions(getCliVersion(), versionObject.npm) == -1)\n ) {\n updateAvailable = true;\n newVersionString += `\\n\\nNewer version(s) available`;\n if (usingBinary) {\n newVersionString +=\n compareVersions(getCliVersion(), versionObject.github) == -1\n ? `\\ncli (github): v${versionObject.github}`.green\n : ``;\n } else {\n newVersionString +=\n compareVersions(getCliVersion(), versionObject.npm) == -1\n ? `\\ncli (npm): v${versionObject.npm}`.green\n : ``;\n }\n }\n if (checkOnly) {\n if (updateAvailable) {\n return `A new version of frodo is available.\\nPlease run 'frodo -v' for more details.\\n`\n .green;\n } else {\n return ``;\n }\n } else {\n return versionString + newVersionString;\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rockcarver/frodo-cli",
3
- "version": "0.23.1-7",
3
+ "version": "0.24.1-0",
4
4
  "type": "module",
5
5
  "description": "A command line interface to manage ForgeRock Identity Cloud tenants, ForgeOps deployments, and classic deployments.",
6
6
  "keywords": [
@@ -99,7 +99,7 @@
99
99
  ]
100
100
  },
101
101
  "dependencies": {
102
- "@rockcarver/frodo-lib": "0.18.9-6",
102
+ "@rockcarver/frodo-lib": "0.19.1",
103
103
  "chokidar": "^3.5.3",
104
104
  "cli-progress": "^3.11.2",
105
105
  "cli-table3": "^0.6.3",