@rockcarver/frodo-lib 2.0.0-1 → 2.0.0-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/cjs/api/ApiTypes.js.map +1 -1
  3. package/cjs/index.js +1 -105
  4. package/cjs/index.js.map +1 -1
  5. package/cjs/lib/FrodoLib.js +20 -20
  6. package/cjs/lib/FrodoLib.js.map +1 -1
  7. package/cjs/ops/AgentOps.js +8 -0
  8. package/cjs/ops/AgentOps.js.map +1 -1
  9. package/cjs/ops/AuthenticateOps.js +33 -6
  10. package/cjs/ops/AuthenticateOps.js.map +1 -1
  11. package/cjs/ops/CirclesOfTrustOps.js +36 -10
  12. package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
  13. package/cjs/ops/ConnectionProfileOps.js +13 -126
  14. package/cjs/ops/ConnectionProfileOps.js.map +1 -1
  15. package/cjs/ops/IdmOps.js.map +1 -1
  16. package/cjs/ops/JourneyOps.js.map +1 -1
  17. package/cjs/ops/OAuth2OidcOps.js +84 -0
  18. package/cjs/ops/OAuth2OidcOps.js.map +1 -0
  19. package/cjs/ops/ResourceTypeOps.js +65 -49
  20. package/cjs/ops/ResourceTypeOps.js.map +1 -1
  21. package/cjs/ops/ServiceOps.js +3 -0
  22. package/cjs/ops/ServiceOps.js.map +1 -1
  23. package/cjs/ops/ThemeOps.js +28 -14
  24. package/cjs/ops/ThemeOps.js.map +1 -1
  25. package/cjs/ops/cloud/LogOps.js +3 -13
  26. package/cjs/ops/cloud/LogOps.js.map +1 -1
  27. package/cjs/ops/utils/Console.js +7 -7
  28. package/cjs/ops/utils/Console.js.map +1 -1
  29. package/cjs/ops/utils/ExportImportUtils.js +109 -0
  30. package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
  31. package/cjs/ops/utils/ExportImportUtils.test.js.map +1 -1
  32. package/cjs/ops/utils/Version.js +29 -6
  33. package/cjs/ops/utils/Version.js.map +1 -1
  34. package/cjs/ops/utils/Version.test.js.map +1 -1
  35. package/cjs/shared/State.js +0 -2
  36. package/cjs/shared/State.js.map +1 -1
  37. package/esm/index.mjs +1 -59
  38. package/esm/lib/FrodoLib.mjs +19 -18
  39. package/esm/ops/AgentOps.mjs +8 -0
  40. package/esm/ops/AuthenticateOps.mjs +24 -4
  41. package/esm/ops/CirclesOfTrustOps.mjs +18 -2
  42. package/esm/ops/ConnectionProfileOps.mjs +1 -105
  43. package/esm/ops/OAuth2OidcOps.mjs +40 -0
  44. package/esm/ops/ResourceTypeOps.mjs +14 -4
  45. package/esm/ops/ServiceOps.mjs +3 -0
  46. package/esm/ops/ThemeOps.mjs +7 -7
  47. package/esm/ops/cloud/LogOps.mjs +3 -13
  48. package/esm/ops/utils/Console.mjs +8 -8
  49. package/esm/ops/utils/ExportImportUtils.mjs +101 -0
  50. package/esm/ops/utils/ExportImportUtils.test.mjs +15 -2
  51. package/esm/ops/utils/Version.mjs +21 -4
  52. package/esm/ops/utils/Version.test.mjs +4 -1
  53. package/esm/shared/State.mjs +0 -2
  54. package/package.json +1 -1
  55. package/types/api/ApiTypes.d.ts +11 -11
  56. package/types/api/ApiTypes.d.ts.map +1 -1
  57. package/types/index.d.ts +1 -48
  58. package/types/index.d.ts.map +1 -1
  59. package/types/lib/FrodoLib.d.ts +13 -9
  60. package/types/lib/FrodoLib.d.ts.map +1 -1
  61. package/types/ops/AgentOps.d.ts +5 -0
  62. package/types/ops/AgentOps.d.ts.map +1 -1
  63. package/types/ops/AuthenticateOps.d.ts +11 -1
  64. package/types/ops/AuthenticateOps.d.ts.map +1 -1
  65. package/types/ops/CirclesOfTrustOps.d.ts +16 -2
  66. package/types/ops/CirclesOfTrustOps.d.ts.map +1 -1
  67. package/types/ops/ConnectionProfileOps.d.ts +0 -19
  68. package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
  69. package/types/ops/IdmOps.d.ts +1 -1
  70. package/types/ops/IdmOps.d.ts.map +1 -1
  71. package/types/ops/JourneyOps.d.ts +2 -2
  72. package/types/ops/JourneyOps.d.ts.map +1 -1
  73. package/types/ops/OAuth2OidcOps.d.ts +11 -0
  74. package/types/ops/OAuth2OidcOps.d.ts.map +1 -0
  75. package/types/ops/ResourceTypeOps.d.ts +3 -3
  76. package/types/ops/ResourceTypeOps.d.ts.map +1 -1
  77. package/types/ops/ServiceOps.d.ts +1 -0
  78. package/types/ops/ServiceOps.d.ts.map +1 -1
  79. package/types/ops/ThemeOps.d.ts +14 -14
  80. package/types/ops/ThemeOps.d.ts.map +1 -1
  81. package/types/ops/cloud/LogOps.d.ts +1 -1
  82. package/types/ops/cloud/LogOps.d.ts.map +1 -1
  83. package/types/ops/utils/Console.d.ts.map +1 -1
  84. package/types/ops/utils/ExportImportUtils.d.ts +43 -0
  85. package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
  86. package/types/ops/utils/Version.d.ts +16 -2
  87. package/types/ops/utils/Version.d.ts.map +1 -1
  88. package/types/shared/State.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceOps.js","names":["_ServiceApi","require","_Console","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","error","done","Promise","then","_asyncToGenerator","fn","self","args","err","ServiceOps","constructor","state","getListOfServices","_arguments","_this","globalConfig","getFullServices","_arguments2","_this2","deleteFullService","serviceId","_arguments3","_this3","deleteFullServices","_arguments4","_this4","exportService","_arguments5","_this5","exportServices","_arguments6","_this6","importService","importData","clean","_arguments7","_this7","importServices","_arguments8","_this8","exports","default","createServiceExportTemplate","meta","service","_x","_getListOfServices2","_ref","debugMessage","services","_getListOfServices","result","_x2","_getFullServices","_ref2","concat","serviceList","fullServiceData","all","map","_ref11","listItem","nextDescendents","getService","_id","getServiceDescendents","_error$response","_error$response2","_error$response2$data","response","status","data","message","_error$response3","_error$response3$data","printMessage","_x11","putFullService","_x3","_putFullService","_ref3","_rev","enabled","_error$response4","_error$response5","_error$response5$data","_error$response6","_error$response6$data","putService","serviceData","_ref12","descendent","type","_type","descendentId","putServiceNextDescendent","serviceType","serviceNextDescendentId","serviceNextDescendentData","_error$response7","_error$response7$data","_x12","putFullServices","_x4","_putFullServices","_ref4","serviceEntries","results","id","_error$response8","_error$response8$data","_error$response9","_error$response9$data","detail","JSON","stringify","_x5","_deleteFullService","_ref5","nextDescendent","deleteServiceNextDescendent","deleteService","_x6","_deleteFullServices","_ref6","_ref13","serviceListItem","_error$response10","_error$response11","_error$response11$dat","_error$response12","_error$response12$dat","_x13","_error$response13","_error$response13$dat","_x7","_exportService","_ref7","exportData","_error$response14","_error$response14$dat","_x8","_exportServices","_ref8","_error$response15","_error$response15$dat","_x9","_importService","_ref9","_x10","_importServices","_ref10","entries","_error$response16","_error$response16$dat","_error$response17","_error$response17$dat"],"sources":["ops/ServiceOps.ts"],"sourcesContent":["import { AmServiceSkeleton } from '../api/ApiTypes';\nimport {\n deleteService,\n deleteServiceNextDescendent,\n getService,\n getListOfServices as _getListOfServices,\n getServiceDescendents,\n putService,\n putServiceNextDescendent,\n ServiceNextDescendent,\n} from '../api/ServiceApi';\nimport State from '../shared/State';\nimport { ServiceExportInterface } from './OpsTypes';\nimport { debugMessage, printMessage } from './utils/Console';\n\nexport default class ServiceOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get list of services\n * @param {boolean} globalConfig true if the list of global services is requested, false otherwise. Default: false.\n */\n async getListOfServices(globalConfig = false) {\n return getListOfServices({ globalConfig, state: this.state });\n }\n\n /**\n * Get all services including their descendents.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving to an array of services with their descendants\n */\n async getFullServices(globalConfig = false): Promise<FullService[]> {\n return getFullServices({ globalConfig, state: this.state });\n }\n\n /**\n * Deletes the specified service\n * @param {string} serviceId The service to delete\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n async deleteFullService(serviceId: string, globalConfig = false) {\n return deleteFullService({ serviceId, globalConfig, state: this.state });\n }\n\n /**\n * Deletes all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n async deleteFullServices(globalConfig = false) {\n return deleteFullServices({ globalConfig, state: this.state });\n }\n\n /**\n * Export service. The response can be saved to file as is.\n * @param serviceId service id/name\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns {Promise<ServiceExportInterface>} Promise resolving to a ServiceExportInterface object.\n */\n async exportService(\n serviceId: string,\n globalConfig = false\n ): Promise<ServiceExportInterface> {\n return exportService({ serviceId, globalConfig, state: this.state });\n }\n\n /**\n * Export all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n async exportServices(globalConfig = false): Promise<ServiceExportInterface> {\n return exportServices({ globalConfig, state: this.state });\n }\n\n /**\n * Imports a single service using a reference to the service and a file to read the data from. Optionally clean (remove) an existing service first\n * @param {string} serviceId The service id/name to add\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove a possible existing service with the same id first.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving when the service has been imported\n */\n async importService(\n serviceId: string,\n importData: ServiceExportInterface,\n clean: boolean,\n globalConfig = false\n ): Promise<AmServiceSkeleton> {\n return importService({\n serviceId,\n importData,\n clean,\n globalConfig,\n state: this.state,\n });\n }\n\n /**\n * Imports multiple services from the same file. Optionally clean (remove) existing services first\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove possible existing services first\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n async importServices(\n importData: ServiceExportInterface,\n clean: boolean,\n globalConfig = false\n ) {\n return importServices({\n importData,\n clean,\n globalConfig,\n state: this.state,\n });\n }\n}\n\ninterface FullService extends AmServiceSkeleton {\n nextDescendents?: ServiceNextDescendent[];\n}\n\n/**\n * Create an empty service export template\n * @returns {SingleTreeExportInterface} an empty service export template\n */\nexport function createServiceExportTemplate(): ServiceExportInterface {\n return {\n meta: {},\n service: {},\n } as ServiceExportInterface;\n}\n\n/**\n * Get list of services\n * @param {boolean} globalConfig true if the list of global services is requested, false otherwise. Default: false.\n */\nexport async function getListOfServices({\n globalConfig = false,\n state,\n}: {\n globalConfig: boolean;\n state: State;\n}) {\n debugMessage(`ServiceOps.getListOfServices: start`);\n const services = (await _getListOfServices({ globalConfig, state })).result;\n debugMessage(`ServiceOps.getListOfServices: end`);\n return services;\n}\n\n/**\n * Get all services including their descendents.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving to an array of services with their descendants\n */\nexport async function getFullServices({\n globalConfig = false,\n state,\n}: {\n globalConfig: boolean;\n state: State;\n}): Promise<FullService[]> {\n debugMessage(\n `ServiceOps.getFullServices: start, globalConfig=${globalConfig}`\n );\n const serviceList = (await _getListOfServices({ globalConfig, state }))\n .result;\n\n const fullServiceData = await Promise.all(\n serviceList.map(async (listItem) => {\n try {\n const [service, nextDescendents] = await Promise.all([\n getService({ serviceId: listItem._id, globalConfig, state }),\n getServiceDescendents({\n serviceId: listItem._id,\n globalConfig,\n state,\n }),\n ]);\n\n return {\n ...service,\n nextDescendents,\n };\n } catch (error) {\n if (\n !(\n error.response?.status === 403 &&\n error.response?.data?.message ===\n 'This operation is not available in ForgeRock Identity Cloud.'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage(\n `Unable to retrieve data for ${listItem._id} with error: ${message}`,\n 'error'\n );\n }\n }\n })\n );\n\n debugMessage(`ServiceOps.getFullServices: end`);\n return fullServiceData.filter((data) => !!data); // make sure to filter out any undefined objects\n}\n\n/**\n * Saves a service using the provide id and data, including descendents\n * @param {string} serviceId the service id / name\n * @param {string} fullServiceData service object including descendants\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns promise resolving to a service object\n */\nasync function putFullService({\n serviceId,\n fullServiceData,\n clean,\n globalConfig = false,\n state,\n}: {\n serviceId: string;\n fullServiceData: FullService;\n clean: boolean;\n globalConfig: boolean;\n state: State;\n}): Promise<AmServiceSkeleton> {\n debugMessage(\n `ServiceOps.putFullService: start, serviceId=${serviceId}, globalConfig=${globalConfig}`\n );\n const nextDescendents = fullServiceData.nextDescendents;\n\n delete fullServiceData.nextDescendents;\n delete fullServiceData._rev;\n delete fullServiceData.enabled;\n\n if (clean) {\n try {\n debugMessage(`ServiceOps.putFullService: clean`);\n await deleteFullService({ serviceId, globalConfig, state });\n } catch (error) {\n if (\n !(\n error.response?.status === 404 &&\n error.response?.data?.message === 'Not Found'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage(\n `Error deleting service '${serviceId}' before import: ${message}`,\n 'error'\n );\n }\n }\n }\n\n // create service first\n const result = await putService({\n serviceId,\n serviceData: fullServiceData,\n globalConfig,\n state,\n });\n\n // return fast if no next descendents supplied\n if (nextDescendents.length === 0) {\n debugMessage(`ServiceOps.putFullService: end (w/o descendents)`);\n return result;\n }\n\n // now create next descendents\n await Promise.all(\n nextDescendents.map(async (descendent) => {\n const type = descendent._type._id;\n const descendentId = descendent._id;\n debugMessage(`ServiceOps.putFullService: descendentId=${descendentId}`);\n let result = undefined;\n try {\n result = await putServiceNextDescendent({\n serviceId,\n serviceType: type,\n serviceNextDescendentId: descendentId,\n serviceNextDescendentData: descendent,\n globalConfig,\n state,\n });\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(\n `Put descendent '${descendentId}' of service '${serviceId}': ${message}`,\n 'error'\n );\n }\n return result;\n })\n );\n debugMessage(`ServiceOps.putFullService: end (w/ descendents)`);\n}\n\n/**\n * Saves multiple services using the serviceEntries which contain both id and data with descendants\n * @param {[string, FullService][]} serviceEntries The services to add\n * @param {boolean} clean Indicates whether to remove possible existing services first\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns {Promise<AmService[]>} promise resolving to an array of service objects\n */\nasync function putFullServices({\n serviceEntries,\n clean,\n globalConfig = false,\n state,\n}: {\n serviceEntries: [string, FullService][];\n clean: boolean;\n globalConfig: boolean;\n state: State;\n}): Promise<AmServiceSkeleton[]> {\n debugMessage(\n `ServiceOps.putFullServices: start, globalConfig=${globalConfig}`\n );\n const results: AmServiceSkeleton[] = [];\n for (const [id, data] of serviceEntries) {\n try {\n const result = await putFullService({\n serviceId: id,\n fullServiceData: data,\n clean,\n globalConfig,\n state,\n });\n results.push(result);\n printMessage(`Imported: ${id}`, 'info');\n } catch (error) {\n const message = error.response?.data?.message;\n const detail = error.response?.data?.detail;\n printMessage(`Import service '${id}': ${message}`, 'error');\n if (detail) {\n printMessage(`Details: ${JSON.stringify(detail)}`, 'error');\n }\n }\n }\n debugMessage(`ServiceOps.putFullServices: end`);\n return results;\n}\n\n/**\n * Deletes the specified service\n * @param {string} serviceId The service to delete\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function deleteFullService({\n serviceId,\n globalConfig = false,\n state,\n}: {\n serviceId: string;\n globalConfig: boolean;\n state: State;\n}) {\n debugMessage(\n `ServiceOps.deleteFullService: start, globalConfig=${globalConfig}`\n );\n const serviceNextDescendentData = await getServiceDescendents({\n serviceId,\n globalConfig,\n state,\n });\n\n await Promise.all(\n serviceNextDescendentData.map((nextDescendent) =>\n deleteServiceNextDescendent({\n serviceId,\n serviceType: nextDescendent._type._id,\n serviceNextDescendentId: nextDescendent._id,\n globalConfig,\n state,\n })\n )\n );\n\n await deleteService({ serviceId, globalConfig, state });\n debugMessage(`ServiceOps.deleteFullService: end`);\n}\n\n/**\n * Deletes all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function deleteFullServices({\n globalConfig = false,\n state,\n}: {\n globalConfig: boolean;\n state: State;\n}) {\n debugMessage(\n `ServiceOps.deleteFullServices: start, globalConfig=${globalConfig}`\n );\n try {\n const serviceList = (await _getListOfServices({ globalConfig, state }))\n .result;\n\n await Promise.all(\n serviceList.map(async (serviceListItem) => {\n try {\n await deleteFullService({\n serviceId: serviceListItem._id,\n globalConfig,\n state,\n });\n } catch (error) {\n if (\n !(\n error.response?.status === 403 &&\n error.response?.data?.message ===\n 'This operation is not available in ForgeRock Identity Cloud.'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage(\n `Delete service '${serviceListItem._id}': ${message}`,\n 'error'\n );\n }\n }\n })\n );\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(`Delete services: ${message}`, 'error');\n }\n debugMessage(`ServiceOps.deleteFullServices: end`);\n}\n\n/**\n * Export service. The response can be saved to file as is.\n * @param serviceId service id/name\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns {Promise<ServiceExportInterface>} Promise resolving to a ServiceExportInterface object.\n */\nexport async function exportService({\n serviceId,\n globalConfig = false,\n state,\n}: {\n serviceId: string;\n globalConfig: boolean;\n state: State;\n}): Promise<ServiceExportInterface> {\n debugMessage(`ServiceOps.exportService: start, globalConfig=${globalConfig}`);\n const exportData = createServiceExportTemplate();\n try {\n const service = await getService({ serviceId, globalConfig, state });\n service.nextDescendents = await getServiceDescendents({\n serviceId,\n globalConfig,\n state,\n });\n exportData.service[serviceId] = service;\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(`Export service '${serviceId}': ${message}`, 'error');\n }\n debugMessage(`ServiceOps.exportService: end`);\n return exportData;\n}\n\n/**\n * Export all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function exportServices({\n globalConfig = false,\n state,\n}: {\n globalConfig: boolean;\n state: State;\n}): Promise<ServiceExportInterface> {\n debugMessage(\n `ServiceOps.exportServices: start, globalConfig=${globalConfig}`\n );\n const exportData = createServiceExportTemplate();\n try {\n const services = await getFullServices({ globalConfig, state });\n for (const service of services) {\n exportData.service[service._type._id] = service;\n }\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(`Export servics: ${message}`, 'error');\n }\n debugMessage(`ServiceOps.exportServices: end`);\n return exportData;\n}\n\n/**\n * Imports a single service using a reference to the service and a file to read the data from. Optionally clean (remove) an existing service first\n * @param {string} serviceId The service id/name to add\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove a possible existing service with the same id first.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving when the service has been imported\n */\nexport async function importService({\n serviceId,\n importData,\n clean,\n globalConfig = false,\n state,\n}: {\n serviceId: string;\n importData: ServiceExportInterface;\n clean: boolean;\n globalConfig: boolean;\n state: State;\n}): Promise<AmServiceSkeleton> {\n debugMessage(`ServiceOps.importService: start, globalConfig=${globalConfig}`);\n const serviceData = importData.service[serviceId];\n const result = await putFullService({\n serviceId,\n fullServiceData: serviceData,\n clean,\n globalConfig,\n state,\n });\n debugMessage(`ServiceOps.importService: end`);\n return result;\n}\n\n/**\n * Imports multiple services from the same file. Optionally clean (remove) existing services first\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove possible existing services first\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function importServices({\n importData,\n clean,\n globalConfig = false,\n state,\n}: {\n importData: ServiceExportInterface;\n clean: boolean;\n globalConfig: boolean;\n state: State;\n}) {\n debugMessage(\n `ServiceOps.importServices: start, globalConfig=${globalConfig}`\n );\n try {\n const result = await putFullServices({\n serviceEntries: Object.entries(importData.service),\n clean,\n globalConfig,\n state,\n });\n debugMessage(`ServiceOps.importServices: end`);\n return result;\n } catch (error) {\n const message = error.response?.data?.message;\n const detail = error.response?.data?.detail;\n printMessage(`Unable to import services: error: ${message}`, 'error');\n if (detail) {\n printMessage(`Details: ${JSON.stringify(detail)}`, 'error');\n }\n throw error;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ServiceOps.js","names":["_ServiceApi","require","_Console","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","error","done","Promise","then","_asyncToGenerator","fn","self","args","err","ServiceOps","constructor","state","createServiceExportTemplate","getListOfServices","_arguments","_this","globalConfig","getFullServices","_arguments2","_this2","deleteFullService","serviceId","_arguments3","_this3","deleteFullServices","_arguments4","_this4","exportService","_arguments5","_this5","exportServices","_arguments6","_this6","importService","importData","clean","_arguments7","_this7","importServices","_arguments8","_this8","exports","default","meta","service","_x","_getListOfServices2","_ref","debugMessage","services","_getListOfServices","result","_x2","_getFullServices","_ref2","concat","serviceList","fullServiceData","all","map","_ref11","listItem","nextDescendents","getService","_id","getServiceDescendents","_error$response","_error$response2","_error$response2$data","response","status","data","message","_error$response3","_error$response3$data","printMessage","_x11","putFullService","_x3","_putFullService","_ref3","_rev","enabled","_error$response4","_error$response5","_error$response5$data","_error$response6","_error$response6$data","putService","serviceData","_ref12","descendent","type","_type","descendentId","putServiceNextDescendent","serviceType","serviceNextDescendentId","serviceNextDescendentData","_error$response7","_error$response7$data","_x12","putFullServices","_x4","_putFullServices","_ref4","serviceEntries","results","id","_error$response8","_error$response8$data","_error$response9","_error$response9$data","detail","JSON","stringify","_x5","_deleteFullService","_ref5","nextDescendent","deleteServiceNextDescendent","deleteService","_x6","_deleteFullServices","_ref6","_ref13","serviceListItem","_error$response10","_error$response11","_error$response11$dat","_error$response12","_error$response12$dat","_x13","_error$response13","_error$response13$dat","_x7","_exportService","_ref7","exportData","_error$response14","_error$response14$dat","_x8","_exportServices","_ref8","_error$response15","_error$response15$dat","_x9","_importService","_ref9","_x10","_importServices","_ref10","entries","_error$response16","_error$response16$dat","_error$response17","_error$response17$dat"],"sources":["ops/ServiceOps.ts"],"sourcesContent":["import { AmServiceSkeleton } from '../api/ApiTypes';\nimport {\n deleteService,\n deleteServiceNextDescendent,\n getService,\n getListOfServices as _getListOfServices,\n getServiceDescendents,\n putService,\n putServiceNextDescendent,\n ServiceNextDescendent,\n} from '../api/ServiceApi';\nimport State from '../shared/State';\nimport { ServiceExportInterface } from './OpsTypes';\nimport { debugMessage, printMessage } from './utils/Console';\n\nexport default class ServiceOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n createServiceExportTemplate(): ServiceExportInterface {\n return createServiceExportTemplate();\n }\n\n /**\n * Get list of services\n * @param {boolean} globalConfig true if the list of global services is requested, false otherwise. Default: false.\n */\n async getListOfServices(globalConfig = false) {\n return getListOfServices({ globalConfig, state: this.state });\n }\n\n /**\n * Get all services including their descendents.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving to an array of services with their descendants\n */\n async getFullServices(globalConfig = false): Promise<FullService[]> {\n return getFullServices({ globalConfig, state: this.state });\n }\n\n /**\n * Deletes the specified service\n * @param {string} serviceId The service to delete\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n async deleteFullService(serviceId: string, globalConfig = false) {\n return deleteFullService({ serviceId, globalConfig, state: this.state });\n }\n\n /**\n * Deletes all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n async deleteFullServices(globalConfig = false) {\n return deleteFullServices({ globalConfig, state: this.state });\n }\n\n /**\n * Export service. The response can be saved to file as is.\n * @param serviceId service id/name\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns {Promise<ServiceExportInterface>} Promise resolving to a ServiceExportInterface object.\n */\n async exportService(\n serviceId: string,\n globalConfig = false\n ): Promise<ServiceExportInterface> {\n return exportService({ serviceId, globalConfig, state: this.state });\n }\n\n /**\n * Export all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n async exportServices(globalConfig = false): Promise<ServiceExportInterface> {\n return exportServices({ globalConfig, state: this.state });\n }\n\n /**\n * Imports a single service using a reference to the service and a file to read the data from. Optionally clean (remove) an existing service first\n * @param {string} serviceId The service id/name to add\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove a possible existing service with the same id first.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving when the service has been imported\n */\n async importService(\n serviceId: string,\n importData: ServiceExportInterface,\n clean: boolean,\n globalConfig = false\n ): Promise<AmServiceSkeleton> {\n return importService({\n serviceId,\n importData,\n clean,\n globalConfig,\n state: this.state,\n });\n }\n\n /**\n * Imports multiple services from the same file. Optionally clean (remove) existing services first\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove possible existing services first\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n async importServices(\n importData: ServiceExportInterface,\n clean: boolean,\n globalConfig = false\n ) {\n return importServices({\n importData,\n clean,\n globalConfig,\n state: this.state,\n });\n }\n}\n\ninterface FullService extends AmServiceSkeleton {\n nextDescendents?: ServiceNextDescendent[];\n}\n\n/**\n * Create an empty service export template\n * @returns {SingleTreeExportInterface} an empty service export template\n */\nexport function createServiceExportTemplate(): ServiceExportInterface {\n return {\n meta: {},\n service: {},\n } as ServiceExportInterface;\n}\n\n/**\n * Get list of services\n * @param {boolean} globalConfig true if the list of global services is requested, false otherwise. Default: false.\n */\nexport async function getListOfServices({\n globalConfig = false,\n state,\n}: {\n globalConfig: boolean;\n state: State;\n}) {\n debugMessage(`ServiceOps.getListOfServices: start`);\n const services = (await _getListOfServices({ globalConfig, state })).result;\n debugMessage(`ServiceOps.getListOfServices: end`);\n return services;\n}\n\n/**\n * Get all services including their descendents.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving to an array of services with their descendants\n */\nexport async function getFullServices({\n globalConfig = false,\n state,\n}: {\n globalConfig: boolean;\n state: State;\n}): Promise<FullService[]> {\n debugMessage(\n `ServiceOps.getFullServices: start, globalConfig=${globalConfig}`\n );\n const serviceList = (await _getListOfServices({ globalConfig, state }))\n .result;\n\n const fullServiceData = await Promise.all(\n serviceList.map(async (listItem) => {\n try {\n const [service, nextDescendents] = await Promise.all([\n getService({ serviceId: listItem._id, globalConfig, state }),\n getServiceDescendents({\n serviceId: listItem._id,\n globalConfig,\n state,\n }),\n ]);\n\n return {\n ...service,\n nextDescendents,\n };\n } catch (error) {\n if (\n !(\n error.response?.status === 403 &&\n error.response?.data?.message ===\n 'This operation is not available in ForgeRock Identity Cloud.'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage(\n `Unable to retrieve data for ${listItem._id} with error: ${message}`,\n 'error'\n );\n }\n }\n })\n );\n\n debugMessage(`ServiceOps.getFullServices: end`);\n return fullServiceData.filter((data) => !!data); // make sure to filter out any undefined objects\n}\n\n/**\n * Saves a service using the provide id and data, including descendents\n * @param {string} serviceId the service id / name\n * @param {string} fullServiceData service object including descendants\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns promise resolving to a service object\n */\nasync function putFullService({\n serviceId,\n fullServiceData,\n clean,\n globalConfig = false,\n state,\n}: {\n serviceId: string;\n fullServiceData: FullService;\n clean: boolean;\n globalConfig: boolean;\n state: State;\n}): Promise<AmServiceSkeleton> {\n debugMessage(\n `ServiceOps.putFullService: start, serviceId=${serviceId}, globalConfig=${globalConfig}`\n );\n const nextDescendents = fullServiceData.nextDescendents;\n\n delete fullServiceData.nextDescendents;\n delete fullServiceData._rev;\n delete fullServiceData.enabled;\n\n if (clean) {\n try {\n debugMessage(`ServiceOps.putFullService: clean`);\n await deleteFullService({ serviceId, globalConfig, state });\n } catch (error) {\n if (\n !(\n error.response?.status === 404 &&\n error.response?.data?.message === 'Not Found'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage(\n `Error deleting service '${serviceId}' before import: ${message}`,\n 'error'\n );\n }\n }\n }\n\n // create service first\n const result = await putService({\n serviceId,\n serviceData: fullServiceData,\n globalConfig,\n state,\n });\n\n // return fast if no next descendents supplied\n if (nextDescendents.length === 0) {\n debugMessage(`ServiceOps.putFullService: end (w/o descendents)`);\n return result;\n }\n\n // now create next descendents\n await Promise.all(\n nextDescendents.map(async (descendent) => {\n const type = descendent._type._id;\n const descendentId = descendent._id;\n debugMessage(`ServiceOps.putFullService: descendentId=${descendentId}`);\n let result = undefined;\n try {\n result = await putServiceNextDescendent({\n serviceId,\n serviceType: type,\n serviceNextDescendentId: descendentId,\n serviceNextDescendentData: descendent,\n globalConfig,\n state,\n });\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(\n `Put descendent '${descendentId}' of service '${serviceId}': ${message}`,\n 'error'\n );\n }\n return result;\n })\n );\n debugMessage(`ServiceOps.putFullService: end (w/ descendents)`);\n}\n\n/**\n * Saves multiple services using the serviceEntries which contain both id and data with descendants\n * @param {[string, FullService][]} serviceEntries The services to add\n * @param {boolean} clean Indicates whether to remove possible existing services first\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns {Promise<AmService[]>} promise resolving to an array of service objects\n */\nasync function putFullServices({\n serviceEntries,\n clean,\n globalConfig = false,\n state,\n}: {\n serviceEntries: [string, FullService][];\n clean: boolean;\n globalConfig: boolean;\n state: State;\n}): Promise<AmServiceSkeleton[]> {\n debugMessage(\n `ServiceOps.putFullServices: start, globalConfig=${globalConfig}`\n );\n const results: AmServiceSkeleton[] = [];\n for (const [id, data] of serviceEntries) {\n try {\n const result = await putFullService({\n serviceId: id,\n fullServiceData: data,\n clean,\n globalConfig,\n state,\n });\n results.push(result);\n printMessage(`Imported: ${id}`, 'info');\n } catch (error) {\n const message = error.response?.data?.message;\n const detail = error.response?.data?.detail;\n printMessage(`Import service '${id}': ${message}`, 'error');\n if (detail) {\n printMessage(`Details: ${JSON.stringify(detail)}`, 'error');\n }\n }\n }\n debugMessage(`ServiceOps.putFullServices: end`);\n return results;\n}\n\n/**\n * Deletes the specified service\n * @param {string} serviceId The service to delete\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function deleteFullService({\n serviceId,\n globalConfig = false,\n state,\n}: {\n serviceId: string;\n globalConfig: boolean;\n state: State;\n}) {\n debugMessage(\n `ServiceOps.deleteFullService: start, globalConfig=${globalConfig}`\n );\n const serviceNextDescendentData = await getServiceDescendents({\n serviceId,\n globalConfig,\n state,\n });\n\n await Promise.all(\n serviceNextDescendentData.map((nextDescendent) =>\n deleteServiceNextDescendent({\n serviceId,\n serviceType: nextDescendent._type._id,\n serviceNextDescendentId: nextDescendent._id,\n globalConfig,\n state,\n })\n )\n );\n\n await deleteService({ serviceId, globalConfig, state });\n debugMessage(`ServiceOps.deleteFullService: end`);\n}\n\n/**\n * Deletes all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function deleteFullServices({\n globalConfig = false,\n state,\n}: {\n globalConfig: boolean;\n state: State;\n}) {\n debugMessage(\n `ServiceOps.deleteFullServices: start, globalConfig=${globalConfig}`\n );\n try {\n const serviceList = (await _getListOfServices({ globalConfig, state }))\n .result;\n\n await Promise.all(\n serviceList.map(async (serviceListItem) => {\n try {\n await deleteFullService({\n serviceId: serviceListItem._id,\n globalConfig,\n state,\n });\n } catch (error) {\n if (\n !(\n error.response?.status === 403 &&\n error.response?.data?.message ===\n 'This operation is not available in ForgeRock Identity Cloud.'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage(\n `Delete service '${serviceListItem._id}': ${message}`,\n 'error'\n );\n }\n }\n })\n );\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(`Delete services: ${message}`, 'error');\n }\n debugMessage(`ServiceOps.deleteFullServices: end`);\n}\n\n/**\n * Export service. The response can be saved to file as is.\n * @param serviceId service id/name\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns {Promise<ServiceExportInterface>} Promise resolving to a ServiceExportInterface object.\n */\nexport async function exportService({\n serviceId,\n globalConfig = false,\n state,\n}: {\n serviceId: string;\n globalConfig: boolean;\n state: State;\n}): Promise<ServiceExportInterface> {\n debugMessage(`ServiceOps.exportService: start, globalConfig=${globalConfig}`);\n const exportData = createServiceExportTemplate();\n try {\n const service = await getService({ serviceId, globalConfig, state });\n service.nextDescendents = await getServiceDescendents({\n serviceId,\n globalConfig,\n state,\n });\n exportData.service[serviceId] = service;\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(`Export service '${serviceId}': ${message}`, 'error');\n }\n debugMessage(`ServiceOps.exportService: end`);\n return exportData;\n}\n\n/**\n * Export all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function exportServices({\n globalConfig = false,\n state,\n}: {\n globalConfig: boolean;\n state: State;\n}): Promise<ServiceExportInterface> {\n debugMessage(\n `ServiceOps.exportServices: start, globalConfig=${globalConfig}`\n );\n const exportData = createServiceExportTemplate();\n try {\n const services = await getFullServices({ globalConfig, state });\n for (const service of services) {\n exportData.service[service._type._id] = service;\n }\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(`Export servics: ${message}`, 'error');\n }\n debugMessage(`ServiceOps.exportServices: end`);\n return exportData;\n}\n\n/**\n * Imports a single service using a reference to the service and a file to read the data from. Optionally clean (remove) an existing service first\n * @param {string} serviceId The service id/name to add\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove a possible existing service with the same id first.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving when the service has been imported\n */\nexport async function importService({\n serviceId,\n importData,\n clean,\n globalConfig = false,\n state,\n}: {\n serviceId: string;\n importData: ServiceExportInterface;\n clean: boolean;\n globalConfig: boolean;\n state: State;\n}): Promise<AmServiceSkeleton> {\n debugMessage(`ServiceOps.importService: start, globalConfig=${globalConfig}`);\n const serviceData = importData.service[serviceId];\n const result = await putFullService({\n serviceId,\n fullServiceData: serviceData,\n clean,\n globalConfig,\n state,\n });\n debugMessage(`ServiceOps.importService: end`);\n return result;\n}\n\n/**\n * Imports multiple services from the same file. Optionally clean (remove) existing services first\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove possible existing services first\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function importServices({\n importData,\n clean,\n globalConfig = false,\n state,\n}: {\n importData: ServiceExportInterface;\n clean: boolean;\n globalConfig: boolean;\n state: State;\n}) {\n debugMessage(\n `ServiceOps.importServices: start, globalConfig=${globalConfig}`\n );\n try {\n const result = await putFullServices({\n serviceEntries: Object.entries(importData.service),\n clean,\n globalConfig,\n state,\n });\n debugMessage(`ServiceOps.importServices: end`);\n return result;\n } catch (error) {\n const message = error.response?.data?.message;\n const detail = error.response?.data?.detail;\n printMessage(`Unable to import services: error: ${message}`, 'error');\n if (detail) {\n printMessage(`Details: ${JSON.stringify(detail)}`, 'error');\n }\n throw error;\n }\n}\n"],"mappings":"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"}
@@ -45,9 +45,11 @@ class ThemeOps {
45
45
  * @param {string} realm realm name
46
46
  * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object
47
47
  */
48
- getTheme(themeId, realm) {
49
- var _this2 = this;
48
+ getTheme(themeId) {
49
+ var _arguments = arguments,
50
+ _this2 = this;
50
51
  return _asyncToGenerator(function* () {
52
+ var realm = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : _this2.state.getRealm();
51
53
  return getTheme({
52
54
  themeId,
53
55
  realm,
@@ -62,9 +64,11 @@ class ThemeOps {
62
64
  * @param {string} realm realm name
63
65
  * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object
64
66
  */
65
- getThemeByName(themeName, realm) {
66
- var _this3 = this;
67
+ getThemeByName(themeName) {
68
+ var _arguments2 = arguments,
69
+ _this3 = this;
67
70
  return _asyncToGenerator(function* () {
71
+ var realm = _arguments2.length > 1 && _arguments2[1] !== undefined ? _arguments2[1] : _this3.state.getRealm();
68
72
  return getThemeByName({
69
73
  themeName,
70
74
  realm,
@@ -80,9 +84,11 @@ class ThemeOps {
80
84
  * @param {string} realm realm name
81
85
  * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object
82
86
  */
83
- putTheme(themeId, themeData, realm) {
84
- var _this4 = this;
87
+ putTheme(themeId, themeData) {
88
+ var _arguments3 = arguments,
89
+ _this4 = this;
85
90
  return _asyncToGenerator(function* () {
91
+ var realm = _arguments3.length > 2 && _arguments3[2] !== undefined ? _arguments3[2] : _this4.state.getRealm();
86
92
  return putTheme({
87
93
  themeId,
88
94
  themeData,
@@ -99,9 +105,11 @@ class ThemeOps {
99
105
  * @param {string} realm realm name
100
106
  * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object
101
107
  */
102
- putThemeByName(themeName, themeData, realm) {
103
- var _this5 = this;
108
+ putThemeByName(themeName, themeData) {
109
+ var _arguments4 = arguments,
110
+ _this5 = this;
104
111
  return _asyncToGenerator(function* () {
112
+ var realm = _arguments4.length > 2 && _arguments4[2] !== undefined ? _arguments4[2] : _this5.state.getRealm();
105
113
  return putThemeByName({
106
114
  themeName,
107
115
  themeData,
@@ -133,9 +141,11 @@ class ThemeOps {
133
141
  * @param {string} realm realm name
134
142
  * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object
135
143
  */
136
- deleteTheme(themeId, realm) {
137
- var _this7 = this;
144
+ deleteTheme(themeId) {
145
+ var _arguments5 = arguments,
146
+ _this7 = this;
138
147
  return _asyncToGenerator(function* () {
148
+ var realm = _arguments5.length > 1 && _arguments5[1] !== undefined ? _arguments5[1] : _this7.state.getRealm();
139
149
  return deleteTheme({
140
150
  themeId,
141
151
  realm,
@@ -150,9 +160,11 @@ class ThemeOps {
150
160
  * @param {string} realm realm name
151
161
  * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object
152
162
  */
153
- deleteThemeByName(themeName, realm) {
154
- var _this8 = this;
163
+ deleteThemeByName(themeName) {
164
+ var _arguments6 = arguments,
165
+ _this8 = this;
155
166
  return _asyncToGenerator(function* () {
167
+ var realm = _arguments6.length > 1 && _arguments6[1] !== undefined ? _arguments6[1] : _this8.state.getRealm();
156
168
  return deleteThemeByName({
157
169
  themeName,
158
170
  realm,
@@ -166,9 +178,11 @@ class ThemeOps {
166
178
  * @param {string} realm realm name
167
179
  * @returns {Promise<ThemeSkeleton[]>} a promise that resolves to an array of themes
168
180
  */
169
- deleteThemes(realm) {
170
- var _this9 = this;
181
+ deleteThemes() {
182
+ var _arguments7 = arguments,
183
+ _this9 = this;
171
184
  return _asyncToGenerator(function* () {
185
+ var realm = _arguments7.length > 0 && _arguments7[0] !== undefined ? _arguments7[0] : _this9.state.getRealm();
172
186
  return deleteThemes({
173
187
  realm,
174
188
  state: _this9.state
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeOps.js","names":["_IdmConfigApi","require","_ApiUtils","_Console","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","THEMEREALM_ID","exports","ThemeOps","constructor","state","getThemes","_this","getTheme","themeId","realm","_this2","getThemeByName","themeName","_this3","putTheme","themeData","_this4","putThemeByName","_this5","putThemes","themeMap","_this6","deleteTheme","_this7","deleteThemeByName","_this8","deleteThemes","_this9","default","getRealmThemes","_ref","themes","_x","_getThemes","_ref2","getCurrentRealmName","getConfigEntity","entityId","_x2","_getTheme","_ref3","found","filter","theme","_id","length","Error","concat","_x3","_getThemeByName","_ref4","name","_x4","_putTheme","_ref5","data","isNew","realmThemes","map","isDefault","push","putConfigEntity","entityData","_x5","_putThemeByName","_ref6","_x6","_putThemes","_ref7","debugMessage","allThemeIDs","Object","keys","existingThemeIDs","defaultThemeId","newThemeIDs","id","includes","forEach","updatedThemes","Map","_x7","_deleteTheme","_ref8","deletedThemes","finalThemes","undeletedThemes","_x8","_deleteThemeByName","_ref9","_x9","_deleteThemes","_ref10"],"sources":["ops/ThemeOps.ts"],"sourcesContent":["import { ThemeSkeleton, UiThemeRealmObject } from '../api/ApiTypes';\nimport { getConfigEntity, putConfigEntity } from '../api/IdmConfigApi';\nimport { getCurrentRealmName } from '../api/utils/ApiUtils';\nimport { debugMessage } from '../ops/utils/Console';\nimport State from '../shared/State';\n\nexport const THEMEREALM_ID = 'ui/themerealm';\n\nexport default class ThemeOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get all themes\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton[]>} a promise that resolves to an array of themes\n */\n async getThemes(): Promise<ThemeSkeleton[]> {\n return getThemes({ state: this.state });\n }\n\n /**\n * Get theme by id\n * @param {string} themeId theme id\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\n async getTheme(themeId: string, realm: string): Promise<ThemeSkeleton> {\n return getTheme({ themeId, realm, state: this.state });\n }\n\n /**\n * Get theme by name\n * @param {string} themeName theme name\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\n async getThemeByName(\n themeName: string,\n realm: string\n ): Promise<ThemeSkeleton> {\n return getThemeByName({ themeName, realm, state: this.state });\n }\n\n /**\n * Put theme by id\n * @param {string} themeId theme id\n * @param {ThemeSkeleton} themeData theme object\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\n async putTheme(\n themeId: string,\n themeData: ThemeSkeleton,\n realm: string\n ): Promise<ThemeSkeleton> {\n return putTheme({ themeId, themeData, realm, state: this.state });\n }\n\n /**\n * Put theme by name\n * @param {String} themeName theme name\n * @param {ThemeSkeleton} themeData theme object\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\n async putThemeByName(\n themeName: string,\n themeData: ThemeSkeleton,\n realm: string\n ): Promise<ThemeSkeleton> {\n return putThemeByName({ themeName, themeData, realm, state: this.state });\n }\n\n /**\n * Put all themes\n * @param {Map<string, ThemeSkeleton>} allThemesData themes object containing all themes for all realms\n * @param {string} realm realm name\n * @returns {Promise<Map<string, ThemeSkeleton>>} a promise that resolves to a themes object\n */\n async putThemes(\n themeMap: Map<string, ThemeSkeleton>\n ): Promise<Map<string, ThemeSkeleton>> {\n return putThemes({ themeMap, state: this.state });\n }\n\n /**\n * Delete theme by id\n * @param {string} themeId theme id\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object\n */\n async deleteTheme(themeId: string, realm: string): Promise<ThemeSkeleton> {\n return deleteTheme({ themeId, realm, state: this.state });\n }\n\n /**\n * Delete theme by name\n * @param {string} themeName theme name\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object\n */\n async deleteThemeByName(\n themeName: string,\n realm: string\n ): Promise<ThemeSkeleton> {\n return deleteThemeByName({ themeName, realm, state: this.state });\n }\n\n /**\n * Delete all themes\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton[]>} a promise that resolves to an array of themes\n */\n async deleteThemes(realm: string): Promise<ThemeSkeleton[]> {\n return deleteThemes({ realm, state: this.state });\n }\n}\n\n/**\n * Get realm themes\n * @param {UiThemeRealmObject} themes object containing themes\n * @param {string} realm realm name\n * @returns {ThemeSkeleton[]} array of theme pertaining to the current realm\n */\nfunction getRealmThemes({\n themes,\n realm,\n}: {\n themes: UiThemeRealmObject;\n realm: string;\n}): ThemeSkeleton[] {\n if (themes.realm && themes.realm[realm]) {\n return themes.realm[realm];\n }\n return [];\n}\n\n/**\n * Get all themes\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton[]>} a promise that resolves to an array of themes\n */\nexport async function getThemes({\n realm = null,\n state,\n}: {\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton[]> {\n realm = realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n return getRealmThemes({ themes, realm });\n}\n\n/**\n * Get theme by id\n * @param {string} themeId theme id\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\nexport async function getTheme({\n themeId,\n realm,\n state,\n}: {\n themeId: string;\n realm: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const found = getRealmThemes({ themes, realm }).filter(\n (theme) => theme._id === themeId\n );\n if (found.length === 1) {\n return found[0];\n }\n if (found.length > 1) {\n throw new Error(\n `Multiple themes with id '${themeId}' found in realm '${realm}'!`\n );\n }\n throw new Error(`Theme with id '${themeId}' not found in realm '${realm}'!`);\n}\n\n/**\n * Get theme by name\n * @param {string} themeName theme name\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\nexport async function getThemeByName({\n themeName,\n realm,\n state,\n}: {\n themeName: string;\n realm: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const found = getRealmThemes({ themes, realm }).filter(\n (theme) => theme.name === themeName\n );\n if (found.length === 1) {\n return found[0];\n }\n if (found.length > 1) {\n throw new Error(\n `Multiple themes with the name '${themeName}' found in realm '${realm}'!`\n );\n }\n throw new Error(`Theme '${themeName}' not found in realm '${realm}'!`);\n}\n\n/**\n * Put theme by id\n * @param {string} themeId theme id\n * @param {ThemeSkeleton} themeData theme object\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\nexport async function putTheme({\n themeId,\n themeData,\n realm,\n state,\n}: {\n themeId: string;\n themeData: ThemeSkeleton;\n realm: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const data = themeData;\n data._id = themeId;\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n let isNew = true;\n const realmThemes = getRealmThemes({ themes, realm }).map((theme) => {\n if (theme._id === themeId) {\n isNew = false;\n return data;\n }\n if (data.isDefault) theme.isDefault = false;\n return theme;\n });\n if (isNew) {\n realmThemes.push(data);\n }\n themes.realm[realm] = realmThemes;\n const found = getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).filter((theme) => theme._id === themeId);\n if (found.length === 1) {\n return found[0];\n }\n if (found.length > 1) {\n throw new Error(\n `Multiple themes with id '${themeId}' found in realm '${realm}'!`\n );\n }\n throw new Error(`Theme with id '${themeId}' not saved in realm '${realm}'!`);\n}\n\n/**\n * Put theme by name\n * @param {String} themeName theme name\n * @param {ThemeSkeleton} themeData theme object\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\nexport async function putThemeByName({\n themeName,\n themeData,\n realm,\n state,\n}: {\n themeName: string;\n themeData: ThemeSkeleton;\n realm: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const data = themeData;\n data.name = themeName;\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n let isNew = true;\n const realmThemes = getRealmThemes({ themes, realm }).map((theme) => {\n if (theme.name === themeName) {\n isNew = false;\n return data;\n }\n if (data.isDefault) theme.isDefault = false;\n return theme;\n });\n if (isNew) {\n realmThemes.push(data);\n }\n themes['realm'][realm] = realmThemes;\n const found = getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).filter((theme) => theme.name === themeName);\n if (found.length === 1) {\n return found[0];\n }\n if (found.length > 1) {\n throw new Error(\n `Multiple themes '${themeName}' found in realm '${realm}'!`\n );\n }\n throw new Error(`Theme '${themeName}' not saved in realm '${realm}'!`);\n}\n\n/**\n * Put all themes\n * @param {Map<string, ThemeSkeleton>} allThemesData themes object containing all themes for all realms\n * @param {string} realm realm name\n * @returns {Promise<Map<string, ThemeSkeleton>>} a promise that resolves to a themes object\n */\nexport async function putThemes({\n themeMap,\n realm = null,\n state,\n}: {\n themeMap: Map<string, ThemeSkeleton>;\n realm?: string;\n state: State;\n}): Promise<Map<string, ThemeSkeleton>> {\n debugMessage(`ThemeApi.putThemes: start`);\n realm = realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const allThemeIDs = Object.keys(themeMap);\n const existingThemeIDs = [];\n let defaultThemeId = null;\n // update existing themes\n let realmThemes = getRealmThemes({ themes, realm }).map((theme) => {\n if (themeMap[theme._id]) {\n debugMessage(`Update theme: ${theme._id} - ${theme.name}`);\n existingThemeIDs.push(theme._id);\n // remember the id of the last default theme\n if (themeMap[theme._id].isDefault) defaultThemeId = theme._id;\n return themeMap[theme._id];\n }\n return theme;\n });\n const newThemeIDs = allThemeIDs.filter(\n (id) => !existingThemeIDs.includes(id)\n );\n // add new themes\n newThemeIDs.forEach((themeId) => {\n debugMessage(\n `Add theme: ${themeMap[themeId]._id} - ${themeMap[themeId].name}`\n );\n // remember the id of the last default theme\n if (themeMap[themeId].isDefault) defaultThemeId = themeId;\n realmThemes.push(themeMap[themeId]);\n });\n // if we imported a default theme, flag all the other themes as not default\n if (defaultThemeId) {\n realmThemes = realmThemes.map((theme) => {\n theme.isDefault = theme._id === defaultThemeId;\n return theme;\n });\n }\n themes.realm[realm] = realmThemes;\n const updatedThemes = new Map(\n getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).map((theme) => [theme._id, theme])\n );\n debugMessage(updatedThemes);\n debugMessage(`ThemeApi.putThemes: finished`);\n return updatedThemes;\n}\n\n/**\n * Delete theme by id\n * @param {string} themeId theme id\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object\n */\nexport async function deleteTheme({\n themeId,\n realm,\n state,\n}: {\n themeId: string;\n realm: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const realmThemes = getRealmThemes({ themes, realm });\n const deletedThemes: ThemeSkeleton[] = [];\n const finalThemes = realmThemes.filter((theme) => {\n if (theme._id !== themeId) {\n return true;\n }\n deletedThemes.push(theme);\n return false;\n });\n if (realmThemes.length === finalThemes.length)\n throw new Error(`'${themeId}' not found in realm '${realm}'`);\n themes.realm[realm] = realmThemes;\n const undeletedThemes = getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).filter((theme) => deletedThemes.includes(theme));\n if (deletedThemes.length > 0 && undeletedThemes.length === 0) {\n return deletedThemes[0];\n }\n throw new Error(\n `Theme(s) with id(s) '${undeletedThemes.map(\n (theme) => theme._id\n )}' not deleted from realm '${realm}'!`\n );\n}\n\n/**\n * Delete theme by name\n * @param {string} themeName theme name\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object\n */\nexport async function deleteThemeByName({\n themeName,\n realm,\n state,\n}: {\n themeName: string;\n realm: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const realmThemes = getRealmThemes({ themes, realm });\n const deletedThemes: ThemeSkeleton[] = [];\n const finalThemes = realmThemes.filter((theme) => {\n if (theme.name !== themeName) {\n return true;\n }\n deletedThemes.push(theme);\n return false;\n });\n if (realmThemes.length === finalThemes.length)\n throw new Error(`'${themeName}' not found in realm '${realm}'`);\n themes.realm[realm] = finalThemes;\n const undeletedThemes = getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).filter((theme) => deletedThemes.includes(theme));\n if (deletedThemes.length > 0 && undeletedThemes.length === 0) {\n return deletedThemes[0];\n }\n throw new Error(\n `Theme(s) with id(s) '${undeletedThemes.map(\n (theme) => theme._id\n )}' not deleted from realm '${realm}'!`\n );\n}\n\n/**\n * Delete all themes\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton[]>} a promise that resolves to an array of themes\n */\nexport async function deleteThemes({\n realm,\n state,\n}: {\n realm: string;\n state: State;\n}): Promise<ThemeSkeleton[]> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const realmThemes = themes.realm[realm];\n if (!realmThemes)\n throw new Error(`No theme configuration found for realm '${realm}'`);\n const deletedThemes: ThemeSkeleton[] = [];\n for (const theme of realmThemes) {\n deletedThemes.push(theme);\n }\n themes.realm[realm] = [];\n await putConfigEntity({ entityId: THEMEREALM_ID, entityData: themes, state });\n return deletedThemes;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ThemeOps.js","names":["_IdmConfigApi","require","_ApiUtils","_Console","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","THEMEREALM_ID","exports","ThemeOps","constructor","state","getThemes","_this","getTheme","themeId","_arguments","_this2","realm","length","getRealm","getThemeByName","themeName","_arguments2","_this3","putTheme","themeData","_arguments3","_this4","putThemeByName","_arguments4","_this5","putThemes","themeMap","_this6","deleteTheme","_arguments5","_this7","deleteThemeByName","_arguments6","_this8","deleteThemes","_arguments7","_this9","default","getRealmThemes","_ref","themes","_x","_getThemes","_ref2","getCurrentRealmName","getConfigEntity","entityId","_x2","_getTheme","_ref3","found","filter","theme","_id","Error","concat","_x3","_getThemeByName","_ref4","name","_x4","_putTheme","_ref5","data","isNew","realmThemes","map","isDefault","push","putConfigEntity","entityData","_x5","_putThemeByName","_ref6","_x6","_putThemes","_ref7","debugMessage","allThemeIDs","Object","keys","existingThemeIDs","defaultThemeId","newThemeIDs","id","includes","forEach","updatedThemes","Map","_x7","_deleteTheme","_ref8","deletedThemes","finalThemes","undeletedThemes","_x8","_deleteThemeByName","_ref9","_x9","_deleteThemes","_ref10"],"sources":["ops/ThemeOps.ts"],"sourcesContent":["import { ThemeSkeleton, UiThemeRealmObject } from '../api/ApiTypes';\nimport { getConfigEntity, putConfigEntity } from '../api/IdmConfigApi';\nimport { getCurrentRealmName } from '../api/utils/ApiUtils';\nimport { debugMessage } from '../ops/utils/Console';\nimport State from '../shared/State';\n\nexport const THEMEREALM_ID = 'ui/themerealm';\n\nexport default class ThemeOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get all themes\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton[]>} a promise that resolves to an array of themes\n */\n async getThemes(): Promise<ThemeSkeleton[]> {\n return getThemes({ state: this.state });\n }\n\n /**\n * Get theme by id\n * @param {string} themeId theme id\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\n async getTheme(\n themeId: string,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return getTheme({ themeId, realm, state: this.state });\n }\n\n /**\n * Get theme by name\n * @param {string} themeName theme name\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\n async getThemeByName(\n themeName: string,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return getThemeByName({ themeName, realm, state: this.state });\n }\n\n /**\n * Put theme by id\n * @param {string} themeId theme id\n * @param {ThemeSkeleton} themeData theme object\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\n async putTheme(\n themeId: string,\n themeData: ThemeSkeleton,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return putTheme({ themeId, themeData, realm, state: this.state });\n }\n\n /**\n * Put theme by name\n * @param {String} themeName theme name\n * @param {ThemeSkeleton} themeData theme object\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\n async putThemeByName(\n themeName: string,\n themeData: ThemeSkeleton,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return putThemeByName({ themeName, themeData, realm, state: this.state });\n }\n\n /**\n * Put all themes\n * @param {Map<string, ThemeSkeleton>} allThemesData themes object containing all themes for all realms\n * @param {string} realm realm name\n * @returns {Promise<Map<string, ThemeSkeleton>>} a promise that resolves to a themes object\n */\n async putThemes(\n themeMap: Map<string, ThemeSkeleton>\n ): Promise<Map<string, ThemeSkeleton>> {\n return putThemes({ themeMap, state: this.state });\n }\n\n /**\n * Delete theme by id\n * @param {string} themeId theme id\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object\n */\n async deleteTheme(\n themeId: string,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return deleteTheme({ themeId, realm, state: this.state });\n }\n\n /**\n * Delete theme by name\n * @param {string} themeName theme name\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object\n */\n async deleteThemeByName(\n themeName: string,\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton> {\n return deleteThemeByName({ themeName, realm, state: this.state });\n }\n\n /**\n * Delete all themes\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton[]>} a promise that resolves to an array of themes\n */\n async deleteThemes(\n realm: string = this.state.getRealm()\n ): Promise<ThemeSkeleton[]> {\n return deleteThemes({ realm, state: this.state });\n }\n}\n\n/**\n * Get realm themes\n * @param {UiThemeRealmObject} themes object containing themes\n * @param {string} realm realm name\n * @returns {ThemeSkeleton[]} array of theme pertaining to the current realm\n */\nfunction getRealmThemes({\n themes,\n realm,\n}: {\n themes: UiThemeRealmObject;\n realm: string;\n}): ThemeSkeleton[] {\n if (themes.realm && themes.realm[realm]) {\n return themes.realm[realm];\n }\n return [];\n}\n\n/**\n * Get all themes\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton[]>} a promise that resolves to an array of themes\n */\nexport async function getThemes({\n realm = null,\n state,\n}: {\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton[]> {\n realm = realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n return getRealmThemes({ themes, realm });\n}\n\n/**\n * Get theme by id\n * @param {string} themeId theme id\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\nexport async function getTheme({\n themeId,\n realm,\n state,\n}: {\n themeId: string;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const found = getRealmThemes({ themes, realm }).filter(\n (theme) => theme._id === themeId\n );\n if (found.length === 1) {\n return found[0];\n }\n if (found.length > 1) {\n throw new Error(\n `Multiple themes with id '${themeId}' found in realm '${realm}'!`\n );\n }\n throw new Error(`Theme with id '${themeId}' not found in realm '${realm}'!`);\n}\n\n/**\n * Get theme by name\n * @param {string} themeName theme name\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\nexport async function getThemeByName({\n themeName,\n realm,\n state,\n}: {\n themeName: string;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const found = getRealmThemes({ themes, realm }).filter(\n (theme) => theme.name === themeName\n );\n if (found.length === 1) {\n return found[0];\n }\n if (found.length > 1) {\n throw new Error(\n `Multiple themes with the name '${themeName}' found in realm '${realm}'!`\n );\n }\n throw new Error(`Theme '${themeName}' not found in realm '${realm}'!`);\n}\n\n/**\n * Put theme by id\n * @param {string} themeId theme id\n * @param {ThemeSkeleton} themeData theme object\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\nexport async function putTheme({\n themeId,\n themeData,\n realm,\n state,\n}: {\n themeId: string;\n themeData: ThemeSkeleton;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const data = themeData;\n data._id = themeId;\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n let isNew = true;\n const realmThemes = getRealmThemes({ themes, realm }).map((theme) => {\n if (theme._id === themeId) {\n isNew = false;\n return data;\n }\n if (data.isDefault) theme.isDefault = false;\n return theme;\n });\n if (isNew) {\n realmThemes.push(data);\n }\n themes.realm[realm] = realmThemes;\n const found = getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).filter((theme) => theme._id === themeId);\n if (found.length === 1) {\n return found[0];\n }\n if (found.length > 1) {\n throw new Error(\n `Multiple themes with id '${themeId}' found in realm '${realm}'!`\n );\n }\n throw new Error(`Theme with id '${themeId}' not saved in realm '${realm}'!`);\n}\n\n/**\n * Put theme by name\n * @param {String} themeName theme name\n * @param {ThemeSkeleton} themeData theme object\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a theme object\n */\nexport async function putThemeByName({\n themeName,\n themeData,\n realm,\n state,\n}: {\n themeName: string;\n themeData: ThemeSkeleton;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const data = themeData;\n data.name = themeName;\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n let isNew = true;\n const realmThemes = getRealmThemes({ themes, realm }).map((theme) => {\n if (theme.name === themeName) {\n isNew = false;\n return data;\n }\n if (data.isDefault) theme.isDefault = false;\n return theme;\n });\n if (isNew) {\n realmThemes.push(data);\n }\n themes['realm'][realm] = realmThemes;\n const found = getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).filter((theme) => theme.name === themeName);\n if (found.length === 1) {\n return found[0];\n }\n if (found.length > 1) {\n throw new Error(\n `Multiple themes '${themeName}' found in realm '${realm}'!`\n );\n }\n throw new Error(`Theme '${themeName}' not saved in realm '${realm}'!`);\n}\n\n/**\n * Put all themes\n * @param {Map<string, ThemeSkeleton>} allThemesData themes object containing all themes for all realms\n * @param {string} realm realm name\n * @returns {Promise<Map<string, ThemeSkeleton>>} a promise that resolves to a themes object\n */\nexport async function putThemes({\n themeMap,\n realm = null,\n state,\n}: {\n themeMap: Map<string, ThemeSkeleton>;\n realm?: string;\n state: State;\n}): Promise<Map<string, ThemeSkeleton>> {\n debugMessage(`ThemeApi.putThemes: start`);\n realm = realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const allThemeIDs = Object.keys(themeMap);\n const existingThemeIDs = [];\n let defaultThemeId = null;\n // update existing themes\n let realmThemes = getRealmThemes({ themes, realm }).map((theme) => {\n if (themeMap[theme._id]) {\n debugMessage(`Update theme: ${theme._id} - ${theme.name}`);\n existingThemeIDs.push(theme._id);\n // remember the id of the last default theme\n if (themeMap[theme._id].isDefault) defaultThemeId = theme._id;\n return themeMap[theme._id];\n }\n return theme;\n });\n const newThemeIDs = allThemeIDs.filter(\n (id) => !existingThemeIDs.includes(id)\n );\n // add new themes\n newThemeIDs.forEach((themeId) => {\n debugMessage(\n `Add theme: ${themeMap[themeId]._id} - ${themeMap[themeId].name}`\n );\n // remember the id of the last default theme\n if (themeMap[themeId].isDefault) defaultThemeId = themeId;\n realmThemes.push(themeMap[themeId]);\n });\n // if we imported a default theme, flag all the other themes as not default\n if (defaultThemeId) {\n realmThemes = realmThemes.map((theme) => {\n theme.isDefault = theme._id === defaultThemeId;\n return theme;\n });\n }\n themes.realm[realm] = realmThemes;\n const updatedThemes = new Map(\n getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).map((theme) => [theme._id, theme])\n );\n debugMessage(updatedThemes);\n debugMessage(`ThemeApi.putThemes: finished`);\n return updatedThemes;\n}\n\n/**\n * Delete theme by id\n * @param {string} themeId theme id\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object\n */\nexport async function deleteTheme({\n themeId,\n realm,\n state,\n}: {\n themeId: string;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const realmThemes = getRealmThemes({ themes, realm });\n const deletedThemes: ThemeSkeleton[] = [];\n const finalThemes = realmThemes.filter((theme) => {\n if (theme._id !== themeId) {\n return true;\n }\n deletedThemes.push(theme);\n return false;\n });\n if (realmThemes.length === finalThemes.length)\n throw new Error(`'${themeId}' not found in realm '${realm}'`);\n themes.realm[realm] = realmThemes;\n const undeletedThemes = getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).filter((theme) => deletedThemes.includes(theme));\n if (deletedThemes.length > 0 && undeletedThemes.length === 0) {\n return deletedThemes[0];\n }\n throw new Error(\n `Theme(s) with id(s) '${undeletedThemes.map(\n (theme) => theme._id\n )}' not deleted from realm '${realm}'!`\n );\n}\n\n/**\n * Delete theme by name\n * @param {string} themeName theme name\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton>} a promise that resolves to a themes object\n */\nexport async function deleteThemeByName({\n themeName,\n realm,\n state,\n}: {\n themeName: string;\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const realmThemes = getRealmThemes({ themes, realm });\n const deletedThemes: ThemeSkeleton[] = [];\n const finalThemes = realmThemes.filter((theme) => {\n if (theme.name !== themeName) {\n return true;\n }\n deletedThemes.push(theme);\n return false;\n });\n if (realmThemes.length === finalThemes.length)\n throw new Error(`'${themeName}' not found in realm '${realm}'`);\n themes.realm[realm] = finalThemes;\n const undeletedThemes = getRealmThemes({\n themes: await putConfigEntity({\n entityId: THEMEREALM_ID,\n entityData: themes,\n state,\n }),\n realm,\n }).filter((theme) => deletedThemes.includes(theme));\n if (deletedThemes.length > 0 && undeletedThemes.length === 0) {\n return deletedThemes[0];\n }\n throw new Error(\n `Theme(s) with id(s) '${undeletedThemes.map(\n (theme) => theme._id\n )}' not deleted from realm '${realm}'!`\n );\n}\n\n/**\n * Delete all themes\n * @param {string} realm realm name\n * @returns {Promise<ThemeSkeleton[]>} a promise that resolves to an array of themes\n */\nexport async function deleteThemes({\n realm,\n state,\n}: {\n realm?: string;\n state: State;\n}): Promise<ThemeSkeleton[]> {\n realm ? realm : getCurrentRealmName(state);\n const themes = await getConfigEntity({ entityId: THEMEREALM_ID, state });\n const realmThemes = themes.realm[realm];\n if (!realmThemes)\n throw new Error(`No theme configuration found for realm '${realm}'`);\n const deletedThemes: ThemeSkeleton[] = [];\n for (const theme of realmThemes) {\n deletedThemes.push(theme);\n }\n themes.realm[realm] = [];\n await putConfigEntity({ entityId: THEMEREALM_ID, entityData: themes, state });\n return deletedThemes;\n}\n"],"mappings":"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"}
@@ -39,7 +39,7 @@ class LogOps {
39
39
  * Get default noise filter
40
40
  * @returns {string[]} array of default event types and loggers to be filtered out
41
41
  */
42
- getDfaultNoiseFilter() {
42
+ getDefaultNoiseFilter() {
43
43
  return getDefaultNoiseFilter();
44
44
  }
45
45
 
@@ -49,10 +49,7 @@ class LogOps {
49
49
  * @returns {string[]} array of effective log levels
50
50
  */
51
51
  resolveLevel(level) {
52
- if (Number.isNaN(parseInt(level, 10))) {
53
- return logLevelMap[level];
54
- }
55
- return logLevelMap[numLogLevelMap[level][0]];
52
+ return resolveLevel(level);
56
53
  }
57
54
 
58
55
  /**
@@ -61,14 +58,7 @@ class LogOps {
61
58
  * @returns {string} log level
62
59
  */
63
60
  resolvePayloadLevel(log) {
64
- // It seems that the undesirable 'text/plain' logs start with a date, not a LEVEL
65
- // Therefore, for those, this function returns null, and thus filters out the undesirable
66
- try {
67
- return log.type !== 'text/plain' ? log.payload.level : log.payload.match(/^([^:]*):/)[1];
68
- } catch (e) {
69
- // Fail-safe for no group match
70
- return null;
71
- }
61
+ return resolvePayloadLevel(log);
72
62
  }
73
63
 
74
64
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"LogOps.js","names":["_LogApi","require","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","LogOps","constructor","state","getDfaultNoiseFilter","getDefaultNoiseFilter","resolveLevel","level","Number","isNaN","parseInt","logLevelMap","numLogLevelMap","resolvePayloadLevel","log","type","payload","match","e","getLogSources","_this","getLogApiKeys","_this2","createLogApiKeyAndSecret","keyName","_this3","createAPIKeyAndSecret","tail","source","cookie","fetch","startTs","endTs","_this4","exports","default","unfilterableNoise","miscNoise","journeysNoise","journeys","samlNoise","saml","noise","concat","SEVERE","ERROR","FATAL","WARN","WARNING","CONFIG","INFO","INFORMATION","DEBUG","FINE","FINER","FINEST","ALL","_x","_getLogSources","_ref","sources","getSources","result","_x2","_getLogApiKeys","_ref2","keys","getAPIKeys"],"sources":["ops/cloud/LogOps.ts"],"sourcesContent":["import {\n LogApiKey,\n LogEventPayloadSkeleton,\n LogEventSkeleton,\n NoIdObjectSkeletonInterface,\n PagedResult,\n} from '../../api/ApiTypes';\nimport {\n createAPIKeyAndSecret,\n getAPIKeys,\n getSources,\n tail,\n fetch,\n} from '../../api/cloud/LogApi';\nimport State from '../../shared/State';\n\nexport default class LogOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get default noise filter\n * @returns {string[]} array of default event types and loggers to be filtered out\n */\n getDfaultNoiseFilter(): string[] {\n return getDefaultNoiseFilter();\n }\n\n /**\n * Resolve log level to an array of effective log levels\n * @param level string or numeric log level: 'FATAL', 'ERROR', 'WARN', 'INFO', 'DEBUG', 'TRACE', 'ALL', 0, 1, 2, 3, 4\n * @returns {string[]} array of effective log levels\n */\n resolveLevel(level: string | number): string[] {\n if (Number.isNaN(parseInt(level as string, 10))) {\n return logLevelMap[level];\n }\n return logLevelMap[numLogLevelMap[level as number][0]];\n }\n\n /**\n * Resolve a log event's level\n * @param {object} log log event\n * @returns {string} log level\n */\n resolvePayloadLevel(log: LogEventSkeleton): string {\n // It seems that the undesirable 'text/plain' logs start with a date, not a LEVEL\n // Therefore, for those, this function returns null, and thus filters out the undesirable\n try {\n return log.type !== 'text/plain'\n ? (log.payload as LogEventPayloadSkeleton).level\n : (log.payload as string).match(/^([^:]*):/)[1];\n } catch (e) {\n // Fail-safe for no group match\n return null;\n }\n }\n\n /**\n * Get available log sources\n * @returns {Promise<string[]>} promise resolving to an array of available log sources\n */\n async getLogSources() {\n return getLogSources({ state: this.state });\n }\n\n /**\n * Get log api keys\n * @returns {Promise<LogApiKey[]>} promise resolving to an array of LogApiKey objects\n */\n async getLogApiKeys(): Promise<LogApiKey[]> {\n return getLogApiKeys({ state: this.state });\n }\n\n /**\n * Create log api key and secret\n * @param {string} keyName key name\n * @returns {Promise<NoIdObjectSkeletonInterface>} a promise resolving to an object containing the log api key and secret\n */\n async createLogApiKeyAndSecret(\n keyName: string\n ): Promise<NoIdObjectSkeletonInterface> {\n return createAPIKeyAndSecret({ keyName, state: this.state });\n }\n\n /**\n * Tail logs\n * @param {string} source log source(s) to tail\n * @param {string} cookie paged results cookie\n * @returns {Promise<PagedResult<LogEventSkeleton>>} promise resolving to paged log event result\n */\n tail(source: string, cookie: string): Promise<PagedResult<LogEventSkeleton>> {\n return tail({ source, cookie, state: this.state });\n }\n\n /**\n * Fetch logs\n * @param {string} source log source(s) to tail\n * @param {string} startTs start timestamp\n * @param {string} endTs end timestamp\n * @param {string} cookie paged results cookie\n * @returns {Promise<PagedResult<LogEventSkeleton>>} promise resolving to paged log event result\n */\n async fetch(\n source: string,\n startTs: string,\n endTs: string,\n cookie: string\n ): Promise<PagedResult<LogEventSkeleton>> {\n return fetch({ source, startTs, endTs, cookie, state: this.state });\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst unfilterableNoise = [\n 'text/plain', // Unfortunately, it is impossible to filter out those without excluding IDM script logging as well\n];\n\nconst miscNoise = [\n 'com.iplanet.dpro.session.operations.ServerSessionOperationStrategy',\n 'com.iplanet.dpro.session.SessionIDFactory',\n 'com.iplanet.dpro.session.share.SessionEncodeURL',\n 'com.iplanet.services.naming.WebtopNaming',\n 'com.iplanet.sso.providers.dpro.SSOProviderImpl',\n 'com.sun.identity.authentication.AuthContext',\n 'com.sun.identity.authentication.client.AuthClientUtils',\n 'com.sun.identity.authentication.config.AMAuthConfigType',\n 'com.sun.identity.authentication.config.AMAuthenticationManager',\n 'com.sun.identity.authentication.config.AMAuthLevelManager',\n 'com.sun.identity.authentication.config.AMConfiguration',\n 'com.sun.identity.authentication.jaas.LoginContext',\n 'com.sun.identity.authentication.modules.application.Application',\n 'com.sun.identity.authentication.server.AuthContextLocal',\n 'com.sun.identity.authentication.service.AMLoginContext',\n 'com.sun.identity.authentication.service.AuthContextLookup',\n 'com.sun.identity.authentication.service.AuthD',\n 'com.sun.identity.authentication.service.AuthUtils',\n 'com.sun.identity.authentication.service.DSAMECallbackHandler',\n 'com.sun.identity.authentication.service.LoginState',\n 'com.sun.identity.authentication.spi.AMLoginModule',\n 'com.sun.identity.delegation.DelegationEvaluatorImpl',\n 'com.sun.identity.idm.plugins.internal.AgentsRepo',\n 'com.sun.identity.idm.server.IdCachedServicesImpl',\n 'com.sun.identity.idm.server.IdRepoPluginsCache',\n 'com.sun.identity.idm.server.IdServicesImpl',\n 'com.sun.identity.log.spi.ISDebug',\n 'com.sun.identity.shared.encode.CookieUtils',\n 'com.sun.identity.sm.ldap.SMSLdapObject',\n 'com.sun.identity.sm.CachedSMSEntry',\n 'com.sun.identity.sm.CachedSubEntries',\n 'com.sun.identity.sm.DNMapper',\n 'com.sun.identity.sm.ServiceConfigImpl',\n 'com.sun.identity.sm.ServiceConfigManagerImpl',\n 'com.sun.identity.sm.SMSEntry',\n 'com.sun.identity.sm.SMSUtils',\n 'com.sun.identity.sm.SmsWrapperObject',\n 'oauth2',\n 'org.apache.http.client.protocol.RequestAuthCache',\n 'org.apache.http.impl.conn.PoolingHttpClientConnectionManager',\n 'org.apache.http.impl.nio.client.InternalHttpAsyncClient',\n 'org.apache.http.impl.nio.client.InternalIODispatch',\n 'org.apache.http.impl.nio.client.MainClientExec',\n 'org.apache.http.impl.nio.conn.ManagedNHttpClientConnectionImpl',\n 'org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager',\n 'org.forgerock.audit.AuditServiceImpl',\n 'org.forgerock.oauth2.core.RealmOAuth2ProviderSettings',\n 'org.forgerock.openam.authentication.service.JAASModuleDetector',\n 'org.forgerock.openam.authentication.service.LoginContextFactory',\n 'org.forgerock.openam.blacklist.BloomFilterBlacklist',\n 'org.forgerock.openam.blacklist.CTSBlacklist',\n 'org.forgerock.openam.core.realms.impl.CachingRealmLookup',\n 'org.forgerock.openam.core.rest.authn.RestAuthCallbackHandlerManager',\n 'org.forgerock.openam.core.rest.authn.trees.AuthTrees',\n 'org.forgerock.openam.cors.CorsFilter',\n 'org.forgerock.openam.cts.CTSPersistentStoreImpl',\n 'org.forgerock.openam.cts.impl.CoreTokenAdapter',\n 'org.forgerock.openam.cts.impl.queue.AsyncResultHandler',\n 'org.forgerock.openam.cts.reaper.ReaperDeleteOnQueryResultHandler',\n 'org.forgerock.openam.headers.DisableSameSiteCookiesFilter',\n 'org.forgerock.openam.idrepo.ldap.DJLDAPv3Repo',\n 'org.forgerock.openam.rest.CsrfFilter',\n 'org.forgerock.openam.rest.restAuthenticationFilter',\n 'org.forgerock.openam.rest.fluent.CrestLoggingFilter',\n 'org.forgerock.openam.session.cts.CtsOperations',\n 'org.forgerock.openam.session.stateless.StatelessSessionManager',\n 'org.forgerock.openam.sm.datalayer.impl.ldap.ExternalLdapConfig',\n 'org.forgerock.openam.sm.datalayer.impl.ldap.LdapQueryBuilder',\n 'org.forgerock.openam.sm.datalayer.impl.SeriesTaskExecutor',\n 'org.forgerock.openam.sm.datalayer.impl.SeriesTaskExecutorThread',\n 'org.forgerock.openam.sm.datalayer.providers.LdapConnectionFactoryProvider',\n 'org.forgerock.openam.sm.file.ConfigFileSystemHandler',\n 'org.forgerock.openam.social.idp.SocialIdentityProviders',\n 'org.forgerock.openam.utils.ClientUtils',\n 'org.forgerock.opendj.ldap.CachedConnectionPool',\n 'org.forgerock.opendj.ldap.LoadBalancer',\n 'org.forgerock.secrets.keystore.KeyStoreSecretStore',\n 'org.forgerock.secrets.propertyresolver.PropertyResolverSecretStore',\n 'org.forgerock.secrets.SecretsProvider',\n];\n\nconst journeysNoise = [\n 'org.forgerock.openam.auth.trees.engine.AuthTreeExecutor',\n];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst journeys = [\n 'org.forgerock.openam.auth.nodes.SelectIdPNode',\n 'org.forgerock.openam.auth.nodes.ValidatedPasswordNode',\n 'org.forgerock.openam.auth.nodes.ValidatedUsernameNode',\n 'org.forgerock.openam.auth.trees.engine.AuthTreeExecutor',\n];\n\nconst samlNoise = [\n 'com.sun.identity.cot.COTCache',\n 'com.sun.identity.plugin.configuration.impl.ConfigurationInstanceImpl',\n 'com.sun.identity.saml2.meta.SAML2MetaCache',\n 'com.sun.identity.saml2.profile.CacheCleanUpRunnable',\n 'org.apache.xml.security.keys.KeyInfo',\n 'org.apache.xml.security.signature.XMLSignature',\n 'org.apache.xml.security.utils.SignerOutputStream',\n 'org.apache.xml.security.utils.resolver.ResourceResolver',\n 'org.apache.xml.security.utils.resolver.implementations.ResolverFragment',\n 'org.apache.xml.security.algorithms.JCEMapper',\n 'org.apache.xml.security.algorithms.implementations.SignatureBaseRSA',\n 'org.apache.xml.security.algorithms.SignatureAlgorithm',\n 'org.apache.xml.security.utils.ElementProxy',\n 'org.apache.xml.security.transforms.Transforms',\n 'org.apache.xml.security.utils.DigesterOutputStream',\n 'org.apache.xml.security.signature.Reference',\n 'org.apache.xml.security.signature.Manifest',\n];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst saml = [\n 'jsp.saml2.spAssertionConsumer',\n 'com.sun.identity.saml.common.SAMLUtils',\n 'com.sun.identity.saml2.common.SAML2Utils',\n 'com.sun.identity.saml2.meta.SAML2MetaManager',\n 'com.sun.identity.saml2.xmlsig.FMSigProvider',\n];\n\nconst noise = miscNoise.concat(samlNoise).concat(journeysNoise);\n\nconst numLogLevelMap = {\n 0: ['SEVERE', 'ERROR', 'FATAL'],\n 1: ['WARNING', 'WARN', 'CONFIG'],\n 2: ['INFO', 'INFORMATION'],\n 3: ['DEBUG', 'FINE', 'FINER', 'FINEST'],\n 4: ['ALL'],\n};\n\nconst logLevelMap = {\n SEVERE: ['SEVERE', 'ERROR', 'FATAL'],\n ERROR: ['SEVERE', 'ERROR', 'FATAL'],\n FATAL: ['SEVERE', 'ERROR', 'FATAL'],\n WARN: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n WARNING: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n CONFIG: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n INFO: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n ],\n INFORMATION: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n ],\n DEBUG: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINE: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINER: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINEST: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n ALL: ['ALL'],\n};\n\n/**\n * Get default noise filter\n * @returns {string[]} array of default event types and loggers to be filtered out\n */\nexport function getDefaultNoiseFilter(): string[] {\n return noise;\n}\n\n/**\n * Resolve log level to an array of effective log levels\n * @param level string or numeric log level: 'FATAL', 'ERROR', 'WARN', 'INFO', 'DEBUG', 'TRACE', 'ALL', 0, 1, 2, 3, 4\n * @returns {string[]} array of effective log levels\n */\nexport function resolveLevel(level: string | number): string[] {\n if (Number.isNaN(parseInt(level as string, 10))) {\n return logLevelMap[level];\n }\n return logLevelMap[numLogLevelMap[level as number][0]];\n}\n\n/**\n * Resolve a log event's level\n * @param {object} log log event\n * @returns {string} log level\n */\nexport function resolvePayloadLevel(log: LogEventSkeleton): string {\n // It seems that the undesirable 'text/plain' logs start with a date, not a LEVEL\n // Therefore, for those, this function returns null, and thus filters out the undesirable\n try {\n return log.type !== 'text/plain'\n ? (log.payload as LogEventPayloadSkeleton).level\n : (log.payload as string).match(/^([^:]*):/)[1];\n } catch (e) {\n // Fail-safe for no group match\n return null;\n }\n}\n\n/**\n * Get available log sources\n * @returns {Promise<string[]>} promise resolving to an array of available log sources\n */\nexport async function getLogSources({ state }: { state: State }) {\n const sources = (await getSources({ state })).result;\n return sources;\n}\n\n/**\n * Get log api keys\n * @returns {Promise<LogApiKey[]>} promise resolving to an array of LogApiKey objects\n */\nexport async function getLogApiKeys({\n state,\n}: {\n state: State;\n}): Promise<LogApiKey[]> {\n const keys = (await getAPIKeys({ state })).result;\n return keys;\n}\n\nexport { tail, fetch, createAPIKeyAndSecret };\n"],"mappings":"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"}
1
+ {"version":3,"file":"LogOps.js","names":["_LogApi","require","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","LogOps","constructor","state","getDefaultNoiseFilter","resolveLevel","level","resolvePayloadLevel","log","getLogSources","_this","getLogApiKeys","_this2","createLogApiKeyAndSecret","keyName","_this3","createAPIKeyAndSecret","tail","source","cookie","fetch","startTs","endTs","_this4","exports","default","unfilterableNoise","miscNoise","journeysNoise","journeys","samlNoise","saml","noise","concat","numLogLevelMap","logLevelMap","SEVERE","ERROR","FATAL","WARN","WARNING","CONFIG","INFO","INFORMATION","DEBUG","FINE","FINER","FINEST","ALL","Number","isNaN","parseInt","type","payload","match","e","_x","_getLogSources","_ref","sources","getSources","result","_x2","_getLogApiKeys","_ref2","keys","getAPIKeys"],"sources":["ops/cloud/LogOps.ts"],"sourcesContent":["import {\n LogApiKey,\n LogEventPayloadSkeleton,\n LogEventSkeleton,\n NoIdObjectSkeletonInterface,\n PagedResult,\n} from '../../api/ApiTypes';\nimport {\n createAPIKeyAndSecret,\n getAPIKeys,\n getSources,\n tail,\n fetch,\n} from '../../api/cloud/LogApi';\nimport State from '../../shared/State';\n\nexport default class LogOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get default noise filter\n * @returns {string[]} array of default event types and loggers to be filtered out\n */\n getDefaultNoiseFilter(): string[] {\n return getDefaultNoiseFilter();\n }\n\n /**\n * Resolve log level to an array of effective log levels\n * @param level string or numeric log level: 'FATAL', 'ERROR', 'WARN', 'INFO', 'DEBUG', 'TRACE', 'ALL', 0, 1, 2, 3, 4\n * @returns {string[]} array of effective log levels\n */\n resolveLevel(level: string | number): string[] {\n return resolveLevel(level);\n }\n\n /**\n * Resolve a log event's level\n * @param {object} log log event\n * @returns {string} log level\n */\n resolvePayloadLevel(log: LogEventSkeleton): string {\n return resolvePayloadLevel(log);\n }\n\n /**\n * Get available log sources\n * @returns {Promise<string[]>} promise resolving to an array of available log sources\n */\n async getLogSources() {\n return getLogSources({ state: this.state });\n }\n\n /**\n * Get log api keys\n * @returns {Promise<LogApiKey[]>} promise resolving to an array of LogApiKey objects\n */\n async getLogApiKeys(): Promise<LogApiKey[]> {\n return getLogApiKeys({ state: this.state });\n }\n\n /**\n * Create log api key and secret\n * @param {string} keyName key name\n * @returns {Promise<NoIdObjectSkeletonInterface>} a promise resolving to an object containing the log api key and secret\n */\n async createLogApiKeyAndSecret(\n keyName: string\n ): Promise<NoIdObjectSkeletonInterface> {\n return createAPIKeyAndSecret({ keyName, state: this.state });\n }\n\n /**\n * Tail logs\n * @param {string} source log source(s) to tail\n * @param {string} cookie paged results cookie\n * @returns {Promise<PagedResult<LogEventSkeleton>>} promise resolving to paged log event result\n */\n tail(source: string, cookie: string): Promise<PagedResult<LogEventSkeleton>> {\n return tail({ source, cookie, state: this.state });\n }\n\n /**\n * Fetch logs\n * @param {string} source log source(s) to tail\n * @param {string} startTs start timestamp\n * @param {string} endTs end timestamp\n * @param {string} cookie paged results cookie\n * @returns {Promise<PagedResult<LogEventSkeleton>>} promise resolving to paged log event result\n */\n async fetch(\n source: string,\n startTs: string,\n endTs: string,\n cookie: string\n ): Promise<PagedResult<LogEventSkeleton>> {\n return fetch({ source, startTs, endTs, cookie, state: this.state });\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst unfilterableNoise = [\n 'text/plain', // Unfortunately, it is impossible to filter out those without excluding IDM script logging as well\n];\n\nconst miscNoise = [\n 'com.iplanet.dpro.session.operations.ServerSessionOperationStrategy',\n 'com.iplanet.dpro.session.SessionIDFactory',\n 'com.iplanet.dpro.session.share.SessionEncodeURL',\n 'com.iplanet.services.naming.WebtopNaming',\n 'com.iplanet.sso.providers.dpro.SSOProviderImpl',\n 'com.sun.identity.authentication.AuthContext',\n 'com.sun.identity.authentication.client.AuthClientUtils',\n 'com.sun.identity.authentication.config.AMAuthConfigType',\n 'com.sun.identity.authentication.config.AMAuthenticationManager',\n 'com.sun.identity.authentication.config.AMAuthLevelManager',\n 'com.sun.identity.authentication.config.AMConfiguration',\n 'com.sun.identity.authentication.jaas.LoginContext',\n 'com.sun.identity.authentication.modules.application.Application',\n 'com.sun.identity.authentication.server.AuthContextLocal',\n 'com.sun.identity.authentication.service.AMLoginContext',\n 'com.sun.identity.authentication.service.AuthContextLookup',\n 'com.sun.identity.authentication.service.AuthD',\n 'com.sun.identity.authentication.service.AuthUtils',\n 'com.sun.identity.authentication.service.DSAMECallbackHandler',\n 'com.sun.identity.authentication.service.LoginState',\n 'com.sun.identity.authentication.spi.AMLoginModule',\n 'com.sun.identity.delegation.DelegationEvaluatorImpl',\n 'com.sun.identity.idm.plugins.internal.AgentsRepo',\n 'com.sun.identity.idm.server.IdCachedServicesImpl',\n 'com.sun.identity.idm.server.IdRepoPluginsCache',\n 'com.sun.identity.idm.server.IdServicesImpl',\n 'com.sun.identity.log.spi.ISDebug',\n 'com.sun.identity.shared.encode.CookieUtils',\n 'com.sun.identity.sm.ldap.SMSLdapObject',\n 'com.sun.identity.sm.CachedSMSEntry',\n 'com.sun.identity.sm.CachedSubEntries',\n 'com.sun.identity.sm.DNMapper',\n 'com.sun.identity.sm.ServiceConfigImpl',\n 'com.sun.identity.sm.ServiceConfigManagerImpl',\n 'com.sun.identity.sm.SMSEntry',\n 'com.sun.identity.sm.SMSUtils',\n 'com.sun.identity.sm.SmsWrapperObject',\n 'oauth2',\n 'org.apache.http.client.protocol.RequestAuthCache',\n 'org.apache.http.impl.conn.PoolingHttpClientConnectionManager',\n 'org.apache.http.impl.nio.client.InternalHttpAsyncClient',\n 'org.apache.http.impl.nio.client.InternalIODispatch',\n 'org.apache.http.impl.nio.client.MainClientExec',\n 'org.apache.http.impl.nio.conn.ManagedNHttpClientConnectionImpl',\n 'org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager',\n 'org.forgerock.audit.AuditServiceImpl',\n 'org.forgerock.oauth2.core.RealmOAuth2ProviderSettings',\n 'org.forgerock.openam.authentication.service.JAASModuleDetector',\n 'org.forgerock.openam.authentication.service.LoginContextFactory',\n 'org.forgerock.openam.blacklist.BloomFilterBlacklist',\n 'org.forgerock.openam.blacklist.CTSBlacklist',\n 'org.forgerock.openam.core.realms.impl.CachingRealmLookup',\n 'org.forgerock.openam.core.rest.authn.RestAuthCallbackHandlerManager',\n 'org.forgerock.openam.core.rest.authn.trees.AuthTrees',\n 'org.forgerock.openam.cors.CorsFilter',\n 'org.forgerock.openam.cts.CTSPersistentStoreImpl',\n 'org.forgerock.openam.cts.impl.CoreTokenAdapter',\n 'org.forgerock.openam.cts.impl.queue.AsyncResultHandler',\n 'org.forgerock.openam.cts.reaper.ReaperDeleteOnQueryResultHandler',\n 'org.forgerock.openam.headers.DisableSameSiteCookiesFilter',\n 'org.forgerock.openam.idrepo.ldap.DJLDAPv3Repo',\n 'org.forgerock.openam.rest.CsrfFilter',\n 'org.forgerock.openam.rest.restAuthenticationFilter',\n 'org.forgerock.openam.rest.fluent.CrestLoggingFilter',\n 'org.forgerock.openam.session.cts.CtsOperations',\n 'org.forgerock.openam.session.stateless.StatelessSessionManager',\n 'org.forgerock.openam.sm.datalayer.impl.ldap.ExternalLdapConfig',\n 'org.forgerock.openam.sm.datalayer.impl.ldap.LdapQueryBuilder',\n 'org.forgerock.openam.sm.datalayer.impl.SeriesTaskExecutor',\n 'org.forgerock.openam.sm.datalayer.impl.SeriesTaskExecutorThread',\n 'org.forgerock.openam.sm.datalayer.providers.LdapConnectionFactoryProvider',\n 'org.forgerock.openam.sm.file.ConfigFileSystemHandler',\n 'org.forgerock.openam.social.idp.SocialIdentityProviders',\n 'org.forgerock.openam.utils.ClientUtils',\n 'org.forgerock.opendj.ldap.CachedConnectionPool',\n 'org.forgerock.opendj.ldap.LoadBalancer',\n 'org.forgerock.secrets.keystore.KeyStoreSecretStore',\n 'org.forgerock.secrets.propertyresolver.PropertyResolverSecretStore',\n 'org.forgerock.secrets.SecretsProvider',\n];\n\nconst journeysNoise = [\n 'org.forgerock.openam.auth.trees.engine.AuthTreeExecutor',\n];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst journeys = [\n 'org.forgerock.openam.auth.nodes.SelectIdPNode',\n 'org.forgerock.openam.auth.nodes.ValidatedPasswordNode',\n 'org.forgerock.openam.auth.nodes.ValidatedUsernameNode',\n 'org.forgerock.openam.auth.trees.engine.AuthTreeExecutor',\n];\n\nconst samlNoise = [\n 'com.sun.identity.cot.COTCache',\n 'com.sun.identity.plugin.configuration.impl.ConfigurationInstanceImpl',\n 'com.sun.identity.saml2.meta.SAML2MetaCache',\n 'com.sun.identity.saml2.profile.CacheCleanUpRunnable',\n 'org.apache.xml.security.keys.KeyInfo',\n 'org.apache.xml.security.signature.XMLSignature',\n 'org.apache.xml.security.utils.SignerOutputStream',\n 'org.apache.xml.security.utils.resolver.ResourceResolver',\n 'org.apache.xml.security.utils.resolver.implementations.ResolverFragment',\n 'org.apache.xml.security.algorithms.JCEMapper',\n 'org.apache.xml.security.algorithms.implementations.SignatureBaseRSA',\n 'org.apache.xml.security.algorithms.SignatureAlgorithm',\n 'org.apache.xml.security.utils.ElementProxy',\n 'org.apache.xml.security.transforms.Transforms',\n 'org.apache.xml.security.utils.DigesterOutputStream',\n 'org.apache.xml.security.signature.Reference',\n 'org.apache.xml.security.signature.Manifest',\n];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst saml = [\n 'jsp.saml2.spAssertionConsumer',\n 'com.sun.identity.saml.common.SAMLUtils',\n 'com.sun.identity.saml2.common.SAML2Utils',\n 'com.sun.identity.saml2.meta.SAML2MetaManager',\n 'com.sun.identity.saml2.xmlsig.FMSigProvider',\n];\n\nconst noise = miscNoise.concat(samlNoise).concat(journeysNoise);\n\nconst numLogLevelMap = {\n 0: ['SEVERE', 'ERROR', 'FATAL'],\n 1: ['WARNING', 'WARN', 'CONFIG'],\n 2: ['INFO', 'INFORMATION'],\n 3: ['DEBUG', 'FINE', 'FINER', 'FINEST'],\n 4: ['ALL'],\n};\n\nconst logLevelMap = {\n SEVERE: ['SEVERE', 'ERROR', 'FATAL'],\n ERROR: ['SEVERE', 'ERROR', 'FATAL'],\n FATAL: ['SEVERE', 'ERROR', 'FATAL'],\n WARN: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n WARNING: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n CONFIG: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n INFO: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n ],\n INFORMATION: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n ],\n DEBUG: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINE: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINER: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINEST: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n ALL: ['ALL'],\n};\n\n/**\n * Get default noise filter\n * @returns {string[]} array of default event types and loggers to be filtered out\n */\nexport function getDefaultNoiseFilter(): string[] {\n return noise;\n}\n\n/**\n * Resolve log level to an array of effective log levels\n * @param level string or numeric log level: 'FATAL', 'ERROR', 'WARN', 'INFO', 'DEBUG', 'TRACE', 'ALL', 0, 1, 2, 3, 4\n * @returns {string[]} array of effective log levels\n */\nexport function resolveLevel(level: string | number): string[] {\n if (Number.isNaN(parseInt(level as string, 10))) {\n return logLevelMap[level];\n }\n return logLevelMap[numLogLevelMap[level as number][0]];\n}\n\n/**\n * Resolve a log event's level\n * @param {object} log log event\n * @returns {string} log level\n */\nexport function resolvePayloadLevel(log: LogEventSkeleton): string {\n // It seems that the undesirable 'text/plain' logs start with a date, not a LEVEL\n // Therefore, for those, this function returns null, and thus filters out the undesirable\n try {\n return log.type !== 'text/plain'\n ? (log.payload as LogEventPayloadSkeleton).level\n : (log.payload as string).match(/^([^:]*):/)[1];\n } catch (e) {\n // Fail-safe for no group match\n return null;\n }\n}\n\n/**\n * Get available log sources\n * @returns {Promise<string[]>} promise resolving to an array of available log sources\n */\nexport async function getLogSources({ state }: { state: State }) {\n const sources = (await getSources({ state })).result;\n return sources;\n}\n\n/**\n * Get log api keys\n * @returns {Promise<LogApiKey[]>} promise resolving to an array of LogApiKey objects\n */\nexport async function getLogApiKeys({\n state,\n}: {\n state: State;\n}): Promise<LogApiKey[]> {\n const keys = (await getAPIKeys({ state })).result;\n return keys;\n}\n\nexport { tail, fetch, createAPIKeyAndSecret };\n"],"mappings":"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"}