@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolicySetOps.js","names":["_PolicySetApi","require","_ScriptOps","_ExportImportUtils","_Console","_ResourceTypesApi","_PolicyOps","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","PolicySetOps","constructor","state","getPolicySets","_this","getPolicySet","policySetName","_this2","createPolicySet","policySetData","_this3","updatePolicySet","_this4","deletePolicySet","_this5","exportPolicySet","_arguments","_this6","options","length","deps","prereqs","useStringArrays","exportPolicySets","_arguments2","_this7","importPolicySet","importData","_arguments3","_this8","importFirstPolicySet","_arguments4","_this9","importPolicySets","_arguments5","_this10","exports","default","createPolicySetExportTemplate","_ref","meta","getMetadata","script","policy","resourcetype","policyset","_x","_getPolicySets2","_ref2","result","_getPolicySets","exportPolicySetPrerequisites","_x2","_exportPolicySetPrerequisites","_ref3","exportData","debugMessage","concat","errors","resourceTypeUuid","resourceTypeUuids","resourceType","getResourceType","message","name","push","errorMessages","map","join","Error","exportPolicySetDependencies","_x3","_exportPolicySetDependencies","_ref4","policies","getPoliciesByPolicySet","policySetId","scripts","getScripts","policyData","scriptData","convertBase64TextToArray","_id","_x4","_exportPolicySet","_ref5","_x5","_exportPolicySets","_ref6","policySets","importPolicySetPrerequisites","_x6","_importPolicySetPrerequisites","_ref7","putResourceType","resourceTypeData","_error$response","response","data","importPolicySetDependencies","_x7","_importPolicySetDependencies","_ref8","Object","values","filter","applicationName","putPolicy","policyId","_error$response2","scriptUuids","findScriptUuids","condition","scriptUuid","putScript","scriptId","_error$response3","_x8","_importPolicySet","_ref9","imported","id","keys","_rev","_error$response4","status","_x9","_importFirstPolicySet","_ref10","_provider","_error$response5","_x10","_importPolicySets","_ref11","_error$response6"],"sources":["ops/PolicySetOps.ts"],"sourcesContent":["import {\n deletePolicySet,\n getPolicySets as _getPolicySets,\n getPolicySet,\n createPolicySet,\n updatePolicySet,\n} from '../api/PolicySetApi';\nimport { putScript } from './ScriptOps';\nimport { convertBase64TextToArray } from './utils/ExportImportUtils';\nimport { ExportMetaData } from './OpsTypes';\nimport {\n PolicySetSkeleton,\n PolicySkeleton,\n ResourceTypeSkeleton,\n ScriptSkeleton,\n} from '../api/ApiTypes';\nimport { getMetadata } from './utils/ExportImportUtils';\nimport { debugMessage } from './utils/Console';\nimport { getResourceType, putResourceType } from '../api/ResourceTypesApi';\nimport {\n findScriptUuids,\n getPoliciesByPolicySet,\n getScripts,\n putPolicy,\n} from './PolicyOps';\nimport State from '../shared/State';\n\nexport default class PolicySetOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get all policy sets\n * @returns {Promise} a promise that resolves to an array of policy set objects\n */\n async getPolicySets(): Promise<PolicySetSkeleton[]> {\n return getPolicySets({ state: this.state });\n }\n\n async getPolicySet(policySetName: string) {\n return getPolicySet({ policySetName, state: this.state });\n }\n\n async createPolicySet(policySetData: PolicySetSkeleton) {\n return createPolicySet({ policySetData, state: this.state });\n }\n\n async updatePolicySet(policySetData: PolicySetSkeleton) {\n return updatePolicySet({ policySetData, state: this.state });\n }\n\n async deletePolicySet(policySetName: string) {\n return deletePolicySet({ policySetName, state: this.state });\n }\n\n /**\n * Export policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\n async exportPolicySet(\n policySetName: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n ): Promise<PolicySetExportInterface> {\n return exportPolicySet({ policySetName, options, state: this.state });\n }\n\n /**\n * Export policy sets\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\n async exportPolicySets(\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n ): Promise<PolicySetExportInterface> {\n return exportPolicySets({ options, state: this.state });\n }\n\n /**\n * Import policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\n async importPolicySet(\n policySetName: string,\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n ) {\n return importPolicySet({\n policySetName,\n importData,\n options,\n state: this.state,\n });\n }\n\n /**\n * Import first policy set\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\n async importFirstPolicySet(\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n ) {\n return importFirstPolicySet({ importData, options, state: this.state });\n }\n\n /**\n * Import policy sets\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\n async importPolicySets(\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n ) {\n return importPolicySets({ importData, options, state: this.state });\n }\n}\n\nexport interface PolicySetExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n resourcetype: Record<string, ResourceTypeSkeleton>;\n policy: Record<string, PolicySkeleton>;\n policyset: Record<string, PolicySetSkeleton>;\n}\n\n/**\n * Application/policy set export options\n */\nexport interface PolicySetExportOptions {\n /**\n * Include any dependencies (policies, scripts, resource types).\n */\n deps: boolean;\n /**\n * Include any prerequisites (policy sets, resource types).\n */\n prereqs: boolean;\n /**\n * Use string arrays to store multi-line text in scripts.\n */\n useStringArrays: boolean;\n}\n\n/**\n * Policy set import options\n */\nexport interface PolicySetImportOptions {\n /**\n * Include any dependencies (policies, scripts, resource types).\n */\n deps: boolean;\n /**\n * Include any prerequisites (policy sets, resource types).\n */\n prereqs: boolean;\n}\n\n/**\n * Create an empty export template\n * @returns {PolicySetExportInterface} an empty export template\n */\nfunction createPolicySetExportTemplate({\n state,\n}: {\n state: State;\n}): PolicySetExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n policy: {},\n resourcetype: {},\n policyset: {},\n } as PolicySetExportInterface;\n}\n\n/**\n * Get all policy sets\n * @returns {Promise} a promise that resolves to an array of policy set objects\n */\nexport async function getPolicySets({\n state,\n}: {\n state: State;\n}): Promise<PolicySetSkeleton[]> {\n const { result } = await _getPolicySets({ state });\n return result;\n}\n\nexport { getPolicySet, createPolicySet, updatePolicySet, deletePolicySet };\n\n/**\n * Helper function to export prerequisites of a policy set\n * @param {PolicySetSkeleton} policySetData policy set object\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function exportPolicySetPrerequisites({\n policySetData,\n exportData,\n state,\n}: {\n policySetData: PolicySetSkeleton;\n exportData: PolicySetExportInterface;\n state: State;\n}) {\n debugMessage(\n `PolicySetOps.exportPolicySetPrerequisites: start [policySet=${policySetData['name']}]`\n );\n const errors = [];\n // resource types\n for (const resourceTypeUuid of policySetData.resourceTypeUuids) {\n try {\n const resourceType = await getResourceType({ resourceTypeUuid, state });\n exportData.resourcetype[resourceTypeUuid] = resourceType;\n } catch (error) {\n error.message = `Error retrieving resource type ${resourceTypeUuid} for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export dependencies error:\\n${errorMessages}`);\n }\n debugMessage(`PolicySetOps.exportPolicySetPrerequisites: end`);\n}\n\n/**\n * Helper function to export dependencies of a policy set\n * @param {PolicySetSkeleton} policySetData policy set object\n * @param {PolicySetExportOptions} options export options\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function exportPolicySetDependencies({\n policySetData,\n options,\n exportData,\n state,\n}: {\n policySetData: PolicySetSkeleton;\n options: PolicySetExportOptions;\n exportData: PolicySetExportInterface;\n state: State;\n}) {\n debugMessage(\n `PolicySetOps.exportPolicySetDependencies: start [policySet=${policySetData['name']}]`\n );\n const errors = [];\n // policies\n try {\n const policies = await getPoliciesByPolicySet({\n policySetId: policySetData.name,\n state,\n });\n for (const policy of policies) {\n exportData.policy[policy.name] = policy;\n // scripts\n try {\n const scripts = await getScripts({ policyData: policy, state });\n for (const scriptData of scripts) {\n if (options.useStringArrays) {\n scriptData.script = convertBase64TextToArray(\n scriptData.script as string\n );\n }\n exportData.script[scriptData._id] = scriptData;\n }\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error retrieving policies in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export dependencies error:\\n${errorMessages}`);\n }\n debugMessage(`PolicySetOps.exportPolicySetDependencies: end`);\n}\n\n/**\n * Export policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\nexport async function exportPolicySet({\n policySetName,\n options = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n },\n state,\n}: {\n policySetName: string;\n options?: PolicySetExportOptions;\n state: State;\n}): Promise<PolicySetExportInterface> {\n debugMessage(`PolicySetOps.exportPolicySet: start`);\n const exportData = createPolicySetExportTemplate({ state });\n const errors = [];\n try {\n const policySetData = await getPolicySet({ policySetName, state });\n exportData.policyset[policySetData.name] = policySetData;\n if (options.prereqs) {\n try {\n await exportPolicySetPrerequisites({\n policySetData,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n if (options.deps) {\n try {\n await exportPolicySetDependencies({\n policySetData,\n options,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage(`PolicySetOps.exportPolicySet: end`);\n return exportData;\n}\n\n/**\n * Export policy sets\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\nexport async function exportPolicySets({\n options = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n },\n state,\n}: {\n options: PolicySetExportOptions;\n state: State;\n}): Promise<PolicySetExportInterface> {\n debugMessage(`PolicySetOps.exportPolicySet: start`);\n const exportData = createPolicySetExportTemplate({ state });\n const errors = [];\n try {\n const policySets = await getPolicySets({ state });\n for (const policySetData of policySets) {\n exportData.policyset[policySetData.name] = policySetData;\n if (options.prereqs) {\n try {\n await exportPolicySetPrerequisites({\n policySetData,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n if (options.deps) {\n try {\n await exportPolicySetDependencies({\n policySetData,\n options,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage(`PolicySetOps.exportPolicySet: end`);\n return exportData;\n}\n\n/**\n * Helper function to import prerequisites of a policy set (resource types)\n * @param {PolicySetSkeleton} policySetData policy set data\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function importPolicySetPrerequisites({\n policySetData,\n exportData,\n state,\n}: {\n policySetData: PolicySetSkeleton;\n exportData: PolicySetExportInterface;\n state: State;\n}) {\n debugMessage(\n `PolicySetOps.importPolicySetHardDependencies: start [policySet=${policySetData['name']}]`\n );\n const errors = [];\n try {\n // resource types\n for (const resourceTypeUuid of policySetData.resourceTypeUuids) {\n if (exportData.resourcetype[resourceTypeUuid]) {\n try {\n debugMessage(`Importing resource type ${resourceTypeUuid}`);\n await putResourceType({\n resourceTypeUuid,\n resourceTypeData: exportData.resourcetype[resourceTypeUuid],\n state,\n });\n } catch (error) {\n debugMessage(error.response?.data);\n errors.push(error);\n }\n } else {\n errors.push(\n new Error(\n `No resource type definition with id ${resourceTypeUuid} found in import data.`\n )\n );\n }\n }\n } catch (error) {\n error.message = `Error importing hard dependencies for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import hard dependencies error:\\n${errorMessages}`);\n }\n debugMessage(`PolicySetOps.importPolicySetHardDependencies: end`);\n}\n\n/**\n * Helper function to import dependencies of a policy set (policies and scripts)\n * @param {PolicySetSkeleton} policySetData policy set data\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function importPolicySetDependencies({\n policySetData,\n exportData,\n state,\n}: {\n policySetData: PolicySetSkeleton;\n exportData: PolicySetExportInterface;\n state: State;\n}) {\n debugMessage(\n `PolicySetOps.importPolicySetSoftDependencies: start [policySet=${policySetData['name']}]`\n );\n const errors = [];\n try {\n // policies\n try {\n const policies = Object.values(exportData.policy).filter(\n (policy) => policy.applicationName === policySetData.name\n );\n for (const policyData of policies) {\n try {\n debugMessage(`Importing policy ${policyData._id}`);\n await putPolicy({ policyId: policyData._id, policyData, state });\n } catch (error) {\n debugMessage(error.response?.data);\n error.message = `Error importing policy ${policyData._id} in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n // scripts\n const scriptUuids = findScriptUuids(policyData.condition);\n for (const scriptUuid of scriptUuids) {\n try {\n const scriptData = exportData.script[scriptUuid];\n debugMessage(`Importing script ${scriptUuid}`);\n await putScript({ scriptId: scriptUuid, scriptData, state });\n } catch (error) {\n debugMessage(error.response?.data);\n error.message = `Error importing script ${scriptUuid} for policy ${policyData._id} in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n }\n }\n } catch (error) {\n error.message = `Error importing policies in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n } catch (error) {\n error.message = `Error importing soft dependencies for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import soft dependencies error:\\n${errorMessages}`);\n }\n debugMessage(`PolicySetOps.importPolicySetSoftDependencies: end`);\n}\n\n/**\n * Import policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importPolicySet({\n policySetName,\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n policySetName: string;\n importData: PolicySetExportInterface;\n options?: PolicySetImportOptions;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n if (id === policySetName) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._rev;\n if (options.prereqs) {\n try {\n await importPolicySetPrerequisites({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet({ policySetData, state });\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet({ policySetData, state });\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetDependencies({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(\n `Import error:\\n${policySetName} not found in import data!`\n );\n }\n return response;\n}\n\n/**\n * Import first policy set\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importFirstPolicySet({\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n importData: PolicySetExportInterface;\n options?: PolicySetImportOptions;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._provider;\n delete policySetData._rev;\n if (options.prereqs) {\n try {\n await importPolicySetPrerequisites({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet({ policySetData, state });\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet({ policySetData, state });\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetDependencies({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n break;\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo policy sets found in import data!`);\n }\n return response;\n}\n\n/**\n * Import policy sets\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importPolicySets({\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n importData: PolicySetExportInterface;\n options?: PolicySetImportOptions;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._rev;\n if (options.prereqs) {\n try {\n await importPolicySetPrerequisites({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet({ policySetData, state });\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet({ policySetData, state });\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetDependencies({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo policy sets found in import data!`);\n }\n return response;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PolicySetOps.js","names":["_PolicySetApi","require","_ScriptOps","_ExportImportUtils","_Console","_ResourceTypesApi","_PolicyOps","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","PolicySetOps","constructor","state","getPolicySets","_this","getPolicySet","policySetName","_this2","createPolicySet","policySetData","_this3","updatePolicySet","_this4","deletePolicySet","_this5","exportPolicySet","_arguments","_this6","options","length","deps","prereqs","useStringArrays","exportPolicySets","_arguments2","_this7","importPolicySet","importData","_arguments3","_this8","importFirstPolicySet","_arguments4","_this9","importPolicySets","_arguments5","_this10","exports","default","createPolicySetExportTemplate","_ref","meta","getMetadata","script","policy","resourcetype","policyset","_x","_getPolicySets2","_ref2","result","_getPolicySets","exportPolicySetPrerequisites","_x2","_exportPolicySetPrerequisites","_ref3","exportData","debugMessage","message","concat","errors","resourceTypeUuid","resourceTypeUuids","resourceType","getResourceType","name","push","errorMessages","map","join","Error","exportPolicySetDependencies","_x3","_exportPolicySetDependencies","_ref4","policies","getPoliciesByPolicySet","policySetId","scripts","getScripts","policyData","scriptData","convertBase64TextToArray","_id","_x4","_exportPolicySet","_ref5","_x5","_exportPolicySets","_ref6","policySets","importPolicySetPrerequisites","_x6","_importPolicySetPrerequisites","_ref7","putResourceType","resourceTypeData","_error$response","response","data","importPolicySetDependencies","_x7","_importPolicySetDependencies","_ref8","Object","values","filter","applicationName","putPolicy","policyId","_error$response2","scriptUuids","findScriptUuids","condition","scriptUuid","putScript","scriptId","_error$response3","_x8","_importPolicySet","_ref9","imported","id","keys","_rev","_error$response4","status","_x9","_importFirstPolicySet","_ref10","_provider","_error$response5","_x10","_importPolicySets","_ref11","_error$response6"],"sources":["ops/PolicySetOps.ts"],"sourcesContent":["import {\n deletePolicySet,\n getPolicySets as _getPolicySets,\n getPolicySet,\n createPolicySet,\n updatePolicySet,\n} from '../api/PolicySetApi';\nimport { putScript } from './ScriptOps';\nimport { convertBase64TextToArray } from './utils/ExportImportUtils';\nimport { ExportMetaData } from './OpsTypes';\nimport {\n PolicySetSkeleton,\n PolicySkeleton,\n ResourceTypeSkeleton,\n ScriptSkeleton,\n} from '../api/ApiTypes';\nimport { getMetadata } from './utils/ExportImportUtils';\nimport { debugMessage } from './utils/Console';\nimport { getResourceType, putResourceType } from '../api/ResourceTypesApi';\nimport {\n findScriptUuids,\n getPoliciesByPolicySet,\n getScripts,\n putPolicy,\n} from './PolicyOps';\nimport State from '../shared/State';\n\nexport default class PolicySetOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get all policy sets\n * @returns {Promise} a promise that resolves to an array of policy set objects\n */\n async getPolicySets(): Promise<PolicySetSkeleton[]> {\n return getPolicySets({ state: this.state });\n }\n\n async getPolicySet(policySetName: string) {\n return getPolicySet({ policySetName, state: this.state });\n }\n\n async createPolicySet(policySetData: PolicySetSkeleton) {\n return createPolicySet({ policySetData, state: this.state });\n }\n\n async updatePolicySet(policySetData: PolicySetSkeleton) {\n return updatePolicySet({ policySetData, state: this.state });\n }\n\n async deletePolicySet(policySetName: string) {\n return deletePolicySet({ policySetName, state: this.state });\n }\n\n /**\n * Export policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\n async exportPolicySet(\n policySetName: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n ): Promise<PolicySetExportInterface> {\n return exportPolicySet({ policySetName, options, state: this.state });\n }\n\n /**\n * Export policy sets\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\n async exportPolicySets(\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n ): Promise<PolicySetExportInterface> {\n return exportPolicySets({ options, state: this.state });\n }\n\n /**\n * Import policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\n async importPolicySet(\n policySetName: string,\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n ) {\n return importPolicySet({\n policySetName,\n importData,\n options,\n state: this.state,\n });\n }\n\n /**\n * Import first policy set\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\n async importFirstPolicySet(\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n ) {\n return importFirstPolicySet({ importData, options, state: this.state });\n }\n\n /**\n * Import policy sets\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\n async importPolicySets(\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n ) {\n return importPolicySets({ importData, options, state: this.state });\n }\n}\n\nexport interface PolicySetExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n resourcetype: Record<string, ResourceTypeSkeleton>;\n policy: Record<string, PolicySkeleton>;\n policyset: Record<string, PolicySetSkeleton>;\n}\n\n/**\n * Application/policy set export options\n */\nexport interface PolicySetExportOptions {\n /**\n * Include any dependencies (policies, scripts, resource types).\n */\n deps: boolean;\n /**\n * Include any prerequisites (policy sets, resource types).\n */\n prereqs: boolean;\n /**\n * Use string arrays to store multi-line text in scripts.\n */\n useStringArrays: boolean;\n}\n\n/**\n * Policy set import options\n */\nexport interface PolicySetImportOptions {\n /**\n * Include any dependencies (policies, scripts, resource types).\n */\n deps: boolean;\n /**\n * Include any prerequisites (policy sets, resource types).\n */\n prereqs: boolean;\n}\n\n/**\n * Create an empty export template\n * @returns {PolicySetExportInterface} an empty export template\n */\nfunction createPolicySetExportTemplate({\n state,\n}: {\n state: State;\n}): PolicySetExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n policy: {},\n resourcetype: {},\n policyset: {},\n } as PolicySetExportInterface;\n}\n\n/**\n * Get all policy sets\n * @returns {Promise} a promise that resolves to an array of policy set objects\n */\nexport async function getPolicySets({\n state,\n}: {\n state: State;\n}): Promise<PolicySetSkeleton[]> {\n const { result } = await _getPolicySets({ state });\n return result;\n}\n\nexport { getPolicySet, createPolicySet, updatePolicySet, deletePolicySet };\n\n/**\n * Helper function to export prerequisites of a policy set\n * @param {PolicySetSkeleton} policySetData policy set object\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function exportPolicySetPrerequisites({\n policySetData,\n exportData,\n state,\n}: {\n policySetData: PolicySetSkeleton;\n exportData: PolicySetExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicySetOps.exportPolicySetPrerequisites: start [policySet=${policySetData['name']}]`,\n state,\n });\n const errors = [];\n // resource types\n for (const resourceTypeUuid of policySetData.resourceTypeUuids) {\n try {\n const resourceType = await getResourceType({ resourceTypeUuid, state });\n exportData.resourcetype[resourceTypeUuid] = resourceType;\n } catch (error) {\n error.message = `Error retrieving resource type ${resourceTypeUuid} for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export dependencies error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `PolicySetOps.exportPolicySetPrerequisites: end`,\n state,\n });\n}\n\n/**\n * Helper function to export dependencies of a policy set\n * @param {PolicySetSkeleton} policySetData policy set object\n * @param {PolicySetExportOptions} options export options\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function exportPolicySetDependencies({\n policySetData,\n options,\n exportData,\n state,\n}: {\n policySetData: PolicySetSkeleton;\n options: PolicySetExportOptions;\n exportData: PolicySetExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicySetOps.exportPolicySetDependencies: start [policySet=${policySetData['name']}]`,\n state,\n });\n const errors = [];\n // policies\n try {\n const policies = await getPoliciesByPolicySet({\n policySetId: policySetData.name,\n state,\n });\n for (const policy of policies) {\n exportData.policy[policy.name] = policy;\n // scripts\n try {\n const scripts = await getScripts({ policyData: policy, state });\n for (const scriptData of scripts) {\n if (options.useStringArrays) {\n scriptData.script = convertBase64TextToArray(\n scriptData.script as string\n );\n }\n exportData.script[scriptData._id] = scriptData;\n }\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error retrieving policies in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export dependencies error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `PolicySetOps.exportPolicySetDependencies: end`,\n state,\n });\n}\n\n/**\n * Export policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\nexport async function exportPolicySet({\n policySetName,\n options = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n },\n state,\n}: {\n policySetName: string;\n options?: PolicySetExportOptions;\n state: State;\n}): Promise<PolicySetExportInterface> {\n debugMessage({ message: `PolicySetOps.exportPolicySet: start`, state });\n const exportData = createPolicySetExportTemplate({ state });\n const errors = [];\n try {\n const policySetData = await getPolicySet({ policySetName, state });\n exportData.policyset[policySetData.name] = policySetData;\n if (options.prereqs) {\n try {\n await exportPolicySetPrerequisites({\n policySetData,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n if (options.deps) {\n try {\n await exportPolicySetDependencies({\n policySetData,\n options,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `PolicySetOps.exportPolicySet: end`, state });\n return exportData;\n}\n\n/**\n * Export policy sets\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\nexport async function exportPolicySets({\n options = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n },\n state,\n}: {\n options: PolicySetExportOptions;\n state: State;\n}): Promise<PolicySetExportInterface> {\n debugMessage({ message: `PolicySetOps.exportPolicySet: start`, state });\n const exportData = createPolicySetExportTemplate({ state });\n const errors = [];\n try {\n const policySets = await getPolicySets({ state });\n for (const policySetData of policySets) {\n exportData.policyset[policySetData.name] = policySetData;\n if (options.prereqs) {\n try {\n await exportPolicySetPrerequisites({\n policySetData,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n if (options.deps) {\n try {\n await exportPolicySetDependencies({\n policySetData,\n options,\n exportData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `PolicySetOps.exportPolicySet: end`, state });\n return exportData;\n}\n\n/**\n * Helper function to import prerequisites of a policy set (resource types)\n * @param {PolicySetSkeleton} policySetData policy set data\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function importPolicySetPrerequisites({\n policySetData,\n exportData,\n state,\n}: {\n policySetData: PolicySetSkeleton;\n exportData: PolicySetExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicySetOps.importPolicySetHardDependencies: start [policySet=${policySetData['name']}]`,\n state,\n });\n const errors = [];\n try {\n // resource types\n for (const resourceTypeUuid of policySetData.resourceTypeUuids) {\n if (exportData.resourcetype[resourceTypeUuid]) {\n try {\n debugMessage({\n message: `Importing resource type ${resourceTypeUuid}`,\n state,\n });\n await putResourceType({\n resourceTypeUuid,\n resourceTypeData: exportData.resourcetype[resourceTypeUuid],\n state,\n });\n } catch (error) {\n debugMessage({ message: error.response?.data, state });\n errors.push(error);\n }\n } else {\n errors.push(\n new Error(\n `No resource type definition with id ${resourceTypeUuid} found in import data.`\n )\n );\n }\n }\n } catch (error) {\n error.message = `Error importing hard dependencies for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import hard dependencies error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `PolicySetOps.importPolicySetHardDependencies: end`,\n state,\n });\n}\n\n/**\n * Helper function to import dependencies of a policy set (policies and scripts)\n * @param {PolicySetSkeleton} policySetData policy set data\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function importPolicySetDependencies({\n policySetData,\n exportData,\n state,\n}: {\n policySetData: PolicySetSkeleton;\n exportData: PolicySetExportInterface;\n state: State;\n}) {\n debugMessage({\n message: `PolicySetOps.importPolicySetSoftDependencies: start [policySet=${policySetData['name']}]`,\n state,\n });\n const errors = [];\n try {\n // policies\n try {\n const policies = Object.values(exportData.policy).filter(\n (policy) => policy.applicationName === policySetData.name\n );\n for (const policyData of policies) {\n try {\n debugMessage({\n message: `Importing policy ${policyData._id}`,\n state,\n });\n await putPolicy({ policyId: policyData._id, policyData, state });\n } catch (error) {\n debugMessage({ message: error.response?.data, state });\n error.message = `Error importing policy ${policyData._id} in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n // scripts\n const scriptUuids = findScriptUuids(policyData.condition);\n for (const scriptUuid of scriptUuids) {\n try {\n const scriptData = exportData.script[scriptUuid];\n debugMessage({ message: `Importing script ${scriptUuid}`, state });\n await putScript({ scriptId: scriptUuid, scriptData, state });\n } catch (error) {\n debugMessage({ message: error.response?.data, state });\n error.message = `Error importing script ${scriptUuid} for policy ${policyData._id} in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n }\n }\n } catch (error) {\n error.message = `Error importing policies in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n } catch (error) {\n error.message = `Error importing soft dependencies for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import soft dependencies error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `PolicySetOps.importPolicySetSoftDependencies: end`,\n state,\n });\n}\n\n/**\n * Import policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importPolicySet({\n policySetName,\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n policySetName: string;\n importData: PolicySetExportInterface;\n options?: PolicySetImportOptions;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n if (id === policySetName) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._rev;\n if (options.prereqs) {\n try {\n await importPolicySetPrerequisites({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet({ policySetData, state });\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet({ policySetData, state });\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetDependencies({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(\n `Import error:\\n${policySetName} not found in import data!`\n );\n }\n return response;\n}\n\n/**\n * Import first policy set\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importFirstPolicySet({\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n importData: PolicySetExportInterface;\n options?: PolicySetImportOptions;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._provider;\n delete policySetData._rev;\n if (options.prereqs) {\n try {\n await importPolicySetPrerequisites({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet({ policySetData, state });\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet({ policySetData, state });\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetDependencies({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n break;\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo policy sets found in import data!`);\n }\n return response;\n}\n\n/**\n * Import policy sets\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importPolicySets({\n importData,\n options = { deps: true, prereqs: false },\n state,\n}: {\n importData: PolicySetExportInterface;\n options?: PolicySetImportOptions;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._rev;\n if (options.prereqs) {\n try {\n await importPolicySetPrerequisites({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet({ policySetData, state });\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet({ policySetData, state });\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetDependencies({\n policySetData,\n exportData: importData,\n state,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo policy sets found in import data!`);\n }\n return response;\n}\n"],"mappings":"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"}
|
|
@@ -365,7 +365,10 @@ function _exportResourceType() {
|
|
|
365
365
|
resourceTypeUuid,
|
|
366
366
|
state
|
|
367
367
|
} = _ref6;
|
|
368
|
-
(0, _Console.debugMessage)(
|
|
368
|
+
(0, _Console.debugMessage)({
|
|
369
|
+
message: "ResourceTypeOps.exportResourceType: start",
|
|
370
|
+
state
|
|
371
|
+
});
|
|
369
372
|
var exportData = createResourceTypeExportTemplate({
|
|
370
373
|
state
|
|
371
374
|
});
|
|
@@ -391,7 +394,10 @@ function _exportResourceType() {
|
|
|
391
394
|
}).join('\n');
|
|
392
395
|
throw new Error("Export error:\n".concat(errorMessages));
|
|
393
396
|
}
|
|
394
|
-
(0, _Console.debugMessage)(
|
|
397
|
+
(0, _Console.debugMessage)({
|
|
398
|
+
message: "ResourceTypeOps.exportResourceType: end",
|
|
399
|
+
state
|
|
400
|
+
});
|
|
395
401
|
return exportData;
|
|
396
402
|
});
|
|
397
403
|
return _exportResourceType.apply(this, arguments);
|
|
@@ -409,7 +415,10 @@ function _exportResourceTypeByName() {
|
|
|
409
415
|
resourceTypeName,
|
|
410
416
|
state
|
|
411
417
|
} = _ref7;
|
|
412
|
-
(0, _Console.debugMessage)(
|
|
418
|
+
(0, _Console.debugMessage)({
|
|
419
|
+
message: "ResourceTypeOps.exportResourceTypeByName: start",
|
|
420
|
+
state
|
|
421
|
+
});
|
|
413
422
|
var exportData = createResourceTypeExportTemplate({
|
|
414
423
|
state
|
|
415
424
|
});
|
|
@@ -427,7 +436,10 @@ function _exportResourceTypeByName() {
|
|
|
427
436
|
var errorMessages = errors.map(error => error.message).join('\n');
|
|
428
437
|
throw new Error("Export error:\n".concat(errorMessages));
|
|
429
438
|
}
|
|
430
|
-
(0, _Console.debugMessage)(
|
|
439
|
+
(0, _Console.debugMessage)({
|
|
440
|
+
message: "ResourceTypeOps.exportResourceTypeByName: end",
|
|
441
|
+
state
|
|
442
|
+
});
|
|
431
443
|
return exportData;
|
|
432
444
|
});
|
|
433
445
|
return _exportResourceTypeByName.apply(this, arguments);
|
|
@@ -445,7 +457,10 @@ function _exportResourceTypes() {
|
|
|
445
457
|
var {
|
|
446
458
|
state
|
|
447
459
|
} = _ref8;
|
|
448
|
-
(0, _Console.debugMessage)(
|
|
460
|
+
(0, _Console.debugMessage)({
|
|
461
|
+
message: "ResourceTypeOps.exportResourceType: start",
|
|
462
|
+
state
|
|
463
|
+
});
|
|
449
464
|
var exportData = createResourceTypeExportTemplate({
|
|
450
465
|
state
|
|
451
466
|
});
|
|
@@ -464,7 +479,10 @@ function _exportResourceTypes() {
|
|
|
464
479
|
var errorMessages = errors.map(error => error.message).join('\n');
|
|
465
480
|
throw new Error("Export error:\n".concat(errorMessages));
|
|
466
481
|
}
|
|
467
|
-
(0, _Console.debugMessage)(
|
|
482
|
+
(0, _Console.debugMessage)({
|
|
483
|
+
message: "ResourceTypeOps.exportResourceType: end",
|
|
484
|
+
state
|
|
485
|
+
});
|
|
468
486
|
return exportData;
|
|
469
487
|
});
|
|
470
488
|
return _exportResourceTypes.apply(this, arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceTypeOps.js","names":["_ResourceTypesApi","require","_ExportImportUtils","_Console","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ResourceTypeOps","constructor","state","getResourceType","resourceTypeUuid","_this","getResourceTypes","_this2","result","_getResourceTypes","getResourceTypeByName","resourceTypeName","_this3","updateResourceType","resourceTypeData","_this4","deleteResourceType","_this5","deleteResourceTypeByName","_this6","exportResourceType","_this7","exportResourceTypeByName","_this8","exportResourceTypes","_this9","importResourceType","importData","_this10","importResourceTypeByName","_this11","importFirstResourceType","_this12","importResourceTypes","_this13","exports","default","createResourceTypeExportTemplate","_ref","meta","getMetadata","script","policy","policyset","resourcetype","_x","_getResourceTypes2","_ref2","_x2","_getResourceTypeByName2","_ref3","_getResourceTypeByName","length","Error","concat","getRealm","_x3","_updateResourceType","_ref4","putResourceType","_x4","_deleteResourceTypeByName","_ref5","uuid","_x5","_exportResourceType","_ref6","debugMessage","exportData","errors","push","errorMessages","map","_error$response","response","status","_error$response2","_error$response2$data","data","message","join","_x6","_exportResourceTypeByName","_ref7","_x7","_exportResourceTypes","_ref8","resourceTypes","_x8","_importResourceType","_ref9","imported","id","Object","keys","_rev","createResourceType","createError","_createError$response","_error$response3","_error$response3$data","_x9","_importResourceTypeByName","_ref10","name","_createError$response2","_error$response4","_error$response4$data","_x10","_importFirstResourceType","_ref11","_provider","_createError$response3","_error$response5","_error$response5$data","_x11","_importResourceTypes","_ref12","_createError$response4","_error$response6","_error$response6$data"],"sources":["ops/ResourceTypeOps.ts"],"sourcesContent":["import {\n deleteResourceType,\n getResourceTypes as _getResourceTypes,\n getResourceType,\n getResourceTypeByName as _getResourceTypeByName,\n createResourceType,\n putResourceType,\n} from '../api/ResourceTypesApi';\nimport { ExportMetaData } from './OpsTypes';\nimport { ResourceTypeSkeleton } from '../api/ApiTypes';\nimport { getMetadata } from './utils/ExportImportUtils';\nimport { debugMessage } from './utils/Console';\nimport State from '../shared/State';\n\nexport default class ResourceTypeOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n async getResourceType(resourceTypeUuid: string) {\n return getResourceType({ resourceTypeUuid, state: this.state });\n }\n\n /**\n * Get all resource types\n * @returns {Promise} a promise that resolves to an array of resource type objects\n */\n async getResourceTypes(): Promise<ResourceTypeSkeleton[]> {\n const { result } = await _getResourceTypes({ state: this.state });\n return result;\n }\n\n /**\n * Get resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\n async getResourceTypeByName(\n resourceTypeName: string\n ): Promise<ResourceTypeSkeleton> {\n return getResourceTypeByName({ resourceTypeName, state: this.state });\n }\n\n /**\n * Update resource type\n * @param {string} resourceTypeData resource type id\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\n async updateResourceType(\n resourceTypeUuid: string,\n resourceTypeData: ResourceTypeSkeleton\n ): Promise<ResourceTypeSkeleton> {\n return updateResourceType({\n resourceTypeUuid,\n resourceTypeData,\n state: this.state,\n });\n }\n\n async deleteResourceType(resourceTypeUuid: string) {\n return deleteResourceType({ resourceTypeUuid, state: this.state });\n }\n\n /**\n * Delete resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} Promise resolvig to a resource type object\n */\n async deleteResourceTypeByName(\n resourceTypeName: string\n ): Promise<ResourceTypeSkeleton> {\n return deleteResourceTypeByName({ resourceTypeName, state: this.state });\n }\n\n /**\n * Export resource type\n * @param {string} resourceTypeUuid resource type uuid\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\n async exportResourceType(\n resourceTypeUuid: string\n ): Promise<ResourceTypeExportInterface> {\n return exportResourceType({ resourceTypeUuid, state: this.state });\n }\n\n /**\n * Export resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\n async exportResourceTypeByName(\n resourceTypeName: string\n ): Promise<ResourceTypeExportInterface> {\n return exportResourceTypeByName({ resourceTypeName, state: this.state });\n }\n\n /**\n * Export resource types\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\n async exportResourceTypes(): Promise<ResourceTypeExportInterface> {\n return exportResourceTypes({ state: this.state });\n }\n\n /**\n * Import resource type by uuid\n * @param {string} resourceTypeUuid client uuid\n * @param {ResourceTypeExportInterface} importData import data\n */\n async importResourceType(\n resourceTypeUuid: string,\n importData: ResourceTypeExportInterface\n ) {\n return importResourceType({\n resourceTypeUuid,\n importData,\n state: this.state,\n });\n }\n\n /**\n * Import resource type by name\n * @param {string} resourceTypeName client id\n * @param {ResourceTypeExportInterface} importData import data\n */\n async importResourceTypeByName(\n resourceTypeName: string,\n importData: ResourceTypeExportInterface\n ) {\n return importResourceTypeByName({\n resourceTypeName,\n importData,\n state: this.state,\n });\n }\n\n /**\n * Import first resource type\n * @param {ResourceTypeExportInterface} importData import data\n */\n async importFirstResourceType(importData: ResourceTypeExportInterface) {\n return importFirstResourceType({ importData, state: this.state });\n }\n\n /**\n * Import resource types\n * @param {ResourceTypeExportInterface} importData import data\n */\n async importResourceTypes(importData: ResourceTypeExportInterface) {\n return importResourceTypes({ importData, state: this.state });\n }\n}\n\nexport interface ResourceTypeExportInterface {\n meta?: ExportMetaData;\n resourcetype: Record<string, ResourceTypeSkeleton>;\n}\n\n/**\n * Create an empty export template\n * @returns {ResourceTypeExportInterface} an empty export template\n */\nfunction createResourceTypeExportTemplate({\n state,\n}: {\n state: State;\n}): ResourceTypeExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n policy: {},\n policyset: {},\n resourcetype: {},\n } as ResourceTypeExportInterface;\n}\n\n/**\n * Get all resource types\n * @returns {Promise} a promise that resolves to an array of resource type objects\n */\nexport async function getResourceTypes({\n state,\n}: {\n state: State;\n}): Promise<ResourceTypeSkeleton[]> {\n const { result } = await _getResourceTypes({ state });\n return result;\n}\n\n/**\n * Get resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\nexport async function getResourceTypeByName({\n resourceTypeName,\n state,\n}: {\n resourceTypeName: string;\n state: State;\n}): Promise<ResourceTypeSkeleton> {\n const { result } = await _getResourceTypeByName({ resourceTypeName, state });\n switch (result.length) {\n case 1:\n return result[0];\n case 0:\n throw new Error(\n `Resource Type with name ${resourceTypeName} does not exist in realm ${state.getRealm()}`\n );\n default:\n throw new Error(\n `${result.length} resource types '${resourceTypeName}' found`\n );\n }\n}\n\n/**\n * Update resource type\n * @param {string} resourceTypeData resource type id\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\nexport async function updateResourceType({\n resourceTypeUuid,\n resourceTypeData,\n state,\n}: {\n resourceTypeUuid: string;\n resourceTypeData: ResourceTypeSkeleton;\n state: State;\n}): Promise<ResourceTypeSkeleton> {\n return putResourceType({ resourceTypeUuid, resourceTypeData, state });\n}\n\n/**\n * Delete resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} Promise resolvig to a resource type object\n */\nexport async function deleteResourceTypeByName({\n resourceTypeName,\n state,\n}: {\n resourceTypeName: string;\n state: State;\n}): Promise<ResourceTypeSkeleton> {\n const resourceTypeUuid = (\n await getResourceTypeByName({ resourceTypeName, state })\n ).uuid;\n return deleteResourceType({ resourceTypeUuid, state });\n}\n\n/**\n * Export resource type\n * @param {string} resourceTypeUuid resource type uuid\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\nexport async function exportResourceType({\n resourceTypeUuid,\n state,\n}: {\n resourceTypeUuid: string;\n state: State;\n}): Promise<ResourceTypeExportInterface> {\n debugMessage(`ResourceTypeOps.exportResourceType: start`);\n const exportData = createResourceTypeExportTemplate({ state });\n const errors = [];\n try {\n const resourceTypeData = await getResourceType({\n resourceTypeUuid,\n state,\n });\n exportData.resourcetype[resourceTypeData.uuid] = resourceTypeData;\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => {\n if (error.response?.status === 404) {\n return `Resource Type with uuid ${resourceTypeUuid} does not exist in realm ${state.getRealm()}`;\n } else {\n return error.response?.data?.message || error.message;\n }\n })\n .join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage(`ResourceTypeOps.exportResourceType: end`);\n return exportData;\n}\n\n/**\n * Export resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\nexport async function exportResourceTypeByName({\n resourceTypeName,\n state,\n}: {\n resourceTypeName: string;\n state: State;\n}): Promise<ResourceTypeExportInterface> {\n debugMessage(`ResourceTypeOps.exportResourceTypeByName: start`);\n const exportData = createResourceTypeExportTemplate({ state });\n const errors = [];\n try {\n const resourceTypeData = await getResourceTypeByName({\n resourceTypeName,\n state,\n });\n exportData.resourcetype[resourceTypeData.uuid] = resourceTypeData;\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage(`ResourceTypeOps.exportResourceTypeByName: end`);\n return exportData;\n}\n\n/**\n * Export resource types\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\nexport async function exportResourceTypes({\n state,\n}: {\n state: State;\n}): Promise<ResourceTypeExportInterface> {\n debugMessage(`ResourceTypeOps.exportResourceType: start`);\n const exportData = createResourceTypeExportTemplate({ state });\n const errors = [];\n try {\n const resourceTypes = await getResourceTypes({ state });\n for (const resourceTypeData of resourceTypes) {\n exportData.resourcetype[resourceTypeData.uuid] = resourceTypeData;\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage(`ResourceTypeOps.exportResourceType: end`);\n return exportData;\n}\n\n/**\n * Import resource type by uuid\n * @param {string} resourceTypeUuid client uuid\n * @param {ResourceTypeExportInterface} importData import data\n */\nexport async function importResourceType({\n resourceTypeUuid,\n importData,\n state,\n}: {\n resourceTypeUuid: string;\n importData: ResourceTypeExportInterface;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.resourcetype)) {\n if (id === resourceTypeUuid) {\n try {\n const resourceTypeData = importData.resourcetype[id];\n delete resourceTypeData._rev;\n try {\n response = await createResourceType({ resourceTypeData, state });\n } catch (createError) {\n if (createError.response?.status === 409)\n response = await putResourceType({\n resourceTypeUuid: id,\n resourceTypeData,\n state,\n });\n else throw createError;\n }\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(\n `Import error:\\n${resourceTypeUuid} not found in import data!`\n );\n }\n return response;\n}\n\n/**\n * Import resource type by name\n * @param {string} resourceTypeName client id\n * @param {ResourceTypeExportInterface} importData import data\n */\nexport async function importResourceTypeByName({\n resourceTypeName,\n importData,\n state,\n}: {\n resourceTypeName: string;\n importData: ResourceTypeExportInterface;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.resourcetype)) {\n if (importData.resourcetype[id].name === resourceTypeName) {\n try {\n const resourceTypeData = importData.resourcetype[id];\n delete resourceTypeData._rev;\n try {\n response = await createResourceType({ resourceTypeData, state });\n } catch (createError) {\n if (createError.response?.status === 409)\n response = await putResourceType({\n resourceTypeUuid: id,\n resourceTypeData,\n state,\n });\n else throw createError;\n }\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(\n `Import error:\\n${resourceTypeName} not found in import data!`\n );\n }\n return response;\n}\n\n/**\n * Import first resource type\n * @param {ResourceTypeExportInterface} importData import data\n */\nexport async function importFirstResourceType({\n importData,\n state,\n}: {\n importData: ResourceTypeExportInterface;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.resourcetype)) {\n try {\n const resourceTypeData = importData.resourcetype[id];\n delete resourceTypeData._provider;\n delete resourceTypeData._rev;\n try {\n response = await createResourceType({ resourceTypeData, state });\n } catch (createError) {\n if (createError.response?.status === 409)\n response = await putResourceType({\n resourceTypeUuid: id,\n resourceTypeData,\n state,\n });\n else throw createError;\n }\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n break;\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo resource types found in import data!`);\n }\n return response;\n}\n\n/**\n * Import resource types\n * @param {ResourceTypeExportInterface} importData import data\n */\nexport async function importResourceTypes({\n importData,\n state,\n}: {\n importData: ResourceTypeExportInterface;\n state: State;\n}) {\n const response = [];\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.resourcetype)) {\n try {\n const resourceTypeData = importData.resourcetype[id];\n delete resourceTypeData._rev;\n try {\n response.push(await createResourceType({ resourceTypeData, state }));\n } catch (createError) {\n if (createError.response?.status === 409)\n response.push(\n await putResourceType({\n resourceTypeUuid: id,\n resourceTypeData,\n state,\n })\n );\n else throw createError;\n }\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo resource types found in import data!`);\n }\n return response;\n}\n\nexport { getResourceType, createResourceType, deleteResourceType };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ResourceTypeOps.js","names":["_ResourceTypesApi","require","_ExportImportUtils","_Console","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ResourceTypeOps","constructor","state","getResourceType","resourceTypeUuid","_this","getResourceTypes","_this2","result","_getResourceTypes","getResourceTypeByName","resourceTypeName","_this3","updateResourceType","resourceTypeData","_this4","deleteResourceType","_this5","deleteResourceTypeByName","_this6","exportResourceType","_this7","exportResourceTypeByName","_this8","exportResourceTypes","_this9","importResourceType","importData","_this10","importResourceTypeByName","_this11","importFirstResourceType","_this12","importResourceTypes","_this13","exports","default","createResourceTypeExportTemplate","_ref","meta","getMetadata","script","policy","policyset","resourcetype","_x","_getResourceTypes2","_ref2","_x2","_getResourceTypeByName2","_ref3","_getResourceTypeByName","length","Error","concat","getRealm","_x3","_updateResourceType","_ref4","putResourceType","_x4","_deleteResourceTypeByName","_ref5","uuid","_x5","_exportResourceType","_ref6","debugMessage","message","exportData","errors","push","errorMessages","map","_error$response","response","status","_error$response2","_error$response2$data","data","join","_x6","_exportResourceTypeByName","_ref7","_x7","_exportResourceTypes","_ref8","resourceTypes","_x8","_importResourceType","_ref9","imported","id","Object","keys","_rev","createResourceType","createError","_createError$response","_error$response3","_error$response3$data","_x9","_importResourceTypeByName","_ref10","name","_createError$response2","_error$response4","_error$response4$data","_x10","_importFirstResourceType","_ref11","_provider","_createError$response3","_error$response5","_error$response5$data","_x11","_importResourceTypes","_ref12","_createError$response4","_error$response6","_error$response6$data"],"sources":["ops/ResourceTypeOps.ts"],"sourcesContent":["import {\n deleteResourceType,\n getResourceTypes as _getResourceTypes,\n getResourceType,\n getResourceTypeByName as _getResourceTypeByName,\n createResourceType,\n putResourceType,\n} from '../api/ResourceTypesApi';\nimport { ExportMetaData } from './OpsTypes';\nimport { ResourceTypeSkeleton } from '../api/ApiTypes';\nimport { getMetadata } from './utils/ExportImportUtils';\nimport { debugMessage } from './utils/Console';\nimport State from '../shared/State';\n\nexport default class ResourceTypeOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n async getResourceType(resourceTypeUuid: string) {\n return getResourceType({ resourceTypeUuid, state: this.state });\n }\n\n /**\n * Get all resource types\n * @returns {Promise} a promise that resolves to an array of resource type objects\n */\n async getResourceTypes(): Promise<ResourceTypeSkeleton[]> {\n const { result } = await _getResourceTypes({ state: this.state });\n return result;\n }\n\n /**\n * Get resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\n async getResourceTypeByName(\n resourceTypeName: string\n ): Promise<ResourceTypeSkeleton> {\n return getResourceTypeByName({ resourceTypeName, state: this.state });\n }\n\n /**\n * Update resource type\n * @param {string} resourceTypeData resource type id\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\n async updateResourceType(\n resourceTypeUuid: string,\n resourceTypeData: ResourceTypeSkeleton\n ): Promise<ResourceTypeSkeleton> {\n return updateResourceType({\n resourceTypeUuid,\n resourceTypeData,\n state: this.state,\n });\n }\n\n async deleteResourceType(resourceTypeUuid: string) {\n return deleteResourceType({ resourceTypeUuid, state: this.state });\n }\n\n /**\n * Delete resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} Promise resolvig to a resource type object\n */\n async deleteResourceTypeByName(\n resourceTypeName: string\n ): Promise<ResourceTypeSkeleton> {\n return deleteResourceTypeByName({ resourceTypeName, state: this.state });\n }\n\n /**\n * Export resource type\n * @param {string} resourceTypeUuid resource type uuid\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\n async exportResourceType(\n resourceTypeUuid: string\n ): Promise<ResourceTypeExportInterface> {\n return exportResourceType({ resourceTypeUuid, state: this.state });\n }\n\n /**\n * Export resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\n async exportResourceTypeByName(\n resourceTypeName: string\n ): Promise<ResourceTypeExportInterface> {\n return exportResourceTypeByName({ resourceTypeName, state: this.state });\n }\n\n /**\n * Export resource types\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\n async exportResourceTypes(): Promise<ResourceTypeExportInterface> {\n return exportResourceTypes({ state: this.state });\n }\n\n /**\n * Import resource type by uuid\n * @param {string} resourceTypeUuid client uuid\n * @param {ResourceTypeExportInterface} importData import data\n */\n async importResourceType(\n resourceTypeUuid: string,\n importData: ResourceTypeExportInterface\n ) {\n return importResourceType({\n resourceTypeUuid,\n importData,\n state: this.state,\n });\n }\n\n /**\n * Import resource type by name\n * @param {string} resourceTypeName client id\n * @param {ResourceTypeExportInterface} importData import data\n */\n async importResourceTypeByName(\n resourceTypeName: string,\n importData: ResourceTypeExportInterface\n ) {\n return importResourceTypeByName({\n resourceTypeName,\n importData,\n state: this.state,\n });\n }\n\n /**\n * Import first resource type\n * @param {ResourceTypeExportInterface} importData import data\n */\n async importFirstResourceType(importData: ResourceTypeExportInterface) {\n return importFirstResourceType({ importData, state: this.state });\n }\n\n /**\n * Import resource types\n * @param {ResourceTypeExportInterface} importData import data\n */\n async importResourceTypes(importData: ResourceTypeExportInterface) {\n return importResourceTypes({ importData, state: this.state });\n }\n}\n\nexport interface ResourceTypeExportInterface {\n meta?: ExportMetaData;\n resourcetype: Record<string, ResourceTypeSkeleton>;\n}\n\n/**\n * Create an empty export template\n * @returns {ResourceTypeExportInterface} an empty export template\n */\nfunction createResourceTypeExportTemplate({\n state,\n}: {\n state: State;\n}): ResourceTypeExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n policy: {},\n policyset: {},\n resourcetype: {},\n } as ResourceTypeExportInterface;\n}\n\n/**\n * Get all resource types\n * @returns {Promise} a promise that resolves to an array of resource type objects\n */\nexport async function getResourceTypes({\n state,\n}: {\n state: State;\n}): Promise<ResourceTypeSkeleton[]> {\n const { result } = await _getResourceTypes({ state });\n return result;\n}\n\n/**\n * Get resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\nexport async function getResourceTypeByName({\n resourceTypeName,\n state,\n}: {\n resourceTypeName: string;\n state: State;\n}): Promise<ResourceTypeSkeleton> {\n const { result } = await _getResourceTypeByName({ resourceTypeName, state });\n switch (result.length) {\n case 1:\n return result[0];\n case 0:\n throw new Error(\n `Resource Type with name ${resourceTypeName} does not exist in realm ${state.getRealm()}`\n );\n default:\n throw new Error(\n `${result.length} resource types '${resourceTypeName}' found`\n );\n }\n}\n\n/**\n * Update resource type\n * @param {string} resourceTypeData resource type id\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\nexport async function updateResourceType({\n resourceTypeUuid,\n resourceTypeData,\n state,\n}: {\n resourceTypeUuid: string;\n resourceTypeData: ResourceTypeSkeleton;\n state: State;\n}): Promise<ResourceTypeSkeleton> {\n return putResourceType({ resourceTypeUuid, resourceTypeData, state });\n}\n\n/**\n * Delete resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} Promise resolvig to a resource type object\n */\nexport async function deleteResourceTypeByName({\n resourceTypeName,\n state,\n}: {\n resourceTypeName: string;\n state: State;\n}): Promise<ResourceTypeSkeleton> {\n const resourceTypeUuid = (\n await getResourceTypeByName({ resourceTypeName, state })\n ).uuid;\n return deleteResourceType({ resourceTypeUuid, state });\n}\n\n/**\n * Export resource type\n * @param {string} resourceTypeUuid resource type uuid\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\nexport async function exportResourceType({\n resourceTypeUuid,\n state,\n}: {\n resourceTypeUuid: string;\n state: State;\n}): Promise<ResourceTypeExportInterface> {\n debugMessage({ message: `ResourceTypeOps.exportResourceType: start`, state });\n const exportData = createResourceTypeExportTemplate({ state });\n const errors = [];\n try {\n const resourceTypeData = await getResourceType({\n resourceTypeUuid,\n state,\n });\n exportData.resourcetype[resourceTypeData.uuid] = resourceTypeData;\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => {\n if (error.response?.status === 404) {\n return `Resource Type with uuid ${resourceTypeUuid} does not exist in realm ${state.getRealm()}`;\n } else {\n return error.response?.data?.message || error.message;\n }\n })\n .join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `ResourceTypeOps.exportResourceType: end`, state });\n return exportData;\n}\n\n/**\n * Export resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\nexport async function exportResourceTypeByName({\n resourceTypeName,\n state,\n}: {\n resourceTypeName: string;\n state: State;\n}): Promise<ResourceTypeExportInterface> {\n debugMessage({\n message: `ResourceTypeOps.exportResourceTypeByName: start`,\n state,\n });\n const exportData = createResourceTypeExportTemplate({ state });\n const errors = [];\n try {\n const resourceTypeData = await getResourceTypeByName({\n resourceTypeName,\n state,\n });\n exportData.resourcetype[resourceTypeData.uuid] = resourceTypeData;\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `ResourceTypeOps.exportResourceTypeByName: end`,\n state,\n });\n return exportData;\n}\n\n/**\n * Export resource types\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\nexport async function exportResourceTypes({\n state,\n}: {\n state: State;\n}): Promise<ResourceTypeExportInterface> {\n debugMessage({ message: `ResourceTypeOps.exportResourceType: start`, state });\n const exportData = createResourceTypeExportTemplate({ state });\n const errors = [];\n try {\n const resourceTypes = await getResourceTypes({ state });\n for (const resourceTypeData of resourceTypes) {\n exportData.resourcetype[resourceTypeData.uuid] = resourceTypeData;\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `ResourceTypeOps.exportResourceType: end`, state });\n return exportData;\n}\n\n/**\n * Import resource type by uuid\n * @param {string} resourceTypeUuid client uuid\n * @param {ResourceTypeExportInterface} importData import data\n */\nexport async function importResourceType({\n resourceTypeUuid,\n importData,\n state,\n}: {\n resourceTypeUuid: string;\n importData: ResourceTypeExportInterface;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.resourcetype)) {\n if (id === resourceTypeUuid) {\n try {\n const resourceTypeData = importData.resourcetype[id];\n delete resourceTypeData._rev;\n try {\n response = await createResourceType({ resourceTypeData, state });\n } catch (createError) {\n if (createError.response?.status === 409)\n response = await putResourceType({\n resourceTypeUuid: id,\n resourceTypeData,\n state,\n });\n else throw createError;\n }\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(\n `Import error:\\n${resourceTypeUuid} not found in import data!`\n );\n }\n return response;\n}\n\n/**\n * Import resource type by name\n * @param {string} resourceTypeName client id\n * @param {ResourceTypeExportInterface} importData import data\n */\nexport async function importResourceTypeByName({\n resourceTypeName,\n importData,\n state,\n}: {\n resourceTypeName: string;\n importData: ResourceTypeExportInterface;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.resourcetype)) {\n if (importData.resourcetype[id].name === resourceTypeName) {\n try {\n const resourceTypeData = importData.resourcetype[id];\n delete resourceTypeData._rev;\n try {\n response = await createResourceType({ resourceTypeData, state });\n } catch (createError) {\n if (createError.response?.status === 409)\n response = await putResourceType({\n resourceTypeUuid: id,\n resourceTypeData,\n state,\n });\n else throw createError;\n }\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(\n `Import error:\\n${resourceTypeName} not found in import data!`\n );\n }\n return response;\n}\n\n/**\n * Import first resource type\n * @param {ResourceTypeExportInterface} importData import data\n */\nexport async function importFirstResourceType({\n importData,\n state,\n}: {\n importData: ResourceTypeExportInterface;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.resourcetype)) {\n try {\n const resourceTypeData = importData.resourcetype[id];\n delete resourceTypeData._provider;\n delete resourceTypeData._rev;\n try {\n response = await createResourceType({ resourceTypeData, state });\n } catch (createError) {\n if (createError.response?.status === 409)\n response = await putResourceType({\n resourceTypeUuid: id,\n resourceTypeData,\n state,\n });\n else throw createError;\n }\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n break;\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo resource types found in import data!`);\n }\n return response;\n}\n\n/**\n * Import resource types\n * @param {ResourceTypeExportInterface} importData import data\n */\nexport async function importResourceTypes({\n importData,\n state,\n}: {\n importData: ResourceTypeExportInterface;\n state: State;\n}) {\n const response = [];\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.resourcetype)) {\n try {\n const resourceTypeData = importData.resourcetype[id];\n delete resourceTypeData._rev;\n try {\n response.push(await createResourceType({ resourceTypeData, state }));\n } catch (createError) {\n if (createError.response?.status === 409)\n response.push(\n await putResourceType({\n resourceTypeUuid: id,\n resourceTypeData,\n state,\n })\n );\n else throw createError;\n }\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo resource types found in import data!`);\n }\n return response;\n}\n\nexport { getResourceType, createResourceType, deleteResourceType };\n"],"mappings":"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"}
|