@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.
- package/CHANGELOG.md +5 -1
- package/cjs/api/AgentApi.js +64 -16
- package/cjs/api/AgentApi.js.map +1 -1
- package/cjs/api/ApiTypes.js +0 -55
- package/cjs/api/ApiTypes.js.map +1 -1
- package/cjs/api/BaseApi.js +21 -11
- package/cjs/api/BaseApi.js.map +1 -1
- package/cjs/api/cloud/SecretsApi.js +7 -14
- package/cjs/api/cloud/SecretsApi.js.map +1 -1
- package/cjs/api/cloud/SecretsApi.test.js.map +1 -1
- package/cjs/ops/AdminOps.js +254 -60
- package/cjs/ops/AdminOps.js.map +1 -1
- package/cjs/ops/AgentOps.js +352 -108
- package/cjs/ops/AgentOps.js.map +1 -1
- package/cjs/ops/AuthenticateOps.js +253 -60
- package/cjs/ops/AuthenticateOps.js.map +1 -1
- package/cjs/ops/CirclesOfTrustOps.js +16 -4
- package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
- package/cjs/ops/ConnectionProfileOps.js +163 -40
- package/cjs/ops/ConnectionProfileOps.js.map +1 -1
- package/cjs/ops/EmailTemplateOps.js +7 -1
- package/cjs/ops/EmailTemplateOps.js.map +1 -1
- package/cjs/ops/IdpOps.js +55 -12
- package/cjs/ops/IdpOps.js.map +1 -1
- package/cjs/ops/JourneyOps.js +645 -136
- package/cjs/ops/JourneyOps.js.map +1 -1
- package/cjs/ops/NodeOps.js +96 -24
- package/cjs/ops/NodeOps.js.map +1 -1
- package/cjs/ops/OAuth2ClientOps.js +45 -11
- package/cjs/ops/OAuth2ClientOps.js.map +1 -1
- package/cjs/ops/OpsTypes.js +0 -23
- package/cjs/ops/OpsTypes.js.map +1 -1
- package/cjs/ops/OrganizationOps.js +44 -10
- package/cjs/ops/OrganizationOps.js.map +1 -1
- package/cjs/ops/PolicyOps.js +86 -24
- package/cjs/ops/PolicyOps.js.map +1 -1
- package/cjs/ops/PolicySetOps.js +72 -18
- package/cjs/ops/PolicySetOps.js.map +1 -1
- package/cjs/ops/ResourceTypeOps.js +24 -6
- package/cjs/ops/ResourceTypeOps.js.map +1 -1
- package/cjs/ops/Saml2Ops.js +120 -33
- package/cjs/ops/Saml2Ops.js.map +1 -1
- package/cjs/ops/Saml2Ops.test.js.map +1 -1
- package/cjs/ops/ScriptOps.js +73 -17
- package/cjs/ops/ScriptOps.js.map +1 -1
- package/cjs/ops/ServiceOps.js +152 -35
- package/cjs/ops/ServiceOps.js.map +1 -1
- package/cjs/ops/ThemeOps.js +20 -5
- package/cjs/ops/ThemeOps.js.map +1 -1
- package/cjs/ops/cloud/FeatureOps.js +4 -1
- package/cjs/ops/cloud/FeatureOps.js.map +1 -1
- package/cjs/ops/cloud/SecretsOps.js.map +1 -1
- package/cjs/ops/cloud/ServiceAccountOps.js +24 -6
- package/cjs/ops/cloud/ServiceAccountOps.js.map +1 -1
- package/cjs/ops/cloud/StartupOps.js +55 -11
- package/cjs/ops/cloud/StartupOps.js.map +1 -1
- package/cjs/ops/utils/Console.js +47 -22
- package/cjs/ops/utils/Console.js.map +1 -1
- package/cjs/ops/utils/DataProtection.js +12 -5
- package/cjs/ops/utils/DataProtection.js.map +1 -1
- package/cjs/ops/utils/DataProtection.test.js.map +1 -1
- package/cjs/ops/utils/ExportImportUtils.js +15 -8
- package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
- package/cjs/ops/utils/ScriptValidationUtils.js +33 -8
- package/cjs/ops/utils/ScriptValidationUtils.js.map +1 -1
- package/cjs/ops/utils/ScriptValidationUtils.test.js.map +1 -1
- package/cjs/utils/SetupPollyForFrodoLib.js +67 -19
- package/cjs/utils/SetupPollyForFrodoLib.js.map +1 -1
- package/esm/api/AgentApi.mjs +64 -16
- package/esm/api/ApiTypes.mjs +1 -50
- package/esm/api/BaseApi.mjs +21 -11
- package/esm/api/cloud/SecretsApi.mjs +0 -5
- package/esm/api/cloud/SecretsApi.test.mjs +3 -3
- package/esm/ops/AdminOps.mjs +254 -60
- package/esm/ops/AgentOps.mjs +352 -104
- package/esm/ops/AuthenticateOps.mjs +253 -60
- package/esm/ops/CirclesOfTrustOps.mjs +16 -4
- package/esm/ops/ConnectionProfileOps.mjs +163 -40
- package/esm/ops/EmailTemplateOps.mjs +5 -0
- package/esm/ops/IdpOps.mjs +55 -12
- package/esm/ops/JourneyOps.mjs +639 -132
- package/esm/ops/NodeOps.mjs +90 -19
- package/esm/ops/OAuth2ClientOps.mjs +45 -11
- package/esm/ops/OpsTypes.mjs +1 -22
- package/esm/ops/OrganizationOps.mjs +44 -10
- package/esm/ops/PolicyOps.mjs +86 -24
- package/esm/ops/PolicySetOps.mjs +72 -18
- package/esm/ops/ResourceTypeOps.mjs +24 -6
- package/esm/ops/Saml2Ops.mjs +120 -33
- package/esm/ops/Saml2Ops.test.mjs +10 -11
- package/esm/ops/ScriptOps.mjs +73 -17
- package/esm/ops/ServiceOps.mjs +152 -35
- package/esm/ops/ThemeOps.mjs +20 -5
- package/esm/ops/cloud/FeatureOps.mjs +4 -1
- package/esm/ops/cloud/ServiceAccountOps.mjs +24 -6
- package/esm/ops/cloud/StartupOps.mjs +55 -11
- package/esm/ops/utils/Console.mjs +33 -9
- package/esm/ops/utils/DataProtection.mjs +9 -2
- package/esm/ops/utils/DataProtection.test.mjs +8 -2
- package/esm/ops/utils/ExportImportUtils.mjs +15 -8
- package/esm/ops/utils/ScriptValidationUtils.mjs +30 -8
- package/esm/ops/utils/ScriptValidationUtils.test.mjs +14 -3
- package/esm/utils/SetupPollyForFrodoLib.mjs +64 -18
- package/package.json +1 -1
- package/types/api/AgentApi.d.ts +6 -6
- package/types/api/AgentApi.d.ts.map +1 -1
- package/types/api/ApiTypes.d.ts +12 -49
- package/types/api/ApiTypes.d.ts.map +1 -1
- package/types/api/BaseApi.d.ts.map +1 -1
- package/types/api/cloud/SecretsApi.d.ts +1 -4
- package/types/api/cloud/SecretsApi.d.ts.map +1 -1
- package/types/ops/AdminOps.d.ts.map +1 -1
- package/types/ops/AgentOps.d.ts +3 -6
- package/types/ops/AgentOps.d.ts.map +1 -1
- package/types/ops/AuthenticateOps.d.ts.map +1 -1
- package/types/ops/CirclesOfTrustOps.d.ts.map +1 -1
- package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
- package/types/ops/EmailTemplateOps.d.ts +4 -0
- package/types/ops/EmailTemplateOps.d.ts.map +1 -1
- package/types/ops/IdpOps.d.ts.map +1 -1
- package/types/ops/JourneyOps.d.ts +10 -4
- package/types/ops/JourneyOps.d.ts.map +1 -1
- package/types/ops/NodeOps.d.ts +10 -4
- package/types/ops/NodeOps.d.ts.map +1 -1
- package/types/ops/OAuth2ClientOps.d.ts.map +1 -1
- package/types/ops/OpsTypes.d.ts +2 -12
- package/types/ops/OpsTypes.d.ts.map +1 -1
- package/types/ops/OrganizationOps.d.ts.map +1 -1
- package/types/ops/PolicyOps.d.ts.map +1 -1
- package/types/ops/PolicySetOps.d.ts.map +1 -1
- package/types/ops/ResourceTypeOps.d.ts.map +1 -1
- package/types/ops/Saml2Ops.d.ts.map +1 -1
- package/types/ops/ScriptOps.d.ts.map +1 -1
- package/types/ops/ServiceOps.d.ts.map +1 -1
- package/types/ops/ThemeOps.d.ts.map +1 -1
- package/types/ops/cloud/FeatureOps.d.ts.map +1 -1
- package/types/ops/cloud/SecretsOps.d.ts +1 -1
- package/types/ops/cloud/SecretsOps.d.ts.map +1 -1
- package/types/ops/cloud/ServiceAccountOps.d.ts.map +1 -1
- package/types/ops/cloud/StartupOps.d.ts.map +1 -1
- package/types/ops/utils/Console.d.ts +34 -7
- package/types/ops/utils/Console.d.ts.map +1 -1
- package/types/ops/utils/DataProtection.d.ts +5 -1
- package/types/ops/utils/DataProtection.d.ts.map +1 -1
- package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
- package/types/ops/utils/ScriptValidationUtils.d.ts +14 -4
- package/types/ops/utils/ScriptValidationUtils.d.ts.map +1 -1
- package/types/utils/SetupPollyForFrodoLib.d.ts +5 -1
- package/types/utils/SetupPollyForFrodoLib.d.ts.map +1 -1
package/cjs/ops/ThemeOps.js.map
CHANGED
|
@@ -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)(
|
|
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":";;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AAAgD,SAAAE,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;AAEjC,MAAMC,UAAU,CAAC;EAE9BC,WAAWA,CAACC,KAAY,EAAE;IACxB,IAAI,CAACA,KAAK,GAAGA,KAAK;EACpB;;EAEA;AACF;AACA;AACA;EACQC,WAAWA,CAAA,EAAgC;IAAA,IAAAC,KAAA;IAAA,OAAAZ,iBAAA;MAC/C,OAAOW,WAAW,CAAC;QAAED,KAAK,EAAEE,KAAI,CAACF;MAAM,CAAC,CAAC;IAAC;EAC5C;;EAEA;AACF;AACA;AACA;AACA;EACQG,UAAUA,CAACC,SAAiB,EAAoB;IAAA,IAAAC,MAAA;IAAA,OAAAf,iBAAA;MACpD,OAAOa,UAAU,CAAC;QAAEC,SAAS;QAAEJ,KAAK,EAAEK,MAAI,CAACL;MAAM,CAAC,CAAC;IAAC;EACtD;AACF;;AAEA;AACA;AACA;AACA;AAHAM,OAAA,CAAAC,OAAA,GAAAT,UAAA;AAAA,SAIsBG,WAAWA,CAAAO,EAAA;EAAA,OAAAC,aAAA,CAAAd,KAAA,OAAAD,SAAA;AAAA;AAgBjC;AACA;AACA;AACA;AACA;AAJA,SAAAe,cAAA;EAAAA,aAAA,GAAAnB,iBAAA,CAhBO,WAAAoB,IAAA,EAIyB;IAAA,IAJE;MAChCV;IAGF,CAAC,GAAAU,IAAA;IACC,IAAI,OAAOV,KAAK,CAACC,WAAW,CAAC,CAAC,KAAK,WAAW,EAAE,OAAOD,KAAK,CAACC,WAAW,CAAC,CAAC;IAC1E,IAAI;MACF,IAAM;QAAEU;MAAO,CAAC,SAAS,IAAAC,uBAAY,EAAC;QAAEZ;MAAM,CAAC,CAAC;MAChDA,KAAK,CAACa,WAAW,CAACC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACL,MAAM,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,OAAOzB,KAAK,EAAE;MAAA,IAAA+B,eAAA;MACd,IAAAC,qBAAY,
|
|
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';\
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
134
|
-
|
|
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)(
|
|
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
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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)(
|
|
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":"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"}
|
|
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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"}
|