@rockcarver/frodo-cli 2.0.0-28 → 2.0.0-29
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 +22 -1
- package/esm/app.js +4 -0
- package/esm/app.js.map +1 -1
- package/esm/cli/FrodoCommand.js +10 -4
- package/esm/cli/FrodoCommand.js.map +1 -1
- package/esm/cli/admin/admin-get-access-token.js +1 -1
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
- package/esm/cli/admin/admin-list-static-user-mappings.js +1 -1
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/authz/authz-policy-delete.js +2 -2
- package/esm/cli/authz/authz-policy-delete.js.map +1 -1
- package/esm/cli/authz/authz-set-delete.js +2 -2
- package/esm/cli/authz/authz-set-delete.js.map +1 -1
- package/esm/cli/authz/authz-type-delete.js +3 -3
- package/esm/cli/authz/authz-type-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +2 -2
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +1 -0
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-export.js +11 -1
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js +1 -1
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/PolicyOps.js +5 -15
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js +11 -10
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/RealmOps.js +3 -3
- package/esm/ops/RealmOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.js +11 -25
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js +2 -2
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/SecretsOps.js +4 -4
- package/esm/ops/SecretsOps.js.map +1 -1
- package/esm/ops/VariablesOps.js +6 -4
- package/esm/ops/VariablesOps.js.map +1 -1
- package/global-jest-setup.js +4 -0
- package/package.json +4 -3
package/esm/ops/PolicySetOps.js
CHANGED
|
@@ -18,7 +18,8 @@ const {
|
|
|
18
18
|
exportPolicySets,
|
|
19
19
|
importPolicySet,
|
|
20
20
|
importFirstPolicySet,
|
|
21
|
-
importPolicySets
|
|
21
|
+
importPolicySets,
|
|
22
|
+
deletePolicySet
|
|
22
23
|
} = frodo.authz.policySet;
|
|
23
24
|
|
|
24
25
|
/**
|
|
@@ -65,7 +66,7 @@ export async function describePolicySet(policySetId, json = false) {
|
|
|
65
66
|
* @param {string} policySetId policy set id/name
|
|
66
67
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
67
68
|
*/
|
|
68
|
-
export async function
|
|
69
|
+
export async function deletePolicySetById(policySetId) {
|
|
69
70
|
debugMessage(`cli.PolicySetOps.deletePolicySet: begin`);
|
|
70
71
|
showSpinner(`Deleting ${policySetId}...`);
|
|
71
72
|
let outcome = false;
|
|
@@ -81,18 +82,18 @@ export async function deletePolicySet(policySetId) {
|
|
|
81
82
|
errors.push(error);
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
|
-
try {
|
|
85
|
-
debugMessage(`Deleting policy set ${policySetId}`);
|
|
86
|
-
await deletePolicySet(policySetId);
|
|
87
|
-
} catch (error) {
|
|
88
|
-
printMessage(`Error deleting policy set ${policySetId}: ${error}`, 'error');
|
|
89
|
-
}
|
|
90
85
|
if (errors.length) {
|
|
91
86
|
const errorMessages = errors.map(error => error.message).join('\n');
|
|
92
87
|
failSpinner(`Error deleting ${policySetId}: ${errorMessages}`);
|
|
93
88
|
} else {
|
|
94
|
-
|
|
95
|
-
|
|
89
|
+
try {
|
|
90
|
+
debugMessage(`Deleting policy set ${policySetId}`);
|
|
91
|
+
await deletePolicySet(policySetId);
|
|
92
|
+
succeedSpinner(`Deleted ${policySetId}.`);
|
|
93
|
+
outcome = true;
|
|
94
|
+
} catch (error) {
|
|
95
|
+
printMessage(`Error deleting policy set ${policySetId}: ${error}`, 'error');
|
|
96
|
+
}
|
|
96
97
|
}
|
|
97
98
|
debugMessage(`cli.PolicySetOps.deletePolicySet: end [outcome=${outcome}]`);
|
|
98
99
|
return outcome;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolicySetOps.js","names":["frodo","state","fs","createObjectTable","createProgressBar","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","getTypedFilename","saveJsonToFile","titleCase","getRealmName","getFilePath","getWorkingDirectory","utils","readPoliciesByPolicySet","deletePolicy","authz","policy","readPolicySets","readPolicySet","exportPolicySet","exportPolicySets","importPolicySet","importFirstPolicySet","importPolicySets","policySet","listPolicySets","outcome","policySets","sort","a","b","name","localeCompare","err","message","describePolicySet","policySetId","json","table","toString","deletePolicySet","errors","policies","_id","error","push","length","errorMessages","map","join","deletePolicySets","exportPolicySetToFile","file","options","deps","prereqs","useStringArrays","fileName","filePath","exportData","exportPolicySetsToFile","getRealm","exportPolicySetsToFiles","importPolicySetFromFile","data","readFileSync","fileData","JSON","parse","importFirstPolicySetFromFile","importPolicySetsFromFile","importPolicySetsFromFiles","names","readdirSync","files","filter","toLowerCase","endsWith","total","count","Object","keys","policyset"],"sources":["../../src/ops/PolicySetOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { type PolicySkeleton } from '@rockcarver/frodo-lib/types/api/PoliciesApi';\nimport { type PolicySetSkeleton } from '@rockcarver/frodo-lib/types/api/PolicySetApi';\nimport {\n type PolicySetExportInterface,\n type PolicySetExportOptions,\n type PolicySetImportOptions,\n} from '@rockcarver/frodo-lib/types/ops/PolicySetOps';\nimport fs from 'fs';\n\nimport {\n createObjectTable,\n createProgressBar,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\n\nconst { getRealmName, getFilePath, getWorkingDirectory } = frodo.utils;\nconst { readPoliciesByPolicySet, deletePolicy } = frodo.authz.policy;\nconst {\n readPolicySets,\n readPolicySet,\n exportPolicySet,\n exportPolicySets,\n importPolicySet,\n importFirstPolicySet,\n importPolicySets,\n} = frodo.authz.policySet;\n\n/**\n * List policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listPolicySets(): Promise<boolean> {\n let outcome = false;\n try {\n const policySets = await readPolicySets();\n policySets.sort((a, b) => a.name.localeCompare(b.name));\n for (const policySet of policySets) {\n printMessage(`${policySet.name}`, 'data');\n }\n outcome = true;\n } catch (err) {\n printMessage(`listPolicySets ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n return outcome;\n}\n\n/**\n * Describe policy set\n * @param {string} policySetId policy set id/name\n * @param {Object} json JSON output\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function describePolicySet(\n policySetId: string,\n json = false\n): Promise<boolean> {\n let outcome = false;\n const policySet = await readPolicySet(policySetId);\n outcome = true;\n if (json) {\n printMessage(policySet, 'data');\n } else {\n const table = createObjectTable(policySet);\n printMessage(table.toString(), 'data');\n }\n return outcome;\n}\n\n/**\n * Delete policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySet(policySetId: string): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySet: begin`);\n showSpinner(`Deleting ${policySetId}...`);\n let outcome = false;\n const errors = [];\n const policies: PolicySkeleton[] = await readPoliciesByPolicySet(policySetId);\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await deletePolicySet(policySetId);\n } catch (error) {\n printMessage(`Error deleting policy set ${policySetId}: ${error}`, 'error');\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n failSpinner(`Error deleting ${policySetId}: ${errorMessages}`);\n } else {\n succeedSpinner(`Deleted ${policySetId}.`);\n outcome = true;\n }\n debugMessage(`cli.PolicySetOps.deletePolicySet: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Delete all policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySets(): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySets: begin`);\n let outcome = false;\n const errors = [];\n let policySets: PolicySetSkeleton[] = [];\n try {\n showSpinner(`Retrieving all policy sets...`);\n try {\n policySets = await readPolicySets();\n succeedSpinner(`Found ${policySets.length} policy sets.`);\n } catch (error) {\n error.message = `Error retrieving all policy sets: ${error.message}`;\n failSpinner(error.message);\n throw error;\n }\n if (policySets.length)\n createProgressBar(\n policySets.length,\n `Deleting ${policySets.length} policy sets...`\n );\n for (const policySet of policySets) {\n const policySetId = policySet.name;\n try {\n const policies: PolicySkeleton[] =\n await readPoliciesByPolicySet(policySetId);\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await deletePolicySet(policySetId);\n updateProgressBar(`Deleted ${policySetId}`);\n } catch (error) {\n error.message = `Error deleting policy set ${policySetId}: ${error}`;\n updateProgressBar(error.message);\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error deleting policy sets: ${error}`;\n errors.push(error);\n } finally {\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n if (policySets.length)\n stopProgressBar(`Error deleting all policy sets: ${errorMessages}`);\n } else {\n if (policySets.length)\n stopProgressBar(`Deleted ${policySets.length} policy sets.`);\n outcome = true;\n }\n }\n debugMessage(`cli.PolicySetOps.deletePolicySets: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Export policy set to file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetToFile(\n policySetId: string,\n file: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: begin`);\n showSpinner(`Exporting ${policySetId}...`);\n try {\n let fileName = getTypedFilename(policySetId, 'policyset.authz');\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await exportPolicySet(policySetId, options);\n saveJsonToFile(exportData, filePath);\n succeedSpinner(`Exported ${policySetId} to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${policySetId}: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: end`);\n return outcome;\n}\n\n/**\n * Export policy sets to file\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFile(\n file: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: begin`);\n showSpinner(`Exporting all policy sets...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}PolicySets`,\n 'policyset.authz'\n );\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await exportPolicySets(options);\n saveJsonToFile(exportData, filePath);\n succeedSpinner(`Exported all policy sets to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting policy sets: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: end`);\n return outcome;\n}\n\n/**\n * Export all policy sets to separate files\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFiles(\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: begin`);\n const errors = [];\n try {\n const policySets: PolicySetSkeleton[] = await readPolicySets();\n createProgressBar(policySets.length, 'Exporting policy sets...');\n for (const policySet of policySets) {\n const file = getTypedFilename(policySet.name, 'policyset.authz');\n try {\n const exportData: PolicySetExportInterface = await exportPolicySet(\n policySet.name,\n options\n );\n saveJsonToFile(exportData, getFilePath(file, true));\n updateProgressBar(`Exported ${policySet.name}.`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error exporting ${policySet.name}.`);\n }\n }\n stopProgressBar(`Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error exporting policy sets to files`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import policy set from file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetFromFile(\n policySetId: string,\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: begin`);\n showSpinner(`Importing ${policySetId}...`);\n try {\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const fileData = JSON.parse(data);\n await importPolicySet(policySetId, fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${policySetId}.`);\n } catch (error) {\n failSpinner(`Error importing ${policySetId}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import first policy set from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstPolicySetFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: begin`);\n const filePath = getFilePath(file);\n showSpinner(`Importing first policy set from ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n const policySet = await importFirstPolicySet(fileData, options);\n outcome = true;\n succeedSpinner(\n `Imported first policy set with name '${policySet.name}' from ${filePath}.`\n );\n } catch (error) {\n failSpinner(`Error importing first policy set from ${filePath}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: begin`);\n const filePath = getFilePath(file);\n showSpinner(`Importing ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importPolicySets(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${filePath}.`);\n } catch (error) {\n failSpinner(`Error importing ${filePath}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from files\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFiles(\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n const errors = [];\n try {\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: begin`);\n const names = fs.readdirSync(getWorkingDirectory());\n const files = names\n .filter((name) => name.toLowerCase().endsWith('.policyset.authz.json'))\n .map((name) => getFilePath(name));\n createProgressBar(files.length, 'Importing policy sets...');\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData: PolicySetExportInterface = JSON.parse(data);\n const count = Object.keys(fileData.policyset).length;\n total += count;\n await importPolicySets(fileData, options);\n updateProgressBar(`Imported ${count} policy sets from ${file}`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error importing policy sets from ${file}`);\n printMessage(error, 'error');\n }\n }\n stopProgressBar(\n `Finished importing ${total} policy sets from ${files.length} files.`\n );\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error importing policy sets from files.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: end`);\n return 0 === errors.length;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PolicySetOps.js","names":["frodo","state","fs","createObjectTable","createProgressBar","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","getTypedFilename","saveJsonToFile","titleCase","getRealmName","getFilePath","getWorkingDirectory","utils","readPoliciesByPolicySet","deletePolicy","authz","policy","readPolicySets","readPolicySet","exportPolicySet","exportPolicySets","importPolicySet","importFirstPolicySet","importPolicySets","deletePolicySet","policySet","listPolicySets","outcome","policySets","sort","a","b","name","localeCompare","err","message","describePolicySet","policySetId","json","table","toString","deletePolicySetById","errors","policies","_id","error","push","length","errorMessages","map","join","deletePolicySets","exportPolicySetToFile","file","options","deps","prereqs","useStringArrays","fileName","filePath","exportData","exportPolicySetsToFile","getRealm","exportPolicySetsToFiles","importPolicySetFromFile","data","readFileSync","fileData","JSON","parse","importFirstPolicySetFromFile","importPolicySetsFromFile","importPolicySetsFromFiles","names","readdirSync","files","filter","toLowerCase","endsWith","total","count","Object","keys","policyset"],"sources":["../../src/ops/PolicySetOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { type PolicySkeleton } from '@rockcarver/frodo-lib/types/api/PoliciesApi';\nimport { type PolicySetSkeleton } from '@rockcarver/frodo-lib/types/api/PolicySetApi';\nimport {\n type PolicySetExportInterface,\n type PolicySetExportOptions,\n type PolicySetImportOptions,\n} from '@rockcarver/frodo-lib/types/ops/PolicySetOps';\nimport fs from 'fs';\n\nimport {\n createObjectTable,\n createProgressBar,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\n\nconst { getRealmName, getFilePath, getWorkingDirectory } = frodo.utils;\nconst { readPoliciesByPolicySet, deletePolicy } = frodo.authz.policy;\nconst {\n readPolicySets,\n readPolicySet,\n exportPolicySet,\n exportPolicySets,\n importPolicySet,\n importFirstPolicySet,\n importPolicySets,\n deletePolicySet,\n} = frodo.authz.policySet;\n\n/**\n * List policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listPolicySets(): Promise<boolean> {\n let outcome = false;\n try {\n const policySets = await readPolicySets();\n policySets.sort((a, b) => a.name.localeCompare(b.name));\n for (const policySet of policySets) {\n printMessage(`${policySet.name}`, 'data');\n }\n outcome = true;\n } catch (err) {\n printMessage(`listPolicySets ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n return outcome;\n}\n\n/**\n * Describe policy set\n * @param {string} policySetId policy set id/name\n * @param {Object} json JSON output\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function describePolicySet(\n policySetId: string,\n json = false\n): Promise<boolean> {\n let outcome = false;\n const policySet = await readPolicySet(policySetId);\n outcome = true;\n if (json) {\n printMessage(policySet, 'data');\n } else {\n const table = createObjectTable(policySet);\n printMessage(table.toString(), 'data');\n }\n return outcome;\n}\n\n/**\n * Delete policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySetById(\n policySetId: string\n): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySet: begin`);\n showSpinner(`Deleting ${policySetId}...`);\n let outcome = false;\n const errors = [];\n const policies: PolicySkeleton[] = await readPoliciesByPolicySet(policySetId);\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n failSpinner(`Error deleting ${policySetId}: ${errorMessages}`);\n } else {\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await deletePolicySet(policySetId);\n succeedSpinner(`Deleted ${policySetId}.`);\n outcome = true;\n } catch (error) {\n printMessage(\n `Error deleting policy set ${policySetId}: ${error}`,\n 'error'\n );\n }\n }\n debugMessage(`cli.PolicySetOps.deletePolicySet: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Delete all policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySets(): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySets: begin`);\n let outcome = false;\n const errors = [];\n let policySets: PolicySetSkeleton[] = [];\n try {\n showSpinner(`Retrieving all policy sets...`);\n try {\n policySets = await readPolicySets();\n succeedSpinner(`Found ${policySets.length} policy sets.`);\n } catch (error) {\n error.message = `Error retrieving all policy sets: ${error.message}`;\n failSpinner(error.message);\n throw error;\n }\n if (policySets.length)\n createProgressBar(\n policySets.length,\n `Deleting ${policySets.length} policy sets...`\n );\n for (const policySet of policySets) {\n const policySetId = policySet.name;\n try {\n const policies: PolicySkeleton[] =\n await readPoliciesByPolicySet(policySetId);\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await deletePolicySet(policySetId);\n updateProgressBar(`Deleted ${policySetId}`);\n } catch (error) {\n error.message = `Error deleting policy set ${policySetId}: ${error}`;\n updateProgressBar(error.message);\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error deleting policy sets: ${error}`;\n errors.push(error);\n } finally {\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n if (policySets.length)\n stopProgressBar(`Error deleting all policy sets: ${errorMessages}`);\n } else {\n if (policySets.length)\n stopProgressBar(`Deleted ${policySets.length} policy sets.`);\n outcome = true;\n }\n }\n debugMessage(`cli.PolicySetOps.deletePolicySets: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Export policy set to file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetToFile(\n policySetId: string,\n file: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: begin`);\n showSpinner(`Exporting ${policySetId}...`);\n try {\n let fileName = getTypedFilename(policySetId, 'policyset.authz');\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await exportPolicySet(policySetId, options);\n saveJsonToFile(exportData, filePath);\n succeedSpinner(`Exported ${policySetId} to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${policySetId}: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: end`);\n return outcome;\n}\n\n/**\n * Export policy sets to file\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFile(\n file: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: begin`);\n showSpinner(`Exporting all policy sets...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}PolicySets`,\n 'policyset.authz'\n );\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await exportPolicySets(options);\n saveJsonToFile(exportData, filePath);\n succeedSpinner(`Exported all policy sets to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting policy sets: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: end`);\n return outcome;\n}\n\n/**\n * Export all policy sets to separate files\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFiles(\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: begin`);\n const errors = [];\n try {\n const policySets: PolicySetSkeleton[] = await readPolicySets();\n createProgressBar(policySets.length, 'Exporting policy sets...');\n for (const policySet of policySets) {\n const file = getTypedFilename(policySet.name, 'policyset.authz');\n try {\n const exportData: PolicySetExportInterface = await exportPolicySet(\n policySet.name,\n options\n );\n saveJsonToFile(exportData, getFilePath(file, true));\n updateProgressBar(`Exported ${policySet.name}.`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error exporting ${policySet.name}.`);\n }\n }\n stopProgressBar(`Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error exporting policy sets to files`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import policy set from file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetFromFile(\n policySetId: string,\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: begin`);\n showSpinner(`Importing ${policySetId}...`);\n try {\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const fileData = JSON.parse(data);\n await importPolicySet(policySetId, fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${policySetId}.`);\n } catch (error) {\n failSpinner(`Error importing ${policySetId}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import first policy set from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstPolicySetFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: begin`);\n const filePath = getFilePath(file);\n showSpinner(`Importing first policy set from ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n const policySet = await importFirstPolicySet(fileData, options);\n outcome = true;\n succeedSpinner(\n `Imported first policy set with name '${policySet.name}' from ${filePath}.`\n );\n } catch (error) {\n failSpinner(`Error importing first policy set from ${filePath}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: begin`);\n const filePath = getFilePath(file);\n showSpinner(`Importing ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importPolicySets(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${filePath}.`);\n } catch (error) {\n failSpinner(`Error importing ${filePath}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from files\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFiles(\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n const errors = [];\n try {\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: begin`);\n const names = fs.readdirSync(getWorkingDirectory());\n const files = names\n .filter((name) => name.toLowerCase().endsWith('.policyset.authz.json'))\n .map((name) => getFilePath(name));\n createProgressBar(files.length, 'Importing policy sets...');\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData: PolicySetExportInterface = JSON.parse(data);\n const count = Object.keys(fileData.policyset).length;\n total += count;\n await importPolicySets(fileData, options);\n updateProgressBar(`Imported ${count} policy sets from ${file}`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error importing policy sets from ${file}`);\n printMessage(error, 'error');\n }\n }\n stopProgressBar(\n `Finished importing ${total} policy sets from ${files.length} files.`\n );\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error importing policy sets from files.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: end`);\n return 0 === errors.length;\n}\n"],"mappings":"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"}
|
package/esm/ops/RealmOps.js
CHANGED
|
@@ -18,10 +18,10 @@ export async function listRealms(long = false) {
|
|
|
18
18
|
realms.forEach(realmConfig => {
|
|
19
19
|
table.push([realmConfig.name, realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed'], realmConfig.aliases.join('\n'), realmConfig.parentPath]);
|
|
20
20
|
});
|
|
21
|
-
printMessage(table.toString());
|
|
21
|
+
printMessage(table.toString(), 'data');
|
|
22
22
|
} else {
|
|
23
23
|
realms.forEach(realmConfig => {
|
|
24
|
-
printMessage(realmConfig.name, '
|
|
24
|
+
printMessage(realmConfig.name, 'data');
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
} catch (error) {
|
|
@@ -45,7 +45,7 @@ export async function describeRealm(realm) {
|
|
|
45
45
|
table.push(['Custom Domains'['brightCyan'], realmConfig.aliases.join('\n')]);
|
|
46
46
|
table.push(['Parent'['brightCyan'], realmConfig.parentPath]);
|
|
47
47
|
table.push(['Id'['brightCyan'], realmConfig._id]);
|
|
48
|
-
printMessage(table.toString());
|
|
48
|
+
printMessage(table.toString(), 'data');
|
|
49
49
|
} catch (error) {
|
|
50
50
|
printMessage(`Realm ${realm} not found!`, 'error');
|
|
51
51
|
}
|
package/esm/ops/RealmOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RealmOps.js","names":["frodo","createKeyValueTable","createTable","printMessage","readRealms","readRealmByName","updateRealm","realm","listRealms","long","realms","table","forEach","realmConfig","push","name","active","aliases","join","parentPath","toString","error","_error$response","rmessage","response","data","describeRealm","_id","addCustomDomain","domain","exists","alias","toLowerCase","message","removeCustomDomain","filter","length"],"sources":["../../src/ops/RealmOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\n\nimport {\n createKeyValueTable,\n createTable,\n printMessage,\n} from '../utils/Console';\n\nconst { readRealms, readRealmByName, updateRealm } = frodo.realm;\n\n/**\n * List realms\n * @param {boolean} long Long list format with details\n */\nexport async function listRealms(long = false) {\n try {\n const realms = await readRealms();\n if (long) {\n const table = createTable([\n 'Name'['brightCyan'],\n 'Status'['brightCyan'],\n 'Custom Domains'['brightCyan'],\n 'Parent'['brightCyan'],\n ]);\n realms.forEach((realmConfig) => {\n table.push([\n realmConfig.name,\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n realmConfig.aliases.join('\\n'),\n realmConfig.parentPath,\n ]);\n });\n printMessage(table.toString());\n } else {\n realms.forEach((realmConfig) => {\n printMessage(realmConfig.name, '
|
|
1
|
+
{"version":3,"file":"RealmOps.js","names":["frodo","createKeyValueTable","createTable","printMessage","readRealms","readRealmByName","updateRealm","realm","listRealms","long","realms","table","forEach","realmConfig","push","name","active","aliases","join","parentPath","toString","error","_error$response","rmessage","response","data","describeRealm","_id","addCustomDomain","domain","exists","alias","toLowerCase","message","removeCustomDomain","filter","length"],"sources":["../../src/ops/RealmOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\n\nimport {\n createKeyValueTable,\n createTable,\n printMessage,\n} from '../utils/Console';\n\nconst { readRealms, readRealmByName, updateRealm } = frodo.realm;\n\n/**\n * List realms\n * @param {boolean} long Long list format with details\n */\nexport async function listRealms(long = false) {\n try {\n const realms = await readRealms();\n if (long) {\n const table = createTable([\n 'Name'['brightCyan'],\n 'Status'['brightCyan'],\n 'Custom Domains'['brightCyan'],\n 'Parent'['brightCyan'],\n ]);\n realms.forEach((realmConfig) => {\n table.push([\n realmConfig.name,\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n realmConfig.aliases.join('\\n'),\n realmConfig.parentPath,\n ]);\n });\n printMessage(table.toString(), 'data');\n } else {\n realms.forEach((realmConfig) => {\n printMessage(realmConfig.name, 'data');\n });\n }\n } catch (error) {\n printMessage(error, 'error');\n printMessage(`Error listing realms: ${error.rmessage}`, 'error');\n printMessage(error.response?.data, 'error');\n }\n}\n\n/**\n * Describe realm\n * @param {String} realm realm name\n */\nexport async function describeRealm(realm: string) {\n try {\n const realmConfig = await readRealmByName(realm);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString(), 'data');\n } catch (error) {\n printMessage(`Realm ${realm} not found!`, 'error');\n }\n}\n\n/**\n * Add custom DNS domain name (realm DNS alias)\n * @param {String} realm realm name\n * @param {String} domain domain name\n */\nexport async function addCustomDomain(realm: string, domain: string) {\n try {\n let realmConfig = await readRealmByName(realm);\n let exists = false;\n realmConfig.aliases.forEach((alias) => {\n if (domain.toLowerCase() === alias.toLowerCase()) {\n exists = true;\n }\n });\n if (!exists) {\n try {\n realmConfig.aliases.push(domain.toLowerCase());\n realmConfig = await updateRealm(realmConfig._id, realmConfig);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString());\n } catch (error) {\n printMessage(`Error adding custom domain: ${error.message}`, 'error');\n }\n }\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Remove custom DNS domain name (realm DNS alias)\n * @param {String} realm realm name\n * @param {String} domain domain name\n */\nexport async function removeCustomDomain(realm: string, domain: string) {\n try {\n let realmConfig = await readRealmByName(realm);\n const aliases = realmConfig.aliases.filter(\n (alias) => domain.toLowerCase() !== alias.toLowerCase()\n );\n if (aliases.length < realmConfig.aliases.length) {\n try {\n realmConfig.aliases = aliases;\n realmConfig = await updateRealm(realmConfig._id, realmConfig);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString());\n } catch (error) {\n printMessage(`Error removing custom domain: ${error.message}`, 'error');\n }\n }\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n"],"mappings":"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"}
|
|
@@ -17,7 +17,9 @@ const {
|
|
|
17
17
|
importResourceType,
|
|
18
18
|
importResourceTypeByName,
|
|
19
19
|
importFirstResourceType,
|
|
20
|
-
importResourceTypes
|
|
20
|
+
importResourceTypes,
|
|
21
|
+
deleteResourceType,
|
|
22
|
+
deleteResourceTypeByName
|
|
21
23
|
} = frodo.authz.resourceType;
|
|
22
24
|
|
|
23
25
|
/**
|
|
@@ -112,26 +114,18 @@ export async function describeResourceTypeByName(resourceTypeName, json = false)
|
|
|
112
114
|
* @param {string} resourceTypeUuid resource type uuid
|
|
113
115
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
114
116
|
*/
|
|
115
|
-
export async function
|
|
117
|
+
export async function deleteResourceTypeById(resourceTypeUuid) {
|
|
116
118
|
debugMessage(`cli.ResourceTypeOps.deleteResourceType: begin`);
|
|
117
119
|
showSpinner(`Deleting ${resourceTypeUuid}...`);
|
|
118
120
|
let outcome = false;
|
|
119
|
-
const errors = [];
|
|
120
121
|
try {
|
|
121
122
|
debugMessage(`Deleting resource type ${resourceTypeUuid}`);
|
|
122
123
|
await deleteResourceType(resourceTypeUuid);
|
|
123
|
-
} catch (error) {
|
|
124
|
-
errors.push(error);
|
|
125
|
-
}
|
|
126
|
-
if (errors.length) {
|
|
127
|
-
const errorMessages = errors.map(error => {
|
|
128
|
-
var _error$response5;
|
|
129
|
-
return ((_error$response5 = error.response) === null || _error$response5 === void 0 || (_error$response5 = _error$response5.data) === null || _error$response5 === void 0 ? void 0 : _error$response5.message) || error.message;
|
|
130
|
-
}).join('\n');
|
|
131
|
-
failSpinner(`Error deleting ${resourceTypeUuid}: ${errorMessages}`);
|
|
132
|
-
} else {
|
|
133
124
|
succeedSpinner(`Deleted ${resourceTypeUuid}.`);
|
|
134
125
|
outcome = true;
|
|
126
|
+
} catch (error) {
|
|
127
|
+
var _error$response5;
|
|
128
|
+
failSpinner(`Error deleting ${resourceTypeUuid}: ${((_error$response5 = error.response) === null || _error$response5 === void 0 || (_error$response5 = _error$response5.data) === null || _error$response5 === void 0 ? void 0 : _error$response5.message) || error.message}`);
|
|
135
129
|
}
|
|
136
130
|
debugMessage(`cli.ResourceTypeOps.deleteResourceType: end [outcome=${outcome}]`);
|
|
137
131
|
return outcome;
|
|
@@ -142,26 +136,18 @@ export async function deleteResourceType(resourceTypeUuid) {
|
|
|
142
136
|
* @param {string} resourceTypeName resource type name
|
|
143
137
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
144
138
|
*/
|
|
145
|
-
export async function
|
|
139
|
+
export async function deleteResourceTypeUsingName(resourceTypeName) {
|
|
146
140
|
debugMessage(`cli.ResourceTypeOps.deleteResourceTypeByName: begin`);
|
|
147
141
|
showSpinner(`Deleting ${resourceTypeName}...`);
|
|
148
142
|
let outcome = false;
|
|
149
|
-
const errors = [];
|
|
150
143
|
try {
|
|
151
144
|
debugMessage(`Deleting resource type ${resourceTypeName}`);
|
|
152
145
|
await deleteResourceTypeByName(resourceTypeName);
|
|
153
|
-
} catch (error) {
|
|
154
|
-
errors.push(error);
|
|
155
|
-
}
|
|
156
|
-
if (errors.length) {
|
|
157
|
-
const errorMessages = errors.map(error => {
|
|
158
|
-
var _error$response6;
|
|
159
|
-
return ((_error$response6 = error.response) === null || _error$response6 === void 0 || (_error$response6 = _error$response6.data) === null || _error$response6 === void 0 ? void 0 : _error$response6.message) || error.message;
|
|
160
|
-
}).join('\n');
|
|
161
|
-
failSpinner(`Error deleting ${resourceTypeName}: ${errorMessages}`);
|
|
162
|
-
} else {
|
|
163
146
|
succeedSpinner(`Deleted ${resourceTypeName}.`);
|
|
164
147
|
outcome = true;
|
|
148
|
+
} catch (error) {
|
|
149
|
+
var _error$response6;
|
|
150
|
+
failSpinner(`Error deleting ${resourceTypeName}: ${((_error$response6 = error.response) === null || _error$response6 === void 0 || (_error$response6 = _error$response6.data) === null || _error$response6 === void 0 ? void 0 : _error$response6.message) || error.message}`);
|
|
165
151
|
}
|
|
166
152
|
debugMessage(`cli.ResourceTypeOps.deleteResourceTypeByName: end [outcome=${outcome}]`);
|
|
167
153
|
return outcome;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceTypeOps.js","names":["frodo","state","fs","createObjectTable","createProgressBar","createTable","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","getTypedFilename","saveJsonToFile","titleCase","getRealmName","getFilePath","getWorkingDirectory","utils","readResourceTypes","readResourceType","readResourceTypeByName","exportResourceType","exportResourceTypeByName","exportResourceTypes","importResourceType","importResourceTypeByName","importFirstResourceType","importResourceTypes","authz","resourceType","listResourceTypes","long","outcome","resourceTypes","sort","a","b","name","localeCompare","table","push","description","uuid","toString","err","message","describeResourceType","resourceTypeUuid","json","error","_error$response","response","status","getRealm","_error$response2","data","describeResourceTypeByName","resourceTypeName","_error$response3","_error$response4","deleteResourceType","errors","length","errorMessages","map","_error$response5","join","deleteResourceTypeByName","_error$response6","deleteResourceTypes","resourceTypeId","exportResourceTypeToFile","file","fileName","filePath","exportData","exportResourceTypeByNameToFile","exportResourceTypesToFile","exportResourceTypesToFiles","importResourceTypeFromFile","readFileSync","fileData","JSON","parse","importResourceTypeByNameFromFile","importFirstResourceTypeFromFile","importResourceTypesFromFile","importResourceTypesFromFiles","names","readdirSync","files","filter","toLowerCase","endsWith","total","count","Object","keys","resourcetype"],"sources":["../../src/ops/ResourceTypeOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { type ResourceTypeSkeleton } from '@rockcarver/frodo-lib/types/api/ResourceTypesApi';\nimport { type ResourceTypeExportInterface } from '@rockcarver/frodo-lib/types/ops/ResourceTypeOps';\nimport fs from 'fs';\n\nimport {\n createObjectTable,\n createProgressBar,\n createTable,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\n\nconst { getRealmName, getFilePath, getWorkingDirectory } = frodo.utils;\nconst {\n readResourceTypes,\n readResourceType,\n readResourceTypeByName,\n exportResourceType,\n exportResourceTypeByName,\n exportResourceTypes,\n importResourceType,\n importResourceTypeByName,\n importFirstResourceType,\n importResourceTypes,\n} = frodo.authz.resourceType;\n\n/**\n * List resource types\n * @param {boolean} long more fields\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listResourceTypes(long = false): Promise<boolean> {\n let outcome = false;\n try {\n const resourceTypes = await readResourceTypes();\n resourceTypes.sort((a, b) => a.name.localeCompare(b.name));\n if (long) {\n const table = createTable(['Name', 'Description', 'Uuid']);\n for (const resourceType of resourceTypes) {\n table.push([\n `${resourceType.name}`,\n `${resourceType.description}`,\n `${resourceType.uuid}`,\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n for (const resourceType of resourceTypes) {\n printMessage(`${resourceType.name}`, 'data');\n }\n }\n outcome = true;\n } catch (err) {\n printMessage(`listResourceTypes ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n return outcome;\n}\n\n/**\n * Describe resource type by uuid\n * @param {string} resourceTypeUuid resource type uuid\n * @param {boolean} json JSON output\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function describeResourceType(\n resourceTypeUuid: string,\n json = false\n): Promise<boolean> {\n let outcome = false;\n try {\n const resourceType = await readResourceType(resourceTypeUuid);\n if (json) {\n printMessage(resourceType, 'data');\n } else {\n const table = createObjectTable(resourceType);\n printMessage(table.toString(), 'data');\n }\n outcome = true;\n } catch (error) {\n if (error.response?.status === 404) {\n printMessage(\n `Resource Type with uuid ${resourceTypeUuid} does not exist in realm ${state.getRealm()}`,\n 'error'\n );\n } else {\n printMessage(error.response?.data?.message || error.message, 'error');\n }\n }\n return outcome;\n}\n\n/**\n * Describe resource type by name\n * @param {string} resourceTypeName resource type name\n * @param {boolean} json JSON output\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function describeResourceTypeByName(\n resourceTypeName: string,\n json = false\n): Promise<boolean> {\n let outcome = false;\n try {\n const resourceType = await readResourceTypeByName(resourceTypeName);\n if (json) {\n printMessage(resourceType, 'data');\n } else {\n const table = createObjectTable(resourceType);\n printMessage(table.toString(), 'data');\n }\n outcome = true;\n } catch (error) {\n if (error.response?.status === 404) {\n printMessage(\n `Resource Type with name ${resourceTypeName} does not exist in realm ${state.getRealm()}`,\n 'error'\n );\n } else {\n printMessage(error.response?.data?.message || error.message, 'error');\n }\n }\n return outcome;\n}\n\n/**\n * Delete resource type by uuid\n * @param {string} resourceTypeUuid resource type uuid\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteResourceType(\n resourceTypeUuid: string\n): Promise<boolean | ResourceTypeSkeleton> {\n debugMessage(`cli.ResourceTypeOps.deleteResourceType: begin`);\n showSpinner(`Deleting ${resourceTypeUuid}...`);\n let outcome = false;\n const errors = [];\n try {\n debugMessage(`Deleting resource type ${resourceTypeUuid}`);\n await deleteResourceType(resourceTypeUuid);\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n failSpinner(`Error deleting ${resourceTypeUuid}: ${errorMessages}`);\n } else {\n succeedSpinner(`Deleted ${resourceTypeUuid}.`);\n outcome = true;\n }\n debugMessage(\n `cli.ResourceTypeOps.deleteResourceType: end [outcome=${outcome}]`\n );\n return outcome;\n}\n\n/**\n * Delete resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteResourceTypeByName(\n resourceTypeName: string\n): Promise<boolean | ResourceTypeSkeleton> {\n debugMessage(`cli.ResourceTypeOps.deleteResourceTypeByName: begin`);\n showSpinner(`Deleting ${resourceTypeName}...`);\n let outcome = false;\n const errors = [];\n try {\n debugMessage(`Deleting resource type ${resourceTypeName}`);\n await deleteResourceTypeByName(resourceTypeName);\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n failSpinner(`Error deleting ${resourceTypeName}: ${errorMessages}`);\n } else {\n succeedSpinner(`Deleted ${resourceTypeName}.`);\n outcome = true;\n }\n debugMessage(\n `cli.ResourceTypeOps.deleteResourceTypeByName: end [outcome=${outcome}]`\n );\n return outcome;\n}\n\n/**\n * Delete all resource types\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteResourceTypes(): Promise<\n boolean | ResourceTypeSkeleton\n> {\n debugMessage(`cli.ResourceTypeOps.deleteResourceTypes: begin`);\n let outcome = false;\n const errors = [];\n let resourceTypes: ResourceTypeSkeleton[] = [];\n try {\n showSpinner(`Retrieving all resource types...`);\n try {\n resourceTypes = await readResourceTypes();\n succeedSpinner(`Found ${resourceTypes.length} resource types.`);\n } catch (error) {\n error.message = `Error retrieving all resource types: ${error.message}`;\n failSpinner(error.message);\n throw error;\n }\n if (resourceTypes.length)\n createProgressBar(\n resourceTypes.length,\n `Deleting ${resourceTypes.length} resource types...`\n );\n for (const resourceType of resourceTypes) {\n const resourceTypeId = resourceType.uuid;\n try {\n debugMessage(`Deleting resource type ${resourceTypeId}`);\n await deleteResourceType(resourceTypeId);\n updateProgressBar(`Deleted ${resourceTypeId}`);\n } catch (error) {\n error.message = `Error deleting resource type ${resourceTypeId}: ${error}`;\n updateProgressBar(error.message);\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error deleting resource types: ${error}`;\n errors.push(error);\n } finally {\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n if (resourceTypes.length)\n stopProgressBar(`Error deleting all resource types: ${errorMessages}`);\n } else {\n if (resourceTypes.length)\n stopProgressBar(`Deleted ${resourceTypes.length} resource types.`);\n outcome = true;\n }\n }\n debugMessage(\n `cli.ResourceTypeOps.deleteResourceTypes: end [outcome=${outcome}]`\n );\n return outcome;\n}\n\n/**\n * Export resource type to file\n * @param {string} resourceTypeUuid resource type uuid\n * @param {string} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportResourceTypeToFile(\n resourceTypeUuid: string,\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ResourceTypeOps.exportResourceTypeToFile: begin`);\n showSpinner(`Exporting ${resourceTypeUuid}...`);\n try {\n let fileName = getTypedFilename(resourceTypeUuid, 'resourcetype.authz');\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await exportResourceType(resourceTypeUuid);\n saveJsonToFile(exportData, filePath);\n succeedSpinner(`Exported ${resourceTypeUuid} to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${resourceTypeUuid}: ${error.message}`);\n }\n debugMessage(`cli.ResourceTypeOps.exportResourceTypeToFile: end`);\n return outcome;\n}\n\n/**\n * Export resource type by name to file\n * @param {string} resourceTypeName resource type name\n * @param {string} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportResourceTypeByNameToFile(\n resourceTypeName: string,\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ResourceTypeOps.exportResourceTypeByNameToFile: begin`);\n showSpinner(`Exporting ${resourceTypeName}...`);\n try {\n let fileName = getTypedFilename(resourceTypeName, 'resourcetype.authz');\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await exportResourceTypeByName(resourceTypeName);\n saveJsonToFile(exportData, filePath);\n succeedSpinner(`Exported ${resourceTypeName} to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${resourceTypeName}: ${error.message}`);\n }\n debugMessage(`cli.ResourceTypeOps.exportResourceTypeByNameToFile: end`);\n return outcome;\n}\n\n/**\n * Export resource types to file\n * @param {string} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportResourceTypesToFile(\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ResourceTypeOps.exportResourceTypesToFile: begin`);\n showSpinner(`Exporting all resource types...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}ResourceTypes`,\n 'resourcetype.authz'\n );\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await exportResourceTypes();\n saveJsonToFile(exportData, filePath);\n succeedSpinner(`Exported all resource types to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting resource types: ${error.message}`);\n }\n debugMessage(`cli.ResourceTypeOps.exportResourceTypesToFile: end`);\n return outcome;\n}\n\n/**\n * Export all resource types to separate files\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportResourceTypesToFiles(): Promise<boolean> {\n debugMessage(`cli.ResourceTypeOps.exportResourceTypesToFiles: begin`);\n const errors = [];\n try {\n const resourceTypes: ResourceTypeSkeleton[] = await readResourceTypes();\n createProgressBar(resourceTypes.length, 'Exporting resource types...');\n for (const resourceType of resourceTypes) {\n const file = getTypedFilename(resourceType.name, 'resourcetype.authz');\n try {\n const exportData: ResourceTypeExportInterface =\n await exportResourceType(resourceType.uuid);\n saveJsonToFile(exportData, getFilePath(file, true));\n updateProgressBar(`Exported ${resourceType.name}.`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error exporting ${resourceType.name}.`);\n }\n }\n stopProgressBar(`Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error exporting resource types to files`);\n }\n debugMessage(`cli.ResourceTypeOps.exportResourceTypesToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import resource type from file\n * @param {string} resourceTypeId resource type id\n * @param {string} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importResourceTypeFromFile(\n resourceTypeId: string,\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ResourceTypeOps.importResourceTypeFromFile: begin`);\n showSpinner(`Importing ${resourceTypeId}...`);\n try {\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const fileData = JSON.parse(data);\n await importResourceType(resourceTypeId, fileData);\n outcome = true;\n succeedSpinner(`Imported ${resourceTypeId}.`);\n } catch (error) {\n failSpinner(`Error importing ${resourceTypeId}: ${error.message}`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.ResourceTypeOps.importResourceTypeFromFile: end`);\n return outcome;\n}\n\n/**\n * Import resource type by name from file\n * @param {string} resourceTypeName resource type name\n * @param {string} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importResourceTypeByNameFromFile(\n resourceTypeName: string,\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ResourceTypeOps.importResourceTypeByNameFromFile: begin`);\n showSpinner(`Importing ${resourceTypeName}...`);\n try {\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const fileData = JSON.parse(data);\n await importResourceTypeByName(resourceTypeName, fileData);\n outcome = true;\n succeedSpinner(`Imported ${resourceTypeName}.`);\n } catch (error) {\n failSpinner(`Error importing ${resourceTypeName}: ${error.message}`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.ResourceTypeOps.importResourceTypeByNameFromFile: end`);\n return outcome;\n}\n\n/**\n * Import first resource type from file\n * @param {string} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstResourceTypeFromFile(\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ResourceTypeOps.importFirstResourceTypeFromFile: begin`);\n const filePath = getFilePath(file);\n showSpinner(`Importing ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importFirstResourceType(fileData);\n outcome = true;\n succeedSpinner(`Imported ${filePath}.`);\n } catch (error) {\n failSpinner(`Error importing ${filePath}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.ResourceTypeOps.importFirstResourceTypeFromFile: end`);\n return outcome;\n}\n\n/**\n * Import resource types from file\n * @param {string} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importResourceTypesFromFile(\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ResourceTypeOps.importResourceTypesFromFile: begin`);\n const filePath = getFilePath(file);\n showSpinner(`Importing ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importResourceTypes(fileData);\n outcome = true;\n succeedSpinner(`Imported ${filePath}.`);\n } catch (error) {\n failSpinner(`Error importing ${filePath}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.ResourceTypeOps.importResourceTypesFromFile: end`);\n return outcome;\n}\n\n/**\n * Import resource types from files\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importResourceTypesFromFiles(): Promise<boolean> {\n const errors = [];\n try {\n debugMessage(`cli.ResourceTypeOps.importResourceTypesFromFiles: begin`);\n const names = fs.readdirSync(getWorkingDirectory());\n const files = names\n .filter((name) => name.toLowerCase().endsWith('.resourcetype.authz.json'))\n .map((name) => getFilePath(name));\n createProgressBar(files.length, 'Importing resource types...');\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData: ResourceTypeExportInterface = JSON.parse(data);\n const count = Object.keys(fileData.resourcetype).length;\n total += count;\n await importResourceTypes(fileData);\n updateProgressBar(`Imported ${count} resource types from ${file}`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error importing resource types from ${file}`);\n printMessage(error, 'error');\n }\n }\n stopProgressBar(\n `Finished importing ${total} resource types from ${files.length} files.`\n );\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error importing resource types from files.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.ResourceTypeOps.importResourceTypesFromFiles: end`);\n return 0 === errors.length;\n}\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAGpD,OAAOC,EAAE,MAAM,IAAI;AAEnB,SACEC,iBAAiB,EACjBC,iBAAiB,EACjBC,WAAW,EACXC,YAAY,EACZC,WAAW,EACXC,YAAY,EACZC,WAAW,EACXC,eAAe,EACfC,cAAc,EACdC,iBAAiB,QACZ,kBAAkB;AACzB,SACEC,gBAAgB,EAChBC,cAAc,EACdC,SAAS,QACJ,4BAA4B;AAEnC,MAAM;EAAEC,YAAY;EAAEC,WAAW;EAAEC;AAAoB,CAAC,GAAGlB,KAAK,CAACmB,KAAK;AACtE,MAAM;EACJC,iBAAiB;EACjBC,gBAAgB;EAChBC,sBAAsB;EACtBC,kBAAkB;EAClBC,wBAAwB;EACxBC,mBAAmB;EACnBC,kBAAkB;EAClBC,wBAAwB;EACxBC,uBAAuB;EACvBC;AACF,CAAC,GAAG7B,KAAK,CAAC8B,KAAK,CAACC,YAAY;;AAE5B;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,iBAAiBA,CAACC,IAAI,GAAG,KAAK,EAAoB;EACtE,IAAIC,OAAO,GAAG,KAAK;EACnB,IAAI;IACF,MAAMC,aAAa,GAAG,MAAMf,iBAAiB,CAAC,CAAC;IAC/Ce,aAAa,CAACC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,IAAI,CAACC,aAAa,CAACF,CAAC,CAACC,IAAI,CAAC,CAAC;IAC1D,IAAIN,IAAI,EAAE;MACR,MAAMQ,KAAK,GAAGpC,WAAW,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;MAC1D,KAAK,MAAM0B,YAAY,IAAII,aAAa,EAAE;QACxCM,KAAK,CAACC,IAAI,CAAC,CACR,GAAEX,YAAY,CAACQ,IAAK,EAAC,EACrB,GAAER,YAAY,CAACY,WAAY,EAAC,EAC5B,GAAEZ,YAAY,CAACa,IAAK,EAAC,CACvB,CAAC;MACJ;MACApC,YAAY,CAACiC,KAAK,CAACI,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACxC,CAAC,MAAM;MACL,KAAK,MAAMd,YAAY,IAAII,aAAa,EAAE;QACxC3B,YAAY,CAAE,GAAEuB,YAAY,CAACQ,IAAK,EAAC,EAAE,MAAM,CAAC;MAC9C;IACF;IACAL,OAAO,GAAG,IAAI;EAChB,CAAC,CAAC,OAAOY,GAAG,EAAE;IACZtC,YAAY,CAAE,4BAA2BsC,GAAG,CAACC,OAAQ,EAAC,EAAE,OAAO,CAAC;IAChEvC,YAAY,CAACsC,GAAG,EAAE,OAAO,CAAC;EAC5B;EACA,OAAOZ,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAec,oBAAoBA,CACxCC,gBAAwB,EACxBC,IAAI,GAAG,KAAK,EACM;EAClB,IAAIhB,OAAO,GAAG,KAAK;EACnB,IAAI;IACF,MAAMH,YAAY,GAAG,MAAMV,gBAAgB,CAAC4B,gBAAgB,CAAC;IAC7D,IAAIC,IAAI,EAAE;MACR1C,YAAY,CAACuB,YAAY,EAAE,MAAM,CAAC;IACpC,CAAC,MAAM;MACL,MAAMU,KAAK,GAAGtC,iBAAiB,CAAC4B,YAAY,CAAC;MAC7CvB,YAAY,CAACiC,KAAK,CAACI,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACxC;IACAX,OAAO,GAAG,IAAI;EAChB,CAAC,CAAC,OAAOiB,KAAK,EAAE;IAAA,IAAAC,eAAA;IACd,IAAI,EAAAA,eAAA,GAAAD,KAAK,CAACE,QAAQ,cAAAD,eAAA,uBAAdA,eAAA,CAAgBE,MAAM,MAAK,GAAG,EAAE;MAClC9C,YAAY,CACT,2BAA0ByC,gBAAiB,4BAA2BhD,KAAK,CAACsD,QAAQ,CAAC,CAAE,EAAC,EACzF,OACF,CAAC;IACH,CAAC,MAAM;MAAA,IAAAC,gBAAA;MACLhD,YAAY,CAAC,EAAAgD,gBAAA,GAAAL,KAAK,CAACE,QAAQ,cAAAG,gBAAA,gBAAAA,gBAAA,GAAdA,gBAAA,CAAgBC,IAAI,cAAAD,gBAAA,uBAApBA,gBAAA,CAAsBT,OAAO,KAAII,KAAK,CAACJ,OAAO,EAAE,OAAO,CAAC;IACvE;EACF;EACA,OAAOb,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAewB,0BAA0BA,CAC9CC,gBAAwB,EACxBT,IAAI,GAAG,KAAK,EACM;EAClB,IAAIhB,OAAO,GAAG,KAAK;EACnB,IAAI;IACF,MAAMH,YAAY,GAAG,MAAMT,sBAAsB,CAACqC,gBAAgB,CAAC;IACnE,IAAIT,IAAI,EAAE;MACR1C,YAAY,CAACuB,YAAY,EAAE,MAAM,CAAC;IACpC,CAAC,MAAM;MACL,MAAMU,KAAK,GAAGtC,iBAAiB,CAAC4B,YAAY,CAAC;MAC7CvB,YAAY,CAACiC,KAAK,CAACI,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACxC;IACAX,OAAO,GAAG,IAAI;EAChB,CAAC,CAAC,OAAOiB,KAAK,EAAE;IAAA,IAAAS,gBAAA;IACd,IAAI,EAAAA,gBAAA,GAAAT,KAAK,CAACE,QAAQ,cAAAO,gBAAA,uBAAdA,gBAAA,CAAgBN,MAAM,MAAK,GAAG,EAAE;MAClC9C,YAAY,CACT,2BAA0BmD,gBAAiB,4BAA2B1D,KAAK,CAACsD,QAAQ,CAAC,CAAE,EAAC,EACzF,OACF,CAAC;IACH,CAAC,MAAM;MAAA,IAAAM,gBAAA;MACLrD,YAAY,CAAC,EAAAqD,gBAAA,GAAAV,KAAK,CAACE,QAAQ,cAAAQ,gBAAA,gBAAAA,gBAAA,GAAdA,gBAAA,CAAgBJ,IAAI,cAAAI,gBAAA,uBAApBA,gBAAA,CAAsBd,OAAO,KAAII,KAAK,CAACJ,OAAO,EAAE,OAAO,CAAC;IACvE;EACF;EACA,OAAOb,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAe4B,kBAAkBA,CACtCb,gBAAwB,EACiB;EACzC3C,YAAY,CAAE,+CAA8C,CAAC;EAC7DG,WAAW,CAAE,YAAWwC,gBAAiB,KAAI,CAAC;EAC9C,IAAIf,OAAO,GAAG,KAAK;EACnB,MAAM6B,MAAM,GAAG,EAAE;EACjB,IAAI;IACFzD,YAAY,CAAE,0BAAyB2C,gBAAiB,EAAC,CAAC;IAC1D,MAAMa,kBAAkB,CAACb,gBAAgB,CAAC;EAC5C,CAAC,CAAC,OAAOE,KAAK,EAAE;IACdY,MAAM,CAACrB,IAAI,CAACS,KAAK,CAAC;EACpB;EACA,IAAIY,MAAM,CAACC,MAAM,EAAE;IACjB,MAAMC,aAAa,GAAGF,MAAM,CACzBG,GAAG,CAAEf,KAAK;MAAA,IAAAgB,gBAAA;MAAA,OAAK,EAAAA,gBAAA,GAAAhB,KAAK,CAACE,QAAQ,cAAAc,gBAAA,gBAAAA,gBAAA,GAAdA,gBAAA,CAAgBV,IAAI,cAAAU,gBAAA,uBAApBA,gBAAA,CAAsBpB,OAAO,KAAII,KAAK,CAACJ,OAAO;IAAA,EAAC,CAC9DqB,IAAI,CAAC,IAAI,CAAC;IACb7D,WAAW,CAAE,kBAAiB0C,gBAAiB,KAAIgB,aAAc,EAAC,CAAC;EACrE,CAAC,MAAM;IACLtD,cAAc,CAAE,WAAUsC,gBAAiB,GAAE,CAAC;IAC9Cf,OAAO,GAAG,IAAI;EAChB;EACA5B,YAAY,CACT,wDAAuD4B,OAAQ,GAClE,CAAC;EACD,OAAOA,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAemC,wBAAwBA,CAC5CV,gBAAwB,EACiB;EACzCrD,YAAY,CAAE,qDAAoD,CAAC;EACnEG,WAAW,CAAE,YAAWkD,gBAAiB,KAAI,CAAC;EAC9C,IAAIzB,OAAO,GAAG,KAAK;EACnB,MAAM6B,MAAM,GAAG,EAAE;EACjB,IAAI;IACFzD,YAAY,CAAE,0BAAyBqD,gBAAiB,EAAC,CAAC;IAC1D,MAAMU,wBAAwB,CAACV,gBAAgB,CAAC;EAClD,CAAC,CAAC,OAAOR,KAAK,EAAE;IACdY,MAAM,CAACrB,IAAI,CAACS,KAAK,CAAC;EACpB;EACA,IAAIY,MAAM,CAACC,MAAM,EAAE;IACjB,MAAMC,aAAa,GAAGF,MAAM,CACzBG,GAAG,CAAEf,KAAK;MAAA,IAAAmB,gBAAA;MAAA,OAAK,EAAAA,gBAAA,GAAAnB,KAAK,CAACE,QAAQ,cAAAiB,gBAAA,gBAAAA,gBAAA,GAAdA,gBAAA,CAAgBb,IAAI,cAAAa,gBAAA,uBAApBA,gBAAA,CAAsBvB,OAAO,KAAII,KAAK,CAACJ,OAAO;IAAA,EAAC,CAC9DqB,IAAI,CAAC,IAAI,CAAC;IACb7D,WAAW,CAAE,kBAAiBoD,gBAAiB,KAAIM,aAAc,EAAC,CAAC;EACrE,CAAC,MAAM;IACLtD,cAAc,CAAE,WAAUgD,gBAAiB,GAAE,CAAC;IAC9CzB,OAAO,GAAG,IAAI;EAChB;EACA5B,YAAY,CACT,8DAA6D4B,OAAQ,GACxE,CAAC;EACD,OAAOA,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAeqC,mBAAmBA,CAAA,EAEvC;EACAjE,YAAY,CAAE,gDAA+C,CAAC;EAC9D,IAAI4B,OAAO,GAAG,KAAK;EACnB,MAAM6B,MAAM,GAAG,EAAE;EACjB,IAAI5B,aAAqC,GAAG,EAAE;EAC9C,IAAI;IACF1B,WAAW,CAAE,kCAAiC,CAAC;IAC/C,IAAI;MACF0B,aAAa,GAAG,MAAMf,iBAAiB,CAAC,CAAC;MACzCT,cAAc,CAAE,SAAQwB,aAAa,CAAC6B,MAAO,kBAAiB,CAAC;IACjE,CAAC,CAAC,OAAOb,KAAK,EAAE;MACdA,KAAK,CAACJ,OAAO,GAAI,wCAAuCI,KAAK,CAACJ,OAAQ,EAAC;MACvExC,WAAW,CAAC4C,KAAK,CAACJ,OAAO,CAAC;MAC1B,MAAMI,KAAK;IACb;IACA,IAAIhB,aAAa,CAAC6B,MAAM,EACtB5D,iBAAiB,CACf+B,aAAa,CAAC6B,MAAM,EACnB,YAAW7B,aAAa,CAAC6B,MAAO,oBACnC,CAAC;IACH,KAAK,MAAMjC,YAAY,IAAII,aAAa,EAAE;MACxC,MAAMqC,cAAc,GAAGzC,YAAY,CAACa,IAAI;MACxC,IAAI;QACFtC,YAAY,CAAE,0BAAyBkE,cAAe,EAAC,CAAC;QACxD,MAAMV,kBAAkB,CAACU,cAAc,CAAC;QACxC5D,iBAAiB,CAAE,WAAU4D,cAAe,EAAC,CAAC;MAChD,CAAC,CAAC,OAAOrB,KAAK,EAAE;QACdA,KAAK,CAACJ,OAAO,GAAI,gCAA+ByB,cAAe,KAAIrB,KAAM,EAAC;QAC1EvC,iBAAiB,CAACuC,KAAK,CAACJ,OAAO,CAAC;QAChCgB,MAAM,CAACrB,IAAI,CAACS,KAAK,CAAC;MACpB;IACF;EACF,CAAC,CAAC,OAAOA,KAAK,EAAE;IACdA,KAAK,CAACJ,OAAO,GAAI,kCAAiCI,KAAM,EAAC;IACzDY,MAAM,CAACrB,IAAI,CAACS,KAAK,CAAC;EACpB,CAAC,SAAS;IACR,IAAIY,MAAM,CAACC,MAAM,EAAE;MACjB,MAAMC,aAAa,GAAGF,MAAM,CAACG,GAAG,CAAEf,KAAK,IAAKA,KAAK,CAACJ,OAAO,CAAC,CAACqB,IAAI,CAAC,IAAI,CAAC;MACrE,IAAIjC,aAAa,CAAC6B,MAAM,EACtBtD,eAAe,CAAE,sCAAqCuD,aAAc,EAAC,CAAC;IAC1E,CAAC,MAAM;MACL,IAAI9B,aAAa,CAAC6B,MAAM,EACtBtD,eAAe,CAAE,WAAUyB,aAAa,CAAC6B,MAAO,kBAAiB,CAAC;MACpE9B,OAAO,GAAG,IAAI;IAChB;EACF;EACA5B,YAAY,CACT,yDAAwD4B,OAAQ,GACnE,CAAC;EACD,OAAOA,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeuC,wBAAwBA,CAC5CxB,gBAAwB,EACxByB,IAAY,EACM;EAClB,IAAIxC,OAAO,GAAG,KAAK;EACnB5B,YAAY,CAAE,qDAAoD,CAAC;EACnEG,WAAW,CAAE,aAAYwC,gBAAiB,KAAI,CAAC;EAC/C,IAAI;IACF,IAAI0B,QAAQ,GAAG9D,gBAAgB,CAACoC,gBAAgB,EAAE,oBAAoB,CAAC;IACvE,IAAIyB,IAAI,EAAE;MACRC,QAAQ,GAAGD,IAAI;IACjB;IACA,MAAME,QAAQ,GAAG3D,WAAW,CAAC0D,QAAQ,EAAE,IAAI,CAAC;IAC5C,MAAME,UAAU,GAAG,MAAMtD,kBAAkB,CAAC0B,gBAAgB,CAAC;IAC7DnC,cAAc,CAAC+D,UAAU,EAAED,QAAQ,CAAC;IACpCjE,cAAc,CAAE,YAAWsC,gBAAiB,OAAM2B,QAAS,GAAE,CAAC;IAC9D1C,OAAO,GAAG,IAAI;EAChB,CAAC,CAAC,OAAOiB,KAAK,EAAE;IACd5C,WAAW,CAAE,mBAAkB0C,gBAAiB,KAAIE,KAAK,CAACJ,OAAQ,EAAC,CAAC;EACtE;EACAzC,YAAY,CAAE,mDAAkD,CAAC;EACjE,OAAO4B,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAe4C,8BAA8BA,CAClDnB,gBAAwB,EACxBe,IAAY,EACM;EAClB,IAAIxC,OAAO,GAAG,KAAK;EACnB5B,YAAY,CAAE,2DAA0D,CAAC;EACzEG,WAAW,CAAE,aAAYkD,gBAAiB,KAAI,CAAC;EAC/C,IAAI;IACF,IAAIgB,QAAQ,GAAG9D,gBAAgB,CAAC8C,gBAAgB,EAAE,oBAAoB,CAAC;IACvE,IAAIe,IAAI,EAAE;MACRC,QAAQ,GAAGD,IAAI;IACjB;IACA,MAAME,QAAQ,GAAG3D,WAAW,CAAC0D,QAAQ,EAAE,IAAI,CAAC;IAC5C,MAAME,UAAU,GAAG,MAAMrD,wBAAwB,CAACmC,gBAAgB,CAAC;IACnE7C,cAAc,CAAC+D,UAAU,EAAED,QAAQ,CAAC;IACpCjE,cAAc,CAAE,YAAWgD,gBAAiB,OAAMiB,QAAS,GAAE,CAAC;IAC9D1C,OAAO,GAAG,IAAI;EAChB,CAAC,CAAC,OAAOiB,KAAK,EAAE;IACd5C,WAAW,CAAE,mBAAkBoD,gBAAiB,KAAIR,KAAK,CAACJ,OAAQ,EAAC,CAAC;EACtE;EACAzC,YAAY,CAAE,yDAAwD,CAAC;EACvE,OAAO4B,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAe6C,yBAAyBA,CAC7CL,IAAY,EACM;EAClB,IAAIxC,OAAO,GAAG,KAAK;EACnB5B,YAAY,CAAE,sDAAqD,CAAC;EACpEG,WAAW,CAAE,iCAAgC,CAAC;EAC9C,IAAI;IACF,IAAIkE,QAAQ,GAAG9D,gBAAgB,CAC5B,MAAKE,SAAS,CAACC,YAAY,CAACf,KAAK,CAACsD,QAAQ,CAAC,CAAC,CAAC,CAAE,eAAc,EAC9D,oBACF,CAAC;IACD,IAAImB,IAAI,EAAE;MACRC,QAAQ,GAAGD,IAAI;IACjB;IACA,MAAME,QAAQ,GAAG3D,WAAW,CAAC0D,QAAQ,EAAE,IAAI,CAAC;IAC5C,MAAME,UAAU,GAAG,MAAMpD,mBAAmB,CAAC,CAAC;IAC9CX,cAAc,CAAC+D,UAAU,EAAED,QAAQ,CAAC;IACpCjE,cAAc,CAAE,kCAAiCiE,QAAS,GAAE,CAAC;IAC7D1C,OAAO,GAAG,IAAI;EAChB,CAAC,CAAC,OAAOiB,KAAK,EAAE;IACd5C,WAAW,CAAE,mCAAkC4C,KAAK,CAACJ,OAAQ,EAAC,CAAC;EACjE;EACAzC,YAAY,CAAE,oDAAmD,CAAC;EAClE,OAAO4B,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAe8C,0BAA0BA,CAAA,EAAqB;EACnE1E,YAAY,CAAE,uDAAsD,CAAC;EACrE,MAAMyD,MAAM,GAAG,EAAE;EACjB,IAAI;IACF,MAAM5B,aAAqC,GAAG,MAAMf,iBAAiB,CAAC,CAAC;IACvEhB,iBAAiB,CAAC+B,aAAa,CAAC6B,MAAM,EAAE,6BAA6B,CAAC;IACtE,KAAK,MAAMjC,YAAY,IAAII,aAAa,EAAE;MACxC,MAAMuC,IAAI,GAAG7D,gBAAgB,CAACkB,YAAY,CAACQ,IAAI,EAAE,oBAAoB,CAAC;MACtE,IAAI;QACF,MAAMsC,UAAuC,GAC3C,MAAMtD,kBAAkB,CAACQ,YAAY,CAACa,IAAI,CAAC;QAC7C9B,cAAc,CAAC+D,UAAU,EAAE5D,WAAW,CAACyD,IAAI,EAAE,IAAI,CAAC,CAAC;QACnD9D,iBAAiB,CAAE,YAAWmB,YAAY,CAACQ,IAAK,GAAE,CAAC;MACrD,CAAC,CAAC,OAAOY,KAAK,EAAE;QACdY,MAAM,CAACrB,IAAI,CAACS,KAAK,CAAC;QAClBvC,iBAAiB,CAAE,mBAAkBmB,YAAY,CAACQ,IAAK,GAAE,CAAC;MAC5D;IACF;IACA7B,eAAe,CAAE,kBAAiB,CAAC;EACrC,CAAC,CAAC,OAAOyC,KAAK,EAAE;IACdY,MAAM,CAACrB,IAAI,CAACS,KAAK,CAAC;IAClBzC,eAAe,CAAE,yCAAwC,CAAC;EAC5D;EACAJ,YAAY,CAAE,qDAAoD,CAAC;EACnE,OAAO,CAAC,KAAKyD,MAAM,CAACC,MAAM;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeiB,0BAA0BA,CAC9CT,cAAsB,EACtBE,IAAY,EACM;EAClB,IAAIxC,OAAO,GAAG,KAAK;EACnB5B,YAAY,CAAE,uDAAsD,CAAC;EACrEG,WAAW,CAAE,aAAY+D,cAAe,KAAI,CAAC;EAC7C,IAAI;IACF,MAAMf,IAAI,GAAGvD,EAAE,CAACgF,YAAY,CAACjE,WAAW,CAACyD,IAAI,CAAC,EAAE,MAAM,CAAC;IACvD,MAAMS,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAAC5B,IAAI,CAAC;IACjC,MAAM/B,kBAAkB,CAAC8C,cAAc,EAAEW,QAAQ,CAAC;IAClDjD,OAAO,GAAG,IAAI;IACdvB,cAAc,CAAE,YAAW6D,cAAe,GAAE,CAAC;EAC/C,CAAC,CAAC,OAAOrB,KAAK,EAAE;IACd5C,WAAW,CAAE,mBAAkBiE,cAAe,KAAIrB,KAAK,CAACJ,OAAQ,EAAC,CAAC;IAClEvC,YAAY,CAAC2C,KAAK,EAAE,OAAO,CAAC;EAC9B;EACA7C,YAAY,CAAE,qDAAoD,CAAC;EACnE,OAAO4B,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeoD,gCAAgCA,CACpD3B,gBAAwB,EACxBe,IAAY,EACM;EAClB,IAAIxC,OAAO,GAAG,KAAK;EACnB5B,YAAY,CAAE,6DAA4D,CAAC;EAC3EG,WAAW,CAAE,aAAYkD,gBAAiB,KAAI,CAAC;EAC/C,IAAI;IACF,MAAMF,IAAI,GAAGvD,EAAE,CAACgF,YAAY,CAACjE,WAAW,CAACyD,IAAI,CAAC,EAAE,MAAM,CAAC;IACvD,MAAMS,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAAC5B,IAAI,CAAC;IACjC,MAAM9B,wBAAwB,CAACgC,gBAAgB,EAAEwB,QAAQ,CAAC;IAC1DjD,OAAO,GAAG,IAAI;IACdvB,cAAc,CAAE,YAAWgD,gBAAiB,GAAE,CAAC;EACjD,CAAC,CAAC,OAAOR,KAAK,EAAE;IACd5C,WAAW,CAAE,mBAAkBoD,gBAAiB,KAAIR,KAAK,CAACJ,OAAQ,EAAC,CAAC;IACpEvC,YAAY,CAAC2C,KAAK,EAAE,OAAO,CAAC;EAC9B;EACA7C,YAAY,CAAE,2DAA0D,CAAC;EACzE,OAAO4B,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeqD,+BAA+BA,CACnDb,IAAY,EACM;EAClB,IAAIxC,OAAO,GAAG,KAAK;EACnB5B,YAAY,CAAE,4DAA2D,CAAC;EAC1E,MAAMsE,QAAQ,GAAG3D,WAAW,CAACyD,IAAI,CAAC;EAClCjE,WAAW,CAAE,aAAYmE,QAAS,KAAI,CAAC;EACvC,IAAI;IACF,MAAMnB,IAAI,GAAGvD,EAAE,CAACgF,YAAY,CAACN,QAAQ,EAAE,MAAM,CAAC;IAC9C,MAAMO,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAAC5B,IAAI,CAAC;IACjC,MAAM7B,uBAAuB,CAACuD,QAAQ,CAAC;IACvCjD,OAAO,GAAG,IAAI;IACdvB,cAAc,CAAE,YAAWiE,QAAS,GAAE,CAAC;EACzC,CAAC,CAAC,OAAOzB,KAAK,EAAE;IACd5C,WAAW,CAAE,mBAAkBqE,QAAS,GAAE,CAAC;IAC3CpE,YAAY,CAAC2C,KAAK,EAAE,OAAO,CAAC;EAC9B;EACA7C,YAAY,CAAE,0DAAyD,CAAC;EACxE,OAAO4B,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAesD,2BAA2BA,CAC/Cd,IAAY,EACM;EAClB,IAAIxC,OAAO,GAAG,KAAK;EACnB5B,YAAY,CAAE,wDAAuD,CAAC;EACtE,MAAMsE,QAAQ,GAAG3D,WAAW,CAACyD,IAAI,CAAC;EAClCjE,WAAW,CAAE,aAAYmE,QAAS,KAAI,CAAC;EACvC,IAAI;IACF,MAAMnB,IAAI,GAAGvD,EAAE,CAACgF,YAAY,CAACN,QAAQ,EAAE,MAAM,CAAC;IAC9C,MAAMO,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAAC5B,IAAI,CAAC;IACjC,MAAM5B,mBAAmB,CAACsD,QAAQ,CAAC;IACnCjD,OAAO,GAAG,IAAI;IACdvB,cAAc,CAAE,YAAWiE,QAAS,GAAE,CAAC;EACzC,CAAC,CAAC,OAAOzB,KAAK,EAAE;IACd5C,WAAW,CAAE,mBAAkBqE,QAAS,GAAE,CAAC;IAC3CpE,YAAY,CAAC2C,KAAK,EAAE,OAAO,CAAC;EAC9B;EACA7C,YAAY,CAAE,sDAAqD,CAAC;EACpE,OAAO4B,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAeuD,4BAA4BA,CAAA,EAAqB;EACrE,MAAM1B,MAAM,GAAG,EAAE;EACjB,IAAI;IACFzD,YAAY,CAAE,yDAAwD,CAAC;IACvE,MAAMoF,KAAK,GAAGxF,EAAE,CAACyF,WAAW,CAACzE,mBAAmB,CAAC,CAAC,CAAC;IACnD,MAAM0E,KAAK,GAAGF,KAAK,CAChBG,MAAM,CAAEtD,IAAI,IAAKA,IAAI,CAACuD,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,CACzE7B,GAAG,CAAE3B,IAAI,IAAKtB,WAAW,CAACsB,IAAI,CAAC,CAAC;IACnCnC,iBAAiB,CAACwF,KAAK,CAAC5B,MAAM,EAAE,6BAA6B,CAAC;IAC9D,IAAIgC,KAAK,GAAG,CAAC;IACb,KAAK,MAAMtB,IAAI,IAAIkB,KAAK,EAAE;MACxB,IAAI;QACF,MAAMnC,IAAI,GAAGvD,EAAE,CAACgF,YAAY,CAACR,IAAI,EAAE,MAAM,CAAC;QAC1C,MAAMS,QAAqC,GAAGC,IAAI,CAACC,KAAK,CAAC5B,IAAI,CAAC;QAC9D,MAAMwC,KAAK,GAAGC,MAAM,CAACC,IAAI,CAAChB,QAAQ,CAACiB,YAAY,CAAC,CAACpC,MAAM;QACvDgC,KAAK,IAAIC,KAAK;QACd,MAAMpE,mBAAmB,CAACsD,QAAQ,CAAC;QACnCvE,iBAAiB,CAAE,YAAWqF,KAAM,wBAAuBvB,IAAK,EAAC,CAAC;MACpE,CAAC,CAAC,OAAOvB,KAAK,EAAE;QACdY,MAAM,CAACrB,IAAI,CAACS,KAAK,CAAC;QAClBvC,iBAAiB,CAAE,uCAAsC8D,IAAK,EAAC,CAAC;QAChElE,YAAY,CAAC2C,KAAK,EAAE,OAAO,CAAC;MAC9B;IACF;IACAzC,eAAe,CACZ,sBAAqBsF,KAAM,wBAAuBJ,KAAK,CAAC5B,MAAO,SAClE,CAAC;EACH,CAAC,CAAC,OAAOb,KAAK,EAAE;IACdY,MAAM,CAACrB,IAAI,CAACS,KAAK,CAAC;IAClBzC,eAAe,CAAE,4CAA2C,CAAC;IAC7DF,YAAY,CAAC2C,KAAK,EAAE,OAAO,CAAC;EAC9B;EACA7C,YAAY,CAAE,uDAAsD,CAAC;EACrE,OAAO,CAAC,KAAKyD,MAAM,CAACC,MAAM;AAC5B"}
|
|
1
|
+
{"version":3,"file":"ResourceTypeOps.js","names":["frodo","state","fs","createObjectTable","createProgressBar","createTable","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","getTypedFilename","saveJsonToFile","titleCase","getRealmName","getFilePath","getWorkingDirectory","utils","readResourceTypes","readResourceType","readResourceTypeByName","exportResourceType","exportResourceTypeByName","exportResourceTypes","importResourceType","importResourceTypeByName","importFirstResourceType","importResourceTypes","deleteResourceType","deleteResourceTypeByName","authz","resourceType","listResourceTypes","long","outcome","resourceTypes","sort","a","b","name","localeCompare","table","push","description","uuid","toString","err","message","describeResourceType","resourceTypeUuid","json","error","_error$response","response","status","getRealm","_error$response2","data","describeResourceTypeByName","resourceTypeName","_error$response3","_error$response4","deleteResourceTypeById","_error$response5","deleteResourceTypeUsingName","_error$response6","deleteResourceTypes","errors","length","resourceTypeId","errorMessages","map","join","exportResourceTypeToFile","file","fileName","filePath","exportData","exportResourceTypeByNameToFile","exportResourceTypesToFile","exportResourceTypesToFiles","importResourceTypeFromFile","readFileSync","fileData","JSON","parse","importResourceTypeByNameFromFile","importFirstResourceTypeFromFile","importResourceTypesFromFile","importResourceTypesFromFiles","names","readdirSync","files","filter","toLowerCase","endsWith","total","count","Object","keys","resourcetype"],"sources":["../../src/ops/ResourceTypeOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { type ResourceTypeSkeleton } from '@rockcarver/frodo-lib/types/api/ResourceTypesApi';\nimport { type ResourceTypeExportInterface } from '@rockcarver/frodo-lib/types/ops/ResourceTypeOps';\nimport fs from 'fs';\n\nimport {\n createObjectTable,\n createProgressBar,\n createTable,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\n\nconst { getRealmName, getFilePath, getWorkingDirectory } = frodo.utils;\nconst {\n readResourceTypes,\n readResourceType,\n readResourceTypeByName,\n exportResourceType,\n exportResourceTypeByName,\n exportResourceTypes,\n importResourceType,\n importResourceTypeByName,\n importFirstResourceType,\n importResourceTypes,\n deleteResourceType,\n deleteResourceTypeByName,\n} = frodo.authz.resourceType;\n\n/**\n * List resource types\n * @param {boolean} long more fields\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listResourceTypes(long = false): Promise<boolean> {\n let outcome = false;\n try {\n const resourceTypes = await readResourceTypes();\n resourceTypes.sort((a, b) => a.name.localeCompare(b.name));\n if (long) {\n const table = createTable(['Name', 'Description', 'Uuid']);\n for (const resourceType of resourceTypes) {\n table.push([\n `${resourceType.name}`,\n `${resourceType.description}`,\n `${resourceType.uuid}`,\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n for (const resourceType of resourceTypes) {\n printMessage(`${resourceType.name}`, 'data');\n }\n }\n outcome = true;\n } catch (err) {\n printMessage(`listResourceTypes ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n return outcome;\n}\n\n/**\n * Describe resource type by uuid\n * @param {string} resourceTypeUuid resource type uuid\n * @param {boolean} json JSON output\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function describeResourceType(\n resourceTypeUuid: string,\n json = false\n): Promise<boolean> {\n let outcome = false;\n try {\n const resourceType = await readResourceType(resourceTypeUuid);\n if (json) {\n printMessage(resourceType, 'data');\n } else {\n const table = createObjectTable(resourceType);\n printMessage(table.toString(), 'data');\n }\n outcome = true;\n } catch (error) {\n if (error.response?.status === 404) {\n printMessage(\n `Resource Type with uuid ${resourceTypeUuid} does not exist in realm ${state.getRealm()}`,\n 'error'\n );\n } else {\n printMessage(error.response?.data?.message || error.message, 'error');\n }\n }\n return outcome;\n}\n\n/**\n * Describe resource type by name\n * @param {string} resourceTypeName resource type name\n * @param {boolean} json JSON output\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function describeResourceTypeByName(\n resourceTypeName: string,\n json = false\n): Promise<boolean> {\n let outcome = false;\n try {\n const resourceType = await readResourceTypeByName(resourceTypeName);\n if (json) {\n printMessage(resourceType, 'data');\n } else {\n const table = createObjectTable(resourceType);\n printMessage(table.toString(), 'data');\n }\n outcome = true;\n } catch (error) {\n if (error.response?.status === 404) {\n printMessage(\n `Resource Type with name ${resourceTypeName} does not exist in realm ${state.getRealm()}`,\n 'error'\n );\n } else {\n printMessage(error.response?.data?.message || error.message, 'error');\n }\n }\n return outcome;\n}\n\n/**\n * Delete resource type by uuid\n * @param {string} resourceTypeUuid resource type uuid\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteResourceTypeById(\n resourceTypeUuid: string\n): Promise<boolean | ResourceTypeSkeleton> {\n debugMessage(`cli.ResourceTypeOps.deleteResourceType: begin`);\n showSpinner(`Deleting ${resourceTypeUuid}...`);\n let outcome = false;\n try {\n debugMessage(`Deleting resource type ${resourceTypeUuid}`);\n await deleteResourceType(resourceTypeUuid);\n succeedSpinner(`Deleted ${resourceTypeUuid}.`);\n outcome = true;\n } catch (error) {\n failSpinner(\n `Error deleting ${resourceTypeUuid}: ${\n error.response?.data?.message || error.message\n }`\n );\n }\n debugMessage(\n `cli.ResourceTypeOps.deleteResourceType: end [outcome=${outcome}]`\n );\n return outcome;\n}\n\n/**\n * Delete resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteResourceTypeUsingName(\n resourceTypeName: string\n): Promise<boolean | ResourceTypeSkeleton> {\n debugMessage(`cli.ResourceTypeOps.deleteResourceTypeByName: begin`);\n showSpinner(`Deleting ${resourceTypeName}...`);\n let outcome = false;\n try {\n debugMessage(`Deleting resource type ${resourceTypeName}`);\n await deleteResourceTypeByName(resourceTypeName);\n succeedSpinner(`Deleted ${resourceTypeName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(\n `Error deleting ${resourceTypeName}: ${\n error.response?.data?.message || error.message\n }`\n );\n }\n debugMessage(\n `cli.ResourceTypeOps.deleteResourceTypeByName: end [outcome=${outcome}]`\n );\n return outcome;\n}\n\n/**\n * Delete all resource types\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteResourceTypes(): Promise<\n boolean | ResourceTypeSkeleton\n> {\n debugMessage(`cli.ResourceTypeOps.deleteResourceTypes: begin`);\n let outcome = false;\n const errors = [];\n let resourceTypes: ResourceTypeSkeleton[] = [];\n try {\n showSpinner(`Retrieving all resource types...`);\n try {\n resourceTypes = await readResourceTypes();\n succeedSpinner(`Found ${resourceTypes.length} resource types.`);\n } catch (error) {\n error.message = `Error retrieving all resource types: ${error.message}`;\n failSpinner(error.message);\n throw error;\n }\n if (resourceTypes.length)\n createProgressBar(\n resourceTypes.length,\n `Deleting ${resourceTypes.length} resource types...`\n );\n for (const resourceType of resourceTypes) {\n const resourceTypeId = resourceType.uuid;\n try {\n debugMessage(`Deleting resource type ${resourceTypeId}`);\n await deleteResourceType(resourceTypeId);\n updateProgressBar(`Deleted ${resourceTypeId}`);\n } catch (error) {\n error.message = `Error deleting resource type ${resourceTypeId}: ${error}`;\n updateProgressBar(error.message);\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error deleting resource types: ${error}`;\n errors.push(error);\n } finally {\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n if (resourceTypes.length)\n stopProgressBar(`Error deleting all resource types: ${errorMessages}`);\n } else {\n if (resourceTypes.length)\n stopProgressBar(`Deleted ${resourceTypes.length} resource types.`);\n outcome = true;\n }\n }\n debugMessage(\n `cli.ResourceTypeOps.deleteResourceTypes: end [outcome=${outcome}]`\n );\n return outcome;\n}\n\n/**\n * Export resource type to file\n * @param {string} resourceTypeUuid resource type uuid\n * @param {string} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportResourceTypeToFile(\n resourceTypeUuid: string,\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ResourceTypeOps.exportResourceTypeToFile: begin`);\n showSpinner(`Exporting ${resourceTypeUuid}...`);\n try {\n let fileName = getTypedFilename(resourceTypeUuid, 'resourcetype.authz');\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await exportResourceType(resourceTypeUuid);\n saveJsonToFile(exportData, filePath);\n succeedSpinner(`Exported ${resourceTypeUuid} to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${resourceTypeUuid}: ${error.message}`);\n }\n debugMessage(`cli.ResourceTypeOps.exportResourceTypeToFile: end`);\n return outcome;\n}\n\n/**\n * Export resource type by name to file\n * @param {string} resourceTypeName resource type name\n * @param {string} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportResourceTypeByNameToFile(\n resourceTypeName: string,\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ResourceTypeOps.exportResourceTypeByNameToFile: begin`);\n showSpinner(`Exporting ${resourceTypeName}...`);\n try {\n let fileName = getTypedFilename(resourceTypeName, 'resourcetype.authz');\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await exportResourceTypeByName(resourceTypeName);\n saveJsonToFile(exportData, filePath);\n succeedSpinner(`Exported ${resourceTypeName} to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${resourceTypeName}: ${error.message}`);\n }\n debugMessage(`cli.ResourceTypeOps.exportResourceTypeByNameToFile: end`);\n return outcome;\n}\n\n/**\n * Export resource types to file\n * @param {string} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportResourceTypesToFile(\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ResourceTypeOps.exportResourceTypesToFile: begin`);\n showSpinner(`Exporting all resource types...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}ResourceTypes`,\n 'resourcetype.authz'\n );\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await exportResourceTypes();\n saveJsonToFile(exportData, filePath);\n succeedSpinner(`Exported all resource types to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting resource types: ${error.message}`);\n }\n debugMessage(`cli.ResourceTypeOps.exportResourceTypesToFile: end`);\n return outcome;\n}\n\n/**\n * Export all resource types to separate files\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportResourceTypesToFiles(): Promise<boolean> {\n debugMessage(`cli.ResourceTypeOps.exportResourceTypesToFiles: begin`);\n const errors = [];\n try {\n const resourceTypes: ResourceTypeSkeleton[] = await readResourceTypes();\n createProgressBar(resourceTypes.length, 'Exporting resource types...');\n for (const resourceType of resourceTypes) {\n const file = getTypedFilename(resourceType.name, 'resourcetype.authz');\n try {\n const exportData: ResourceTypeExportInterface =\n await exportResourceType(resourceType.uuid);\n saveJsonToFile(exportData, getFilePath(file, true));\n updateProgressBar(`Exported ${resourceType.name}.`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error exporting ${resourceType.name}.`);\n }\n }\n stopProgressBar(`Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error exporting resource types to files`);\n }\n debugMessage(`cli.ResourceTypeOps.exportResourceTypesToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import resource type from file\n * @param {string} resourceTypeId resource type id\n * @param {string} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importResourceTypeFromFile(\n resourceTypeId: string,\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ResourceTypeOps.importResourceTypeFromFile: begin`);\n showSpinner(`Importing ${resourceTypeId}...`);\n try {\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const fileData = JSON.parse(data);\n await importResourceType(resourceTypeId, fileData);\n outcome = true;\n succeedSpinner(`Imported ${resourceTypeId}.`);\n } catch (error) {\n failSpinner(`Error importing ${resourceTypeId}: ${error.message}`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.ResourceTypeOps.importResourceTypeFromFile: end`);\n return outcome;\n}\n\n/**\n * Import resource type by name from file\n * @param {string} resourceTypeName resource type name\n * @param {string} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importResourceTypeByNameFromFile(\n resourceTypeName: string,\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ResourceTypeOps.importResourceTypeByNameFromFile: begin`);\n showSpinner(`Importing ${resourceTypeName}...`);\n try {\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const fileData = JSON.parse(data);\n await importResourceTypeByName(resourceTypeName, fileData);\n outcome = true;\n succeedSpinner(`Imported ${resourceTypeName}.`);\n } catch (error) {\n failSpinner(`Error importing ${resourceTypeName}: ${error.message}`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.ResourceTypeOps.importResourceTypeByNameFromFile: end`);\n return outcome;\n}\n\n/**\n * Import first resource type from file\n * @param {string} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstResourceTypeFromFile(\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ResourceTypeOps.importFirstResourceTypeFromFile: begin`);\n const filePath = getFilePath(file);\n showSpinner(`Importing ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importFirstResourceType(fileData);\n outcome = true;\n succeedSpinner(`Imported ${filePath}.`);\n } catch (error) {\n failSpinner(`Error importing ${filePath}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.ResourceTypeOps.importFirstResourceTypeFromFile: end`);\n return outcome;\n}\n\n/**\n * Import resource types from file\n * @param {string} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importResourceTypesFromFile(\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ResourceTypeOps.importResourceTypesFromFile: begin`);\n const filePath = getFilePath(file);\n showSpinner(`Importing ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importResourceTypes(fileData);\n outcome = true;\n succeedSpinner(`Imported ${filePath}.`);\n } catch (error) {\n failSpinner(`Error importing ${filePath}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.ResourceTypeOps.importResourceTypesFromFile: end`);\n return outcome;\n}\n\n/**\n * Import resource types from files\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importResourceTypesFromFiles(): Promise<boolean> {\n const errors = [];\n try {\n debugMessage(`cli.ResourceTypeOps.importResourceTypesFromFiles: begin`);\n const names = fs.readdirSync(getWorkingDirectory());\n const files = names\n .filter((name) => name.toLowerCase().endsWith('.resourcetype.authz.json'))\n .map((name) => getFilePath(name));\n createProgressBar(files.length, 'Importing resource types...');\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData: ResourceTypeExportInterface = JSON.parse(data);\n const count = Object.keys(fileData.resourcetype).length;\n total += count;\n await importResourceTypes(fileData);\n updateProgressBar(`Imported ${count} resource types from ${file}`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error importing resource types from ${file}`);\n printMessage(error, 'error');\n }\n }\n stopProgressBar(\n `Finished importing ${total} resource types from ${files.length} files.`\n );\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error importing resource types from files.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.ResourceTypeOps.importResourceTypesFromFiles: end`);\n return 0 === errors.length;\n}\n"],"mappings":"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"}
|
package/esm/ops/Saml2Ops.js
CHANGED
|
@@ -90,7 +90,7 @@ export async function listSaml2Providers(long = false) {
|
|
|
90
90
|
for (const provider of providerList) {
|
|
91
91
|
table.push([provider.entityId, provider.location, provider.roles.map(role => roleMap[role]).join(', ')]);
|
|
92
92
|
}
|
|
93
|
-
printMessage(table.toString());
|
|
93
|
+
printMessage(table.toString(), 'data');
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
|
|
@@ -112,7 +112,7 @@ export async function describeSaml2Provider(entityId) {
|
|
|
112
112
|
rawProviderData.roles = roles;
|
|
113
113
|
rawProviderData.metadataUrl = getSaml2ProviderMetadataUrl(entityId);
|
|
114
114
|
const table = createObjectTable(rawProviderData);
|
|
115
|
-
printMessage(table.toString());
|
|
115
|
+
printMessage(table.toString(), 'data');
|
|
116
116
|
} catch (error) {
|
|
117
117
|
printMessage(error.message, 'error');
|
|
118
118
|
}
|