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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/cjs/api/AgentApi.js +64 -16
  3. package/cjs/api/AgentApi.js.map +1 -1
  4. package/cjs/api/ApiTypes.js +0 -55
  5. package/cjs/api/ApiTypes.js.map +1 -1
  6. package/cjs/api/BaseApi.js +21 -11
  7. package/cjs/api/BaseApi.js.map +1 -1
  8. package/cjs/api/cloud/SecretsApi.js +7 -14
  9. package/cjs/api/cloud/SecretsApi.js.map +1 -1
  10. package/cjs/api/cloud/SecretsApi.test.js.map +1 -1
  11. package/cjs/index.js +6 -0
  12. package/cjs/index.js.map +1 -1
  13. package/cjs/ops/AdminOps.js +254 -60
  14. package/cjs/ops/AdminOps.js.map +1 -1
  15. package/cjs/ops/AgentOps.js +352 -108
  16. package/cjs/ops/AgentOps.js.map +1 -1
  17. package/cjs/ops/AuthenticateOps.js +262 -65
  18. package/cjs/ops/AuthenticateOps.js.map +1 -1
  19. package/cjs/ops/CirclesOfTrustOps.js +16 -4
  20. package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
  21. package/cjs/ops/ConnectionProfileOps.js +163 -40
  22. package/cjs/ops/ConnectionProfileOps.js.map +1 -1
  23. package/cjs/ops/EmailTemplateOps.js +7 -1
  24. package/cjs/ops/EmailTemplateOps.js.map +1 -1
  25. package/cjs/ops/IdpOps.js +55 -12
  26. package/cjs/ops/IdpOps.js.map +1 -1
  27. package/cjs/ops/JourneyOps.js +645 -136
  28. package/cjs/ops/JourneyOps.js.map +1 -1
  29. package/cjs/ops/NodeOps.js +96 -24
  30. package/cjs/ops/NodeOps.js.map +1 -1
  31. package/cjs/ops/OAuth2ClientOps.js +45 -11
  32. package/cjs/ops/OAuth2ClientOps.js.map +1 -1
  33. package/cjs/ops/OpsTypes.js +0 -23
  34. package/cjs/ops/OpsTypes.js.map +1 -1
  35. package/cjs/ops/OrganizationOps.js +44 -10
  36. package/cjs/ops/OrganizationOps.js.map +1 -1
  37. package/cjs/ops/PolicyOps.js +86 -24
  38. package/cjs/ops/PolicyOps.js.map +1 -1
  39. package/cjs/ops/PolicySetOps.js +72 -18
  40. package/cjs/ops/PolicySetOps.js.map +1 -1
  41. package/cjs/ops/ResourceTypeOps.js +24 -6
  42. package/cjs/ops/ResourceTypeOps.js.map +1 -1
  43. package/cjs/ops/Saml2Ops.js +121 -42
  44. package/cjs/ops/Saml2Ops.js.map +1 -1
  45. package/cjs/ops/Saml2Ops.test.js.map +1 -1
  46. package/cjs/ops/ScriptOps.js +73 -17
  47. package/cjs/ops/ScriptOps.js.map +1 -1
  48. package/cjs/ops/ServiceOps.js +152 -35
  49. package/cjs/ops/ServiceOps.js.map +1 -1
  50. package/cjs/ops/ThemeOps.js +20 -5
  51. package/cjs/ops/ThemeOps.js.map +1 -1
  52. package/cjs/ops/cloud/FeatureOps.js +4 -1
  53. package/cjs/ops/cloud/FeatureOps.js.map +1 -1
  54. package/cjs/ops/cloud/SecretsOps.js.map +1 -1
  55. package/cjs/ops/cloud/ServiceAccountOps.js +24 -6
  56. package/cjs/ops/cloud/ServiceAccountOps.js.map +1 -1
  57. package/cjs/ops/cloud/StartupOps.js +55 -11
  58. package/cjs/ops/cloud/StartupOps.js.map +1 -1
  59. package/cjs/ops/utils/Console.js +47 -22
  60. package/cjs/ops/utils/Console.js.map +1 -1
  61. package/cjs/ops/utils/DataProtection.js +12 -5
  62. package/cjs/ops/utils/DataProtection.js.map +1 -1
  63. package/cjs/ops/utils/DataProtection.test.js.map +1 -1
  64. package/cjs/ops/utils/ExportImportUtils.js +15 -8
  65. package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
  66. package/cjs/ops/utils/ScriptValidationUtils.js +33 -8
  67. package/cjs/ops/utils/ScriptValidationUtils.js.map +1 -1
  68. package/cjs/ops/utils/ScriptValidationUtils.test.js.map +1 -1
  69. package/cjs/utils/SetupPollyForFrodoLib.js +67 -19
  70. package/cjs/utils/SetupPollyForFrodoLib.js.map +1 -1
  71. package/esm/api/AgentApi.mjs +64 -16
  72. package/esm/api/ApiTypes.mjs +1 -50
  73. package/esm/api/BaseApi.mjs +21 -11
  74. package/esm/api/cloud/SecretsApi.mjs +0 -5
  75. package/esm/api/cloud/SecretsApi.test.mjs +3 -3
  76. package/esm/index.mjs +1 -1
  77. package/esm/ops/AdminOps.mjs +254 -60
  78. package/esm/ops/AgentOps.mjs +352 -104
  79. package/esm/ops/AuthenticateOps.mjs +262 -65
  80. package/esm/ops/CirclesOfTrustOps.mjs +16 -4
  81. package/esm/ops/ConnectionProfileOps.mjs +163 -40
  82. package/esm/ops/EmailTemplateOps.mjs +5 -0
  83. package/esm/ops/IdpOps.mjs +55 -12
  84. package/esm/ops/JourneyOps.mjs +639 -132
  85. package/esm/ops/NodeOps.mjs +90 -19
  86. package/esm/ops/OAuth2ClientOps.mjs +45 -11
  87. package/esm/ops/OpsTypes.mjs +1 -22
  88. package/esm/ops/OrganizationOps.mjs +44 -10
  89. package/esm/ops/PolicyOps.mjs +86 -24
  90. package/esm/ops/PolicySetOps.mjs +72 -18
  91. package/esm/ops/ResourceTypeOps.mjs +24 -6
  92. package/esm/ops/Saml2Ops.mjs +120 -39
  93. package/esm/ops/Saml2Ops.test.mjs +10 -11
  94. package/esm/ops/ScriptOps.mjs +73 -17
  95. package/esm/ops/ServiceOps.mjs +152 -35
  96. package/esm/ops/ThemeOps.mjs +20 -5
  97. package/esm/ops/cloud/FeatureOps.mjs +4 -1
  98. package/esm/ops/cloud/ServiceAccountOps.mjs +24 -6
  99. package/esm/ops/cloud/StartupOps.mjs +55 -11
  100. package/esm/ops/utils/Console.mjs +33 -9
  101. package/esm/ops/utils/DataProtection.mjs +9 -2
  102. package/esm/ops/utils/DataProtection.test.mjs +8 -2
  103. package/esm/ops/utils/ExportImportUtils.mjs +15 -8
  104. package/esm/ops/utils/ScriptValidationUtils.mjs +30 -8
  105. package/esm/ops/utils/ScriptValidationUtils.test.mjs +14 -3
  106. package/esm/utils/SetupPollyForFrodoLib.mjs +64 -18
  107. package/package.json +1 -1
  108. package/types/api/AgentApi.d.ts +6 -6
  109. package/types/api/AgentApi.d.ts.map +1 -1
  110. package/types/api/ApiTypes.d.ts +12 -49
  111. package/types/api/ApiTypes.d.ts.map +1 -1
  112. package/types/api/BaseApi.d.ts.map +1 -1
  113. package/types/api/cloud/SecretsApi.d.ts +1 -4
  114. package/types/api/cloud/SecretsApi.d.ts.map +1 -1
  115. package/types/index.d.ts +1 -1
  116. package/types/index.d.ts.map +1 -1
  117. package/types/ops/AdminOps.d.ts.map +1 -1
  118. package/types/ops/AgentOps.d.ts +3 -6
  119. package/types/ops/AgentOps.d.ts.map +1 -1
  120. package/types/ops/AuthenticateOps.d.ts.map +1 -1
  121. package/types/ops/CirclesOfTrustOps.d.ts.map +1 -1
  122. package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
  123. package/types/ops/EmailTemplateOps.d.ts +4 -0
  124. package/types/ops/EmailTemplateOps.d.ts.map +1 -1
  125. package/types/ops/IdpOps.d.ts.map +1 -1
  126. package/types/ops/JourneyOps.d.ts +10 -5
  127. package/types/ops/JourneyOps.d.ts.map +1 -1
  128. package/types/ops/NodeOps.d.ts +10 -4
  129. package/types/ops/NodeOps.d.ts.map +1 -1
  130. package/types/ops/OAuth2ClientOps.d.ts.map +1 -1
  131. package/types/ops/OpsTypes.d.ts +2 -12
  132. package/types/ops/OpsTypes.d.ts.map +1 -1
  133. package/types/ops/OrganizationOps.d.ts.map +1 -1
  134. package/types/ops/PolicyOps.d.ts.map +1 -1
  135. package/types/ops/PolicySetOps.d.ts.map +1 -1
  136. package/types/ops/ResourceTypeOps.d.ts.map +1 -1
  137. package/types/ops/Saml2Ops.d.ts +0 -6
  138. package/types/ops/Saml2Ops.d.ts.map +1 -1
  139. package/types/ops/ScriptOps.d.ts.map +1 -1
  140. package/types/ops/ServiceOps.d.ts.map +1 -1
  141. package/types/ops/ThemeOps.d.ts.map +1 -1
  142. package/types/ops/cloud/FeatureOps.d.ts.map +1 -1
  143. package/types/ops/cloud/SecretsOps.d.ts +1 -1
  144. package/types/ops/cloud/SecretsOps.d.ts.map +1 -1
  145. package/types/ops/cloud/ServiceAccountOps.d.ts.map +1 -1
  146. package/types/ops/cloud/StartupOps.d.ts.map +1 -1
  147. package/types/ops/utils/Console.d.ts +34 -7
  148. package/types/ops/utils/Console.d.ts.map +1 -1
  149. package/types/ops/utils/DataProtection.d.ts +5 -1
  150. package/types/ops/utils/DataProtection.d.ts.map +1 -1
  151. package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
  152. package/types/ops/utils/ScriptValidationUtils.d.ts +14 -4
  153. package/types/ops/utils/ScriptValidationUtils.d.ts.map +1 -1
  154. package/types/utils/SetupPollyForFrodoLib.d.ts +5 -1
  155. package/types/utils/SetupPollyForFrodoLib.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Saml2Ops.test.js","names":["_index","require","Saml2Ops","_interopRequireWildcard","globalConfig","_ApiTypes","_ForgeRockApiMockEngine","_Base","_AutoSetupPolly","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","autoSetupPolly","state","setDeploymentType","CLOUD_DEPLOYMENT_TYPE_KEY","stageProvider","_x","_stageProvider","provider","create","length","getSaml2Provider","entityId","deleteSaml2Provider","isAxiosError","_error$response","console","log","concat","message","dir","response","data","importSaml2Provider","importData","getSaml2ProviderImportData","_error$response2","describe","provider1","location","Saml2ProiderLocation","HOSTED","entityId64","encodeBase64Url","provider2","REMOTE","provider3","provider4","provider5","provider6","provider7","provider8","provider9","provider10","beforeAll","process","env","FRODO_POLLY_MODE","FRODO_RECORD_PHASE","afterAll","test","expect","createSaml2ExportTemplate","toBeDefined","toMatchSnapshot","meta","any","getSaml2ProviderStubs","getProviderByLocationAndId","getProviderMetadataUrl","toMatch","RegExp","FRODO_HOST","url","URL","pathname","searchParams","URLSearchParams","search","getProviderMetadata","getSaml2ProviderStub","exportSaml2Provider","exportSaml2Providers","assertions","toBeTruthy","importSaml2Providers","getSaml2ProvidersImportData","failures","toBe","warnings","deleteSaml2Providers"],"sources":["ops/Saml2Ops.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses\n *\n * This step breaks down into 5 phases:\n *\n * Phase 1: Record Group 1 of non-destructive tests\n * Phase 2: Record Group 2 of non-destructive tests - Import all\n * Phase 3: Record Group 1 of DESTRUCTIVE tests - Deletes by entity id\n * Phase 4: Record Group 2 of DESTRUCTIVE tests - Delete all\n *\n * Because destructive tests interfere with the recording of non-destructive\n * tests and also interfere among themselves, they have to be run in groups\n * of non-interfering tests.\n *\n * To record API responses, you must call the test:record script and\n * override all the connection state variables required to connect to the\n * env to record from and also indicate the phase:\n *\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=1 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=2 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n *\n * THESE TESTS ARE DESTRUCTIVE!!! DO NOT RUN AGAINST AN ENV WITH ACTIVE CONFIGURATION!!!\n *\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=3 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=4 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=5 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n *\n * The above command assumes that you have a connection profile for\n * 'frodo-dev' on your development machine.\n *\n * 2. Update snapshots\n *\n * After recording API responses, you must manually update/create snapshots\n * by running:\n *\n * FRODO_DEBUG=1 npm run test:update Saml2Ops\n *\n * 3. Test your changes\n *\n * If 1 and 2 didn't produce any errors, you are ready to run the tests in\n * replay mode and make sure they all succeed as well:\n *\n * npm run test:only Saml2Ops\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport { state } from '../index';\nimport * as Saml2Ops from './Saml2Ops';\nimport * as globalConfig from '../storage/StaticStorage';\nimport { Saml2ProiderLocation } from '../api/ApiTypes';\nimport {\n getSaml2ProviderImportData,\n getSaml2ProvidersImportData,\n} from '../test/mocks/ForgeRockApiMockEngine';\nimport { encodeBase64Url } from '../api/utils/Base64';\nimport { autoSetupPolly } from '../utils/AutoSetupPolly';\n\nautoSetupPolly();\n\nstate.setDeploymentType(globalConfig.CLOUD_DEPLOYMENT_TYPE_KEY);\n\nasync function stageProvider(provider: { entityId: string }, create = true) {\n // delete if exists, then create\n try {\n await Saml2Ops.getSaml2Provider({ entityId: provider.entityId, state });\n await Saml2Ops.deleteSaml2Provider({ entityId: provider.entityId, state });\n } catch (error) {\n if (error.isAxiosError) {\n console.log(\n `Error deleting provider '${provider.entityId}': ${error.message}`\n );\n console.dir(error.response?.data);\n }\n } finally {\n if (create) {\n try {\n await Saml2Ops.importSaml2Provider({\n entityId: provider.entityId,\n importData: getSaml2ProviderImportData(provider.entityId),\n state,\n });\n } catch (error) {\n console.log(\n `Error importing provider '${provider.entityId}': ${error.message}`\n );\n console.dir(error.response?.data);\n }\n }\n }\n}\n\ndescribe('Saml2Ops', () => {\n const provider1 = {\n entityId: 'iSPAzure',\n location: Saml2ProiderLocation.HOSTED,\n entityId64: encodeBase64Url('iSPAzure'),\n };\n const provider2 = {\n entityId: 'urn:federation:MicrosoftOnline',\n location: Saml2ProiderLocation.REMOTE,\n entityId64: encodeBase64Url('urn:federation:MicrosoftOnline'),\n };\n const provider3 = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPFedlet',\n location: Saml2ProiderLocation.HOSTED,\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPFedlet'),\n };\n const provider4 = {\n entityId: 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/',\n location: Saml2ProiderLocation.REMOTE,\n entityId64: encodeBase64Url(\n 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/'\n ),\n };\n const provider5 = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPAzure',\n location: Saml2ProiderLocation.HOSTED,\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPAzure'),\n };\n const provider6 = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPBroadcom',\n location: Saml2ProiderLocation.HOSTED,\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPBroadcom'),\n };\n const provider7 = {\n entityId: 'idp',\n location: Saml2ProiderLocation.REMOTE,\n entityId64: encodeBase64Url('idp'),\n };\n const provider8 = {\n entityId: 'SPAzure',\n location: Saml2ProiderLocation.HOSTED,\n entityId64: encodeBase64Url('SPAzure'),\n };\n const provider9 = {\n entityId: 'volkerDevSP',\n location: Saml2ProiderLocation.HOSTED,\n entityId64: encodeBase64Url('volkerDevSP'),\n };\n const provider10 = {\n entityId: 'https://saml.mytestrun.com/sp',\n location: Saml2ProiderLocation.REMOTE,\n entityId64: encodeBase64Url('https://saml.mytestrun.com/sp'),\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '1'\n ) {\n await stageProvider(provider1);\n await stageProvider(provider2);\n await stageProvider(provider3);\n await stageProvider(provider4);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n } else if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '2'\n ) {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider3, false);\n await stageProvider(provider4, false);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n await stageProvider(provider10, false);\n } else if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '5'\n ) {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n }\n // Pahses 3 + 4\n else if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageProvider(provider1);\n await stageProvider(provider2);\n await stageProvider(provider3);\n await stageProvider(provider4);\n await stageProvider(provider5);\n await stageProvider(provider6);\n await stageProvider(provider7);\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider3, false);\n await stageProvider(provider4, false);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n await stageProvider(provider10, false);\n }\n });\n\n // Phase 1\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '1')\n ) {\n describe('createSaml2ExportTemplate()', () => {\n test('0: Method is implemented', () => {\n expect(Saml2Ops.createSaml2ExportTemplate).toBeDefined();\n });\n\n test('1: Create saml2 export template', () => {\n const response = Saml2Ops.createSaml2ExportTemplate({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('getSaml2ProviderStubs()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2ProviderStubs).toBeDefined();\n });\n\n test('1: Get saml2 provider stubs', async () => {\n const response = await Saml2Ops.getSaml2ProviderStubs({ state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getProviderByLocationAndId()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderByLocationAndId).toBeDefined();\n });\n\n test(`1: Get hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderByLocationAndId({\n location: provider1.location,\n entityId64: provider1.entityId64,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get remote provider '${provider2.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderByLocationAndId({\n location: provider2.location,\n entityId64: provider2.entityId64,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getProviderMetadataUrl()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderMetadataUrl).toBeDefined();\n });\n\n test(`1: Get metadata url for hosted provider '${provider3.entityId}'`, async () => {\n const response = Saml2Ops.getProviderMetadataUrl({\n entityId: provider3.entityId,\n state,\n });\n expect(response).toMatch(\n new RegExp(\n `^${\n process.env.FRODO_HOST ||\n 'https://openam-frodo-dev.forgeblocks.com'\n }`\n )\n );\n const url = new URL(response);\n expect(url.pathname).toMatch('/am/saml2/jsp/exportmetadata.jsp');\n const searchParams = new URLSearchParams(url.search);\n expect(searchParams.get('entityid')).toMatch(provider3.entityId);\n });\n\n test(`2: Get metadata url for remote provider '${provider4.entityId}'`, async () => {\n const response = Saml2Ops.getProviderMetadataUrl({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatch(\n new RegExp(\n `^${\n process.env.FRODO_HOST ||\n 'https://openam-frodo-dev.forgeblocks.com'\n }`\n )\n );\n const url = new URL(response);\n expect(url.pathname).toMatch('/am/saml2/jsp/exportmetadata.jsp');\n const searchParams = new URLSearchParams(url.search);\n expect(searchParams.get('entityid')).toMatch(provider4.entityId);\n });\n });\n\n describe('getProviderMetadata()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderMetadata).toBeDefined();\n });\n\n test(`1: Get metadata for hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderMetadata({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get metadata for remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderMetadata({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getSaml2ProviderStub()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2ProviderStub).toBeDefined();\n });\n\n test(`1: Get stub of hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2ProviderStub({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get stub of remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2ProviderStub({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2Provider).toBeDefined();\n });\n\n test(`1: Get hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2Provider({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('exportSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.exportSaml2Provider).toBeDefined();\n });\n\n test(`1: Export hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.exportSaml2Provider({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n\n test(`2: Export remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.exportSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.exportSaml2Providers).toBeDefined();\n });\n\n test('1: Export saml2 entity providers', async () => {\n const response = await Saml2Ops.exportSaml2Providers({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('importSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.importSaml2Provider).toBeDefined();\n });\n\n test(`1: Import hosted provider '${provider5.entityId}'`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider5.entityId,\n importData: getSaml2ProviderImportData(provider5.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n\n test(`2: Import hosted provider '${provider6.entityId}'`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider6.entityId,\n importData: getSaml2ProviderImportData(provider6.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n\n test(`3: Import remote provider '${provider7.entityId}' with metadata`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider7.entityId,\n importData: getSaml2ProviderImportData(provider7.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n });\n }\n\n // Phase 2\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '2')\n ) {\n describe('importSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.importSaml2Providers).toBeDefined();\n });\n\n test('1: Import providers', async () => {\n expect.assertions(2);\n const response = await Saml2Ops.importSaml2Providers({\n importData: getSaml2ProvidersImportData(),\n state,\n });\n expect(response.failures).toBe(0);\n expect(response.warnings).toBe(0);\n });\n });\n }\n\n // Phase 3\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '3')\n ) {\n describe('deleteSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.deleteSaml2Provider).toBeDefined();\n });\n\n test(`1: Delete hosted provider '${provider3.entityId}'`, async () => {\n const response = await Saml2Ops.deleteSaml2Provider({\n entityId: provider3.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Delete remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.deleteSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n }\n\n // Phase 4\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '4')\n ) {\n describe('deleteSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.deleteSaml2Providers).toBeDefined();\n });\n\n test(`1: Delete all providers`, async () => {\n const response = await Saml2Ops.deleteSaml2Providers({ state });\n expect(response).toMatchSnapshot();\n });\n });\n }\n});\n"],"mappings":";;AAiDA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,YAAA,GAAAD,uBAAA,CAAAF,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,uBAAA,GAAAL,OAAA;AAIA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAP,OAAA;AAAyD,SAAAQ,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAP,wBAAAW,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAAW,mBAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAX,GAAA,EAAAY,GAAA,cAAAC,IAAA,GAAAN,GAAA,CAAAP,GAAA,EAAAY,GAAA,OAAAE,KAAA,GAAAD,IAAA,CAAAC,KAAA,WAAAC,KAAA,IAAAN,MAAA,CAAAM,KAAA,iBAAAF,IAAA,CAAAG,IAAA,IAAAR,OAAA,CAAAM,KAAA,YAAAG,OAAA,CAAAT,OAAA,CAAAM,KAAA,EAAAI,IAAA,CAAAR,KAAA,EAAAC,MAAA;AAAA,SAAAQ,kBAAAC,EAAA,6BAAAC,IAAA,SAAAC,IAAA,GAAAC,SAAA,aAAAN,OAAA,WAAAT,OAAA,EAAAC,MAAA,QAAAF,GAAA,GAAAa,EAAA,CAAAI,KAAA,CAAAH,IAAA,EAAAC,IAAA,YAAAZ,MAAAI,KAAA,IAAAR,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,UAAAG,KAAA,cAAAH,OAAAc,GAAA,IAAAnB,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,WAAAc,GAAA,KAAAf,KAAA,CAAAgB,SAAA,YA1DzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA,IAAAC,8BAAc,EAAC,CAAC;AAEhBC,YAAK,CAACC,iBAAiB,CAAClD,YAAY,CAACmD,yBAAyB,CAAC;AAAC,SAEjDC,aAAaA,CAAAC,EAAA;EAAA,OAAAC,cAAA,CAAAT,KAAA,OAAAD,SAAA;AAAA;AAAA,SAAAU,eAAA;EAAAA,cAAA,GAAAd,iBAAA,CAA5B,WAA6Be,QAA8B,EAAiB;IAAA,IAAfC,MAAM,GAAAZ,SAAA,CAAAa,MAAA,QAAAb,SAAA,QAAAG,SAAA,GAAAH,SAAA,MAAG,IAAI;IACxE;IACA,IAAI;MACF,MAAM9C,QAAQ,CAAC4D,gBAAgB,CAAC;QAAEC,QAAQ,EAAEJ,QAAQ,CAACI,QAAQ;QAAEV,KAAK,EAALA;MAAM,CAAC,CAAC;MACvE,MAAMnD,QAAQ,CAAC8D,mBAAmB,CAAC;QAAED,QAAQ,EAAEJ,QAAQ,CAACI,QAAQ;QAAEV,KAAK,EAALA;MAAM,CAAC,CAAC;IAC5E,CAAC,CAAC,OAAOb,KAAK,EAAE;MACd,IAAIA,KAAK,CAACyB,YAAY,EAAE;QAAA,IAAAC,eAAA;QACtBC,OAAO,CAACC,GAAG,6BAAAC,MAAA,CACmBV,QAAQ,CAACI,QAAQ,SAAAM,MAAA,CAAM7B,KAAK,CAAC8B,OAAO,CAClE,CAAC;QACDH,OAAO,CAACI,GAAG,EAAAL,eAAA,GAAC1B,KAAK,CAACgC,QAAQ,cAAAN,eAAA,uBAAdA,eAAA,CAAgBO,IAAI,CAAC;MACnC;IACF,CAAC,SAAS;MACR,IAAIb,MAAM,EAAE;QACV,IAAI;UACF,MAAM1D,QAAQ,CAACwE,mBAAmB,CAAC;YACjCX,QAAQ,EAAEJ,QAAQ,CAACI,QAAQ;YAC3BY,UAAU,EAAE,IAAAC,kDAA0B,EAACjB,QAAQ,CAACI,QAAQ,CAAC;YACzDV,KAAK,EAALA;UACF,CAAC,CAAC;QACJ,CAAC,CAAC,OAAOb,KAAK,EAAE;UAAA,IAAAqC,gBAAA;UACdV,OAAO,CAACC,GAAG,8BAAAC,MAAA,CACoBV,QAAQ,CAACI,QAAQ,SAAAM,MAAA,CAAM7B,KAAK,CAAC8B,OAAO,CACnE,CAAC;UACDH,OAAO,CAACI,GAAG,EAAAM,gBAAA,GAACrC,KAAK,CAACgC,QAAQ,cAAAK,gBAAA,uBAAdA,gBAAA,CAAgBJ,IAAI,CAAC;QACnC;MACF;IACF;EACF,CAAC;EAAA,OAAAf,cAAA,CAAAT,KAAA,OAAAD,SAAA;AAAA;AAED8B,QAAQ,CAAC,UAAU,EAAE,MAAM;EACzB,IAAMC,SAAS,GAAG;IAChBhB,QAAQ,EAAE,UAAU;IACpBiB,QAAQ,EAAEC,8BAAoB,CAACC,MAAM;IACrCC,UAAU,EAAE,IAAAC,qBAAe,EAAC,UAAU;EACxC,CAAC;EACD,IAAMC,SAAS,GAAG;IAChBtB,QAAQ,EAAE,gCAAgC;IAC1CiB,QAAQ,EAAEC,8BAAoB,CAACK,MAAM;IACrCH,UAAU,EAAE,IAAAC,qBAAe,EAAC,gCAAgC;EAC9D,CAAC;EACD,IAAMG,SAAS,GAAG;IAChBxB,QAAQ,EAAE,4CAA4C;IACtDiB,QAAQ,EAAEC,8BAAoB,CAACC,MAAM;IACrCC,UAAU,EAAE,IAAAC,qBAAe,EAAC,4CAA4C;EAC1E,CAAC;EACD,IAAMI,SAAS,GAAG;IAChBzB,QAAQ,EAAE,+DAA+D;IACzEiB,QAAQ,EAAEC,8BAAoB,CAACK,MAAM;IACrCH,UAAU,EAAE,IAAAC,qBAAe,EACzB,+DACF;EACF,CAAC;EACD,IAAMK,SAAS,GAAG;IAChB1B,QAAQ,EAAE,2CAA2C;IACrDiB,QAAQ,EAAEC,8BAAoB,CAACC,MAAM;IACrCC,UAAU,EAAE,IAAAC,qBAAe,EAAC,2CAA2C;EACzE,CAAC;EACD,IAAMM,SAAS,GAAG;IAChB3B,QAAQ,EAAE,8CAA8C;IACxDiB,QAAQ,EAAEC,8BAAoB,CAACC,MAAM;IACrCC,UAAU,EAAE,IAAAC,qBAAe,EAAC,8CAA8C;EAC5E,CAAC;EACD,IAAMO,SAAS,GAAG;IAChB5B,QAAQ,EAAE,KAAK;IACfiB,QAAQ,EAAEC,8BAAoB,CAACK,MAAM;IACrCH,UAAU,EAAE,IAAAC,qBAAe,EAAC,KAAK;EACnC,CAAC;EACD,IAAMQ,SAAS,GAAG;IAChB7B,QAAQ,EAAE,SAAS;IACnBiB,QAAQ,EAAEC,8BAAoB,CAACC,MAAM;IACrCC,UAAU,EAAE,IAAAC,qBAAe,EAAC,SAAS;EACvC,CAAC;EACD,IAAMS,SAAS,GAAG;IAChB9B,QAAQ,EAAE,aAAa;IACvBiB,QAAQ,EAAEC,8BAAoB,CAACC,MAAM;IACrCC,UAAU,EAAE,IAAAC,qBAAe,EAAC,aAAa;EAC3C,CAAC;EACD,IAAMU,UAAU,GAAG;IACjB/B,QAAQ,EAAE,+BAA+B;IACzCiB,QAAQ,EAAEC,8BAAoB,CAACK,MAAM;IACrCH,UAAU,EAAE,IAAAC,qBAAe,EAAC,+BAA+B;EAC7D,CAAC;EACD;EACAW,SAAS,eAAAnD,iBAAA,CAAC,aAAY;IACpB,IACEoD,OAAO,CAACC,GAAG,CAACC,gBAAgB,KAAK,QAAQ,IACzCF,OAAO,CAACC,GAAG,CAACE,kBAAkB,KAAK,GAAG,EACtC;MACA,MAAM3C,aAAa,CAACuB,SAAS,CAAC;MAC9B,MAAMvB,aAAa,CAAC6B,SAAS,CAAC;MAC9B,MAAM7B,aAAa,CAAC+B,SAAS,CAAC;MAC9B,MAAM/B,aAAa,CAACgC,SAAS,CAAC;MAC9B,MAAMhC,aAAa,CAACiC,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMjC,aAAa,CAACkC,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMlC,aAAa,CAACmC,SAAS,EAAE,KAAK,CAAC;IACvC,CAAC,MAAM,IACLK,OAAO,CAACC,GAAG,CAACC,gBAAgB,KAAK,QAAQ,IACzCF,OAAO,CAACC,GAAG,CAACE,kBAAkB,KAAK,GAAG,EACtC;MACA,MAAM3C,aAAa,CAACuB,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMvB,aAAa,CAAC6B,SAAS,EAAE,KAAK,CAAC;MACrC,MAAM7B,aAAa,CAAC+B,SAAS,EAAE,KAAK,CAAC;MACrC,MAAM/B,aAAa,CAACgC,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMhC,aAAa,CAACiC,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMjC,aAAa,CAACkC,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMlC,aAAa,CAACmC,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMnC,aAAa,CAACoC,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMpC,aAAa,CAACqC,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMrC,aAAa,CAACsC,UAAU,EAAE,KAAK,CAAC;IACxC,CAAC,MAAM,IACLE,OAAO,CAACC,GAAG,CAACC,gBAAgB,KAAK,QAAQ,IACzCF,OAAO,CAACC,GAAG,CAACE,kBAAkB,KAAK,GAAG,EACtC;MACA,MAAM3C,aAAa,CAACuB,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMvB,aAAa,CAAC6B,SAAS,EAAE,KAAK,CAAC;MACrC,MAAM7B,aAAa,CAACmC,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMnC,aAAa,CAACoC,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMpC,aAAa,CAACqC,SAAS,EAAE,KAAK,CAAC;IACvC;IACA;IAAA,KACK,IAAIG,OAAO,CAACC,GAAG,CAACC,gBAAgB,KAAK,QAAQ,EAAE;MAClD,MAAM1C,aAAa,CAACuB,SAAS,CAAC;MAC9B,MAAMvB,aAAa,CAAC6B,SAAS,CAAC;MAC9B,MAAM7B,aAAa,CAAC+B,SAAS,CAAC;MAC9B,MAAM/B,aAAa,CAACgC,SAAS,CAAC;MAC9B,MAAMhC,aAAa,CAACiC,SAAS,CAAC;MAC9B,MAAMjC,aAAa,CAACkC,SAAS,CAAC;MAC9B,MAAMlC,aAAa,CAACmC,SAAS,CAAC;IAChC;EACF,CAAC,EAAC;EACF;EACAS,QAAQ,eAAAxD,iBAAA,CAAC,aAAY;IACnB,IAAIoD,OAAO,CAACC,GAAG,CAACC,gBAAgB,KAAK,QAAQ,EAAE;MAC7C,MAAM1C,aAAa,CAACuB,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMvB,aAAa,CAAC6B,SAAS,EAAE,KAAK,CAAC;MACrC,MAAM7B,aAAa,CAAC+B,SAAS,EAAE,KAAK,CAAC;MACrC,MAAM/B,aAAa,CAACgC,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMhC,aAAa,CAACiC,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMjC,aAAa,CAACkC,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMlC,aAAa,CAACmC,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMnC,aAAa,CAACoC,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMpC,aAAa,CAACqC,SAAS,EAAE,KAAK,CAAC;MACrC,MAAMrC,aAAa,CAACsC,UAAU,EAAE,KAAK,CAAC;IACxC;EACF,CAAC,EAAC;;EAEF;EACA,IACE,CAACE,OAAO,CAACC,GAAG,CAACC,gBAAgB,IAC5BF,OAAO,CAACC,GAAG,CAACC,gBAAgB,KAAK,QAAQ,IACxCF,OAAO,CAACC,GAAG,CAACE,kBAAkB,KAAK,GAAI,EACzC;IACArB,QAAQ,CAAC,6BAA6B,EAAE,MAAM;MAC5CuB,IAAI,CAAC,0BAA0B,EAAE,MAAM;QACrCC,MAAM,CAACpG,QAAQ,CAACqG,yBAAyB,CAAC,CAACC,WAAW,CAAC,CAAC;MAC1D,CAAC,CAAC;MAEFH,IAAI,CAAC,iCAAiC,EAAE,MAAM;QAC5C,IAAM7B,QAAQ,GAAGtE,QAAQ,CAACqG,yBAAyB,CAAC;UAAElD,KAAK,EAALA;QAAM,CAAC,CAAC;QAC9DiD,MAAM,CAAC9B,QAAQ,CAAC,CAACiC,eAAe,CAAC;UAC/BC,IAAI,EAAEJ,MAAM,CAACK,GAAG,CAACrF,MAAM;QACzB,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFwD,QAAQ,CAAC,yBAAyB,EAAE,MAAM;MACxCuB,IAAI,CAAC,0BAA0B,eAAAzD,iBAAA,CAAE,aAAY;QAC3C0D,MAAM,CAACpG,QAAQ,CAAC0G,qBAAqB,CAAC,CAACJ,WAAW,CAAC,CAAC;MACtD,CAAC,EAAC;MAEFH,IAAI,CAAC,6BAA6B,eAAAzD,iBAAA,CAAE,aAAY;QAC9C,IAAM4B,QAAQ,SAAStE,QAAQ,CAAC0G,qBAAqB,CAAC;UAAEvD,KAAK,EAALA;QAAM,CAAC,CAAC;QAChEiD,MAAM,CAAC9B,QAAQ,CAAC,CAACiC,eAAe,CAAC,CAAC;MACpC,CAAC,EAAC;IACJ,CAAC,CAAC;IAEF3B,QAAQ,CAAC,8BAA8B,EAAE,MAAM;MAC7CuB,IAAI,CAAC,0BAA0B,eAAAzD,iBAAA,CAAE,aAAY;QAC3C0D,MAAM,CAACpG,QAAQ,CAAC2G,0BAA0B,CAAC,CAACL,WAAW,CAAC,CAAC;MAC3D,CAAC,EAAC;MAEFH,IAAI,4BAAAhC,MAAA,CAA4BU,SAAS,CAAChB,QAAQ,qBAAAnB,iBAAA,CAAK,aAAY;QACjE,IAAM4B,QAAQ,SAAStE,QAAQ,CAAC2G,0BAA0B,CAAC;UACzD7B,QAAQ,EAAED,SAAS,CAACC,QAAQ;UAC5BG,UAAU,EAAEJ,SAAS,CAACI,UAAU;UAChC9B,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAAC,CAACiC,eAAe,CAAC,CAAC;MACpC,CAAC,EAAC;MAEFJ,IAAI,4BAAAhC,MAAA,CAA4BgB,SAAS,CAACtB,QAAQ,qBAAAnB,iBAAA,CAAK,aAAY;QACjE,IAAM4B,QAAQ,SAAStE,QAAQ,CAAC2G,0BAA0B,CAAC;UACzD7B,QAAQ,EAAEK,SAAS,CAACL,QAAQ;UAC5BG,UAAU,EAAEE,SAAS,CAACF,UAAU;UAChC9B,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAAC,CAACiC,eAAe,CAAC,CAAC;MACpC,CAAC,EAAC;IACJ,CAAC,CAAC;IAEF3B,QAAQ,CAAC,0BAA0B,EAAE,MAAM;MACzCuB,IAAI,CAAC,0BAA0B,eAAAzD,iBAAA,CAAE,aAAY;QAC3C0D,MAAM,CAACpG,QAAQ,CAAC4G,sBAAsB,CAAC,CAACN,WAAW,CAAC,CAAC;MACvD,CAAC,EAAC;MAEFH,IAAI,6CAAAhC,MAAA,CAA6CkB,SAAS,CAACxB,QAAQ,qBAAAnB,iBAAA,CAAK,aAAY;QAClF,IAAM4B,QAAQ,GAAGtE,QAAQ,CAAC4G,sBAAsB,CAAC;UAC/C/C,QAAQ,EAAEwB,SAAS,CAACxB,QAAQ;UAC5BV,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAAC,CAACuC,OAAO,CACtB,IAAIC,MAAM,KAAA3C,MAAA,CAEN2B,OAAO,CAACC,GAAG,CAACgB,UAAU,IACtB,0CAA0C,CAE9C,CACF,CAAC;QACD,IAAMC,GAAG,GAAG,IAAIC,GAAG,CAAC3C,QAAQ,CAAC;QAC7B8B,MAAM,CAACY,GAAG,CAACE,QAAQ,CAAC,CAACL,OAAO,CAAC,kCAAkC,CAAC;QAChE,IAAMM,YAAY,GAAG,IAAIC,eAAe,CAACJ,GAAG,CAACK,MAAM,CAAC;QACpDjB,MAAM,CAACe,YAAY,CAAClG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC4F,OAAO,CAACxB,SAAS,CAACxB,QAAQ,CAAC;MAClE,CAAC,EAAC;MAEFsC,IAAI,6CAAAhC,MAAA,CAA6CmB,SAAS,CAACzB,QAAQ,qBAAAnB,iBAAA,CAAK,aAAY;QAClF,IAAM4B,QAAQ,GAAGtE,QAAQ,CAAC4G,sBAAsB,CAAC;UAC/C/C,QAAQ,EAAEyB,SAAS,CAACzB,QAAQ;UAC5BV,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAAC,CAACuC,OAAO,CACtB,IAAIC,MAAM,KAAA3C,MAAA,CAEN2B,OAAO,CAACC,GAAG,CAACgB,UAAU,IACtB,0CAA0C,CAE9C,CACF,CAAC;QACD,IAAMC,GAAG,GAAG,IAAIC,GAAG,CAAC3C,QAAQ,CAAC;QAC7B8B,MAAM,CAACY,GAAG,CAACE,QAAQ,CAAC,CAACL,OAAO,CAAC,kCAAkC,CAAC;QAChE,IAAMM,YAAY,GAAG,IAAIC,eAAe,CAACJ,GAAG,CAACK,MAAM,CAAC;QACpDjB,MAAM,CAACe,YAAY,CAAClG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC4F,OAAO,CAACvB,SAAS,CAACzB,QAAQ,CAAC;MAClE,CAAC,EAAC;IACJ,CAAC,CAAC;IAEFe,QAAQ,CAAC,uBAAuB,EAAE,MAAM;MACtCuB,IAAI,CAAC,0BAA0B,eAAAzD,iBAAA,CAAE,aAAY;QAC3C0D,MAAM,CAACpG,QAAQ,CAACsH,mBAAmB,CAAC,CAAChB,WAAW,CAAC,CAAC;MACpD,CAAC,EAAC;MAEFH,IAAI,yCAAAhC,MAAA,CAAyCU,SAAS,CAAChB,QAAQ,qBAAAnB,iBAAA,CAAK,aAAY;QAC9E,IAAM4B,QAAQ,SAAStE,QAAQ,CAACsH,mBAAmB,CAAC;UAClDzD,QAAQ,EAAEgB,SAAS,CAAChB,QAAQ;UAC5BV,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAAC,CAACiC,eAAe,CAAC,CAAC;MACpC,CAAC,EAAC;MAEFJ,IAAI,yCAAAhC,MAAA,CAAyCmB,SAAS,CAACzB,QAAQ,qBAAAnB,iBAAA,CAAK,aAAY;QAC9E,IAAM4B,QAAQ,SAAStE,QAAQ,CAACsH,mBAAmB,CAAC;UAClDzD,QAAQ,EAAEyB,SAAS,CAACzB,QAAQ;UAC5BV,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAAC,CAACiC,eAAe,CAAC,CAAC;MACpC,CAAC,EAAC;IACJ,CAAC,CAAC;IAEF3B,QAAQ,CAAC,wBAAwB,EAAE,MAAM;MACvCuB,IAAI,CAAC,0BAA0B,eAAAzD,iBAAA,CAAE,aAAY;QAC3C0D,MAAM,CAACpG,QAAQ,CAACuH,oBAAoB,CAAC,CAACjB,WAAW,CAAC,CAAC;MACrD,CAAC,EAAC;MAEFH,IAAI,oCAAAhC,MAAA,CAAoCU,SAAS,CAAChB,QAAQ,qBAAAnB,iBAAA,CAAK,aAAY;QACzE,IAAM4B,QAAQ,SAAStE,QAAQ,CAACuH,oBAAoB,CAAC;UACnD1D,QAAQ,EAAEgB,SAAS,CAAChB,QAAQ;UAC5BV,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAAC,CAACiC,eAAe,CAAC,CAAC;MACpC,CAAC,EAAC;MAEFJ,IAAI,oCAAAhC,MAAA,CAAoCmB,SAAS,CAACzB,QAAQ,qBAAAnB,iBAAA,CAAK,aAAY;QACzE,IAAM4B,QAAQ,SAAStE,QAAQ,CAACuH,oBAAoB,CAAC;UACnD1D,QAAQ,EAAEyB,SAAS,CAACzB,QAAQ;UAC5BV,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAAC,CAACiC,eAAe,CAAC,CAAC;MACpC,CAAC,EAAC;IACJ,CAAC,CAAC;IAEF3B,QAAQ,CAAC,oBAAoB,EAAE,MAAM;MACnCuB,IAAI,CAAC,0BAA0B,eAAAzD,iBAAA,CAAE,aAAY;QAC3C0D,MAAM,CAACpG,QAAQ,CAAC4D,gBAAgB,CAAC,CAAC0C,WAAW,CAAC,CAAC;MACjD,CAAC,EAAC;MAEFH,IAAI,4BAAAhC,MAAA,CAA4BU,SAAS,CAAChB,QAAQ,qBAAAnB,iBAAA,CAAK,aAAY;QACjE,IAAM4B,QAAQ,SAAStE,QAAQ,CAAC4D,gBAAgB,CAAC;UAC/CC,QAAQ,EAAEgB,SAAS,CAAChB,QAAQ;UAC5BV,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAAC,CAACiC,eAAe,CAAC,CAAC;MACpC,CAAC,EAAC;MAEFJ,IAAI,4BAAAhC,MAAA,CAA4BmB,SAAS,CAACzB,QAAQ,qBAAAnB,iBAAA,CAAK,aAAY;QACjE,IAAM4B,QAAQ,SAAStE,QAAQ,CAAC4D,gBAAgB,CAAC;UAC/CC,QAAQ,EAAEyB,SAAS,CAACzB,QAAQ;UAC5BV,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAAC,CAACiC,eAAe,CAAC,CAAC;MACpC,CAAC,EAAC;IACJ,CAAC,CAAC;IAEF3B,QAAQ,CAAC,uBAAuB,EAAE,MAAM;MACtCuB,IAAI,CAAC,0BAA0B,eAAAzD,iBAAA,CAAE,aAAY;QAC3C0D,MAAM,CAACpG,QAAQ,CAACwH,mBAAmB,CAAC,CAAClB,WAAW,CAAC,CAAC;MACpD,CAAC,EAAC;MAEFH,IAAI,+BAAAhC,MAAA,CAA+BU,SAAS,CAAChB,QAAQ,qBAAAnB,iBAAA,CAAK,aAAY;QACpE,IAAM4B,QAAQ,SAAStE,QAAQ,CAACwH,mBAAmB,CAAC;UAClD3D,QAAQ,EAAEgB,SAAS,CAAChB,QAAQ;UAC5BV,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAAC,CAACiC,eAAe,CAAC;UAC/BC,IAAI,EAAEJ,MAAM,CAACK,GAAG,CAACrF,MAAM;QACzB,CAAC,CAAC;MACJ,CAAC,EAAC;MAEF+E,IAAI,+BAAAhC,MAAA,CAA+BmB,SAAS,CAACzB,QAAQ,qBAAAnB,iBAAA,CAAK,aAAY;QACpE,IAAM4B,QAAQ,SAAStE,QAAQ,CAACwH,mBAAmB,CAAC;UAClD3D,QAAQ,EAAEyB,SAAS,CAACzB,QAAQ;UAC5BV,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAAC,CAACiC,eAAe,CAAC;UAC/BC,IAAI,EAAEJ,MAAM,CAACK,GAAG,CAACrF,MAAM;QACzB,CAAC,CAAC;MACJ,CAAC,EAAC;IACJ,CAAC,CAAC;IAEFwD,QAAQ,CAAC,wBAAwB,EAAE,MAAM;MACvCuB,IAAI,CAAC,0BAA0B,eAAAzD,iBAAA,CAAE,aAAY;QAC3C0D,MAAM,CAACpG,QAAQ,CAACyH,oBAAoB,CAAC,CAACnB,WAAW,CAAC,CAAC;MACrD,CAAC,EAAC;MAEFH,IAAI,CAAC,kCAAkC,eAAAzD,iBAAA,CAAE,aAAY;QACnD,IAAM4B,QAAQ,SAAStE,QAAQ,CAACyH,oBAAoB,CAAC;UAAEtE,KAAK,EAALA;QAAM,CAAC,CAAC;QAC/DiD,MAAM,CAAC9B,QAAQ,CAAC,CAACiC,eAAe,CAAC;UAC/BC,IAAI,EAAEJ,MAAM,CAACK,GAAG,CAACrF,MAAM;QACzB,CAAC,CAAC;MACJ,CAAC,EAAC;IACJ,CAAC,CAAC;IAEFwD,QAAQ,CAAC,uBAAuB,EAAE,MAAM;MACtCuB,IAAI,CAAC,0BAA0B,eAAAzD,iBAAA,CAAE,aAAY;QAC3C0D,MAAM,CAACpG,QAAQ,CAACwE,mBAAmB,CAAC,CAAC8B,WAAW,CAAC,CAAC;MACpD,CAAC,EAAC;MAEFH,IAAI,+BAAAhC,MAAA,CAA+BoB,SAAS,CAAC1B,QAAQ,qBAAAnB,iBAAA,CAAK,aAAY;QACpE0D,MAAM,CAACsB,UAAU,CAAC,CAAC,CAAC;QACpB,IAAMpD,QAAQ,SAAStE,QAAQ,CAACwE,mBAAmB,CAAC;UAClDX,QAAQ,EAAE0B,SAAS,CAAC1B,QAAQ;UAC5BY,UAAU,EAAE,IAAAC,kDAA0B,EAACa,SAAS,CAAC1B,QAAQ,CAAC;UAC1DV,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAAC,CAACqD,UAAU,CAAC,CAAC;MAC/B,CAAC,EAAC;MAEFxB,IAAI,+BAAAhC,MAAA,CAA+BqB,SAAS,CAAC3B,QAAQ,qBAAAnB,iBAAA,CAAK,aAAY;QACpE0D,MAAM,CAACsB,UAAU,CAAC,CAAC,CAAC;QACpB,IAAMpD,QAAQ,SAAStE,QAAQ,CAACwE,mBAAmB,CAAC;UAClDX,QAAQ,EAAE2B,SAAS,CAAC3B,QAAQ;UAC5BY,UAAU,EAAE,IAAAC,kDAA0B,EAACc,SAAS,CAAC3B,QAAQ,CAAC;UAC1DV,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAAC,CAACqD,UAAU,CAAC,CAAC;MAC/B,CAAC,EAAC;MAEFxB,IAAI,+BAAAhC,MAAA,CAA+BsB,SAAS,CAAC5B,QAAQ,mCAAAnB,iBAAA,CAAmB,aAAY;QAClF0D,MAAM,CAACsB,UAAU,CAAC,CAAC,CAAC;QACpB,IAAMpD,QAAQ,SAAStE,QAAQ,CAACwE,mBAAmB,CAAC;UAClDX,QAAQ,EAAE4B,SAAS,CAAC5B,QAAQ;UAC5BY,UAAU,EAAE,IAAAC,kDAA0B,EAACe,SAAS,CAAC5B,QAAQ,CAAC;UAC1DV,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAAC,CAACqD,UAAU,CAAC,CAAC;MAC/B,CAAC,EAAC;IACJ,CAAC,CAAC;EACJ;;EAEA;EACA,IACE,CAAC7B,OAAO,CAACC,GAAG,CAACC,gBAAgB,IAC5BF,OAAO,CAACC,GAAG,CAACC,gBAAgB,KAAK,QAAQ,IACxCF,OAAO,CAACC,GAAG,CAACE,kBAAkB,KAAK,GAAI,EACzC;IACArB,QAAQ,CAAC,wBAAwB,EAAE,MAAM;MACvCuB,IAAI,CAAC,0BAA0B,eAAAzD,iBAAA,CAAE,aAAY;QAC3C0D,MAAM,CAACpG,QAAQ,CAAC4H,oBAAoB,CAAC,CAACtB,WAAW,CAAC,CAAC;MACrD,CAAC,EAAC;MAEFH,IAAI,CAAC,qBAAqB,eAAAzD,iBAAA,CAAE,aAAY;QACtC0D,MAAM,CAACsB,UAAU,CAAC,CAAC,CAAC;QACpB,IAAMpD,QAAQ,SAAStE,QAAQ,CAAC4H,oBAAoB,CAAC;UACnDnD,UAAU,EAAE,IAAAoD,mDAA2B,EAAC,CAAC;UACzC1E,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAACwD,QAAQ,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;QACjC3B,MAAM,CAAC9B,QAAQ,CAAC0D,QAAQ,CAAC,CAACD,IAAI,CAAC,CAAC,CAAC;MACnC,CAAC,EAAC;IACJ,CAAC,CAAC;EACJ;;EAEA;EACA,IACE,CAACjC,OAAO,CAACC,GAAG,CAACC,gBAAgB,IAC5BF,OAAO,CAACC,GAAG,CAACC,gBAAgB,KAAK,QAAQ,IACxCF,OAAO,CAACC,GAAG,CAACE,kBAAkB,KAAK,GAAI,EACzC;IACArB,QAAQ,CAAC,uBAAuB,EAAE,MAAM;MACtCuB,IAAI,CAAC,0BAA0B,eAAAzD,iBAAA,CAAE,aAAY;QAC3C0D,MAAM,CAACpG,QAAQ,CAAC8D,mBAAmB,CAAC,CAACwC,WAAW,CAAC,CAAC;MACpD,CAAC,EAAC;MAEFH,IAAI,+BAAAhC,MAAA,CAA+BkB,SAAS,CAACxB,QAAQ,qBAAAnB,iBAAA,CAAK,aAAY;QACpE,IAAM4B,QAAQ,SAAStE,QAAQ,CAAC8D,mBAAmB,CAAC;UAClDD,QAAQ,EAAEwB,SAAS,CAACxB,QAAQ;UAC5BV,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAAC,CAACiC,eAAe,CAAC,CAAC;MACpC,CAAC,EAAC;MAEFJ,IAAI,+BAAAhC,MAAA,CAA+BmB,SAAS,CAACzB,QAAQ,qBAAAnB,iBAAA,CAAK,aAAY;QACpE,IAAM4B,QAAQ,SAAStE,QAAQ,CAAC8D,mBAAmB,CAAC;UAClDD,QAAQ,EAAEyB,SAAS,CAACzB,QAAQ;UAC5BV,KAAK,EAALA;QACF,CAAC,CAAC;QACFiD,MAAM,CAAC9B,QAAQ,CAAC,CAACiC,eAAe,CAAC,CAAC;MACpC,CAAC,EAAC;IACJ,CAAC,CAAC;EACJ;;EAEA;EACA,IACE,CAACT,OAAO,CAACC,GAAG,CAACC,gBAAgB,IAC5BF,OAAO,CAACC,GAAG,CAACC,gBAAgB,KAAK,QAAQ,IACxCF,OAAO,CAACC,GAAG,CAACE,kBAAkB,KAAK,GAAI,EACzC;IACArB,QAAQ,CAAC,wBAAwB,EAAE,MAAM;MACvCuB,IAAI,CAAC,0BAA0B,eAAAzD,iBAAA,CAAE,aAAY;QAC3C0D,MAAM,CAACpG,QAAQ,CAACiI,oBAAoB,CAAC,CAAC3B,WAAW,CAAC,CAAC;MACrD,CAAC,EAAC;MAEFH,IAAI,yCAAAzD,iBAAA,CAA4B,aAAY;QAC1C,IAAM4B,QAAQ,SAAStE,QAAQ,CAACiI,oBAAoB,CAAC;UAAE9E,KAAK,EAALA;QAAM,CAAC,CAAC;QAC/DiD,MAAM,CAAC9B,QAAQ,CAAC,CAACiC,eAAe,CAAC,CAAC;MACpC,CAAC,EAAC;IACJ,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"Saml2Ops.test.js","names":["_index","require","Saml2Ops","_interopRequireWildcard","globalConfig","_ForgeRockApiMockEngine","_Base","_AutoSetupPolly","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","autoSetupPolly","state","setDeploymentType","CLOUD_DEPLOYMENT_TYPE_KEY","stageProvider","_x","_stageProvider","provider","create","length","getSaml2Provider","entityId","deleteSaml2Provider","isAxiosError","_error$response","console","log","concat","message","dir","response","data","importSaml2Provider","importData","getSaml2ProviderImportData","_error$response2","describe","provider1","location","entityId64","encodeBase64Url","provider2","provider3","provider4","provider5","provider6","provider7","provider8","provider9","provider10","beforeAll","process","env","FRODO_POLLY_MODE","FRODO_RECORD_PHASE","afterAll","test","expect","createSaml2ExportTemplate","toBeDefined","toMatchSnapshot","meta","any","getSaml2ProviderStubs","getProviderByLocationAndId","getProviderMetadataUrl","toMatch","RegExp","FRODO_HOST","url","URL","pathname","searchParams","URLSearchParams","search","getProviderMetadata","getSaml2ProviderStub","exportSaml2Provider","exportSaml2Providers","assertions","toBeTruthy","importSaml2Providers","getSaml2ProvidersImportData","failures","toBe","warnings","deleteSaml2Providers"],"sources":["ops/Saml2Ops.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses\n *\n * This step breaks down into 5 phases:\n *\n * Phase 1: Record Group 1 of non-destructive tests\n * Phase 2: Record Group 2 of non-destructive tests - Import all\n * Phase 3: Record Group 1 of DESTRUCTIVE tests - Deletes by entity id\n * Phase 4: Record Group 2 of DESTRUCTIVE tests - Delete all\n *\n * Because destructive tests interfere with the recording of non-destructive\n * tests and also interfere among themselves, they have to be run in groups\n * of non-interfering tests.\n *\n * To record API responses, you must call the test:record script and\n * override all the connection state variables required to connect to the\n * env to record from and also indicate the phase:\n *\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=1 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=2 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n *\n * THESE TESTS ARE DESTRUCTIVE!!! DO NOT RUN AGAINST AN ENV WITH ACTIVE CONFIGURATION!!!\n *\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=3 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=4 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=5 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n *\n * The above command assumes that you have a connection profile for\n * 'frodo-dev' on your development machine.\n *\n * 2. Update snapshots\n *\n * After recording API responses, you must manually update/create snapshots\n * by running:\n *\n * FRODO_DEBUG=1 npm run test:update Saml2Ops\n *\n * 3. Test your changes\n *\n * If 1 and 2 didn't produce any errors, you are ready to run the tests in\n * replay mode and make sure they all succeed as well:\n *\n * npm run test:only Saml2Ops\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport { state } from '../index';\nimport * as Saml2Ops from './Saml2Ops';\nimport * as globalConfig from '../storage/StaticStorage';\nimport { Saml2ProiderLocation } from '../api/ApiTypes';\nimport {\n getSaml2ProviderImportData,\n getSaml2ProvidersImportData,\n} from '../test/mocks/ForgeRockApiMockEngine';\nimport { encodeBase64Url } from '../api/utils/Base64';\nimport { autoSetupPolly } from '../utils/AutoSetupPolly';\n\nautoSetupPolly();\n\nstate.setDeploymentType(globalConfig.CLOUD_DEPLOYMENT_TYPE_KEY);\n\nasync function stageProvider(provider: { entityId: string }, create = true) {\n // delete if exists, then create\n try {\n await Saml2Ops.getSaml2Provider({ entityId: provider.entityId, state });\n await Saml2Ops.deleteSaml2Provider({ entityId: provider.entityId, state });\n } catch (error) {\n if (error.isAxiosError) {\n console.log(\n `Error deleting provider '${provider.entityId}': ${error.message}`\n );\n console.dir(error.response?.data);\n }\n } finally {\n if (create) {\n try {\n await Saml2Ops.importSaml2Provider({\n entityId: provider.entityId,\n importData: getSaml2ProviderImportData(provider.entityId),\n state,\n });\n } catch (error) {\n console.log(\n `Error importing provider '${provider.entityId}': ${error.message}`\n );\n console.dir(error.response?.data);\n }\n }\n }\n}\n\ndescribe('Saml2Ops', () => {\n type SamlProvider = {\n entityId: string;\n location: Saml2ProiderLocation;\n entityId64: string;\n };\n const provider1: SamlProvider = {\n entityId: 'iSPAzure',\n location: 'hosted',\n entityId64: encodeBase64Url('iSPAzure'),\n };\n const provider2: SamlProvider = {\n entityId: 'urn:federation:MicrosoftOnline',\n location: 'remote',\n entityId64: encodeBase64Url('urn:federation:MicrosoftOnline'),\n };\n const provider3: SamlProvider = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPFedlet',\n location: 'hosted',\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPFedlet'),\n };\n const provider4: SamlProvider = {\n entityId: 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/',\n location: 'remote',\n entityId64: encodeBase64Url(\n 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/'\n ),\n };\n const provider5: SamlProvider = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPAzure',\n location: 'hosted',\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPAzure'),\n };\n const provider6: SamlProvider = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPBroadcom',\n location: 'hosted',\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPBroadcom'),\n };\n const provider7: SamlProvider = {\n entityId: 'idp',\n location: 'remote',\n entityId64: encodeBase64Url('idp'),\n };\n const provider8: SamlProvider = {\n entityId: 'SPAzure',\n location: 'hosted',\n entityId64: encodeBase64Url('SPAzure'),\n };\n const provider9: SamlProvider = {\n entityId: 'volkerDevSP',\n location: 'hosted',\n entityId64: encodeBase64Url('volkerDevSP'),\n };\n const provider10: SamlProvider = {\n entityId: 'https://saml.mytestrun.com/sp',\n location: 'remote',\n entityId64: encodeBase64Url('https://saml.mytestrun.com/sp'),\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '1'\n ) {\n await stageProvider(provider1);\n await stageProvider(provider2);\n await stageProvider(provider3);\n await stageProvider(provider4);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n } else if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '2'\n ) {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider3, false);\n await stageProvider(provider4, false);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n await stageProvider(provider10, false);\n } else if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '5'\n ) {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n }\n // Pahses 3 + 4\n else if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageProvider(provider1);\n await stageProvider(provider2);\n await stageProvider(provider3);\n await stageProvider(provider4);\n await stageProvider(provider5);\n await stageProvider(provider6);\n await stageProvider(provider7);\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider3, false);\n await stageProvider(provider4, false);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n await stageProvider(provider10, false);\n }\n });\n\n // Phase 1\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '1')\n ) {\n describe('createSaml2ExportTemplate()', () => {\n test('0: Method is implemented', () => {\n expect(Saml2Ops.createSaml2ExportTemplate).toBeDefined();\n });\n\n test('1: Create saml2 export template', () => {\n const response = Saml2Ops.createSaml2ExportTemplate({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('getSaml2ProviderStubs()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2ProviderStubs).toBeDefined();\n });\n\n test('1: Get saml2 provider stubs', async () => {\n const response = await Saml2Ops.getSaml2ProviderStubs({ state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getProviderByLocationAndId()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderByLocationAndId).toBeDefined();\n });\n\n test(`1: Get hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderByLocationAndId({\n location: provider1.location,\n entityId64: provider1.entityId64,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get remote provider '${provider2.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderByLocationAndId({\n location: provider2.location,\n entityId64: provider2.entityId64,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getProviderMetadataUrl()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderMetadataUrl).toBeDefined();\n });\n\n test(`1: Get metadata url for hosted provider '${provider3.entityId}'`, async () => {\n const response = Saml2Ops.getProviderMetadataUrl({\n entityId: provider3.entityId,\n state,\n });\n expect(response).toMatch(\n new RegExp(\n `^${\n process.env.FRODO_HOST ||\n 'https://openam-frodo-dev.forgeblocks.com'\n }`\n )\n );\n const url = new URL(response);\n expect(url.pathname).toMatch('/am/saml2/jsp/exportmetadata.jsp');\n const searchParams = new URLSearchParams(url.search);\n expect(searchParams.get('entityid')).toMatch(provider3.entityId);\n });\n\n test(`2: Get metadata url for remote provider '${provider4.entityId}'`, async () => {\n const response = Saml2Ops.getProviderMetadataUrl({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatch(\n new RegExp(\n `^${\n process.env.FRODO_HOST ||\n 'https://openam-frodo-dev.forgeblocks.com'\n }`\n )\n );\n const url = new URL(response);\n expect(url.pathname).toMatch('/am/saml2/jsp/exportmetadata.jsp');\n const searchParams = new URLSearchParams(url.search);\n expect(searchParams.get('entityid')).toMatch(provider4.entityId);\n });\n });\n\n describe('getProviderMetadata()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderMetadata).toBeDefined();\n });\n\n test(`1: Get metadata for hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderMetadata({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get metadata for remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderMetadata({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getSaml2ProviderStub()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2ProviderStub).toBeDefined();\n });\n\n test(`1: Get stub of hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2ProviderStub({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get stub of remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2ProviderStub({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2Provider).toBeDefined();\n });\n\n test(`1: Get hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2Provider({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('exportSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.exportSaml2Provider).toBeDefined();\n });\n\n test(`1: Export hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.exportSaml2Provider({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n\n test(`2: Export remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.exportSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.exportSaml2Providers).toBeDefined();\n });\n\n test('1: Export saml2 entity providers', async () => {\n const response = await Saml2Ops.exportSaml2Providers({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('importSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.importSaml2Provider).toBeDefined();\n });\n\n test(`1: Import hosted provider '${provider5.entityId}'`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider5.entityId,\n importData: getSaml2ProviderImportData(provider5.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n\n test(`2: Import hosted provider '${provider6.entityId}'`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider6.entityId,\n importData: getSaml2ProviderImportData(provider6.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n\n test(`3: Import remote provider '${provider7.entityId}' with metadata`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider7.entityId,\n importData: getSaml2ProviderImportData(provider7.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n });\n }\n\n // Phase 2\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '2')\n ) {\n describe('importSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.importSaml2Providers).toBeDefined();\n });\n\n test('1: Import providers', async () => {\n expect.assertions(2);\n const response = await Saml2Ops.importSaml2Providers({\n importData: getSaml2ProvidersImportData(),\n state,\n });\n expect(response.failures).toBe(0);\n expect(response.warnings).toBe(0);\n });\n });\n }\n\n // Phase 3\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '3')\n ) {\n describe('deleteSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.deleteSaml2Provider).toBeDefined();\n });\n\n test(`1: Delete hosted provider '${provider3.entityId}'`, async () => {\n const response = await Saml2Ops.deleteSaml2Provider({\n entityId: provider3.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Delete remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.deleteSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n }\n\n // Phase 4\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '4')\n ) {\n describe('deleteSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.deleteSaml2Providers).toBeDefined();\n });\n\n test(`1: Delete all providers`, async () => {\n const response = await Saml2Ops.deleteSaml2Providers({ state });\n expect(response).toMatchSnapshot();\n });\n });\n }\n});\n"],"mappings":"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"}
@@ -263,7 +263,11 @@ function _putScript2() {
263
263
  } catch (error) {
264
264
  var _error$response;
265
265
  if (((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 409) {
266
- (0, _Console.printMessage)("createOrUpdateScript WARNING: script with name ".concat(scriptData.name, " already exists, using renaming policy... <name> => <name - imported (n)>"), 'warn');
266
+ (0, _Console.printMessage)({
267
+ message: "createOrUpdateScript WARNING: script with name ".concat(scriptData.name, " already exists, using renaming policy... <name> => <name - imported (n)>"),
268
+ type: 'warn',
269
+ state
270
+ });
267
271
  var newName = (0, _OpsUtils.applyNameCollisionPolicy)(scriptData.name);
268
272
  scriptData.name = newName;
269
273
  var _result = yield putScript({
@@ -271,7 +275,11 @@ function _putScript2() {
271
275
  scriptData,
272
276
  state
273
277
  });
274
- (0, _Console.printMessage)("Saved script as ".concat(newName), 'warn');
278
+ (0, _Console.printMessage)({
279
+ message: "Saved script as ".concat(newName),
280
+ type: 'warn',
281
+ state
282
+ });
275
283
  return _result;
276
284
  }
277
285
  throw error;
@@ -293,7 +301,10 @@ function _exportScript() {
293
301
  scriptId,
294
302
  state
295
303
  } = _ref5;
296
- (0, _Console.debugMessage)("ScriptOps.exportScriptById: start");
304
+ (0, _Console.debugMessage)({
305
+ message: "ScriptOps.exportScriptById: start",
306
+ state
307
+ });
297
308
  var scriptData = yield (0, _ScriptApi.getScript)({
298
309
  scriptId,
299
310
  state
@@ -303,7 +314,10 @@ function _exportScript() {
303
314
  state
304
315
  });
305
316
  exportData.script[scriptData._id] = scriptData;
306
- (0, _Console.debugMessage)("ScriptOps.exportScriptById: end");
317
+ (0, _Console.debugMessage)({
318
+ message: "ScriptOps.exportScriptById: end",
319
+ state
320
+ });
307
321
  return exportData;
308
322
  });
309
323
  return _exportScript.apply(this, arguments);
@@ -321,7 +335,10 @@ function _exportScriptByName() {
321
335
  scriptName,
322
336
  state
323
337
  } = _ref6;
324
- (0, _Console.debugMessage)("ScriptOps.exportScriptByName: start");
338
+ (0, _Console.debugMessage)({
339
+ message: "ScriptOps.exportScriptByName: start",
340
+ state
341
+ });
325
342
  var scriptData = yield getScriptByName({
326
343
  scriptName,
327
344
  state
@@ -331,7 +348,10 @@ function _exportScriptByName() {
331
348
  state
332
349
  });
333
350
  exportData.script[scriptData._id] = scriptData;
334
- (0, _Console.debugMessage)("ScriptOps.exportScriptByName: end");
351
+ (0, _Console.debugMessage)({
352
+ message: "ScriptOps.exportScriptByName: end",
353
+ state
354
+ });
335
355
  return exportData;
336
356
  });
337
357
  return _exportScriptByName.apply(this, arguments);
@@ -357,9 +377,16 @@ function _exportScripts() {
357
377
  var exportData = createScriptExportTemplate({
358
378
  state
359
379
  });
360
- (0, _Console.createProgressIndicator)(scriptList.length, "Exporting ".concat(scriptList.length, " scripts..."));
380
+ (0, _Console.createProgressIndicator)({
381
+ total: scriptList.length,
382
+ message: "Exporting ".concat(scriptList.length, " scripts..."),
383
+ state
384
+ });
361
385
  for (var script of scriptList) {
362
- (0, _Console.updateProgressIndicator)("Reading script ".concat(script.name));
386
+ (0, _Console.updateProgressIndicator)({
387
+ message: "Reading script ".concat(script.name),
388
+ state
389
+ });
363
390
  var scriptData = yield getScriptByName({
364
391
  scriptName: script.name,
365
392
  state
@@ -367,7 +394,10 @@ function _exportScripts() {
367
394
  scriptData.script = (0, _ExportImportUtils.convertBase64TextToArray)(scriptData.script);
368
395
  exportData.script[scriptData._id] = scriptData;
369
396
  }
370
- (0, _Console.stopProgressIndicator)("Exported ".concat(scriptList.length, " scripts."));
397
+ (0, _Console.stopProgressIndicator)({
398
+ message: "Exported ".concat(scriptList.length, " scripts."),
399
+ state
400
+ });
371
401
  return exportData;
372
402
  });
373
403
  return _exportScripts.apply(this, arguments);
@@ -385,23 +415,39 @@ function _importScripts() {
385
415
  state
386
416
  } = _ref8;
387
417
  var outcome = true;
388
- (0, _Console.debugMessage)("ScriptOps.importScripts: start");
418
+ (0, _Console.debugMessage)({
419
+ message: "ScriptOps.importScripts: start",
420
+ state
421
+ });
389
422
  for (var existingId of Object.keys(importData.script)) {
390
423
  var scriptSkeleton = importData.script[existingId];
391
424
  var newId = existingId;
392
425
  if (reUuid) {
393
426
  newId = (0, _uuid.v4)();
394
- (0, _Console.debugMessage)("ScriptOps.importScripts: Re-uuid-ing script ".concat(scriptSkeleton.name, " ").concat(existingId, " => ").concat(newId, "..."));
427
+ (0, _Console.debugMessage)({
428
+ message: "ScriptOps.importScripts: Re-uuid-ing script ".concat(scriptSkeleton.name, " ").concat(existingId, " => ").concat(newId, "..."),
429
+ state
430
+ });
395
431
  scriptSkeleton._id = newId;
396
432
  }
397
433
  if (scriptName) {
398
- (0, _Console.debugMessage)("ScriptOps.importScripts: Renaming script ".concat(scriptSkeleton.name, " => ").concat(scriptName, "..."));
434
+ (0, _Console.debugMessage)({
435
+ message: "ScriptOps.importScripts: Renaming script ".concat(scriptSkeleton.name, " => ").concat(scriptName, "..."),
436
+ state
437
+ });
399
438
  scriptSkeleton.name = scriptName;
400
439
  }
401
440
  if (validate) {
402
- if (!(0, _ScriptValidationUtils.validateScriptDecoded)(scriptSkeleton)) {
441
+ if (!(0, _ScriptValidationUtils.validateScriptDecoded)({
442
+ scriptSkeleton,
443
+ state
444
+ })) {
403
445
  outcome = false;
404
- (0, _Console.printMessage)("Error importing script '".concat(scriptSkeleton.name, "': Script is not valid"), 'error');
446
+ (0, _Console.printMessage)({
447
+ message: "Error importing script '".concat(scriptSkeleton.name, "': Script is not valid"),
448
+ type: 'error',
449
+ state
450
+ });
405
451
  continue;
406
452
  }
407
453
  }
@@ -413,12 +459,22 @@ function _importScripts() {
413
459
  });
414
460
  } catch (error) {
415
461
  outcome = false;
416
- (0, _Console.printMessage)("Error importing script '".concat(scriptSkeleton.name, "': ").concat(error.message), 'error');
417
- (0, _Console.debugMessage)(error);
462
+ (0, _Console.printMessage)({
463
+ message: "Error importing script '".concat(scriptSkeleton.name, "': ").concat(error.message),
464
+ type: 'error',
465
+ state
466
+ });
467
+ (0, _Console.debugMessage)({
468
+ message: error,
469
+ state
470
+ });
418
471
  }
419
472
  if (scriptName) break;
420
473
  }
421
- (0, _Console.debugMessage)("ScriptOps.importScripts: end");
474
+ (0, _Console.debugMessage)({
475
+ message: "ScriptOps.importScripts: end",
476
+ state
477
+ });
422
478
  return outcome;
423
479
  });
424
480
  return _importScripts.apply(this, arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptOps.js","names":["_uuid","require","_OpsUtils","_Console","_ScriptApi","_ExportImportUtils","_ScriptValidationUtils","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ScriptOps","constructor","state","getScripts","_this","getScriptByName","scriptName","_this2","putScript","scriptId","scriptData","_this3","exportScript","_this4","exportScriptByName","_this5","exportScripts","_this6","importScripts","importData","_arguments","_this7","reUuid","length","validate","getScript","deleteScript","exports","default","createScriptExportTemplate","_ref","meta","getMetadata","script","_x","_getScripts2","_ref2","result","_getScripts","_x2","_getScriptByName2","_ref3","_getScriptByName","Error","concat","_x3","_putScript2","_ref4","Array","isArray","convertTextArrayToBase64","_putScript","_error$response","response","status","printMessage","name","newName","applyNameCollisionPolicy","_x4","_exportScript","_ref5","debugMessage","convertBase64TextToArray","exportData","_id","_x5","_exportScriptByName","_ref6","_x6","_exportScripts","_ref7","scriptList","createProgressIndicator","updateProgressIndicator","stopProgressIndicator","_x7","_importScripts","_ref8","outcome","existingId","Object","keys","scriptSkeleton","newId","uuidv4","validateScriptDecoded","message"],"sources":["ops/ScriptOps.ts"],"sourcesContent":["import { v4 as uuidv4 } from 'uuid';\nimport { applyNameCollisionPolicy } from './utils/OpsUtils';\nimport {\n createProgressIndicator,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from './utils/Console';\nimport {\n getScript,\n getScriptByName as _getScriptByName,\n getScripts as _getScripts,\n putScript as _putScript,\n deleteScript,\n} from '../api/ScriptApi';\nimport {\n convertBase64TextToArray,\n convertTextArrayToBase64,\n getMetadata,\n} from './utils/ExportImportUtils';\nimport { ScriptSkeleton } from '../api/ApiTypes';\nimport { ExportMetaData } from '../ops/OpsTypes';\nimport { validateScriptDecoded } from './utils/ScriptValidationUtils';\nimport State from '../shared/State';\n\nexport default class ScriptOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\n async getScripts(): Promise<ScriptSkeleton[]> {\n return getScripts({ state: this.state });\n }\n\n /**\n * Get script by name\n * @param {string} name name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\n async getScriptByName(scriptName: string): Promise<ScriptSkeleton> {\n return getScriptByName({ scriptName, state: this.state });\n }\n\n /**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<boolean>} a status object\n */\n async putScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<boolean> {\n return putScript({ scriptId, scriptData, state: this.state });\n }\n\n /**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n async exportScript(scriptId: string): Promise<ScriptExportInterface> {\n return exportScript({ scriptId, state: this.state });\n }\n\n /**\n * Export script by name\n * @param {string} name script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n async exportScriptByName(scriptName: string): Promise<ScriptExportInterface> {\n return exportScriptByName({ scriptName, state: this.state });\n }\n\n /**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n async exportScripts(): Promise<ScriptExportInterface> {\n return exportScripts({ state: this.state });\n }\n\n /**\n * Import scripts\n * @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<boolean>} true if no errors occurred during import, false otherwise\n */\n async importScripts(\n scriptName: string,\n importData: ScriptExportInterface,\n reUuid = false,\n validate = false\n ): Promise<boolean> {\n return importScripts({\n scriptName,\n importData,\n reUuid,\n validate,\n state: this.state,\n });\n }\n\n getScript(scriptId: string) {\n return getScript({ scriptId, state: this.state });\n }\n\n deleteScript(scriptId: string) {\n return deleteScript({ scriptId, state: this.state });\n }\n}\n\nexport interface ScriptExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n}\n\n/**\n * Create an empty idp export template\n * @returns {ScriptExportInterface} an empty idp export template\n */\nexport function createScriptExportTemplate({\n state,\n}: {\n state: State;\n}): ScriptExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n } as ScriptExportInterface;\n}\n\n/**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\nexport async function getScripts({\n state,\n}: {\n state: State;\n}): Promise<ScriptSkeleton[]> {\n const { result } = await _getScripts({ state });\n return result;\n}\n\n/**\n * Get script by name\n * @param {string} scriptName name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\nexport async function getScriptByName({\n scriptName,\n state,\n}: {\n scriptName: string;\n state: State;\n}): Promise<ScriptSkeleton> {\n const { result } = await _getScriptByName({ scriptName, state });\n switch (result.length) {\n case 1:\n return result[0];\n case 0:\n throw new Error(`Script '${scriptName}' not found`);\n default:\n throw new Error(`${result.length} scripts '${scriptName}' found`);\n }\n}\n\n/**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<boolean>} a status object\n */\nexport async function putScript({\n scriptId,\n scriptData,\n state,\n}: {\n scriptId: string;\n scriptData: ScriptSkeleton;\n state: State;\n}): Promise<boolean> {\n try {\n if (Array.isArray(scriptData.script)) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n }\n const result = await _putScript({ scriptId, scriptData, state });\n return result;\n } catch (error) {\n if (error.response?.status === 409) {\n printMessage(\n `createOrUpdateScript WARNING: script with name ${scriptData.name} already exists, using renaming policy... <name> => <name - imported (n)>`,\n 'warn'\n );\n const newName = applyNameCollisionPolicy(scriptData.name);\n scriptData.name = newName;\n const result = await putScript({ scriptId, scriptData, state });\n printMessage(`Saved script as ${newName}`, 'warn');\n return result;\n }\n throw error;\n }\n}\n\n/**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScript({\n scriptId,\n state,\n}: {\n scriptId: string;\n state: State;\n}): Promise<ScriptExportInterface> {\n debugMessage(`ScriptOps.exportScriptById: start`);\n const scriptData = await getScript({ scriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n const exportData = createScriptExportTemplate({ state });\n exportData.script[scriptData._id] = scriptData;\n debugMessage(`ScriptOps.exportScriptById: end`);\n return exportData;\n}\n\n/**\n * Export script by name\n * @param {string} scriptName script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScriptByName({\n scriptName,\n state,\n}: {\n scriptName: string;\n state: State;\n}): Promise<ScriptExportInterface> {\n debugMessage(`ScriptOps.exportScriptByName: start`);\n const scriptData = await getScriptByName({ scriptName, state });\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n const exportData = createScriptExportTemplate({ state });\n exportData.script[scriptData._id] = scriptData;\n debugMessage(`ScriptOps.exportScriptByName: end`);\n return exportData;\n}\n\n/**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScripts({\n state,\n}: {\n state: State;\n}): Promise<ScriptExportInterface> {\n const scriptList = await getScripts({ state });\n const exportData = createScriptExportTemplate({ state });\n createProgressIndicator(\n scriptList.length,\n `Exporting ${scriptList.length} scripts...`\n );\n for (const script of scriptList) {\n updateProgressIndicator(`Reading script ${script.name}`);\n const scriptData = await getScriptByName({\n scriptName: script.name,\n state,\n });\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n exportData.script[scriptData._id] = scriptData;\n }\n stopProgressIndicator(`Exported ${scriptList.length} scripts.`);\n return exportData;\n}\n\n/**\n * Import scripts\n * @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<boolean>} true if no errors occurred during import, false otherwise\n */\nexport async function importScripts({\n scriptName,\n importData,\n reUuid = false,\n validate = false,\n state,\n}: {\n scriptName: string;\n importData: ScriptExportInterface;\n reUuid?: boolean;\n validate?: boolean;\n state: State;\n}): Promise<boolean> {\n let outcome = true;\n debugMessage(`ScriptOps.importScripts: start`);\n for (const existingId of Object.keys(importData.script)) {\n const scriptSkeleton = importData.script[existingId];\n let newId = existingId;\n if (reUuid) {\n newId = uuidv4();\n debugMessage(\n `ScriptOps.importScripts: Re-uuid-ing script ${scriptSkeleton.name} ${existingId} => ${newId}...`\n );\n scriptSkeleton._id = newId;\n }\n if (scriptName) {\n debugMessage(\n `ScriptOps.importScripts: Renaming script ${scriptSkeleton.name} => ${scriptName}...`\n );\n scriptSkeleton.name = scriptName;\n }\n if (validate) {\n if (!validateScriptDecoded(scriptSkeleton)) {\n outcome = false;\n printMessage(\n `Error importing script '${scriptSkeleton.name}': Script is not valid`,\n 'error'\n );\n continue;\n }\n }\n try {\n await putScript({ scriptId: newId, scriptData: scriptSkeleton, state });\n } catch (error) {\n outcome = false;\n printMessage(\n `Error importing script '${scriptSkeleton.name}': ${error.message}`,\n 'error'\n );\n debugMessage(error);\n }\n if (scriptName) break;\n }\n debugMessage(`ScriptOps.importScripts: end`);\n return outcome;\n}\n\nexport { getScript, deleteScript };\n"],"mappings":"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"}
