@rockcarver/frodo-lib 2.0.0-3 → 2.0.0-4

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 (149) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/cjs/api/AgentApi.js +64 -16
  3. package/cjs/api/AgentApi.js.map +1 -1
  4. package/cjs/api/ApiTypes.js +0 -55
  5. package/cjs/api/ApiTypes.js.map +1 -1
  6. package/cjs/api/BaseApi.js +21 -11
  7. package/cjs/api/BaseApi.js.map +1 -1
  8. package/cjs/api/cloud/SecretsApi.js +7 -14
  9. package/cjs/api/cloud/SecretsApi.js.map +1 -1
  10. package/cjs/api/cloud/SecretsApi.test.js.map +1 -1
  11. package/cjs/ops/AdminOps.js +254 -60
  12. package/cjs/ops/AdminOps.js.map +1 -1
  13. package/cjs/ops/AgentOps.js +352 -108
  14. package/cjs/ops/AgentOps.js.map +1 -1
  15. package/cjs/ops/AuthenticateOps.js +253 -60
  16. package/cjs/ops/AuthenticateOps.js.map +1 -1
  17. package/cjs/ops/CirclesOfTrustOps.js +16 -4
  18. package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
  19. package/cjs/ops/ConnectionProfileOps.js +163 -40
  20. package/cjs/ops/ConnectionProfileOps.js.map +1 -1
  21. package/cjs/ops/EmailTemplateOps.js +7 -1
  22. package/cjs/ops/EmailTemplateOps.js.map +1 -1
  23. package/cjs/ops/IdpOps.js +55 -12
  24. package/cjs/ops/IdpOps.js.map +1 -1
  25. package/cjs/ops/JourneyOps.js +645 -136
  26. package/cjs/ops/JourneyOps.js.map +1 -1
  27. package/cjs/ops/NodeOps.js +96 -24
  28. package/cjs/ops/NodeOps.js.map +1 -1
  29. package/cjs/ops/OAuth2ClientOps.js +45 -11
  30. package/cjs/ops/OAuth2ClientOps.js.map +1 -1
  31. package/cjs/ops/OpsTypes.js +0 -23
  32. package/cjs/ops/OpsTypes.js.map +1 -1
  33. package/cjs/ops/OrganizationOps.js +44 -10
  34. package/cjs/ops/OrganizationOps.js.map +1 -1
  35. package/cjs/ops/PolicyOps.js +86 -24
  36. package/cjs/ops/PolicyOps.js.map +1 -1
  37. package/cjs/ops/PolicySetOps.js +72 -18
  38. package/cjs/ops/PolicySetOps.js.map +1 -1
  39. package/cjs/ops/ResourceTypeOps.js +24 -6
  40. package/cjs/ops/ResourceTypeOps.js.map +1 -1
  41. package/cjs/ops/Saml2Ops.js +120 -33
  42. package/cjs/ops/Saml2Ops.js.map +1 -1
  43. package/cjs/ops/Saml2Ops.test.js.map +1 -1
  44. package/cjs/ops/ScriptOps.js +73 -17
  45. package/cjs/ops/ScriptOps.js.map +1 -1
  46. package/cjs/ops/ServiceOps.js +152 -35
  47. package/cjs/ops/ServiceOps.js.map +1 -1
  48. package/cjs/ops/ThemeOps.js +20 -5
  49. package/cjs/ops/ThemeOps.js.map +1 -1
  50. package/cjs/ops/cloud/FeatureOps.js +4 -1
  51. package/cjs/ops/cloud/FeatureOps.js.map +1 -1
  52. package/cjs/ops/cloud/SecretsOps.js.map +1 -1
  53. package/cjs/ops/cloud/ServiceAccountOps.js +24 -6
  54. package/cjs/ops/cloud/ServiceAccountOps.js.map +1 -1
  55. package/cjs/ops/cloud/StartupOps.js +55 -11
  56. package/cjs/ops/cloud/StartupOps.js.map +1 -1
  57. package/cjs/ops/utils/Console.js +47 -22
  58. package/cjs/ops/utils/Console.js.map +1 -1
  59. package/cjs/ops/utils/DataProtection.js +12 -5
  60. package/cjs/ops/utils/DataProtection.js.map +1 -1
  61. package/cjs/ops/utils/DataProtection.test.js.map +1 -1
  62. package/cjs/ops/utils/ExportImportUtils.js +15 -8
  63. package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
  64. package/cjs/ops/utils/ScriptValidationUtils.js +33 -8
  65. package/cjs/ops/utils/ScriptValidationUtils.js.map +1 -1
  66. package/cjs/ops/utils/ScriptValidationUtils.test.js.map +1 -1
  67. package/cjs/utils/SetupPollyForFrodoLib.js +67 -19
  68. package/cjs/utils/SetupPollyForFrodoLib.js.map +1 -1
  69. package/esm/api/AgentApi.mjs +64 -16
  70. package/esm/api/ApiTypes.mjs +1 -50
  71. package/esm/api/BaseApi.mjs +21 -11
  72. package/esm/api/cloud/SecretsApi.mjs +0 -5
  73. package/esm/api/cloud/SecretsApi.test.mjs +3 -3
  74. package/esm/ops/AdminOps.mjs +254 -60
  75. package/esm/ops/AgentOps.mjs +352 -104
  76. package/esm/ops/AuthenticateOps.mjs +253 -60
  77. package/esm/ops/CirclesOfTrustOps.mjs +16 -4
  78. package/esm/ops/ConnectionProfileOps.mjs +163 -40
  79. package/esm/ops/EmailTemplateOps.mjs +5 -0
  80. package/esm/ops/IdpOps.mjs +55 -12
  81. package/esm/ops/JourneyOps.mjs +639 -132
  82. package/esm/ops/NodeOps.mjs +90 -19
  83. package/esm/ops/OAuth2ClientOps.mjs +45 -11
  84. package/esm/ops/OpsTypes.mjs +1 -22
  85. package/esm/ops/OrganizationOps.mjs +44 -10
  86. package/esm/ops/PolicyOps.mjs +86 -24
  87. package/esm/ops/PolicySetOps.mjs +72 -18
  88. package/esm/ops/ResourceTypeOps.mjs +24 -6
  89. package/esm/ops/Saml2Ops.mjs +120 -33
  90. package/esm/ops/Saml2Ops.test.mjs +10 -11
  91. package/esm/ops/ScriptOps.mjs +73 -17
  92. package/esm/ops/ServiceOps.mjs +152 -35
  93. package/esm/ops/ThemeOps.mjs +20 -5
  94. package/esm/ops/cloud/FeatureOps.mjs +4 -1
  95. package/esm/ops/cloud/ServiceAccountOps.mjs +24 -6
  96. package/esm/ops/cloud/StartupOps.mjs +55 -11
  97. package/esm/ops/utils/Console.mjs +33 -9
  98. package/esm/ops/utils/DataProtection.mjs +9 -2
  99. package/esm/ops/utils/DataProtection.test.mjs +8 -2
  100. package/esm/ops/utils/ExportImportUtils.mjs +15 -8
  101. package/esm/ops/utils/ScriptValidationUtils.mjs +30 -8
  102. package/esm/ops/utils/ScriptValidationUtils.test.mjs +14 -3
  103. package/esm/utils/SetupPollyForFrodoLib.mjs +64 -18
  104. package/package.json +1 -1
  105. package/types/api/AgentApi.d.ts +6 -6
  106. package/types/api/AgentApi.d.ts.map +1 -1
  107. package/types/api/ApiTypes.d.ts +12 -49
  108. package/types/api/ApiTypes.d.ts.map +1 -1
  109. package/types/api/BaseApi.d.ts.map +1 -1
  110. package/types/api/cloud/SecretsApi.d.ts +1 -4
  111. package/types/api/cloud/SecretsApi.d.ts.map +1 -1
  112. package/types/ops/AdminOps.d.ts.map +1 -1
  113. package/types/ops/AgentOps.d.ts +3 -6
  114. package/types/ops/AgentOps.d.ts.map +1 -1
  115. package/types/ops/AuthenticateOps.d.ts.map +1 -1
  116. package/types/ops/CirclesOfTrustOps.d.ts.map +1 -1
  117. package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
  118. package/types/ops/EmailTemplateOps.d.ts +4 -0
  119. package/types/ops/EmailTemplateOps.d.ts.map +1 -1
  120. package/types/ops/IdpOps.d.ts.map +1 -1
  121. package/types/ops/JourneyOps.d.ts +10 -4
  122. package/types/ops/JourneyOps.d.ts.map +1 -1
  123. package/types/ops/NodeOps.d.ts +10 -4
  124. package/types/ops/NodeOps.d.ts.map +1 -1
  125. package/types/ops/OAuth2ClientOps.d.ts.map +1 -1
  126. package/types/ops/OpsTypes.d.ts +2 -12
  127. package/types/ops/OpsTypes.d.ts.map +1 -1
  128. package/types/ops/OrganizationOps.d.ts.map +1 -1
  129. package/types/ops/PolicyOps.d.ts.map +1 -1
  130. package/types/ops/PolicySetOps.d.ts.map +1 -1
  131. package/types/ops/ResourceTypeOps.d.ts.map +1 -1
  132. package/types/ops/Saml2Ops.d.ts.map +1 -1
  133. package/types/ops/ScriptOps.d.ts.map +1 -1
  134. package/types/ops/ServiceOps.d.ts.map +1 -1
  135. package/types/ops/ThemeOps.d.ts.map +1 -1
  136. package/types/ops/cloud/FeatureOps.d.ts.map +1 -1
  137. package/types/ops/cloud/SecretsOps.d.ts +1 -1
  138. package/types/ops/cloud/SecretsOps.d.ts.map +1 -1
  139. package/types/ops/cloud/ServiceAccountOps.d.ts.map +1 -1
  140. package/types/ops/cloud/StartupOps.d.ts.map +1 -1
  141. package/types/ops/utils/Console.d.ts +34 -7
  142. package/types/ops/utils/Console.d.ts.map +1 -1
  143. package/types/ops/utils/DataProtection.d.ts +5 -1
  144. package/types/ops/utils/DataProtection.d.ts.map +1 -1
  145. package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
  146. package/types/ops/utils/ScriptValidationUtils.d.ts +14 -4
  147. package/types/ops/utils/ScriptValidationUtils.d.ts.map +1 -1
  148. package/types/utils/SetupPollyForFrodoLib.d.ts +5 -1
  149. package/types/utils/SetupPollyForFrodoLib.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeOps.js","names":["_IdmConfigApi","require","_ApiUtils","_Console","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","THEMEREALM_ID","exports","ThemeOps","constructor","state","getThemes","_this","getTheme","themeId","_arguments","_this2","realm","length","getRealm","getThemeByName","themeName","_arguments2","_this3","putTheme","themeData","_arguments3","_this4","putThemeByName","_arguments4","_this5","putThemes","themeMap","_this6","deleteTheme","_arguments5","_this7","deleteThemeByName","_arguments6","_this8","deleteThemes","_arguments7","_this9","default","getRealmThemes","_ref","themes","_x","_getThemes","_ref2","getCurrentRealmName","getConfigEntity","entityId","_x2","_getTheme","_ref3","found","filter","theme","_id","Error","concat","_x3","_getThemeByName","_ref4","name","_x4","_putTheme","_ref5","data","isNew","realmThemes","map","isDefault","push","putConfigEntity","entityData","_x5","_putThemeByName","_ref6","_x6","_putThemes","_ref7","debugMessage","allThemeIDs","Object","keys","existingThemeIDs","defaultThemeId","newThemeIDs","id","includes","forEach","updatedThemes","Map","_x7","_deleteTheme","_ref8","deletedThemes","finalThemes","undeletedThemes","_x8","_deleteThemeByName","_ref9","_x9","_deleteThemes","_ref10"],"sources":["ops/ThemeOps.ts"],"sourcesContent":["import { ThemeSkeleton, UiThemeRealmObject } from '../api/ApiTypes';\nimport { getConfigEntity, putConfigEntity } from '../api/IdmConfigApi';\nimport { getCurrentRealmName } from '../api/utils/ApiUtils';\nimport { debugMessage } from '../ops/utils/Console';\nimport State from '../shared/State';\n\nexport const THEMEREALM_ID = 'ui/themerealm';\n\nexport default class ThemeOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get all themes\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton[]>} a promise that resolves to an array of themes\n */\n async getThemes(): Promise<ThemeSkeleton[]> {\n return getThemes({ state: this.state });\n }\n\n /**\n * Get theme by id\n * @param {string} themeId theme id\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\n async getTheme(\n themeId: string,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return getTheme({ themeId, realm, state: this.state });\n }\n\n /**\n * Get theme by name\n * @param {string} themeName theme name\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\n async getThemeByName(\n themeName: string,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return getThemeByName({ themeName, realm, state: this.state });\n }\n\n /**\n * Put theme by id\n * @param {string} themeId theme id\n * @param {ThemeSkeleton} themeData theme object\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\n async putTheme(\n themeId: string,\n themeData: ThemeSkeleton,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return putTheme({ themeId, themeData, realm, state: this.state });\n }\n\n /**\n * Put theme by name\n * @param {String} themeName theme name\n * @param {ThemeSkeleton} themeData theme object\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\n async putThemeByName(\n themeName: string,\n themeData: ThemeSkeleton,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return putThemeByName({ themeName, themeData, realm, state: this.state });\n }\n\n /**\n * Put all themes\n * @param {Map<string, ThemeSkeleton>} allThemesData themes object containing all themes for all realms\n * @param {string} realm realm name\n * @returns {Promise<Map<string, ThemeSkeleton>>} a promise that resolves to a themes object\n */\n async putThemes(\n themeMap: Map<string, ThemeSkeleton>\n ): Promise<Map<string, ThemeSkeleton>> {\n return putThemes({ themeMap, state: this.state });\n }\n\n /**\n * Delete theme by id\n * @param {string} themeId theme id\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object\n */\n async deleteTheme(\n themeId: string,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return deleteTheme({ themeId, realm, state: this.state });\n }\n\n /**\n * Delete theme by name\n * @param {string} themeName theme name\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object\n */\n async deleteThemeByName(\n themeName: string,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return deleteThemeByName({ themeName, realm, state: this.state });\n }\n\n /**\n * Delete all themes\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton[]>} a promise that resolves to an array of themes\n */\n async deleteThemes(\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton[]> {\n return deleteThemes({ realm, state: this.state });\n }\n}\n\n/**\n * Get realm themes\n * @param {UiThemeRealmObject} themes object containing themes\n * @param {string} realm realm name\n * @returns {ThemeSkeleton[]} array of theme pertaining to the current realm\n */\nfunction getRealmThemes({\n themes,\n realm,\n}: {\n themes: UiThemeRealmObject;\n realm: string;\n}): ThemeSkeleton[] {\n if (themes.realm && themes.realm[realm]) {\n return themes.realm[realm];\n }\n return [];\n}\n\n/**\n * Get all themes\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton[]>} a promise that resolves to an array of themes\n */\nexport async function getThemes({\n realm = null,\n state,\n}: {\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton[]> {\n realm = realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n return getRealmThemes({ themes, realm });\n}\n\n/**\n * Get theme by id\n * @param {string} themeId theme id\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\nexport async function getTheme({\n themeId,\n realm,\n state,\n}: {\n themeId: string;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const found = getRealmThemes({ themes, realm }).filter(\n (theme) => theme._id === themeId\n );\n if (found.length === 1) {\n return found[0];\n }\n if (found.length > 1) {\n throw new Error(\n `Multiple themes with id '${themeId}' found in realm '${realm}'!`\n );\n }\n throw new Error(`Theme with id '${themeId}' not found in realm '${realm}'!`);\n}\n\n/**\n * Get theme by name\n * @param {string} themeName theme name\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\nexport async function getThemeByName({\n themeName,\n realm,\n state,\n}: {\n themeName: string;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const found = getRealmThemes({ themes, realm }).filter(\n (theme) => theme.name === themeName\n );\n if (found.length === 1) {\n return found[0];\n }\n if (found.length > 1) {\n throw new Error(\n `Multiple themes with the name '${themeName}' found in realm '${realm}'!`\n );\n }\n throw new Error(`Theme '${themeName}' not found in realm '${realm}'!`);\n}\n\n/**\n * Put theme by id\n * @param {string} themeId theme id\n * @param {ThemeSkeleton} themeData theme object\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\nexport async function putTheme({\n themeId,\n themeData,\n realm,\n state,\n}: {\n themeId: string;\n themeData: ThemeSkeleton;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const data = themeData;\n data._id = themeId;\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n let isNew = true;\n const realmThemes = getRealmThemes({ themes, realm }).map((theme) => {\n if (theme._id === themeId) {\n isNew = false;\n return data;\n }\n if (data.isDefault) theme.isDefault = false;\n return theme;\n });\n if (isNew) {\n realmThemes.push(data);\n }\n themes.realm[realm] = realmThemes;\n const found = getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).filter((theme) => theme._id === themeId);\n if (found.length === 1) {\n return found[0];\n }\n if (found.length > 1) {\n throw new Error(\n `Multiple themes with id '${themeId}' found in realm '${realm}'!`\n );\n }\n throw new Error(`Theme with id '${themeId}' not saved in realm '${realm}'!`);\n}\n\n/**\n * Put theme by name\n * @param {String} themeName theme name\n * @param {ThemeSkeleton} themeData theme object\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\nexport async function putThemeByName({\n themeName,\n themeData,\n realm,\n state,\n}: {\n themeName: string;\n themeData: ThemeSkeleton;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const data = themeData;\n data.name = themeName;\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n let isNew = true;\n const realmThemes = getRealmThemes({ themes, realm }).map((theme) => {\n if (theme.name === themeName) {\n isNew = false;\n return data;\n }\n if (data.isDefault) theme.isDefault = false;\n return theme;\n });\n if (isNew) {\n realmThemes.push(data);\n }\n themes['realm'][realm] = realmThemes;\n const found = getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).filter((theme) => theme.name === themeName);\n if (found.length === 1) {\n return found[0];\n }\n if (found.length > 1) {\n throw new Error(\n `Multiple themes '${themeName}' found in realm '${realm}'!`\n );\n }\n throw new Error(`Theme '${themeName}' not saved in realm '${realm}'!`);\n}\n\n/**\n * Put all themes\n * @param {Map<string, ThemeSkeleton>} allThemesData themes object containing all themes for all realms\n * @param {string} realm realm name\n * @returns {Promise<Map<string, ThemeSkeleton>>} a promise that resolves to a themes object\n */\nexport async function putThemes({\n themeMap,\n realm = null,\n state,\n}: {\n themeMap: Map<string, ThemeSkeleton>;\n realm?: string;\n state: State;\n}): Promise<Map<string, ThemeSkeleton>> {\n debugMessage(`ThemeApi.putThemes: start`);\n realm = realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const allThemeIDs = Object.keys(themeMap);\n const existingThemeIDs = [];\n let defaultThemeId = null;\n // update existing themes\n let realmThemes = getRealmThemes({ themes, realm }).map((theme) => {\n if (themeMap[theme._id]) {\n debugMessage(`Update theme: ${theme._id} - ${theme.name}`);\n existingThemeIDs.push(theme._id);\n // remember the id of the last default theme\n if (themeMap[theme._id].isDefault) defaultThemeId = theme._id;\n return themeMap[theme._id];\n }\n return theme;\n });\n const newThemeIDs = allThemeIDs.filter(\n (id) => !existingThemeIDs.includes(id)\n );\n // add new themes\n newThemeIDs.forEach((themeId) => {\n debugMessage(\n `Add theme: ${themeMap[themeId]._id} - ${themeMap[themeId].name}`\n );\n // remember the id of the last default theme\n if (themeMap[themeId].isDefault) defaultThemeId = themeId;\n realmThemes.push(themeMap[themeId]);\n });\n // if we imported a default theme, flag all the other themes as not default\n if (defaultThemeId) {\n realmThemes = realmThemes.map((theme) => {\n theme.isDefault = theme._id === defaultThemeId;\n return theme;\n });\n }\n themes.realm[realm] = realmThemes;\n const updatedThemes = new Map(\n getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).map((theme) => [theme._id, theme])\n );\n debugMessage(updatedThemes);\n debugMessage(`ThemeApi.putThemes: finished`);\n return updatedThemes;\n}\n\n/**\n * Delete theme by id\n * @param {string} themeId theme id\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object\n */\nexport async function deleteTheme({\n themeId,\n realm,\n state,\n}: {\n themeId: string;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const realmThemes = getRealmThemes({ themes, realm });\n const deletedThemes: ThemeSkeleton[] = [];\n const finalThemes = realmThemes.filter((theme) => {\n if (theme._id !== themeId) {\n return true;\n }\n deletedThemes.push(theme);\n return false;\n });\n if (realmThemes.length === finalThemes.length)\n throw new Error(`'${themeId}' not found in realm '${realm}'`);\n themes.realm[realm] = realmThemes;\n const undeletedThemes = getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).filter((theme) => deletedThemes.includes(theme));\n if (deletedThemes.length > 0 && undeletedThemes.length === 0) {\n return deletedThemes[0];\n }\n throw new Error(\n `Theme(s) with id(s) '${undeletedThemes.map(\n (theme) => theme._id\n )}' not deleted from realm '${realm}'!`\n );\n}\n\n/**\n * Delete theme by name\n * @param {string} themeName theme name\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object\n */\nexport async function deleteThemeByName({\n themeName,\n realm,\n state,\n}: {\n themeName: string;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const realmThemes = getRealmThemes({ themes, realm });\n const deletedThemes: ThemeSkeleton[] = [];\n const finalThemes = realmThemes.filter((theme) => {\n if (theme.name !== themeName) {\n return true;\n }\n deletedThemes.push(theme);\n return false;\n });\n if (realmThemes.length === finalThemes.length)\n throw new Error(`'${themeName}' not found in realm '${realm}'`);\n themes.realm[realm] = finalThemes;\n const undeletedThemes = getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).filter((theme) => deletedThemes.includes(theme));\n if (deletedThemes.length > 0 && undeletedThemes.length === 0) {\n return deletedThemes[0];\n }\n throw new Error(\n `Theme(s) with id(s) '${undeletedThemes.map(\n (theme) => theme._id\n )}' not deleted from realm '${realm}'!`\n );\n}\n\n/**\n * Delete all themes\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton[]>} a promise that resolves to an array of themes\n */\nexport async function deleteThemes({\n realm,\n state,\n}: {\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton[]> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const realmThemes = themes.realm[realm];\n if (!realmThemes)\n throw new Error(`No theme configuration found for realm '${realm}'`);\n const deletedThemes: ThemeSkeleton[] = [];\n for (const theme of realmThemes) {\n deletedThemes.push(theme);\n }\n themes.realm[realm] = [];\n await putConfigEntity({ entityId: THEMEREALM_ID, entityData: themes, state });\n return deletedThemes;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ThemeOps.js","names":["_IdmConfigApi","require","_ApiUtils","_Console","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","THEMEREALM_ID","exports","ThemeOps","constructor","state","getThemes","_this","getTheme","themeId","_arguments","_this2","realm","length","getRealm","getThemeByName","themeName","_arguments2","_this3","putTheme","themeData","_arguments3","_this4","putThemeByName","_arguments4","_this5","putThemes","themeMap","_this6","deleteTheme","_arguments5","_this7","deleteThemeByName","_arguments6","_this8","deleteThemes","_arguments7","_this9","default","getRealmThemes","_ref","themes","_x","_getThemes","_ref2","getCurrentRealmName","getConfigEntity","entityId","_x2","_getTheme","_ref3","found","filter","theme","_id","Error","concat","_x3","_getThemeByName","_ref4","name","_x4","_putTheme","_ref5","data","isNew","realmThemes","map","isDefault","push","putConfigEntity","entityData","_x5","_putThemeByName","_ref6","_x6","_putThemes","_ref7","debugMessage","message","allThemeIDs","Object","keys","existingThemeIDs","defaultThemeId","newThemeIDs","id","includes","forEach","updatedThemes","Map","_x7","_deleteTheme","_ref8","deletedThemes","finalThemes","undeletedThemes","_x8","_deleteThemeByName","_ref9","_x9","_deleteThemes","_ref10"],"sources":["ops/ThemeOps.ts"],"sourcesContent":["import { ThemeSkeleton, UiThemeRealmObject } from '../api/ApiTypes';\nimport { getConfigEntity, putConfigEntity } from '../api/IdmConfigApi';\nimport { getCurrentRealmName } from '../api/utils/ApiUtils';\nimport { debugMessage } from '../ops/utils/Console';\nimport State from '../shared/State';\n\nexport const THEMEREALM_ID = 'ui/themerealm';\n\nexport default class ThemeOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get all themes\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton[]>} a promise that resolves to an array of themes\n */\n async getThemes(): Promise<ThemeSkeleton[]> {\n return getThemes({ state: this.state });\n }\n\n /**\n * Get theme by id\n * @param {string} themeId theme id\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\n async getTheme(\n themeId: string,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return getTheme({ themeId, realm, state: this.state });\n }\n\n /**\n * Get theme by name\n * @param {string} themeName theme name\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\n async getThemeByName(\n themeName: string,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return getThemeByName({ themeName, realm, state: this.state });\n }\n\n /**\n * Put theme by id\n * @param {string} themeId theme id\n * @param {ThemeSkeleton} themeData theme object\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\n async putTheme(\n themeId: string,\n themeData: ThemeSkeleton,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return putTheme({ themeId, themeData, realm, state: this.state });\n }\n\n /**\n * Put theme by name\n * @param {String} themeName theme name\n * @param {ThemeSkeleton} themeData theme object\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\n async putThemeByName(\n themeName: string,\n themeData: ThemeSkeleton,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return putThemeByName({ themeName, themeData, realm, state: this.state });\n }\n\n /**\n * Put all themes\n * @param {Map<string, ThemeSkeleton>} allThemesData themes object containing all themes for all realms\n * @param {string} realm realm name\n * @returns {Promise<Map<string, ThemeSkeleton>>} a promise that resolves to a themes object\n */\n async putThemes(\n themeMap: Map<string, ThemeSkeleton>\n ): Promise<Map<string, ThemeSkeleton>> {\n return putThemes({ themeMap, state: this.state });\n }\n\n /**\n * Delete theme by id\n * @param {string} themeId theme id\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object\n */\n async deleteTheme(\n themeId: string,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return deleteTheme({ themeId, realm, state: this.state });\n }\n\n /**\n * Delete theme by name\n * @param {string} themeName theme name\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object\n */\n async deleteThemeByName(\n themeName: string,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return deleteThemeByName({ themeName, realm, state: this.state });\n }\n\n /**\n * Delete all themes\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton[]>} a promise that resolves to an array of themes\n */\n async deleteThemes(\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton[]> {\n return deleteThemes({ realm, state: this.state });\n }\n}\n\n/**\n * Get realm themes\n * @param {UiThemeRealmObject} themes object containing themes\n * @param {string} realm realm name\n * @returns {ThemeSkeleton[]} array of theme pertaining to the current realm\n */\nfunction getRealmThemes({\n themes,\n realm,\n}: {\n themes: UiThemeRealmObject;\n realm: string;\n}): ThemeSkeleton[] {\n if (themes.realm && themes.realm[realm]) {\n return themes.realm[realm];\n }\n return [];\n}\n\n/**\n * Get all themes\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton[]>} a promise that resolves to an array of themes\n */\nexport async function getThemes({\n realm = null,\n state,\n}: {\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton[]> {\n realm = realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n return getRealmThemes({ themes, realm });\n}\n\n/**\n * Get theme by id\n * @param {string} themeId theme id\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\nexport async function getTheme({\n themeId,\n realm,\n state,\n}: {\n themeId: string;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const found = getRealmThemes({ themes, realm }).filter(\n (theme) => theme._id === themeId\n );\n if (found.length === 1) {\n return found[0];\n }\n if (found.length > 1) {\n throw new Error(\n `Multiple themes with id '${themeId}' found in realm '${realm}'!`\n );\n }\n throw new Error(`Theme with id '${themeId}' not found in realm '${realm}'!`);\n}\n\n/**\n * Get theme by name\n * @param {string} themeName theme name\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\nexport async function getThemeByName({\n themeName,\n realm,\n state,\n}: {\n themeName: string;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const found = getRealmThemes({ themes, realm }).filter(\n (theme) => theme.name === themeName\n );\n if (found.length === 1) {\n return found[0];\n }\n if (found.length > 1) {\n throw new Error(\n `Multiple themes with the name '${themeName}' found in realm '${realm}'!`\n );\n }\n throw new Error(`Theme '${themeName}' not found in realm '${realm}'!`);\n}\n\n/**\n * Put theme by id\n * @param {string} themeId theme id\n * @param {ThemeSkeleton} themeData theme object\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\nexport async function putTheme({\n themeId,\n themeData,\n realm,\n state,\n}: {\n themeId: string;\n themeData: ThemeSkeleton;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const data = themeData;\n data._id = themeId;\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n let isNew = true;\n const realmThemes = getRealmThemes({ themes, realm }).map((theme) => {\n if (theme._id === themeId) {\n isNew = false;\n return data;\n }\n if (data.isDefault) theme.isDefault = false;\n return theme;\n });\n if (isNew) {\n realmThemes.push(data);\n }\n themes.realm[realm] = realmThemes;\n const found = getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).filter((theme) => theme._id === themeId);\n if (found.length === 1) {\n return found[0];\n }\n if (found.length > 1) {\n throw new Error(\n `Multiple themes with id '${themeId}' found in realm '${realm}'!`\n );\n }\n throw new Error(`Theme with id '${themeId}' not saved in realm '${realm}'!`);\n}\n\n/**\n * Put theme by name\n * @param {String} themeName theme name\n * @param {ThemeSkeleton} themeData theme object\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\nexport async function putThemeByName({\n themeName,\n themeData,\n realm,\n state,\n}: {\n themeName: string;\n themeData: ThemeSkeleton;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const data = themeData;\n data.name = themeName;\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n let isNew = true;\n const realmThemes = getRealmThemes({ themes, realm }).map((theme) => {\n if (theme.name === themeName) {\n isNew = false;\n return data;\n }\n if (data.isDefault) theme.isDefault = false;\n return theme;\n });\n if (isNew) {\n realmThemes.push(data);\n }\n themes['realm'][realm] = realmThemes;\n const found = getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).filter((theme) => theme.name === themeName);\n if (found.length === 1) {\n return found[0];\n }\n if (found.length > 1) {\n throw new Error(\n `Multiple themes '${themeName}' found in realm '${realm}'!`\n );\n }\n throw new Error(`Theme '${themeName}' not saved in realm '${realm}'!`);\n}\n\n/**\n * Put all themes\n * @param {Map<string, ThemeSkeleton>} allThemesData themes object containing all themes for all realms\n * @param {string} realm realm name\n * @returns {Promise<Map<string, ThemeSkeleton>>} a promise that resolves to a themes object\n */\nexport async function putThemes({\n themeMap,\n realm = null,\n state,\n}: {\n themeMap: Map<string, ThemeSkeleton>;\n realm?: string;\n state: State;\n}): Promise<Map<string, ThemeSkeleton>> {\n debugMessage({ message: `ThemeApi.putThemes: start`, state });\n realm = realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const allThemeIDs = Object.keys(themeMap);\n const existingThemeIDs = [];\n let defaultThemeId = null;\n // update existing themes\n let realmThemes = getRealmThemes({ themes, realm }).map((theme) => {\n if (themeMap[theme._id]) {\n debugMessage({\n message: `Update theme: ${theme._id} - ${theme.name}`,\n state,\n });\n existingThemeIDs.push(theme._id);\n // remember the id of the last default theme\n if (themeMap[theme._id].isDefault) defaultThemeId = theme._id;\n return themeMap[theme._id];\n }\n return theme;\n });\n const newThemeIDs = allThemeIDs.filter(\n (id) => !existingThemeIDs.includes(id)\n );\n // add new themes\n newThemeIDs.forEach((themeId) => {\n debugMessage({\n message: `Add theme: ${themeMap[themeId]._id} - ${themeMap[themeId].name}`,\n state,\n });\n // remember the id of the last default theme\n if (themeMap[themeId].isDefault) defaultThemeId = themeId;\n realmThemes.push(themeMap[themeId]);\n });\n // if we imported a default theme, flag all the other themes as not default\n if (defaultThemeId) {\n realmThemes = realmThemes.map((theme) => {\n theme.isDefault = theme._id === defaultThemeId;\n return theme;\n });\n }\n themes.realm[realm] = realmThemes;\n const updatedThemes = new Map(\n getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).map((theme) => [theme._id, theme])\n );\n debugMessage({ message: updatedThemes, state });\n debugMessage({ message: `ThemeApi.putThemes: finished`, state });\n return updatedThemes;\n}\n\n/**\n * Delete theme by id\n * @param {string} themeId theme id\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object\n */\nexport async function deleteTheme({\n themeId,\n realm,\n state,\n}: {\n themeId: string;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const realmThemes = getRealmThemes({ themes, realm });\n const deletedThemes: ThemeSkeleton[] = [];\n const finalThemes = realmThemes.filter((theme) => {\n if (theme._id !== themeId) {\n return true;\n }\n deletedThemes.push(theme);\n return false;\n });\n if (realmThemes.length === finalThemes.length)\n throw new Error(`'${themeId}' not found in realm '${realm}'`);\n themes.realm[realm] = realmThemes;\n const undeletedThemes = getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).filter((theme) => deletedThemes.includes(theme));\n if (deletedThemes.length > 0 && undeletedThemes.length === 0) {\n return deletedThemes[0];\n }\n throw new Error(\n `Theme(s) with id(s) '${undeletedThemes.map(\n (theme) => theme._id\n )}' not deleted from realm '${realm}'!`\n );\n}\n\n/**\n * Delete theme by name\n * @param {string} themeName theme name\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object\n */\nexport async function deleteThemeByName({\n themeName,\n realm,\n state,\n}: {\n themeName: string;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const realmThemes = getRealmThemes({ themes, realm });\n const deletedThemes: ThemeSkeleton[] = [];\n const finalThemes = realmThemes.filter((theme) => {\n if (theme.name !== themeName) {\n return true;\n }\n deletedThemes.push(theme);\n return false;\n });\n if (realmThemes.length === finalThemes.length)\n throw new Error(`'${themeName}' not found in realm '${realm}'`);\n themes.realm[realm] = finalThemes;\n const undeletedThemes = getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).filter((theme) => deletedThemes.includes(theme));\n if (deletedThemes.length > 0 && undeletedThemes.length === 0) {\n return deletedThemes[0];\n }\n throw new Error(\n `Theme(s) with id(s) '${undeletedThemes.map(\n (theme) => theme._id\n )}' not deleted from realm '${realm}'!`\n );\n}\n\n/**\n * Delete all themes\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton[]>} a promise that resolves to an array of themes\n */\nexport async function deleteThemes({\n realm,\n state,\n}: {\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton[]> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const realmThemes = themes.realm[realm];\n if (!realmThemes)\n throw new Error(`No theme configuration found for realm '${realm}'`);\n const deletedThemes: ThemeSkeleton[] = [];\n for (const theme of realmThemes) {\n deletedThemes.push(theme);\n }\n themes.realm[realm] = [];\n await putConfigEntity({ entityId: THEMEREALM_ID, entityData: themes, state });\n return deletedThemes;\n}\n"],"mappings":"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"}
@@ -72,7 +72,10 @@ function _getFeatures2() {
72
72
  state.setFeatures(JSON.parse(JSON.stringify(result)));
73
73
  } catch (error) {
74
74
  var _error$response;
75
- (0, _Console.debugMessage)((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data);
75
+ (0, _Console.debugMessage)({
76
+ message: (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data,
77
+ state
78
+ });
76
79
  state.setFeatures([]);
77
80
  }
78
81
  return state.getFeatures();
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureOps.js","names":["_FeatureApi","require","_Console","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","FeatureOps","constructor","state","getFeatures","_this","hasFeature","featureId","_this2","exports","default","_x","_getFeatures2","_ref","result","_getFeatures","setFeatures","JSON","parse","stringify","_error$response","debugMessage","response","data","_x2","_hasFeature","_ref2","featureIds","map","feature","_id","includes"],"sources":["ops/cloud/FeatureOps.ts"],"sourcesContent":["import {\n getFeatures as _getFeatures,\n FeatureInterface,\n} from '../../api/cloud/FeatureApi';\nimport State from '../../shared/State';\nimport { debugMessage } from '../utils/Console';\n\nexport default class FeatureOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get all features\n * @returns {Promise<FeatureInterface[]>} a promise that resolves to an array of feature objects\n */\n async getFeatures(): Promise<FeatureInterface[]> {\n return getFeatures({ state: this.state });\n }\n\n /**\n * Check if feature is available\n * @param {string} featureId feature id (e.g. 'service-accounts')\n * @returns {Promise<boolean>} a promise that resolves to true if the feature is available and to false otherwise\n */\n async hasFeature(featureId: string): Promise<boolean> {\n return hasFeature({ featureId, state: this.state });\n }\n}\n\n/**\n * Get all features\n * @returns {Promise<FeatureInterface[]>} a promise that resolves to an array of feature objects\n */\nexport async function getFeatures({\n state,\n}: {\n state: State;\n}): Promise<FeatureInterface[]> {\n if (typeof state.getFeatures() !== 'undefined') return state.getFeatures();\n try {\n const { result } = await _getFeatures({ state });\n state.setFeatures(JSON.parse(JSON.stringify(result)));\n } catch (error) {\n debugMessage(error.response?.data);\n state.setFeatures([]);\n }\n return state.getFeatures();\n}\n\n/**\n * Check if feature is available\n * @param {string} featureId feature id (e.g. 'service-accounts')\n * @returns {Promise<boolean>} a promise that resolves to true if the feature is available and to false otherwise\n */\nexport async function hasFeature({\n featureId,\n state,\n}: {\n featureId: string;\n state: State;\n}): Promise<boolean> {\n if (typeof state.getFeatures() === 'undefined') await getFeatures({ state });\n const featureIds = state.getFeatures().map((feature) => feature._id);\n return featureIds.includes(featureId);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"FeatureOps.js","names":["_FeatureApi","require","_Console","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","FeatureOps","constructor","state","getFeatures","_this","hasFeature","featureId","_this2","exports","default","_x","_getFeatures2","_ref","result","_getFeatures","setFeatures","JSON","parse","stringify","_error$response","debugMessage","message","response","data","_x2","_hasFeature","_ref2","featureIds","map","feature","_id","includes"],"sources":["ops/cloud/FeatureOps.ts"],"sourcesContent":["import {\n getFeatures as _getFeatures,\n FeatureInterface,\n} from '../../api/cloud/FeatureApi';\nimport State from '../../shared/State';\nimport { debugMessage } from '../utils/Console';\n\nexport default class FeatureOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get all features\n * @returns {Promise<FeatureInterface[]>} a promise that resolves to an array of feature objects\n */\n async getFeatures(): Promise<FeatureInterface[]> {\n return getFeatures({ state: this.state });\n }\n\n /**\n * Check if feature is available\n * @param {string} featureId feature id (e.g. 'service-accounts')\n * @returns {Promise<boolean>} a promise that resolves to true if the feature is available and to false otherwise\n */\n async hasFeature(featureId: string): Promise<boolean> {\n return hasFeature({ featureId, state: this.state });\n }\n}\n\n/**\n * Get all features\n * @returns {Promise<FeatureInterface[]>} a promise that resolves to an array of feature objects\n */\nexport async function getFeatures({\n state,\n}: {\n state: State;\n}): Promise<FeatureInterface[]> {\n if (typeof state.getFeatures() !== 'undefined') return state.getFeatures();\n try {\n const { result } = await _getFeatures({ state });\n state.setFeatures(JSON.parse(JSON.stringify(result)));\n } catch (error) {\n debugMessage({ message: error.response?.data, state });\n state.setFeatures([]);\n }\n return state.getFeatures();\n}\n\n/**\n * Check if feature is available\n * @param {string} featureId feature id (e.g. 'service-accounts')\n * @returns {Promise<boolean>} a promise that resolves to true if the feature is available and to false otherwise\n */\nexport async function hasFeature({\n featureId,\n state,\n}: {\n featureId: string;\n state: State;\n}): Promise<boolean> {\n if (typeof state.getFeatures() === 'undefined') await getFeatures({ state });\n const featureIds = state.getFeatures().map((feature) => feature._id);\n return featureIds.includes(featureId);\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SecretsOps.js","names":["_SecretsApi","require","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","SecretsOps","constructor","state","getSecrets","_this","getSecret","secretId","_this2","putSecret","description","_arguments","_this3","encoding","length","useInPlaceholders","setSecretDescription","_this4","deleteSecret","_this5","getSecretVersions","_this6","createNewVersionOfSecret","_this7","getVersionOfSecret","version","_this8","setStatusOfVersionOfSecret","status","_this9","deleteVersionOfSecret","_this10","exports","default"],"sources":["ops/cloud/SecretsOps.ts"],"sourcesContent":["import {\n createNewVersionOfSecret,\n deleteSecret,\n deleteVersionOfSecret,\n getSecret,\n getSecrets,\n getSecretVersions,\n getVersionOfSecret,\n putSecret,\n setSecretDescription,\n setStatusOfVersionOfSecret,\n} from '../../api/cloud/SecretsApi';\nimport State from '../../shared/State';\nimport { VersionOfSecretStatus } from '../../api/cloud/SecretsApi';\n\nexport default class SecretsOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get all secrets\n * @returns {Promise<unknown[]>} a promise that resolves to an array of secrets\n */\n async getSecrets() {\n return getSecrets({ state: this.state });\n }\n\n /**\n * Get secret\n * @param secretId secret id/name\n * @returns {Promise<unknown>} a promise that resolves to a secret\n */\n async getSecret(secretId: string) {\n return getSecret({ secretId, state: this.state });\n }\n\n /**\n * Create secret\n * @param {string} secretId secret id/name\n * @param {string} value secret value\n * @param {string} description secret description\n * @param {string} encoding secret encoding (only `generic` is supported)\n * @param {boolean} useInPlaceholders flag indicating if the secret can be used in placeholders\n * @returns {Promise<unknown>} a promise that resolves to a secret\n */\n async putSecret(\n secretId: string,\n value: string,\n description: string,\n encoding = 'generic',\n useInPlaceholders = true\n ) {\n return putSecret({\n secretId,\n value,\n description,\n encoding,\n useInPlaceholders,\n state: this.state,\n });\n }\n\n /**\n * Set secret description\n * @param {string} secretId secret id/name\n * @param {string} description secret description\n * @returns {Promise<unknown>} a promise that resolves to a status object\n */\n async setSecretDescription(secretId: string, description: string) {\n return setSecretDescription({ secretId, description, state: this.state });\n }\n\n /**\n * Delete secret\n * @param {string} secretId secret id/name\n * @returns {Promise<unknown>} a promise that resolves to a secret object\n */\n async deleteSecret(secretId: string) {\n return deleteSecret({ secretId, state: this.state });\n }\n\n /**\n * Get secret versions\n * @param {string} secretId secret id/name\n * @returns {Promise<unknown>} a promise that resolves to an array of secret versions\n */\n async getSecretVersions(secretId: string) {\n return getSecretVersions({ secretId, state: this.state });\n }\n\n /**\n * Create new secret version\n * @param {string} secretId secret id/name\n * @param {string} value secret value\n * @returns {Promise<unknown>} a promise that resolves to a version object\n */\n async createNewVersionOfSecret(secretId: string, value: string) {\n return createNewVersionOfSecret({ secretId, value, state: this.state });\n }\n\n /**\n * Get version of secret\n * @param {string} secretId secret id/name\n * @param {string} version secret version\n * @returns {Promise<unknown>} a promise that resolves to a version object\n */\n async getVersionOfSecret(secretId: string, version: string) {\n return getVersionOfSecret({ secretId, version, state: this.state });\n }\n\n /**\n * Update the status of a version of a secret\n * @param {string} secretId secret id/name\n * @param {string} version secret version\n * @param {VersionOfSecretStatus} status status\n * @returns {Promise<unknown>} a promise that resolves to a status object\n */\n async setStatusOfVersionOfSecret(\n secretId: string,\n version: string,\n status: VersionOfSecretStatus\n ) {\n return setStatusOfVersionOfSecret({\n secretId,\n version,\n status,\n state: this.state,\n });\n }\n\n /**\n * Delete version of secret\n * @param {string} secretId secret id/name\n * @param {string} version secret version\n * @returns {Promise<unknown>} a promise that resolves to a version object\n */\n async deleteVersionOfSecret(secretId: string, version: string) {\n return deleteVersionOfSecret({ secretId, version, state: this.state });\n }\n}\n\nexport {\n createNewVersionOfSecret,\n deleteSecret,\n deleteVersionOfSecret,\n getSecret,\n getSecrets,\n getSecretVersions,\n putSecret,\n setSecretDescription,\n setStatusOfVersionOfSecret,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"SecretsOps.js","names":["_SecretsApi","require","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","SecretsOps","constructor","state","getSecrets","_this","getSecret","secretId","_this2","putSecret","description","_arguments","_this3","encoding","length","useInPlaceholders","setSecretDescription","_this4","deleteSecret","_this5","getSecretVersions","_this6","createNewVersionOfSecret","_this7","getVersionOfSecret","version","_this8","setStatusOfVersionOfSecret","status","_this9","deleteVersionOfSecret","_this10","exports","default"],"sources":["ops/cloud/SecretsOps.ts"],"sourcesContent":["import { VersionOfSecretStatus } from '../../api/ApiTypes';\nimport {\n createNewVersionOfSecret,\n deleteSecret,\n deleteVersionOfSecret,\n getSecret,\n getSecrets,\n getSecretVersions,\n getVersionOfSecret,\n putSecret,\n setSecretDescription,\n setStatusOfVersionOfSecret,\n} from '../../api/cloud/SecretsApi';\nimport State from '../../shared/State';\n\nexport default class SecretsOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get all secrets\n * @returns {Promise<unknown[]>} a promise that resolves to an array of secrets\n */\n async getSecrets() {\n return getSecrets({ state: this.state });\n }\n\n /**\n * Get secret\n * @param secretId secret id/name\n * @returns {Promise<unknown>} a promise that resolves to a secret\n */\n async getSecret(secretId: string) {\n return getSecret({ secretId, state: this.state });\n }\n\n /**\n * Create secret\n * @param {string} secretId secret id/name\n * @param {string} value secret value\n * @param {string} description secret description\n * @param {string} encoding secret encoding (only `generic` is supported)\n * @param {boolean} useInPlaceholders flag indicating if the secret can be used in placeholders\n * @returns {Promise<unknown>} a promise that resolves to a secret\n */\n async putSecret(\n secretId: string,\n value: string,\n description: string,\n encoding = 'generic',\n useInPlaceholders = true\n ) {\n return putSecret({\n secretId,\n value,\n description,\n encoding,\n useInPlaceholders,\n state: this.state,\n });\n }\n\n /**\n * Set secret description\n * @param {string} secretId secret id/name\n * @param {string} description secret description\n * @returns {Promise<unknown>} a promise that resolves to a status object\n */\n async setSecretDescription(secretId: string, description: string) {\n return setSecretDescription({ secretId, description, state: this.state });\n }\n\n /**\n * Delete secret\n * @param {string} secretId secret id/name\n * @returns {Promise<unknown>} a promise that resolves to a secret object\n */\n async deleteSecret(secretId: string) {\n return deleteSecret({ secretId, state: this.state });\n }\n\n /**\n * Get secret versions\n * @param {string} secretId secret id/name\n * @returns {Promise<unknown>} a promise that resolves to an array of secret versions\n */\n async getSecretVersions(secretId: string) {\n return getSecretVersions({ secretId, state: this.state });\n }\n\n /**\n * Create new secret version\n * @param {string} secretId secret id/name\n * @param {string} value secret value\n * @returns {Promise<unknown>} a promise that resolves to a version object\n */\n async createNewVersionOfSecret(secretId: string, value: string) {\n return createNewVersionOfSecret({ secretId, value, state: this.state });\n }\n\n /**\n * Get version of secret\n * @param {string} secretId secret id/name\n * @param {string} version secret version\n * @returns {Promise<unknown>} a promise that resolves to a version object\n */\n async getVersionOfSecret(secretId: string, version: string) {\n return getVersionOfSecret({ secretId, version, state: this.state });\n }\n\n /**\n * Update the status of a version of a secret\n * @param {string} secretId secret id/name\n * @param {string} version secret version\n * @param {VersionOfSecretStatus} status status\n * @returns {Promise<unknown>} a promise that resolves to a status object\n */\n async setStatusOfVersionOfSecret(\n secretId: string,\n version: string,\n status: VersionOfSecretStatus\n ) {\n return setStatusOfVersionOfSecret({\n secretId,\n version,\n status,\n state: this.state,\n });\n }\n\n /**\n * Delete version of secret\n * @param {string} secretId secret id/name\n * @param {string} version secret version\n * @returns {Promise<unknown>} a promise that resolves to a version object\n */\n async deleteVersionOfSecret(secretId: string, version: string) {\n return deleteVersionOfSecret({ secretId, version, state: this.state });\n }\n}\n\nexport {\n createNewVersionOfSecret,\n deleteSecret,\n deleteVersionOfSecret,\n getSecret,\n getSecrets,\n getSecretVersions,\n putSecret,\n setSecretDescription,\n setStatusOfVersionOfSecret,\n};\n"],"mappings":"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"}
@@ -93,12 +93,18 @@ function _isServiceAccountsFeatureAvailable() {
93
93
  var {
94
94
  state
95
95
  } = _ref;
96
- (0, _Console.debugMessage)("ServiceAccountOps.isServiceAccountsFeatureAvailable: start");
96
+ (0, _Console.debugMessage)({
97
+ message: "ServiceAccountOps.isServiceAccountsFeatureAvailable: start",
98
+ state
99
+ });
97
100
  var featureAvailable = yield (0, _FeatureOps.hasFeature)({
98
101
  featureId: 'service-accounts',
99
102
  state
100
103
  });
101
- (0, _Console.debugMessage)("ServiceAccountOps.isServiceAccountsFeatureAvailable: end, available=".concat(featureAvailable));
104
+ (0, _Console.debugMessage)({
105
+ message: "ServiceAccountOps.isServiceAccountsFeatureAvailable: end, available=".concat(featureAvailable),
106
+ state
107
+ });
102
108
  return featureAvailable;
103
109
  });
104
110
  return _isServiceAccountsFeatureAvailable.apply(this, arguments);
@@ -122,7 +128,10 @@ function _createServiceAccount() {
122
128
  jwks,
123
129
  state
124
130
  } = _ref2;
125
- (0, _Console.debugMessage)("ServiceAccountOps.createServiceAccount: start");
131
+ (0, _Console.debugMessage)({
132
+ message: "ServiceAccountOps.createServiceAccount: start",
133
+ state
134
+ });
126
135
  var payload = {
127
136
  name,
128
137
  description,
@@ -130,10 +139,19 @@ function _createServiceAccount() {
130
139
  scopes,
131
140
  jwks: JSON.stringify(jwks)
132
141
  };
133
- (0, _Console.debugMessage)("ServiceAccountOps: createServiceAccount: payload:");
134
- (0, _Console.debugMessage)(payload);
142
+ (0, _Console.debugMessage)({
143
+ message: "ServiceAccountOps: createServiceAccount: payload:",
144
+ state
145
+ });
146
+ (0, _Console.debugMessage)({
147
+ message: payload,
148
+ state
149
+ });
135
150
  var result = yield (0, _ManagedObjectApi.createManagedObject)((0, _ApiUtils.getTenantURL)(state.getHost()), moType, payload, state);
136
- (0, _Console.debugMessage)("ServiceAccountOps.createServiceAccount: end");
151
+ (0, _Console.debugMessage)({
152
+ message: "ServiceAccountOps.createServiceAccount: end",
153
+ state
154
+ });
137
155
  return result;
138
156
  });
139
157
  return _createServiceAccount.apply(this, arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceAccountOps.js","names":["_ManagedObjectApi","require","_Console","_FeatureOps","_ApiUtils","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ServiceAccountOps","constructor","state","isServiceAccountsFeatureAvailable","_this","createServiceAccount","name","description","accountStatus","scopes","jwks","_this2","getServiceAccount","serviceAccountId","_this3","exports","default","moType","_x","_isServiceAccountsFeatureAvailable","_ref","debugMessage","featureAvailable","hasFeature","featureId","concat","_x2","_createServiceAccount","_ref2","payload","JSON","stringify","result","createManagedObject","getTenantURL","getHost","_x3","_getServiceAccount","_ref3","serviceAccount","getManagedObject","baseUrl","type","id","fields"],"sources":["ops/cloud/ServiceAccountOps.ts"],"sourcesContent":["import {\n createManagedObject,\n getManagedObject,\n} from '../../api/ManagedObjectApi';\nimport { JwksInterface } from '../JoseOps';\nimport { IdObjectSkeletonInterface } from '../../api/ApiTypes';\nimport { debugMessage } from '../utils/Console';\nimport { hasFeature } from './FeatureOps';\nimport { getTenantURL } from '../../api/utils/ApiUtils';\nimport State from '../../shared/State';\n\nexport default class ServiceAccountOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Check if service accounts are available\n * @returns {Promise<boolean>} true if service accounts are available, false otherwise\n */\n async isServiceAccountsFeatureAvailable(): Promise<boolean> {\n return isServiceAccountsFeatureAvailable({ state: this.state });\n }\n\n /**\n * Create service account\n * @param {string} name Human-readable name of service account\n * @param {string} description Description of service account\n * @param {'Active' | 'Inactive'} accountStatus Service account status\n * @param {string[]} scopes Scopes.\n * @param {JwksInterface} jwks Java Web Key Set\n * @returns {Promise<IdObjectSkeletonInterface>} A promise resolving to a service account object\n */\n async createServiceAccount(\n name: string,\n description: string,\n accountStatus: 'Active' | 'Inactive',\n scopes: string[],\n jwks: JwksInterface\n ): Promise<IdObjectSkeletonInterface> {\n return createServiceAccount({\n name,\n description,\n accountStatus,\n scopes,\n jwks,\n state: this.state,\n });\n }\n\n /**\n * Get service account\n * @param {string} serviceAccountId service account id\n * @returns {Promise<ServiceAccount>} a promise resolving to a service account object\n */\n async getServiceAccount(serviceAccountId: string) {\n return getServiceAccount({ serviceAccountId, state: this.state });\n }\n}\n\nconst moType = 'svcacct';\n\nexport interface ServiceAccountPayloadInterface {\n name: string;\n description: string;\n accountStatus: 'Active' | 'Inactive';\n scopes: string[];\n jwks: string;\n}\n\nexport type ServiceAccount = IdObjectSkeletonInterface &\n ServiceAccountPayloadInterface;\n\n/**\n * Check if service accounts are available\n * @returns {Promise<boolean>} true if service accounts are available, false otherwise\n */\nexport async function isServiceAccountsFeatureAvailable({\n state,\n}: {\n state: State;\n}): Promise<boolean> {\n debugMessage(`ServiceAccountOps.isServiceAccountsFeatureAvailable: start`);\n const featureAvailable = await hasFeature({\n featureId: 'service-accounts',\n state,\n });\n debugMessage(\n `ServiceAccountOps.isServiceAccountsFeatureAvailable: end, available=${featureAvailable}`\n );\n return featureAvailable;\n}\n\n/**\n * Create service account\n * @param {string} name Human-readable name of service account\n * @param {string} description Description of service account\n * @param {'Active' | 'Inactive'} accountStatus Service account status\n * @param {string[]} scopes Scopes.\n * @param {JwksInterface} jwks Java Web Key Set\n * @param {State} state library state\n * @returns {Promise<IdObjectSkeletonInterface>} A promise resolving to a service account object\n */\nexport async function createServiceAccount({\n name,\n description,\n accountStatus,\n scopes,\n jwks,\n state,\n}: {\n name: string;\n description: string;\n accountStatus: 'Active' | 'Inactive';\n scopes: string[];\n jwks: JwksInterface;\n state: State;\n}): Promise<IdObjectSkeletonInterface> {\n debugMessage(`ServiceAccountOps.createServiceAccount: start`);\n const payload: ServiceAccountPayloadInterface = {\n name,\n description,\n accountStatus,\n scopes,\n jwks: JSON.stringify(jwks),\n };\n debugMessage(`ServiceAccountOps: createServiceAccount: payload:`);\n debugMessage(payload);\n const result = await createManagedObject(\n getTenantURL(state.getHost()),\n moType,\n payload,\n state\n );\n debugMessage(`ServiceAccountOps.createServiceAccount: end`);\n return result;\n}\n\n/**\n * Get service account\n * @param {string} serviceAccountId service account id\n * @param {State} state library state\n * @returns {Promise} a promise resolving to a service account object\n */\nexport async function getServiceAccount({\n serviceAccountId,\n state,\n}: {\n serviceAccountId: string;\n state: State;\n}) {\n const serviceAccount = await getManagedObject({\n baseUrl: getTenantURL(state.getHost()),\n type: moType,\n id: serviceAccountId,\n fields: ['*'],\n state,\n });\n return serviceAccount as ServiceAccount;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ServiceAccountOps.js","names":["_ManagedObjectApi","require","_Console","_FeatureOps","_ApiUtils","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ServiceAccountOps","constructor","state","isServiceAccountsFeatureAvailable","_this","createServiceAccount","name","description","accountStatus","scopes","jwks","_this2","getServiceAccount","serviceAccountId","_this3","exports","default","moType","_x","_isServiceAccountsFeatureAvailable","_ref","debugMessage","message","featureAvailable","hasFeature","featureId","concat","_x2","_createServiceAccount","_ref2","payload","JSON","stringify","result","createManagedObject","getTenantURL","getHost","_x3","_getServiceAccount","_ref3","serviceAccount","getManagedObject","baseUrl","type","id","fields"],"sources":["ops/cloud/ServiceAccountOps.ts"],"sourcesContent":["import {\n createManagedObject,\n getManagedObject,\n} from '../../api/ManagedObjectApi';\nimport { JwksInterface } from '../JoseOps';\nimport { IdObjectSkeletonInterface } from '../../api/ApiTypes';\nimport { debugMessage } from '../utils/Console';\nimport { hasFeature } from './FeatureOps';\nimport { getTenantURL } from '../../api/utils/ApiUtils';\nimport State from '../../shared/State';\n\nexport default class ServiceAccountOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Check if service accounts are available\n * @returns {Promise<boolean>} true if service accounts are available, false otherwise\n */\n async isServiceAccountsFeatureAvailable(): Promise<boolean> {\n return isServiceAccountsFeatureAvailable({ state: this.state });\n }\n\n /**\n * Create service account\n * @param {string} name Human-readable name of service account\n * @param {string} description Description of service account\n * @param {'Active' | 'Inactive'} accountStatus Service account status\n * @param {string[]} scopes Scopes.\n * @param {JwksInterface} jwks Java Web Key Set\n * @returns {Promise<IdObjectSkeletonInterface>} A promise resolving to a service account object\n */\n async createServiceAccount(\n name: string,\n description: string,\n accountStatus: 'Active' | 'Inactive',\n scopes: string[],\n jwks: JwksInterface\n ): Promise<IdObjectSkeletonInterface> {\n return createServiceAccount({\n name,\n description,\n accountStatus,\n scopes,\n jwks,\n state: this.state,\n });\n }\n\n /**\n * Get service account\n * @param {string} serviceAccountId service account id\n * @returns {Promise<ServiceAccount>} a promise resolving to a service account object\n */\n async getServiceAccount(serviceAccountId: string) {\n return getServiceAccount({ serviceAccountId, state: this.state });\n }\n}\n\nconst moType = 'svcacct';\n\nexport interface ServiceAccountPayloadInterface {\n name: string;\n description: string;\n accountStatus: 'Active' | 'Inactive';\n scopes: string[];\n jwks: string;\n}\n\nexport type ServiceAccount = IdObjectSkeletonInterface &\n ServiceAccountPayloadInterface;\n\n/**\n * Check if service accounts are available\n * @returns {Promise<boolean>} true if service accounts are available, false otherwise\n */\nexport async function isServiceAccountsFeatureAvailable({\n state,\n}: {\n state: State;\n}): Promise<boolean> {\n debugMessage({\n message: `ServiceAccountOps.isServiceAccountsFeatureAvailable: start`,\n state,\n });\n const featureAvailable = await hasFeature({\n featureId: 'service-accounts',\n state,\n });\n debugMessage({\n message: `ServiceAccountOps.isServiceAccountsFeatureAvailable: end, available=${featureAvailable}`,\n state,\n });\n return featureAvailable;\n}\n\n/**\n * Create service account\n * @param {string} name Human-readable name of service account\n * @param {string} description Description of service account\n * @param {'Active' | 'Inactive'} accountStatus Service account status\n * @param {string[]} scopes Scopes.\n * @param {JwksInterface} jwks Java Web Key Set\n * @param {State} state library state\n * @returns {Promise<IdObjectSkeletonInterface>} A promise resolving to a service account object\n */\nexport async function createServiceAccount({\n name,\n description,\n accountStatus,\n scopes,\n jwks,\n state,\n}: {\n name: string;\n description: string;\n accountStatus: 'Active' | 'Inactive';\n scopes: string[];\n jwks: JwksInterface;\n state: State;\n}): Promise<IdObjectSkeletonInterface> {\n debugMessage({\n message: `ServiceAccountOps.createServiceAccount: start`,\n state,\n });\n const payload: ServiceAccountPayloadInterface = {\n name,\n description,\n accountStatus,\n scopes,\n jwks: JSON.stringify(jwks),\n };\n debugMessage({\n message: `ServiceAccountOps: createServiceAccount: payload:`,\n state,\n });\n debugMessage({ message: payload, state });\n const result = await createManagedObject(\n getTenantURL(state.getHost()),\n moType,\n payload,\n state\n );\n debugMessage({\n message: `ServiceAccountOps.createServiceAccount: end`,\n state,\n });\n return result;\n}\n\n/**\n * Get service account\n * @param {string} serviceAccountId service account id\n * @param {State} state library state\n * @returns {Promise} a promise resolving to a service account object\n */\nexport async function getServiceAccount({\n serviceAccountId,\n state,\n}: {\n serviceAccountId: string;\n state: State;\n}) {\n const serviceAccount = await getManagedObject({\n baseUrl: getTenantURL(state.getHost()),\n type: moType,\n id: serviceAccountId,\n fields: ['*'],\n state,\n });\n return serviceAccount as ServiceAccount;\n}\n"],"mappings":"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"}
@@ -77,7 +77,12 @@ function _checkForUpdates() {
77
77
  secrets: [],
78
78
  variables: []
79
79
  };
80
- (0, _Console.createProgressIndicator)(undefined, "Checking for updates to apply...", 'indeterminate');
80
+ (0, _Console.createProgressIndicator)({
81
+ total: undefined,
82
+ message: "Checking for updates to apply...",
83
+ type: 'indeterminate',
84
+ state
85
+ });
81
86
  try {
82
87
  updates.secrets = (yield (0, _SecretsApi.getSecrets)({
83
88
  state
@@ -86,13 +91,25 @@ function _checkForUpdates() {
86
91
  state
87
92
  })).result.filter(variable => !variable.loaded);
88
93
  } catch (error) {
89
- (0, _Console.stopProgressIndicator)("Error: ".concat(error.response.data.code, " - ").concat(error.response.data.message), 'fail');
94
+ (0, _Console.stopProgressIndicator)({
95
+ message: "Error: ".concat(error.response.data.code, " - ").concat(error.response.data.message),
96
+ status: 'fail',
97
+ state
98
+ });
90
99
  }
91
100
  var updateCount = ((_updates$secrets = updates.secrets) === null || _updates$secrets === void 0 ? void 0 : _updates$secrets.length) + ((_updates$variables = updates.variables) === null || _updates$variables === void 0 ? void 0 : _updates$variables.length) || 0;
92
101
  if (updateCount > 0) {
93
- (0, _Console.stopProgressIndicator)("".concat(updateCount, " update(s) need to be applied"), 'success');
102
+ (0, _Console.stopProgressIndicator)({
103
+ message: "".concat(updateCount, " update(s) need to be applied"),
104
+ status: 'success',
105
+ state
106
+ });
94
107
  } else {
95
- (0, _Console.stopProgressIndicator)("No updates need to be applied", 'success');
108
+ (0, _Console.stopProgressIndicator)({
109
+ message: "No updates need to be applied",
110
+ status: 'success',
111
+ state
112
+ });
96
113
  }
97
114
  return updates;
98
115
  });
@@ -108,7 +125,12 @@ function _applyUpdates() {
108
125
  timeout = 10 * 60 * 1000,
109
126
  state
110
127
  } = _ref2;
111
- (0, _Console.createProgressIndicator)(undefined, "Applying updates...", 'indeterminate');
128
+ (0, _Console.createProgressIndicator)({
129
+ total: undefined,
130
+ message: "Applying updates...",
131
+ type: 'indeterminate',
132
+ state
133
+ });
112
134
  try {
113
135
  var status = yield (0, _StartupApi.initiateRestart)({
114
136
  state
@@ -128,30 +150,52 @@ function _applyUpdates() {
128
150
  // reset errors after successful status call
129
151
  if (errors) errors = 0;
130
152
  runtime = new Date().getTime() - start;
131
- (0, _Console.updateProgressIndicator)("".concat(status, " (").concat(Math.round(runtime / 1000), "s)"));
153
+ (0, _Console.updateProgressIndicator)({
154
+ message: "".concat(status, " (").concat(Math.round(runtime / 1000), "s)"),
155
+ state
156
+ });
132
157
  } catch (error) {
133
158
  errors++;
134
159
  if (errors > maxErrors) {
135
160
  throw error;
136
161
  }
137
162
  runtime = new Date().getTime() - start;
138
- (0, _Console.updateProgressIndicator)("".concat(error.message, " - retry ").concat(errors, "/").concat(maxErrors, " (").concat(Math.round(runtime / 1000), "s)"));
163
+ (0, _Console.updateProgressIndicator)({
164
+ message: "".concat(error.message, " - retry ").concat(errors, "/").concat(maxErrors, " (").concat(Math.round(runtime / 1000), "s)"),
165
+ state
166
+ });
139
167
  }
140
168
  }
141
169
  if (runtime < timeout) {
142
- (0, _Console.stopProgressIndicator)("Updates applied in ".concat(Math.round(runtime / 1000), "s with final status: ").concat(status), 'success');
170
+ (0, _Console.stopProgressIndicator)({
171
+ message: "Updates applied in ".concat(Math.round(runtime / 1000), "s with final status: ").concat(status),
172
+ status: 'success',
173
+ state
174
+ });
143
175
  return true;
144
176
  } else {
145
- (0, _Console.stopProgressIndicator)("Updates timed out after ".concat(Math.round(runtime / 1000), "s with final status: ").concat(status), 'warn');
177
+ (0, _Console.stopProgressIndicator)({
178
+ message: "Updates timed out after ".concat(Math.round(runtime / 1000), "s with final status: ").concat(status),
179
+ status: 'warn',
180
+ state
181
+ });
146
182
  return false;
147
183
  }
148
184
  } else {
149
- (0, _Console.stopProgressIndicator)("Updates are being applied. Changes may take up to 10 minutes to propagate, during which time you will not be able to make further updates.", 'success');
185
+ (0, _Console.stopProgressIndicator)({
186
+ message: "Updates are being applied. Changes may take up to 10 minutes to propagate, during which time you will not be able to make further updates.",
187
+ status: 'success',
188
+ state
189
+ });
150
190
  return true;
151
191
  }
152
192
  } catch (error) {
153
193
  var _error$response, _error$response$data, _error$response2, _error$response2$data;
154
- (0, _Console.stopProgressIndicator)("Error: ".concat(((_error$response = error.response) === null || _error$response === void 0 ? void 0 : (_error$response$data = _error$response.data) === null || _error$response$data === void 0 ? void 0 : _error$response$data.code) || error, " - ").concat((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : (_error$response2$data = _error$response2.data) === null || _error$response2$data === void 0 ? void 0 : _error$response2$data.message), 'fail');
194
+ (0, _Console.stopProgressIndicator)({
195
+ message: "Error: ".concat(((_error$response = error.response) === null || _error$response === void 0 ? void 0 : (_error$response$data = _error$response.data) === null || _error$response$data === void 0 ? void 0 : _error$response$data.code) || error, " - ").concat((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : (_error$response2$data = _error$response2.data) === null || _error$response2$data === void 0 ? void 0 : _error$response2$data.message),
196
+ status: 'fail',
197
+ state
198
+ });
155
199
  return false;
156
200
  }
157
201
  });
@@ -1 +1 @@
1
- {"version":3,"file":"StartupOps.js","names":["_Console","require","_SecretsApi","_StartupApi","_VariablesApi","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","StartupOps","constructor","state","checkForUpdates","_this","applyUpdates","wait","_arguments","_this2","timeout","length","exports","default","_x","_checkForUpdates","_ref","_updates$secrets","_updates$variables","updates","secrets","variables","createProgressIndicator","getSecrets","result","filter","secret","loaded","getVariables","variable","stopProgressIndicator","concat","response","data","code","message","updateCount","_x2","_applyUpdates","_ref2","status","initiateRestart","start","Date","getTime","runtime","errors","maxErrors","RestartStatus","ready","setTimeout","getStatus","updateProgressIndicator","Math","round","_error$response","_error$response$data","_error$response2","_error$response2$data"],"sources":["ops/cloud/StartupOps.ts"],"sourcesContent":["import {\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from '../utils/Console';\nimport { getSecrets } from '../../api/cloud/SecretsApi';\nimport {\n getStatus,\n initiateRestart,\n RestartStatus,\n} from '../../api/cloud/StartupApi';\nimport { getVariables } from '../../api/cloud/VariablesApi';\nimport State from '../../shared/State';\n\nexport default class StartupOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Check for updates that need applying\n * @returns {Promise<Updates>} true if there are updates that need to be applied, false otherwise\n */\n async checkForUpdates(): Promise<Updates> {\n return checkForUpdates({ state: this.state });\n }\n\n /**\n * Apply updates\n * @param {boolean} wait wait for the operation to complete or not\n * @param {number} timeout timeout in milliseconds\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\n async applyUpdates(wait: boolean, timeout: number = 10 * 60 * 1000) {\n return applyUpdates({\n wait,\n timeout,\n state: this.state,\n });\n }\n}\n\n/**\n * Updates that need to be applied.\n */\nexport interface Updates {\n /**\n * Array of secrets that need applying\n */\n secrets?: unknown[];\n /**\n * Array of variables that need applying\n */\n variables?: unknown[];\n}\n\n/**\n * Check for updates that need applying\n * @returns {Promise<boolean>} true if there are updates that need to be applied, false otherwise\n */\nexport async function checkForUpdates({\n state,\n}: {\n state: State;\n}): Promise<Updates> {\n const updates: Updates = { secrets: [], variables: [] };\n createProgressIndicator(\n undefined,\n `Checking for updates to apply...`,\n 'indeterminate'\n );\n try {\n updates.secrets = (await getSecrets({ state })).result.filter(\n (secret: { loaded: unknown }) => !secret.loaded\n );\n updates.variables = (await getVariables({ state })).result.filter(\n (variable: { loaded: unknown }) => !variable.loaded\n );\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n const updateCount = updates.secrets?.length + updates.variables?.length || 0;\n if (updateCount > 0) {\n stopProgressIndicator(\n `${updateCount} update(s) need to be applied`,\n 'success'\n );\n } else {\n stopProgressIndicator(`No updates need to be applied`, 'success');\n }\n return updates;\n}\n\n/**\n * Apply updates\n * @param {boolean} wait wait for the operation to complete or not\n * @param {number} timeout timeout in milliseconds\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function applyUpdates({\n wait,\n timeout = 10 * 60 * 1000,\n state,\n}: {\n wait: boolean;\n timeout?: number;\n state: State;\n}) {\n createProgressIndicator(undefined, `Applying updates...`, 'indeterminate');\n try {\n let status = await initiateRestart({ state });\n if (wait) {\n const start = new Date().getTime();\n let runtime = 0;\n let errors = 0;\n const maxErrors = 3;\n while (\n status !== RestartStatus.ready &&\n start + timeout > new Date().getTime()\n ) {\n await new Promise((resolve) => setTimeout(resolve, 5000));\n try {\n status = await getStatus({ state });\n\n // reset errors after successful status call\n if (errors) errors = 0;\n\n runtime = new Date().getTime() - start;\n updateProgressIndicator(`${status} (${Math.round(runtime / 1000)}s)`);\n } catch (error) {\n errors++;\n if (errors > maxErrors) {\n throw error;\n }\n runtime = new Date().getTime() - start;\n updateProgressIndicator(\n `${error.message} - retry ${errors}/${maxErrors} (${Math.round(\n runtime / 1000\n )}s)`\n );\n }\n }\n if (runtime < timeout) {\n stopProgressIndicator(\n `Updates applied in ${Math.round(\n runtime / 1000\n )}s with final status: ${status}`,\n 'success'\n );\n return true;\n } else {\n stopProgressIndicator(\n `Updates timed out after ${Math.round(\n runtime / 1000\n )}s with final status: ${status}`,\n 'warn'\n );\n return false;\n }\n } else {\n stopProgressIndicator(\n `Updates are being applied. Changes may take up to 10 minutes to propagate, during which time you will not be able to make further updates.`,\n 'success'\n );\n return true;\n }\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response?.data?.code || error} - ${\n error.response?.data?.message\n }`,\n 'fail'\n );\n return false;\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAKA,IAAAG,aAAA,GAAAH,OAAA;AAA4D,SAAAI,mBAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,GAAA,EAAAC,GAAA,cAAAC,IAAA,GAAAP,GAAA,CAAAK,GAAA,EAAAC,GAAA,OAAAE,KAAA,GAAAD,IAAA,CAAAC,KAAA,WAAAC,KAAA,IAAAP,MAAA,CAAAO,KAAA,iBAAAF,IAAA,CAAAG,IAAA,IAAAT,OAAA,CAAAO,KAAA,YAAAG,OAAA,CAAAV,OAAA,CAAAO,KAAA,EAAAI,IAAA,CAAAT,KAAA,EAAAC,MAAA;AAAA,SAAAS,kBAAAC,EAAA,6BAAAC,IAAA,SAAAC,IAAA,GAAAC,SAAA,aAAAN,OAAA,WAAAV,OAAA,EAAAC,MAAA,QAAAF,GAAA,GAAAc,EAAA,CAAAI,KAAA,CAAAH,IAAA,EAAAC,IAAA,YAAAb,MAAAK,KAAA,IAAAT,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,UAAAI,KAAA,cAAAJ,OAAAe,GAAA,IAAApB,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,WAAAe,GAAA,KAAAhB,KAAA,CAAAiB,SAAA;AAG7C,MAAMC,UAAU,CAAC;EAE9BC,WAAWA,CAACC,KAAY,EAAE;IACxB,IAAI,CAACA,KAAK,GAAGA,KAAK;EACpB;;EAEA;AACF;AACA;AACA;EACQC,eAAeA,CAAA,EAAqB;IAAA,IAAAC,KAAA;IAAA,OAAAZ,iBAAA;MACxC,OAAOW,eAAe,CAAC;QAAED,KAAK,EAAEE,KAAI,CAACF;MAAM,CAAC,CAAC;IAAC;EAChD;;EAEA;AACF;AACA;AACA;AACA;AACA;EACQG,YAAYA,CAACC,IAAa,EAAoC;IAAA,IAAAC,UAAA,GAAAX,SAAA;MAAAY,MAAA;IAAA,OAAAhB,iBAAA;MAAA,IAAlCiB,OAAe,GAAAF,UAAA,CAAAG,MAAA,QAAAH,UAAA,QAAAR,SAAA,GAAAQ,UAAA,MAAG,EAAE,GAAG,EAAE,GAAG,IAAI;MAChE,OAAOF,YAAY,CAAC;QAClBC,IAAI;QACJG,OAAO;QACPP,KAAK,EAAEM,MAAI,CAACN;MACd,CAAC,CAAC;IAAC;EACL;AACF;;AAEA;AACA;AACA;AAFAS,OAAA,CAAAC,OAAA,GAAAZ,UAAA;AAcA;AACA;AACA;AACA;AAHA,SAIsBG,eAAeA,CAAAU,EAAA;EAAA,OAAAC,gBAAA,CAAAjB,KAAA,OAAAD,SAAA;AAAA;AAoCrC;AACA;AACA;AACA;AACA;AACA;AALA,SAAAkB,iBAAA;EAAAA,gBAAA,GAAAtB,iBAAA,CApCO,WAAAuB,IAAA,EAIc;IAAA,IAAAC,gBAAA,EAAAC,kBAAA;IAAA,IAJiB;MACpCf;IAGF,CAAC,GAAAa,IAAA;IACC,IAAMG,OAAgB,GAAG;MAAEC,OAAO,EAAE,EAAE;MAAEC,SAAS,EAAE;IAAG,CAAC;IACvD,IAAAC,gCAAuB,EACrBtB,SAAS,sCAET,eACF,CAAC;IACD,IAAI;MACFmB,OAAO,CAACC,OAAO,GAAG,OAAO,IAAAG,sBAAU,EAAC;QAAEpB;MAAM,CAAC,CAAC,EAAEqB,MAAM,CAACC,MAAM,CAC1DC,MAA2B,IAAK,CAACA,MAAM,CAACC,MAC3C,CAAC;MACDR,OAAO,CAACE,SAAS,GAAG,OAAO,IAAAO,0BAAY,EAAC;QAAEzB;MAAM,CAAC,CAAC,EAAEqB,MAAM,CAACC,MAAM,CAC9DI,QAA6B,IAAK,CAACA,QAAQ,CAACF,MAC/C,CAAC;IACH,CAAC,CAAC,OAAOtC,KAAK,EAAE;MACd,IAAAyC,8BAAqB,YAAAC,MAAA,CACT1C,KAAK,CAAC2C,QAAQ,CAACC,IAAI,CAACC,IAAI,SAAAH,MAAA,CAAM1C,KAAK,CAAC2C,QAAQ,CAACC,IAAI,CAACE,OAAO,GACnE,MACF,CAAC;IACH;IACA,IAAMC,WAAW,GAAG,EAAAnB,gBAAA,GAAAE,OAAO,CAACC,OAAO,cAAAH,gBAAA,uBAAfA,gBAAA,CAAiBN,MAAM,MAAAO,kBAAA,GAAGC,OAAO,CAACE,SAAS,cAAAH,kBAAA,uBAAjBA,kBAAA,CAAmBP,MAAM,KAAI,CAAC;IAC5E,IAAIyB,WAAW,GAAG,CAAC,EAAE;MACnB,IAAAN,8BAAqB,KAAAC,MAAA,CAChBK,WAAW,oCACd,SACF,CAAC;IACH,CAAC,MAAM;MACL,IAAAN,8BAAqB,mCAAkC,SAAS,CAAC;IACnE;IACA,OAAOX,OAAO;EAChB,CAAC;EAAA,OAAAJ,gBAAA,CAAAjB,KAAA,OAAAD,SAAA;AAAA;AAAA,SAQqBS,YAAYA,CAAA+B,GAAA;EAAA,OAAAC,aAAA,CAAAxC,KAAA,OAAAD,SAAA;AAAA;AAAA,SAAAyC,cAAA;EAAAA,aAAA,GAAA7C,iBAAA,CAA3B,WAAA8C,KAAA,EAQJ;IAAA,IARgC;MACjChC,IAAI;MACJG,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;MACxBP;IAKF,CAAC,GAAAoC,KAAA;IACC,IAAAjB,gCAAuB,EAACtB,SAAS,yBAAyB,eAAe,CAAC;IAC1E,IAAI;MACF,IAAIwC,MAAM,SAAS,IAAAC,2BAAe,EAAC;QAAEtC;MAAM,CAAC,CAAC;MAC7C,IAAII,IAAI,EAAE;QACR,IAAMmC,KAAK,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;QAClC,IAAIC,OAAO,GAAG,CAAC;QACf,IAAIC,MAAM,GAAG,CAAC;QACd,IAAMC,SAAS,GAAG,CAAC;QACnB,OACEP,MAAM,KAAKQ,yBAAa,CAACC,KAAK,IAC9BP,KAAK,GAAGhC,OAAO,GAAG,IAAIiC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,EACtC;UACA,MAAM,IAAIrD,OAAO,CAAEV,OAAO,IAAKqE,UAAU,CAACrE,OAAO,EAAE,IAAI,CAAC,CAAC;UACzD,IAAI;YACF2D,MAAM,SAAS,IAAAW,qBAAS,EAAC;cAAEhD;YAAM,CAAC,CAAC;;YAEnC;YACA,IAAI2C,MAAM,EAAEA,MAAM,GAAG,CAAC;YAEtBD,OAAO,GAAG,IAAIF,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,GAAGF,KAAK;YACtC,IAAAU,gCAAuB,KAAArB,MAAA,CAAIS,MAAM,QAAAT,MAAA,CAAKsB,IAAI,CAACC,KAAK,CAACT,OAAO,GAAG,IAAI,CAAC,OAAI,CAAC;UACvE,CAAC,CAAC,OAAOxD,KAAK,EAAE;YACdyD,MAAM,EAAE;YACR,IAAIA,MAAM,GAAGC,SAAS,EAAE;cACtB,MAAM1D,KAAK;YACb;YACAwD,OAAO,GAAG,IAAIF,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,GAAGF,KAAK;YACtC,IAAAU,gCAAuB,KAAArB,MAAA,CAClB1C,KAAK,CAAC8C,OAAO,eAAAJ,MAAA,CAAYe,MAAM,OAAAf,MAAA,CAAIgB,SAAS,QAAAhB,MAAA,CAAKsB,IAAI,CAACC,KAAK,CAC5DT,OAAO,GAAG,IACZ,CAAC,OACH,CAAC;UACH;QACF;QACA,IAAIA,OAAO,GAAGnC,OAAO,EAAE;UACrB,IAAAoB,8BAAqB,wBAAAC,MAAA,CACGsB,IAAI,CAACC,KAAK,CAC9BT,OAAO,GAAG,IACZ,CAAC,2BAAAd,MAAA,CAAwBS,MAAM,GAC/B,SACF,CAAC;UACD,OAAO,IAAI;QACb,CAAC,MAAM;UACL,IAAAV,8BAAqB,6BAAAC,MAAA,CACQsB,IAAI,CAACC,KAAK,CACnCT,OAAO,GAAG,IACZ,CAAC,2BAAAd,MAAA,CAAwBS,MAAM,GAC/B,MACF,CAAC;UACD,OAAO,KAAK;QACd;MACF,CAAC,MAAM;QACL,IAAAV,8BAAqB,gJAEnB,SACF,CAAC;QACD,OAAO,IAAI;MACb;IACF,CAAC,CAAC,OAAOzC,KAAK,EAAE;MAAA,IAAAkE,eAAA,EAAAC,oBAAA,EAAAC,gBAAA,EAAAC,qBAAA;MACd,IAAA5B,8BAAqB,YAAAC,MAAA,CACT,EAAAwB,eAAA,GAAAlE,KAAK,CAAC2C,QAAQ,cAAAuB,eAAA,wBAAAC,oBAAA,GAAdD,eAAA,CAAgBtB,IAAI,cAAAuB,oBAAA,uBAApBA,oBAAA,CAAsBtB,IAAI,KAAI7C,KAAK,SAAA0C,MAAA,EAAA0B,gBAAA,GAC3CpE,KAAK,CAAC2C,QAAQ,cAAAyB,gBAAA,wBAAAC,qBAAA,GAAdD,gBAAA,CAAgBxB,IAAI,cAAAyB,qBAAA,uBAApBA,qBAAA,CAAsBvB,OAAO,GAE/B,MACF,CAAC;MACD,OAAO,KAAK;IACd;EACF,CAAC;EAAA,OAAAG,aAAA,CAAAxC,KAAA,OAAAD,SAAA;AAAA"}
1
+ {"version":3,"file":"StartupOps.js","names":["_Console","require","_SecretsApi","_StartupApi","_VariablesApi","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","StartupOps","constructor","state","checkForUpdates","_this","applyUpdates","wait","_arguments","_this2","timeout","length","exports","default","_x","_checkForUpdates","_ref","_updates$secrets","_updates$variables","updates","secrets","variables","createProgressIndicator","total","message","type","getSecrets","result","filter","secret","loaded","getVariables","variable","stopProgressIndicator","concat","response","data","code","status","updateCount","_x2","_applyUpdates","_ref2","initiateRestart","start","Date","getTime","runtime","errors","maxErrors","RestartStatus","ready","setTimeout","getStatus","updateProgressIndicator","Math","round","_error$response","_error$response$data","_error$response2","_error$response2$data"],"sources":["ops/cloud/StartupOps.ts"],"sourcesContent":["import {\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from '../utils/Console';\nimport { getSecrets } from '../../api/cloud/SecretsApi';\nimport {\n getStatus,\n initiateRestart,\n RestartStatus,\n} from '../../api/cloud/StartupApi';\nimport { getVariables } from '../../api/cloud/VariablesApi';\nimport State from '../../shared/State';\n\nexport default class StartupOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Check for updates that need applying\n * @returns {Promise<Updates>} true if there are updates that need to be applied, false otherwise\n */\n async checkForUpdates(): Promise<Updates> {\n return checkForUpdates({ state: this.state });\n }\n\n /**\n * Apply updates\n * @param {boolean} wait wait for the operation to complete or not\n * @param {number} timeout timeout in milliseconds\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\n async applyUpdates(wait: boolean, timeout: number = 10 * 60 * 1000) {\n return applyUpdates({\n wait,\n timeout,\n state: this.state,\n });\n }\n}\n\n/**\n * Updates that need to be applied.\n */\nexport interface Updates {\n /**\n * Array of secrets that need applying\n */\n secrets?: unknown[];\n /**\n * Array of variables that need applying\n */\n variables?: unknown[];\n}\n\n/**\n * Check for updates that need applying\n * @returns {Promise<boolean>} true if there are updates that need to be applied, false otherwise\n */\nexport async function checkForUpdates({\n state,\n}: {\n state: State;\n}): Promise<Updates> {\n const updates: Updates = { secrets: [], variables: [] };\n createProgressIndicator({\n total: undefined,\n message: `Checking for updates to apply...`,\n type: 'indeterminate',\n state,\n });\n try {\n updates.secrets = (await getSecrets({ state })).result.filter(\n (secret: { loaded: unknown }) => !secret.loaded\n );\n updates.variables = (await getVariables({ state })).result.filter(\n (variable: { loaded: unknown }) => !variable.loaded\n );\n } catch (error) {\n stopProgressIndicator({\n message: `Error: ${error.response.data.code} - ${error.response.data.message}`,\n status: 'fail',\n state,\n });\n }\n const updateCount = updates.secrets?.length + updates.variables?.length || 0;\n if (updateCount > 0) {\n stopProgressIndicator({\n message: `${updateCount} update(s) need to be applied`,\n status: 'success',\n state,\n });\n } else {\n stopProgressIndicator({\n message: `No updates need to be applied`,\n status: 'success',\n state,\n });\n }\n return updates;\n}\n\n/**\n * Apply updates\n * @param {boolean} wait wait for the operation to complete or not\n * @param {number} timeout timeout in milliseconds\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function applyUpdates({\n wait,\n timeout = 10 * 60 * 1000,\n state,\n}: {\n wait: boolean;\n timeout?: number;\n state: State;\n}) {\n createProgressIndicator({\n total: undefined,\n message: `Applying updates...`,\n type: 'indeterminate',\n state,\n });\n try {\n let status = await initiateRestart({ state });\n if (wait) {\n const start = new Date().getTime();\n let runtime = 0;\n let errors = 0;\n const maxErrors = 3;\n while (\n status !== RestartStatus.ready &&\n start + timeout > new Date().getTime()\n ) {\n await new Promise((resolve) => setTimeout(resolve, 5000));\n try {\n status = await getStatus({ state });\n\n // reset errors after successful status call\n if (errors) errors = 0;\n\n runtime = new Date().getTime() - start;\n updateProgressIndicator({\n message: `${status} (${Math.round(runtime / 1000)}s)`,\n state,\n });\n } catch (error) {\n errors++;\n if (errors > maxErrors) {\n throw error;\n }\n runtime = new Date().getTime() - start;\n updateProgressIndicator({\n message: `${\n error.message\n } - retry ${errors}/${maxErrors} (${Math.round(runtime / 1000)}s)`,\n state,\n });\n }\n }\n if (runtime < timeout) {\n stopProgressIndicator({\n message: `Updates applied in ${Math.round(\n runtime / 1000\n )}s with final status: ${status}`,\n status: 'success',\n state,\n });\n return true;\n } else {\n stopProgressIndicator({\n message: `Updates timed out after ${Math.round(\n runtime / 1000\n )}s with final status: ${status}`,\n status: 'warn',\n state,\n });\n return false;\n }\n } else {\n stopProgressIndicator({\n message: `Updates are being applied. Changes may take up to 10 minutes to propagate, during which time you will not be able to make further updates.`,\n status: 'success',\n state,\n });\n return true;\n }\n } catch (error) {\n stopProgressIndicator({\n message: `Error: ${error.response?.data?.code || error} - ${\n error.response?.data?.message\n }`,\n status: 'fail',\n state,\n });\n return false;\n }\n}\n"],"mappings":"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"}