1
+ {"version":3,"file":"ScriptOps.js","names":["_uuid","require","_OpsUtils","_Console","_ScriptApi","_ExportImportUtils","_ScriptValidationUtils","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ScriptOps","constructor","state","getScripts","_this","getScriptByName","scriptName","_this2","putScript","scriptId","scriptData","_this3","exportScript","_this4","exportScriptByName","_this5","exportScripts","_this6","importScripts","importData","_arguments","_this7","reUuid","length","validate","getScript","deleteScript","exports","default","createScriptExportTemplate","_ref","meta","getMetadata","script","_x","_getScripts2","_ref2","result","_getScripts","_x2","_getScriptByName2","_ref3","_getScriptByName","Error","concat","_x3","_putScript2","_ref4","Array","isArray","convertTextArrayToBase64","_putScript","_error$response","response","status","printMessage","message","name","type","newName","applyNameCollisionPolicy","_x4","_exportScript","_ref5","debugMessage","convertBase64TextToArray","exportData","_id","_x5","_exportScriptByName","_ref6","_x6","_exportScripts","_ref7","scriptList","createProgressIndicator","total","updateProgressIndicator","stopProgressIndicator","_x7","_importScripts","_ref8","outcome","existingId","Object","keys","scriptSkeleton","newId","uuidv4","validateScriptDecoded"],"sources":["ops/ScriptOps.ts"],"sourcesContent":["import { v4 as uuidv4 } from 'uuid';\nimport { applyNameCollisionPolicy } from './utils/OpsUtils';\nimport {\n createProgressIndicator,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from './utils/Console';\nimport {\n getScript,\n getScriptByName as _getScriptByName,\n getScripts as _getScripts,\n putScript as _putScript,\n deleteScript,\n} from '../api/ScriptApi';\nimport {\n convertBase64TextToArray,\n convertTextArrayToBase64,\n getMetadata,\n} from './utils/ExportImportUtils';\nimport { ScriptSkeleton } from '../api/ApiTypes';\nimport { ExportMetaData } from '../ops/OpsTypes';\nimport { validateScriptDecoded } from './utils/ScriptValidationUtils';\nimport State from '../shared/State';\n\nexport default class ScriptOps {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\n async getScripts(): Promise<ScriptSkeleton[]> {\n return getScripts({ state: this.state });\n }\n\n /**\n * Get script by name\n * @param {string} name name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\n async getScriptByName(scriptName: string): Promise<ScriptSkeleton> {\n return getScriptByName({ scriptName, state: this.state });\n }\n\n /**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<boolean>} a status object\n */\n async putScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<boolean> {\n return putScript({ scriptId, scriptData, state: this.state });\n }\n\n /**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n async exportScript(scriptId: string): Promise<ScriptExportInterface> {\n return exportScript({ scriptId, state: this.state });\n }\n\n /**\n * Export script by name\n * @param {string} name script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n async exportScriptByName(scriptName: string): Promise<ScriptExportInterface> {\n return exportScriptByName({ scriptName, state: this.state });\n }\n\n /**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n async exportScripts(): Promise<ScriptExportInterface> {\n return exportScripts({ state: this.state });\n }\n\n /**\n * Import scripts\n * @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<boolean>} true if no errors occurred during import, false otherwise\n */\n async importScripts(\n scriptName: string,\n importData: ScriptExportInterface,\n reUuid = false,\n validate = false\n ): Promise<boolean> {\n return importScripts({\n scriptName,\n importData,\n reUuid,\n validate,\n state: this.state,\n });\n }\n\n getScript(scriptId: string) {\n return getScript({ scriptId, state: this.state });\n }\n\n deleteScript(scriptId: string) {\n return deleteScript({ scriptId, state: this.state });\n }\n}\n\nexport interface ScriptExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n}\n\n/**\n * Create an empty idp export template\n * @returns {ScriptExportInterface} an empty idp export template\n */\nexport function createScriptExportTemplate({\n state,\n}: {\n state: State;\n}): ScriptExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n } as ScriptExportInterface;\n}\n\n/**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\nexport async function getScripts({\n state,\n}: {\n state: State;\n}): Promise<ScriptSkeleton[]> {\n const { result } = await _getScripts({ state });\n return result;\n}\n\n/**\n * Get script by name\n * @param {string} scriptName name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\nexport async function getScriptByName({\n scriptName,\n state,\n}: {\n scriptName: string;\n state: State;\n}): Promise<ScriptSkeleton> {\n const { result } = await _getScriptByName({ scriptName, state });\n switch (result.length) {\n case 1:\n return result[0];\n case 0:\n throw new Error(`Script '${scriptName}' not found`);\n default:\n throw new Error(`${result.length} scripts '${scriptName}' found`);\n }\n}\n\n/**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<boolean>} a status object\n */\nexport async function putScript({\n scriptId,\n scriptData,\n state,\n}: {\n scriptId: string;\n scriptData: ScriptSkeleton;\n state: State;\n}): Promise<boolean> {\n try {\n if (Array.isArray(scriptData.script)) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n }\n const result = await _putScript({ scriptId, scriptData, state });\n return result;\n } catch (error) {\n if (error.response?.status === 409) {\n printMessage({\n message: `createOrUpdateScript WARNING: script with name ${scriptData.name} already exists, using renaming policy... <name> => <name - imported (n)>`,\n type: 'warn',\n state,\n });\n const newName = applyNameCollisionPolicy(scriptData.name);\n scriptData.name = newName;\n const result = await putScript({ scriptId, scriptData, state });\n printMessage({\n message: `Saved script as ${newName}`,\n type: 'warn',\n state,\n });\n return result;\n }\n throw error;\n }\n}\n\n/**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScript({\n scriptId,\n state,\n}: {\n scriptId: string;\n state: State;\n}): Promise<ScriptExportInterface> {\n debugMessage({ message: `ScriptOps.exportScriptById: start`, state });\n const scriptData = await getScript({ scriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n const exportData = createScriptExportTemplate({ state });\n exportData.script[scriptData._id] = scriptData;\n debugMessage({ message: `ScriptOps.exportScriptById: end`, state });\n return exportData;\n}\n\n/**\n * Export script by name\n * @param {string} scriptName script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScriptByName({\n scriptName,\n state,\n}: {\n scriptName: string;\n state: State;\n}): Promise<ScriptExportInterface> {\n debugMessage({ message: `ScriptOps.exportScriptByName: start`, state });\n const scriptData = await getScriptByName({ scriptName, state });\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n const exportData = createScriptExportTemplate({ state });\n exportData.script[scriptData._id] = scriptData;\n debugMessage({ message: `ScriptOps.exportScriptByName: end`, state });\n return exportData;\n}\n\n/**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScripts({\n state,\n}: {\n state: State;\n}): Promise<ScriptExportInterface> {\n const scriptList = await getScripts({ state });\n const exportData = createScriptExportTemplate({ state });\n createProgressIndicator({\n total: scriptList.length,\n message: `Exporting ${scriptList.length} scripts...`,\n state,\n });\n for (const script of scriptList) {\n updateProgressIndicator({\n message: `Reading script ${script.name}`,\n state,\n });\n const scriptData = await getScriptByName({\n scriptName: script.name,\n state,\n });\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n exportData.script[scriptData._id] = scriptData;\n }\n stopProgressIndicator({\n message: `Exported ${scriptList.length} scripts.`,\n state,\n });\n return exportData;\n}\n\n/**\n * Import scripts\n * @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<boolean>} true if no errors occurred during import, false otherwise\n */\nexport async function importScripts({\n scriptName,\n importData,\n reUuid = false,\n validate = false,\n state,\n}: {\n scriptName: string;\n importData: ScriptExportInterface;\n reUuid?: boolean;\n validate?: boolean;\n state: State;\n}): Promise<boolean> {\n let outcome = true;\n debugMessage({ message: `ScriptOps.importScripts: start`, state });\n for (const existingId of Object.keys(importData.script)) {\n const scriptSkeleton = importData.script[existingId];\n let newId = existingId;\n if (reUuid) {\n newId = uuidv4();\n debugMessage({\n message: `ScriptOps.importScripts: Re-uuid-ing script ${scriptSkeleton.name} ${existingId} => ${newId}...`,\n state,\n });\n scriptSkeleton._id = newId;\n }\n if (scriptName) {\n debugMessage({\n message: `ScriptOps.importScripts: Renaming script ${scriptSkeleton.name} => ${scriptName}...`,\n state,\n });\n scriptSkeleton.name = scriptName;\n }\n if (validate) {\n if (!validateScriptDecoded({ scriptSkeleton, state })) {\n outcome = false;\n printMessage({\n message: `Error importing script '${scriptSkeleton.name}': Script is not valid`,\n type: 'error',\n state,\n });\n continue;\n }\n }\n try {\n await putScript({ scriptId: newId, scriptData: scriptSkeleton, state });\n } catch (error) {\n outcome = false;\n printMessage({\n message: `Error importing script '${scriptSkeleton.name}': ${error.message}`,\n type: 'error',\n state,\n });\n debugMessage({ message: error, state });\n }\n if (scriptName) break;\n }\n debugMessage({ message: `ScriptOps.importScripts: end`, state });\n return outcome;\n}\n\nexport { getScript, deleteScript };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAOA,IAAAG,UAAA,GAAAH,OAAA;AAOA,IAAAI,kBAAA,GAAAJ,OAAA;AAOA,IAAAK,sBAAA,GAAAL,OAAA;AAAsE,SAAAM,mBAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,GAAA,EAAAC,GAAA,cAAAC,IAAA,GAAAP,GAAA,CAAAK,GAAA,EAAAC,GAAA,OAAAE,KAAA,GAAAD,IAAA,CAAAC,KAAA,WAAAC,KAAA,IAAAP,MAAA,CAAAO,KAAA,iBAAAF,IAAA,CAAAG,IAAA,IAAAT,OAAA,CAAAO,KAAA,YAAAG,OAAA,CAAAV,OAAA,CAAAO,KAAA,EAAAI,IAAA,CAAAT,KAAA,EAAAC,MAAA;AAAA,SAAAS,kBAAAC,EAAA,6BAAAC,IAAA,SAAAC,IAAA,GAAAC,SAAA,aAAAN,OAAA,WAAAV,OAAA,EAAAC,MAAA,QAAAF,GAAA,GAAAc,EAAA,CAAAI,KAAA,CAAAH,IAAA,EAAAC,IAAA,YAAAb,MAAAK,KAAA,IAAAT,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,UAAAI,KAAA,cAAAJ,OAAAe,GAAA,IAAApB,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,WAAAe,GAAA,KAAAhB,KAAA,CAAAiB,SAAA;AAGvD,MAAMC,SAAS,CAAC;EAE7BC,WAAWA,CAACC,KAAY,EAAE;IACxB,IAAI,CAACA,KAAK,GAAGA,KAAK;EACpB;;EAEA;AACF;AACA;AACA;EACQC,UAAUA,CAAA,EAA8B;IAAA,IAAAC,KAAA;IAAA,OAAAZ,iBAAA;MAC5C,OAAOW,UAAU,CAAC;QAAED,KAAK,EAAEE,KAAI,CAACF;MAAM,CAAC,CAAC;IAAC;EAC3C;;EAEA;AACF;AACA;AACA;AACA;EACQG,eAAeA,CAACC,UAAkB,EAA2B;IAAA,IAAAC,MAAA;IAAA,OAAAf,iBAAA;MACjE,OAAOa,eAAe,CAAC;QAAEC,UAAU;QAAEJ,KAAK,EAAEK,MAAI,CAACL;MAAM,CAAC,CAAC;IAAC;EAC5D;;EAEA;AACF;AACA;AACA;AACA;AACA;EACQM,SAASA,CACbC,QAAgB,EAChBC,UAA0B,EACR;IAAA,IAAAC,MAAA;IAAA,OAAAnB,iBAAA;MAClB,OAAOgB,SAAS,CAAC;QAAEC,QAAQ;QAAEC,UAAU;QAAER,KAAK,EAAES,MAAI,CAACT;MAAM,CAAC,CAAC;IAAC;EAChE;;EAEA;AACF;AACA;AACA;AACA;EACQU,YAAYA,CAACH,QAAgB,EAAkC;IAAA,IAAAI,MAAA;IAAA,OAAArB,iBAAA;MACnE,OAAOoB,YAAY,CAAC;QAAEH,QAAQ;QAAEP,KAAK,EAAEW,MAAI,CAACX;MAAM,CAAC,CAAC;IAAC;EACvD;;EAEA;AACF;AACA;AACA;AACA;EACQY,kBAAkBA,CAACR,UAAkB,EAAkC;IAAA,IAAAS,MAAA;IAAA,OAAAvB,iBAAA;MAC3E,OAAOsB,kBAAkB,CAAC;QAAER,UAAU;QAAEJ,KAAK,EAAEa,MAAI,CAACb;MAAM,CAAC,CAAC;IAAC;EAC/D;;EAEA;AACF;AACA;AACA;EACQc,aAAaA,CAAA,EAAmC;IAAA,IAAAC,MAAA;IAAA,OAAAzB,iBAAA;MACpD,OAAOwB,aAAa,CAAC;QAAEd,KAAK,EAAEe,MAAI,CAACf;MAAM,CAAC,CAAC;IAAC;EAC9C;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACQgB,aAAaA,CACjBZ,UAAkB,EAClBa,UAAiC,EAGf;IAAA,IAAAC,UAAA,GAAAxB,SAAA;MAAAyB,MAAA;IAAA,OAAA7B,iBAAA;MAAA,IAFlB8B,MAAM,GAAAF,UAAA,CAAAG,MAAA,QAAAH,UAAA,QAAArB,SAAA,GAAAqB,UAAA,MAAG,KAAK;MAAA,IACdI,QAAQ,GAAAJ,UAAA,CAAAG,MAAA,QAAAH,UAAA,QAAArB,SAAA,GAAAqB,UAAA,MAAG,KAAK;MAEhB,OAAOF,aAAa,CAAC;QACnBZ,UAAU;QACVa,UAAU;QACVG,MAAM;QACNE,QAAQ;QACRtB,KAAK,EAAEmB,MAAI,CAACnB;MACd,CAAC,CAAC;IAAC;EACL;EAEAuB,SAASA,CAAChB,QAAgB,EAAE;IAC1B,OAAO,IAAAgB,oBAAS,EAAC;MAAEhB,QAAQ;MAAEP,KAAK,EAAE,IAAI,CAACA;IAAM,CAAC,CAAC;EACnD;EAEAwB,YAAYA,CAACjB,QAAgB,EAAE;IAC7B,OAAO,IAAAiB,uBAAY,EAAC;MAAEjB,QAAQ;MAAEP,KAAK,EAAE,IAAI,CAACA;IAAM,CAAC,CAAC;EACtD;AACF;AAACyB,OAAA,CAAAC,OAAA,GAAA5B,SAAA;AAOD;AACA;AACA;AACA;AACO,SAAS6B,0BAA0BA,CAAAC,IAAA,EAIhB;EAAA,IAJiB;IACzC5B;EAGF,CAAC,GAAA4B,IAAA;EACC,OAAO;IACLC,IAAI,EAAE,IAAAC,8BAAW,EAAC;MAAE9B;IAAM,CAAC,CAAC;IAC5B+B,MAAM,EAAE,CAAC;EACX,CAAC;AACH;;AAEA;AACA;AACA;AACA;AAHA,SAIsB9B,UAAUA,CAAA+B,EAAA;EAAA,OAAAC,YAAA,CAAAtC,KAAA,OAAAD,SAAA;AAAA;AAShC;AACA;AACA;AACA;AACA;AAJA,SAAAuC,aAAA;EAAAA,YAAA,GAAA3C,iBAAA,CATO,WAAA4C,KAAA,EAIuB;IAAA,IAJG;MAC/BlC;IAGF,CAAC,GAAAkC,KAAA;IACC,IAAM;MAAEC;IAAO,CAAC,SAAS,IAAAC,qBAAW,EAAC;MAAEpC;IAAM,CAAC,CAAC;IAC/C,OAAOmC,MAAM;EACf,CAAC;EAAA,OAAAF,YAAA,CAAAtC,KAAA,OAAAD,SAAA;AAAA;AAAA,SAOqBS,eAAeA,CAAAkC,GAAA;EAAA,OAAAC,iBAAA,CAAA3C,KAAA,OAAAD,SAAA;AAAA;AAkBrC;AACA;AACA;AACA;AACA;AACA;AALA,SAAA4C,kBAAA;EAAAA,iBAAA,GAAAhD,iBAAA,CAlBO,WAAAiD,KAAA,EAMqB;IAAA,IANU;MACpCnC,UAAU;MACVJ;IAIF,CAAC,GAAAuC,KAAA;IACC,IAAM;MAAEJ;IAAO,CAAC,SAAS,IAAAK,0BAAgB,EAAC;MAAEpC,UAAU;MAAEJ;IAAM,CAAC,CAAC;IAChE,QAAQmC,MAAM,CAACd,MAAM;MACnB,KAAK,CAAC;QACJ,OAAOc,MAAM,CAAC,CAAC,CAAC;MAClB,KAAK,CAAC;QACJ,MAAM,IAAIM,KAAK,YAAAC,MAAA,CAAYtC,UAAU,gBAAa,CAAC;MACrD;QACE,MAAM,IAAIqC,KAAK,IAAAC,MAAA,CAAIP,MAAM,CAACd,MAAM,gBAAAqB,MAAA,CAAatC,UAAU,YAAS,CAAC;IACrE;EACF,CAAC;EAAA,OAAAkC,iBAAA,CAAA3C,KAAA,OAAAD,SAAA;AAAA;AAAA,SAQqBY,SAASA,CAAAqC,GAAA;EAAA,OAAAC,WAAA,CAAAjD,KAAA,OAAAD,SAAA;AAAA;AAoC/B;AACA;AACA;AACA;AACA;AAJA,SAAAkD,YAAA;EAAAA,WAAA,GAAAtD,iBAAA,CApCO,WAAAuD,KAAA,EAQc;IAAA,IARW;MAC9BtC,QAAQ;MACRC,UAAU;MACVR;IAKF,CAAC,GAAA6C,KAAA;IACC,IAAI;MACF,IAAIC,KAAK,CAACC,OAAO,CAACvC,UAAU,CAACuB,MAAM,CAAC,EAAE;QACpCvB,UAAU,CAACuB,MAAM,GAAG,IAAAiB,2CAAwB,EAACxC,UAAU,CAACuB,MAAM,CAAC;MACjE;MACA,IAAMI,MAAM,SAAS,IAAAc,oBAAU,EAAC;QAAE1C,QAAQ;QAAEC,UAAU;QAAER;MAAM,CAAC,CAAC;MAChE,OAAOmC,MAAM;IACf,CAAC,CAAC,OAAOjD,KAAK,EAAE;MAAA,IAAAgE,eAAA;MACd,IAAI,EAAAA,eAAA,GAAAhE,KAAK,CAACiE,QAAQ,cAAAD,eAAA,uBAAdA,eAAA,CAAgBE,MAAM,MAAK,GAAG,EAAE;QAClC,IAAAC,qBAAY,EAAC;UACXC,OAAO,oDAAAZ,MAAA,CAAoDlC,UAAU,CAAC+C,IAAI,8EAA2E;UACrJC,IAAI,EAAE,MAAM;UACZxD;QACF,CAAC,CAAC;QACF,IAAMyD,OAAO,GAAG,IAAAC,kCAAwB,EAAClD,UAAU,CAAC+C,IAAI,CAAC;QACzD/C,UAAU,CAAC+C,IAAI,GAAGE,OAAO;QACzB,IAAMtB,OAAM,SAAS7B,SAAS,CAAC;UAAEC,QAAQ;UAAEC,UAAU;UAAER;QAAM,CAAC,CAAC;QAC/D,IAAAqD,qBAAY,EAAC;UACXC,OAAO,qBAAAZ,MAAA,CAAqBe,OAAO,CAAE;UACrCD,IAAI,EAAE,MAAM;UACZxD;QACF,CAAC,CAAC;QACF,OAAOmC,OAAM;MACf;MACA,MAAMjD,KAAK;IACb;EACF,CAAC;EAAA,OAAA0D,WAAA,CAAAjD,KAAA,OAAAD,SAAA;AAAA;AAAA,SAOqBgB,YAAYA,CAAAiD,GAAA;EAAA,OAAAC,aAAA,CAAAjE,KAAA,OAAAD,SAAA;AAAA;AAgBlC;AACA;AACA;AACA;AACA;AAJA,SAAAkE,cAAA;EAAAA,aAAA,GAAAtE,iBAAA,CAhBO,WAAAuE,KAAA,EAM4B;IAAA,IANA;MACjCtD,QAAQ;MACRP;IAIF,CAAC,GAAA6D,KAAA;IACC,IAAAC,qBAAY,EAAC;MAAER,OAAO,qCAAqC;MAAEtD;IAAM,CAAC,CAAC;IACrE,IAAMQ,UAAU,SAAS,IAAAe,oBAAS,EAAC;MAAEhB,QAAQ;MAAEP;IAAM,CAAC,CAAC;IACvDQ,UAAU,CAACuB,MAAM,GAAG,IAAAgC,2CAAwB,EAACvD,UAAU,CAACuB,MAAM,CAAC;IAC/D,IAAMiC,UAAU,GAAGrC,0BAA0B,CAAC;MAAE3B;IAAM,CAAC,CAAC;IACxDgE,UAAU,CAACjC,MAAM,CAACvB,UAAU,CAACyD,GAAG,CAAC,GAAGzD,UAAU;IAC9C,IAAAsD,qBAAY,EAAC;MAAER,OAAO,mCAAmC;MAAEtD;IAAM,CAAC,CAAC;IACnE,OAAOgE,UAAU;EACnB,CAAC;EAAA,OAAAJ,aAAA,CAAAjE,KAAA,OAAAD,SAAA;AAAA;AAAA,SAOqBkB,kBAAkBA,CAAAsD,GAAA;EAAA,OAAAC,mBAAA,CAAAxE,KAAA,OAAAD,SAAA;AAAA;AAgBxC;AACA;AACA;AACA;AAHA,SAAAyE,oBAAA;EAAAA,mBAAA,GAAA7E,iBAAA,CAhBO,WAAA8E,KAAA,EAM4B;IAAA,IANM;MACvChE,UAAU;MACVJ;IAIF,CAAC,GAAAoE,KAAA;IACC,IAAAN,qBAAY,EAAC;MAAER,OAAO,uCAAuC;MAAEtD;IAAM,CAAC,CAAC;IACvE,IAAMQ,UAAU,SAASL,eAAe,CAAC;MAAEC,UAAU;MAAEJ;IAAM,CAAC,CAAC;IAC/DQ,UAAU,CAACuB,MAAM,GAAG,IAAAgC,2CAAwB,EAACvD,UAAU,CAACuB,MAAgB,CAAC;IACzE,IAAMiC,UAAU,GAAGrC,0BAA0B,CAAC;MAAE3B;IAAM,CAAC,CAAC;IACxDgE,UAAU,CAACjC,MAAM,CAACvB,UAAU,CAACyD,GAAG,CAAC,GAAGzD,UAAU;IAC9C,IAAAsD,qBAAY,EAAC;MAAER,OAAO,qCAAqC;MAAEtD;IAAM,CAAC,CAAC;IACrE,OAAOgE,UAAU;EACnB,CAAC;EAAA,OAAAG,mBAAA,CAAAxE,KAAA,OAAAD,SAAA;AAAA;AAAA,SAMqBoB,aAAaA,CAAAuD,GAAA;EAAA,OAAAC,cAAA,CAAA3E,KAAA,OAAAD,SAAA;AAAA;AA+BnC;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAA4E,eAAA;EAAAA,cAAA,GAAAhF,iBAAA,CA/BO,WAAAiF,KAAA,EAI4B;IAAA,IAJC;MAClCvE;IAGF,CAAC,GAAAuE,KAAA;IACC,IAAMC,UAAU,SAASvE,UAAU,CAAC;MAAED;IAAM,CAAC,CAAC;IAC9C,IAAMgE,UAAU,GAAGrC,0BAA0B,CAAC;MAAE3B;IAAM,CAAC,CAAC;IACxD,IAAAyE,gCAAuB,EAAC;MACtBC,KAAK,EAAEF,UAAU,CAACnD,MAAM;MACxBiC,OAAO,eAAAZ,MAAA,CAAe8B,UAAU,CAACnD,MAAM,gBAAa;MACpDrB;IACF,CAAC,CAAC;IACF,KAAK,IAAM+B,MAAM,IAAIyC,UAAU,EAAE;MAC/B,IAAAG,gCAAuB,EAAC;QACtBrB,OAAO,oBAAAZ,MAAA,CAAoBX,MAAM,CAACwB,IAAI,CAAE;QACxCvD;MACF,CAAC,CAAC;MACF,IAAMQ,UAAU,SAASL,eAAe,CAAC;QACvCC,UAAU,EAAE2B,MAAM,CAACwB,IAAI;QACvBvD;MACF,CAAC,CAAC;MACFQ,UAAU,CAACuB,MAAM,GAAG,IAAAgC,2CAAwB,EAACvD,UAAU,CAACuB,MAAgB,CAAC;MACzEiC,UAAU,CAACjC,MAAM,CAACvB,UAAU,CAACyD,GAAG,CAAC,GAAGzD,UAAU;IAChD;IACA,IAAAoE,8BAAqB,EAAC;MACpBtB,OAAO,cAAAZ,MAAA,CAAc8B,UAAU,CAACnD,MAAM,cAAW;MACjDrB;IACF,CAAC,CAAC;IACF,OAAOgE,UAAU;EACnB,CAAC;EAAA,OAAAM,cAAA,CAAA3E,KAAA,OAAAD,SAAA;AAAA;AAAA,SASqBsB,aAAaA,CAAA6D,GAAA;EAAA,OAAAC,cAAA,CAAAnF,KAAA,OAAAD,SAAA;AAAA;AAAA,SAAAoF,eAAA;EAAAA,cAAA,GAAAxF,iBAAA,CAA5B,WAAAyF,KAAA,EAYc;IAAA,IAZe;MAClC3E,UAAU;MACVa,UAAU;MACVG,MAAM,GAAG,KAAK;MACdE,QAAQ,GAAG,KAAK;MAChBtB;IAOF,CAAC,GAAA+E,KAAA;IACC,IAAIC,OAAO,GAAG,IAAI;IAClB,IAAAlB,qBAAY,EAAC;MAAER,OAAO,kCAAkC;MAAEtD;IAAM,CAAC,CAAC;IAClE,KAAK,IAAMiF,UAAU,IAAIC,MAAM,CAACC,IAAI,CAAClE,UAAU,CAACc,MAAM,CAAC,EAAE;MACvD,IAAMqD,cAAc,GAAGnE,UAAU,CAACc,MAAM,CAACkD,UAAU,CAAC;MACpD,IAAII,KAAK,GAAGJ,UAAU;MACtB,IAAI7D,MAAM,EAAE;QACViE,KAAK,GAAG,IAAAC,QAAM,EAAC,CAAC;QAChB,IAAAxB,qBAAY,EAAC;UACXR,OAAO,iDAAAZ,MAAA,CAAiD0C,cAAc,CAAC7B,IAAI,OAAAb,MAAA,CAAIuC,UAAU,UAAAvC,MAAA,CAAO2C,KAAK,QAAK;UAC1GrF;QACF,CAAC,CAAC;QACFoF,cAAc,CAACnB,GAAG,GAAGoB,KAAK;MAC5B;MACA,IAAIjF,UAAU,EAAE;QACd,IAAA0D,qBAAY,EAAC;UACXR,OAAO,8CAAAZ,MAAA,CAA8C0C,cAAc,CAAC7B,IAAI,UAAAb,MAAA,CAAOtC,UAAU,QAAK;UAC9FJ;QACF,CAAC,CAAC;QACFoF,cAAc,CAAC7B,IAAI,GAAGnD,UAAU;MAClC;MACA,IAAIkB,QAAQ,EAAE;QACZ,IAAI,CAAC,IAAAiE,4CAAqB,EAAC;UAAEH,cAAc;UAAEpF;QAAM,CAAC,CAAC,EAAE;UACrDgF,OAAO,GAAG,KAAK;UACf,IAAA3B,qBAAY,EAAC;YACXC,OAAO,6BAAAZ,MAAA,CAA6B0C,cAAc,CAAC7B,IAAI,2BAAwB;YAC/EC,IAAI,EAAE,OAAO;YACbxD;UACF,CAAC,CAAC;UACF;QACF;MACF;MACA,IAAI;QACF,MAAMM,SAAS,CAAC;UAAEC,QAAQ,EAAE8E,KAAK;UAAE7E,UAAU,EAAE4E,cAAc;UAAEpF;QAAM,CAAC,CAAC;MACzE,CAAC,CAAC,OAAOd,KAAK,EAAE;QACd8F,OAAO,GAAG,KAAK;QACf,IAAA3B,qBAAY,EAAC;UACXC,OAAO,6BAAAZ,MAAA,CAA6B0C,cAAc,CAAC7B,IAAI,SAAAb,MAAA,CAAMxD,KAAK,CAACoE,OAAO,CAAE;UAC5EE,IAAI,EAAE,OAAO;UACbxD;QACF,CAAC,CAAC;QACF,IAAA8D,qBAAY,EAAC;UAAER,OAAO,EAAEpE,KAAK;UAAEc;QAAM,CAAC,CAAC;MACzC;MACA,IAAII,UAAU,EAAE;IAClB;IACA,IAAA0D,qBAAY,EAAC;MAAER,OAAO,gCAAgC;MAAEtD;IAAM,CAAC,CAAC;IAChE,OAAOgF,OAAO;EAChB,CAAC;EAAA,OAAAF,cAAA,CAAAnF,KAAA,OAAAD,SAAA;AAAA"}