@rockcarver/frodo-lib 0.16.2-8 → 0.17.0

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 (434) hide show
  1. package/CHANGELOG.md +221 -1
  2. package/cjs/api/AgentApi.js +14 -61
  3. package/cjs/api/AgentApi.js.map +1 -1
  4. package/cjs/api/AgentApi.test.js.map +1 -1
  5. package/cjs/api/ApiTypes.js +0 -5
  6. package/cjs/api/ApiTypes.js.map +1 -1
  7. package/cjs/api/AuthenticateApi.js +9 -20
  8. package/cjs/api/AuthenticateApi.js.map +1 -1
  9. package/cjs/api/AuthenticateApi.test.js.map +1 -0
  10. package/cjs/api/BaseApi.js +82 -124
  11. package/cjs/api/BaseApi.js.map +1 -1
  12. package/cjs/api/CirclesOfTrustApi.js +8 -32
  13. package/cjs/api/CirclesOfTrustApi.js.map +1 -1
  14. package/cjs/api/IdmConfigApi.js +9 -34
  15. package/cjs/api/IdmConfigApi.js.map +1 -1
  16. package/cjs/api/LogApi.js +8 -31
  17. package/cjs/api/LogApi.js.map +1 -1
  18. package/cjs/api/ManagedObjectApi.js +34 -31
  19. package/cjs/api/ManagedObjectApi.js.map +1 -1
  20. package/cjs/api/NodeApi.js +10 -41
  21. package/cjs/api/NodeApi.js.map +1 -1
  22. package/cjs/api/NodeApi.test.js.map +1 -1
  23. package/cjs/api/OAuth2ClientApi.js +7 -26
  24. package/cjs/api/OAuth2ClientApi.js.map +1 -1
  25. package/cjs/api/OAuth2OIDCApi.js +28 -34
  26. package/cjs/api/OAuth2OIDCApi.js.map +1 -1
  27. package/cjs/api/OAuth2OIDCApi.test.js.map +1 -0
  28. package/cjs/api/OAuth2ProviderApi.js +5 -15
  29. package/cjs/api/OAuth2ProviderApi.js.map +1 -1
  30. package/cjs/api/RealmApi.js +8 -34
  31. package/cjs/api/RealmApi.js.map +1 -1
  32. package/cjs/api/Saml2Api.js +32 -118
  33. package/cjs/api/Saml2Api.js.map +1 -1
  34. package/cjs/api/ScriptApi.js +8 -30
  35. package/cjs/api/ScriptApi.js.map +1 -1
  36. package/cjs/api/SecretsApi.js +14 -64
  37. package/cjs/api/SecretsApi.js.map +1 -1
  38. package/cjs/api/SecretsApi.test.js.map +1 -1
  39. package/cjs/api/ServerInfoApi.js +6 -21
  40. package/cjs/api/ServerInfoApi.js.map +1 -1
  41. package/cjs/api/ServiceApi.js +49 -47
  42. package/cjs/api/ServiceApi.js.map +1 -1
  43. package/cjs/api/SocialIdentityProvidersApi.js +9 -36
  44. package/cjs/api/SocialIdentityProvidersApi.js.map +1 -1
  45. package/cjs/api/StartupApi.js +5 -24
  46. package/cjs/api/StartupApi.js.map +1 -1
  47. package/cjs/api/StartupApi.test.js.map +1 -1
  48. package/cjs/api/TreeApi.js +8 -30
  49. package/cjs/api/TreeApi.js.map +1 -1
  50. package/cjs/api/TreeApi.test.js.map +1 -1
  51. package/cjs/api/VariablesApi.js +9 -37
  52. package/cjs/api/VariablesApi.js.map +1 -1
  53. package/cjs/api/VariablesApi.test.js.map +1 -1
  54. package/cjs/api/utils/ApiUtils.js +47 -57
  55. package/cjs/api/utils/ApiUtils.js.map +1 -1
  56. package/cjs/api/utils/ApiUtils.test.js.map +1 -1
  57. package/cjs/api/utils/Base64.js +6 -15
  58. package/cjs/api/utils/Base64.js.map +1 -1
  59. package/cjs/ext/axios-curlirize/curlirize.js +2 -9
  60. package/cjs/ext/axios-curlirize/curlirize.js.map +1 -1
  61. package/cjs/ext/axios-curlirize/lib/CurlHelper.js +7 -22
  62. package/cjs/ext/axios-curlirize/lib/CurlHelper.js.map +1 -1
  63. package/cjs/index.js +30 -89
  64. package/cjs/index.js.map +1 -1
  65. package/cjs/ops/AdminOps.js +27 -165
  66. package/cjs/ops/AdminOps.js.map +1 -1
  67. package/cjs/ops/AgentOps.js +3 -160
  68. package/cjs/ops/AgentOps.js.map +1 -1
  69. package/cjs/ops/AgentOps.test.js.map +1 -1
  70. package/cjs/ops/AuthenticateOps.js +265 -226
  71. package/cjs/ops/AuthenticateOps.js.map +1 -1
  72. package/cjs/ops/AuthenticateOps.test.js.map +1 -1
  73. package/cjs/ops/CirclesOfTrustOps.js +13 -91
  74. package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
  75. package/cjs/ops/ConnectionProfileOps.js +220 -136
  76. package/cjs/ops/ConnectionProfileOps.js.map +1 -1
  77. package/cjs/ops/ConnectionProfileOps.test.js.map +1 -1
  78. package/cjs/ops/EmailTemplateOps.js +35 -379
  79. package/cjs/ops/EmailTemplateOps.js.map +1 -1
  80. package/cjs/ops/EmailTemplateOps.test.js.map +1 -1
  81. package/cjs/ops/IdmOps.js +52 -426
  82. package/cjs/ops/IdmOps.js.map +1 -1
  83. package/cjs/ops/IdmOps.test.js.map +1 -1
  84. package/cjs/ops/IdpOps.js +11 -94
  85. package/cjs/ops/IdpOps.js.map +1 -1
  86. package/cjs/ops/IdpOps.test.js.map +1 -1
  87. package/cjs/ops/JoseOps.js +81 -0
  88. package/cjs/ops/JoseOps.js.map +1 -0
  89. package/cjs/ops/JoseOps.test.js.map +1 -0
  90. package/cjs/ops/JourneyOps.js +140 -371
  91. package/cjs/ops/JourneyOps.js.map +1 -1
  92. package/cjs/ops/JourneyOps.test.js.map +1 -1
  93. package/cjs/ops/LogOps.js +14 -47
  94. package/cjs/ops/LogOps.js.map +1 -1
  95. package/cjs/ops/ManagedObjectOps.js +4 -12
  96. package/cjs/ops/ManagedObjectOps.js.map +1 -1
  97. package/cjs/ops/NodeOps.js +9 -67
  98. package/cjs/ops/NodeOps.js.map +1 -1
  99. package/cjs/ops/OAuth2ClientOps.js +10 -40
  100. package/cjs/ops/OAuth2ClientOps.js.map +1 -1
  101. package/cjs/ops/OpsTypes.js +0 -5
  102. package/cjs/ops/OpsTypes.js.map +1 -1
  103. package/cjs/ops/OrganizationOps.js +6 -25
  104. package/cjs/ops/OrganizationOps.js.map +1 -1
  105. package/cjs/ops/RealmOps.js +0 -19
  106. package/cjs/ops/RealmOps.js.map +1 -1
  107. package/cjs/ops/Saml2Ops.js +258 -802
  108. package/cjs/ops/Saml2Ops.js.map +1 -1
  109. package/cjs/ops/Saml2Ops.test.js.map +1 -1
  110. package/cjs/ops/ScriptOps.js +28 -73
  111. package/cjs/ops/ScriptOps.js.map +1 -1
  112. package/cjs/ops/SecretsOps.js +2 -58
  113. package/cjs/ops/SecretsOps.js.map +1 -1
  114. package/cjs/ops/ServiceAccountOps.js +61 -0
  115. package/cjs/ops/ServiceAccountOps.js.map +1 -0
  116. package/cjs/ops/ServiceAccountOps.test.js.map +1 -0
  117. package/cjs/ops/ServiceOps.js +55 -101
  118. package/cjs/ops/ServiceOps.js.map +1 -1
  119. package/cjs/ops/StartupOps.js +2 -23
  120. package/cjs/ops/StartupOps.js.map +1 -1
  121. package/cjs/ops/ThemeOps.js +230 -436
  122. package/cjs/ops/ThemeOps.js.map +1 -1
  123. package/cjs/ops/ThemeOps.test.js.map +1 -0
  124. package/cjs/ops/VariablesOps.js +0 -38
  125. package/cjs/ops/VariablesOps.js.map +1 -1
  126. package/cjs/ops/utils/Console.js +29 -62
  127. package/cjs/ops/utils/Console.js.map +1 -1
  128. package/cjs/ops/utils/DataProtection.js +13 -47
  129. package/cjs/ops/utils/DataProtection.js.map +1 -1
  130. package/cjs/ops/utils/DataProtection.test.js.map +1 -1
  131. package/cjs/ops/utils/ExportImportUtils.js +36 -74
  132. package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
  133. package/cjs/ops/utils/ExportImportUtils.test.js.map +1 -1
  134. package/cjs/ops/utils/OpsUtils.js +27 -43
  135. package/cjs/ops/utils/OpsUtils.js.map +1 -1
  136. package/cjs/ops/utils/OpsUtils.test.js.map +1 -1
  137. package/cjs/ops/utils/ValidationUtils.js +0 -13
  138. package/cjs/ops/utils/ValidationUtils.js.map +1 -1
  139. package/cjs/ops/utils/ValidationUtils.test.js.map +1 -1
  140. package/cjs/ops/utils/Version.js +2 -12
  141. package/cjs/ops/utils/Version.js.map +1 -1
  142. package/cjs/ops/utils/Version.test.js.map +1 -1
  143. package/cjs/ops/utils/Wordwrap.js +1 -2
  144. package/cjs/ops/utils/Wordwrap.js.map +1 -1
  145. package/cjs/ops/utils/Wordwrap.test.js.map +1 -0
  146. package/cjs/shared/State.js +239 -0
  147. package/cjs/shared/State.js.map +1 -0
  148. package/cjs/shared/State.test.js.map +1 -0
  149. package/cjs/storage/StaticStorage.js.map +1 -1
  150. package/cjs/test/mocks/AuthenticateApi/step/default_steps.json +88 -0
  151. package/cjs/test/mocks/ForgeRockApiMockEngine.js +184 -80
  152. package/cjs/test/mocks/ForgeRockApiMockEngine.js.map +1 -1
  153. package/cjs/test/mocks/IdmConfigApi/getConfigEntity/managed.json +4420 -0
  154. package/cjs/test/mocks/OAuth2OIDCApi/accessToken/body.json +6 -0
  155. package/cjs/test/mocks/OAuth2OIDCApi/accessToken/headers.json +19 -0
  156. package/cjs/test/mocks/OAuth2OIDCApi/authorize/headers.json +38 -0
  157. package/cjs/test/mocks/Saml2Api/findSaml2Providers/https:sts.windows.net711ffa9c-5972-4713-ace3-688c9732614a_stub.json +18 -0
  158. package/cjs/test/mocks/Saml2Api/findSaml2Providers/iSPAzure_stub.json +18 -0
  159. package/cjs/test/mocks/Saml2Api/getProvider/aVNQQXp1cmU.json +1 -2
  160. package/cjs/test/mocks/Saml2Api/getProvider/dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.json +1 -3
  161. package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/U1BBenVyZQ.json +147 -0
  162. package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQQXp1cmU.json +182 -0
  163. package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQQnJvYWRjb20.json +149 -0
  164. package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQRmVkbGV0.json +141 -0
  165. package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aVNQQXp1cmU.json +1 -2
  166. package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/dm9sa2VyRGV2U1A.json +118 -0
  167. package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aHR0cHM6Ly9zYW1sLm15dGVzdHJ1bi5jb20vc3A.json +66 -0
  168. package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzExZmZhOWMtNTk3Mi00NzEzLWFjZTMtNjg4Yzk3MzI2MTRhLw.json +35 -0
  169. package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aWRw.json +83 -0
  170. package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/remote/dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.json +1 -3
  171. package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/SPAzure.xml +74 -0
  172. package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPAzure.xml +78 -0
  173. package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPBroadcom.xml +78 -0
  174. package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPFedlet.xml +78 -0
  175. package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fsaml.mytestrun.com%2Fsp.xml +13 -0
  176. package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/{dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.xml → https%3A%2F%2Fsts.windows.net%2F711ffa9c-5972-4713-ace3-688c9732614a%2F.xml} +0 -0
  177. package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/{aVNQQXp1cmU.xml → iSPAzure.xml} +0 -0
  178. package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/urn%3Afederation%3AMicrosoftOnline.xml +84 -0
  179. package/cjs/test/mocks/Saml2Ops/importSaml2Provider/SPAzure.saml.json +243 -0
  180. package/cjs/test/mocks/Saml2Ops/importSaml2Provider/iSPAzure.saml.json +242 -0
  181. package/cjs/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPAzure.saml.json +454 -0
  182. package/cjs/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPBroadcom.saml.json +586 -0
  183. package/cjs/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPFedlet.saml.json +241 -0
  184. package/cjs/test/mocks/Saml2Ops/importSaml2Provider/idp.saml.json +185 -0
  185. package/cjs/test/mocks/Saml2Ops/importSaml2Provider/saml.mytestrun.comsp.saml.json +101 -0
  186. package/cjs/test/mocks/Saml2Ops/importSaml2Provider/sts.windows.net711ffa9c-5972-4713-ace3-688c9732614a.saml.json +113 -0
  187. package/cjs/test/mocks/Saml2Ops/importSaml2Provider/urn:federation:MicrosoftOnline.saml.json +199 -0
  188. package/cjs/test/mocks/Saml2Ops/importSaml2Provider/volkerDevSP.saml.json +212 -0
  189. package/cjs/test/mocks/Saml2Ops/importSaml2Providers/allAlphaProviders.saml.json +2414 -0
  190. package/cjs/test/mocks/ScriptApi/getScript/5b29c5b7-b161-4a42-a41f-d6c85316b951.json +13 -0
  191. package/cjs/test/mocks/ScriptApi/getScript/85523e71-2d77-4577-b078-6f9674cc54e2.json +13 -0
  192. package/cjs/test/mocks/ScriptApi/getScript/90c4eca5-05f0-42f5-b9bf-88b693eabbbd.json +13 -0
  193. package/cjs/test/mocks/ServerInfoApi/getServerInfo/info.json +25 -0
  194. package/cjs/test/mocks/ServerInfoApi/getServerVersionInfo/version.json +8 -0
  195. package/cjs/utils/AutoSetupPolly.js +79 -0
  196. package/cjs/utils/AutoSetupPolly.js.map +1 -0
  197. package/cjs/utils/SetupJest.js +6 -0
  198. package/cjs/utils/SetupJest.js.map +1 -0
  199. package/cjs/{test/mocks → utils}/snapshotResolve.js +10 -12
  200. package/cjs/utils/snapshotResolve.js.map +1 -0
  201. package/esm/api/AgentApi.mjs +19 -21
  202. package/esm/api/AgentApi.test.mjs +6 -15
  203. package/esm/api/ApiTypes.mjs +0 -5
  204. package/esm/api/AuthenticateApi.mjs +7 -10
  205. package/esm/api/AuthenticateApi.test.mjs +39 -0
  206. package/esm/api/BaseApi.mjs +96 -81
  207. package/esm/api/CirclesOfTrustApi.mjs +9 -12
  208. package/esm/api/IdmConfigApi.mjs +11 -12
  209. package/esm/api/LogApi.mjs +6 -10
  210. package/esm/api/ManagedObjectApi.mjs +23 -8
  211. package/esm/api/NodeApi.mjs +13 -15
  212. package/esm/api/NodeApi.test.mjs +13 -17
  213. package/esm/api/OAuth2ClientApi.mjs +7 -9
  214. package/esm/api/OAuth2OIDCApi.mjs +15 -9
  215. package/esm/api/OAuth2OIDCApi.test.mjs +53 -0
  216. package/esm/api/OAuth2ProviderApi.mjs +3 -5
  217. package/esm/api/RealmApi.mjs +10 -13
  218. package/esm/api/Saml2Api.mjs +31 -61
  219. package/esm/api/ScriptApi.mjs +9 -11
  220. package/esm/api/SecretsApi.mjs +21 -24
  221. package/esm/api/SecretsApi.test.mjs +9 -31
  222. package/esm/api/ServerInfoApi.mjs +5 -9
  223. package/esm/api/ServiceApi.mjs +53 -26
  224. package/esm/api/SocialIdentityProvidersApi.mjs +11 -13
  225. package/esm/api/StartupApi.mjs +5 -10
  226. package/esm/api/StartupApi.test.mjs +4 -7
  227. package/esm/api/TreeApi.mjs +9 -11
  228. package/esm/api/TreeApi.test.mjs +24 -61
  229. package/esm/api/VariablesApi.mjs +11 -13
  230. package/esm/api/VariablesApi.test.mjs +80 -222
  231. package/esm/api/utils/ApiUtils.mjs +45 -48
  232. package/esm/api/utils/ApiUtils.test.mjs +33 -32
  233. package/esm/api/utils/Base64.mjs +6 -9
  234. package/esm/ext/axios-curlirize/curlirize.mjs +2 -7
  235. package/esm/ext/axios-curlirize/lib/CurlHelper.mjs +7 -20
  236. package/esm/index.mjs +23 -13
  237. package/esm/ops/AdminOps.mjs +33 -119
  238. package/esm/ops/AgentOps.mjs +38 -81
  239. package/esm/ops/AgentOps.test.mjs +5 -45
  240. package/esm/ops/AuthenticateOps.mjs +241 -175
  241. package/esm/ops/AuthenticateOps.test.mjs +7 -9
  242. package/esm/ops/CirclesOfTrustOps.mjs +24 -61
  243. package/esm/ops/ConnectionProfileOps.mjs +192 -82
  244. package/esm/ops/ConnectionProfileOps.test.mjs +19 -19
  245. package/esm/ops/EmailTemplateOps.mjs +18 -276
  246. package/esm/ops/EmailTemplateOps.test.mjs +19 -44
  247. package/esm/ops/IdmOps.mjs +30 -327
  248. package/esm/ops/IdmOps.test.mjs +47 -54
  249. package/esm/ops/IdpOps.mjs +21 -59
  250. package/esm/ops/IdpOps.test.mjs +5 -5
  251. package/esm/ops/JoseOps.mjs +41 -0
  252. package/esm/ops/JoseOps.test.mjs +137 -0
  253. package/esm/ops/JourneyOps.mjs +147 -290
  254. package/esm/ops/JourneyOps.test.mjs +30 -28
  255. package/esm/ops/LogOps.mjs +15 -25
  256. package/esm/ops/ManagedObjectOps.mjs +6 -6
  257. package/esm/ops/NodeOps.mjs +9 -47
  258. package/esm/ops/OAuth2ClientOps.mjs +13 -19
  259. package/esm/ops/OpsTypes.mjs +1 -3
  260. package/esm/ops/OrganizationOps.mjs +7 -14
  261. package/esm/ops/RealmOps.mjs +4 -7
  262. package/esm/ops/Saml2Ops.mjs +199 -587
  263. package/esm/ops/Saml2Ops.test.mjs +303 -84
  264. package/esm/ops/ScriptOps.mjs +31 -47
  265. package/esm/ops/SecretsOps.mjs +15 -31
  266. package/esm/ops/ServiceAccountOps.mjs +41 -0
  267. package/esm/ops/ServiceAccountOps.test.mjs +51 -0
  268. package/esm/ops/ServiceOps.mjs +66 -83
  269. package/esm/ops/StartupOps.mjs +4 -13
  270. package/esm/ops/ThemeOps.mjs +189 -298
  271. package/esm/{api/ThemeApi.test.mjs → ops/ThemeOps.test.mjs} +91 -96
  272. package/esm/ops/VariablesOps.mjs +9 -18
  273. package/esm/ops/utils/Console.mjs +28 -46
  274. package/esm/ops/utils/DataProtection.mjs +15 -28
  275. package/esm/ops/utils/DataProtection.test.mjs +8 -8
  276. package/esm/ops/utils/ExportImportUtils.mjs +34 -43
  277. package/esm/ops/utils/ExportImportUtils.test.mjs +20 -18
  278. package/esm/ops/utils/OpsUtils.mjs +27 -21
  279. package/esm/ops/utils/OpsUtils.test.mjs +155 -27
  280. package/esm/ops/utils/ValidationUtils.mjs +0 -9
  281. package/esm/ops/utils/Version.mjs +2 -3
  282. package/esm/ops/utils/Version.test.mjs +0 -2
  283. package/esm/ops/utils/Wordwrap.mjs +1 -1
  284. package/esm/ops/utils/Wordwrap.test.mjs +19 -0
  285. package/esm/shared/State.mjs +164 -0
  286. package/esm/shared/State.test.mjs +249 -0
  287. package/esm/test/mocks/AuthenticateApi/step/default_steps.json +88 -0
  288. package/esm/test/mocks/ForgeRockApiMockEngine.mjs +169 -33
  289. package/esm/test/mocks/IdmConfigApi/getConfigEntity/managed.json +4420 -0
  290. package/esm/test/mocks/OAuth2OIDCApi/accessToken/body.json +6 -0
  291. package/esm/test/mocks/OAuth2OIDCApi/accessToken/headers.json +19 -0
  292. package/esm/test/mocks/OAuth2OIDCApi/authorize/headers.json +38 -0
  293. package/esm/test/mocks/Saml2Api/findSaml2Providers/https:sts.windows.net711ffa9c-5972-4713-ace3-688c9732614a_stub.json +18 -0
  294. package/esm/test/mocks/Saml2Api/findSaml2Providers/iSPAzure_stub.json +18 -0
  295. package/esm/test/mocks/Saml2Api/getProvider/aVNQQXp1cmU.json +1 -2
  296. package/esm/test/mocks/Saml2Api/getProvider/dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.json +1 -3
  297. package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/U1BBenVyZQ.json +147 -0
  298. package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQQXp1cmU.json +182 -0
  299. package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQQnJvYWRjb20.json +149 -0
  300. package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQRmVkbGV0.json +141 -0
  301. package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aVNQQXp1cmU.json +1 -2
  302. package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/dm9sa2VyRGV2U1A.json +118 -0
  303. package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aHR0cHM6Ly9zYW1sLm15dGVzdHJ1bi5jb20vc3A.json +66 -0
  304. package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzExZmZhOWMtNTk3Mi00NzEzLWFjZTMtNjg4Yzk3MzI2MTRhLw.json +35 -0
  305. package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aWRw.json +83 -0
  306. package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/remote/dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.json +1 -3
  307. package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/SPAzure.xml +74 -0
  308. package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPAzure.xml +78 -0
  309. package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPBroadcom.xml +78 -0
  310. package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPFedlet.xml +78 -0
  311. package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fsaml.mytestrun.com%2Fsp.xml +13 -0
  312. package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/{dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.xml → https%3A%2F%2Fsts.windows.net%2F711ffa9c-5972-4713-ace3-688c9732614a%2F.xml} +0 -0
  313. package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/{aVNQQXp1cmU.xml → iSPAzure.xml} +0 -0
  314. package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/urn%3Afederation%3AMicrosoftOnline.xml +84 -0
  315. package/esm/test/mocks/Saml2Ops/importSaml2Provider/SPAzure.saml.json +243 -0
  316. package/esm/test/mocks/Saml2Ops/importSaml2Provider/iSPAzure.saml.json +242 -0
  317. package/esm/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPAzure.saml.json +454 -0
  318. package/esm/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPBroadcom.saml.json +586 -0
  319. package/esm/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPFedlet.saml.json +241 -0
  320. package/esm/test/mocks/Saml2Ops/importSaml2Provider/idp.saml.json +185 -0
  321. package/esm/test/mocks/Saml2Ops/importSaml2Provider/saml.mytestrun.comsp.saml.json +101 -0
  322. package/esm/test/mocks/Saml2Ops/importSaml2Provider/sts.windows.net711ffa9c-5972-4713-ace3-688c9732614a.saml.json +113 -0
  323. package/esm/test/mocks/Saml2Ops/importSaml2Provider/urn:federation:MicrosoftOnline.saml.json +199 -0
  324. package/esm/test/mocks/Saml2Ops/importSaml2Provider/volkerDevSP.saml.json +212 -0
  325. package/esm/test/mocks/Saml2Ops/importSaml2Providers/allAlphaProviders.saml.json +2414 -0
  326. package/esm/test/mocks/ScriptApi/getScript/5b29c5b7-b161-4a42-a41f-d6c85316b951.json +13 -0
  327. package/esm/test/mocks/ScriptApi/getScript/85523e71-2d77-4577-b078-6f9674cc54e2.json +13 -0
  328. package/esm/test/mocks/ScriptApi/getScript/90c4eca5-05f0-42f5-b9bf-88b693eabbbd.json +13 -0
  329. package/esm/test/mocks/ServerInfoApi/getServerInfo/info.json +25 -0
  330. package/esm/test/mocks/ServerInfoApi/getServerVersionInfo/version.json +8 -0
  331. package/esm/utils/AutoSetupPolly.mjs +72 -0
  332. package/esm/utils/SetupJest.mjs +3 -0
  333. package/esm/{test/mocks → utils}/snapshotResolve.mjs +10 -12
  334. package/package.json +38 -27
  335. package/types/api/AgentApi.d.ts.map +1 -1
  336. package/types/api/ApiTypes.d.ts +19 -15
  337. package/types/api/ApiTypes.d.ts.map +1 -1
  338. package/types/api/AuthenticateApi.d.ts +1 -1
  339. package/types/api/AuthenticateApi.d.ts.map +1 -1
  340. package/types/api/BaseApi.d.ts +2 -0
  341. package/types/api/BaseApi.d.ts.map +1 -1
  342. package/types/api/CirclesOfTrustApi.d.ts.map +1 -1
  343. package/types/api/IdmConfigApi.d.ts.map +1 -1
  344. package/types/api/LogApi.d.ts.map +1 -1
  345. package/types/api/ManagedObjectApi.d.ts +9 -1
  346. package/types/api/ManagedObjectApi.d.ts.map +1 -1
  347. package/types/api/NodeApi.d.ts.map +1 -1
  348. package/types/api/OAuth2ClientApi.d.ts.map +1 -1
  349. package/types/api/OAuth2OIDCApi.d.ts +4 -2
  350. package/types/api/OAuth2OIDCApi.d.ts.map +1 -1
  351. package/types/api/OAuth2ProviderApi.d.ts.map +1 -1
  352. package/types/api/RealmApi.d.ts.map +1 -1
  353. package/types/api/Saml2Api.d.ts +7 -13
  354. package/types/api/Saml2Api.d.ts.map +1 -1
  355. package/types/api/ScriptApi.d.ts.map +1 -1
  356. package/types/api/SecretsApi.d.ts.map +1 -1
  357. package/types/api/ServerInfoApi.d.ts.map +1 -1
  358. package/types/api/ServiceApi.d.ts +14 -7
  359. package/types/api/ServiceApi.d.ts.map +1 -1
  360. package/types/api/SocialIdentityProvidersApi.d.ts.map +1 -1
  361. package/types/api/StartupApi.d.ts.map +1 -1
  362. package/types/api/TreeApi.d.ts.map +1 -1
  363. package/types/api/VariablesApi.d.ts.map +1 -1
  364. package/types/api/utils/ApiUtils.d.ts +1 -0
  365. package/types/api/utils/ApiUtils.d.ts.map +1 -1
  366. package/types/api/utils/Base64.d.ts +1 -0
  367. package/types/api/utils/Base64.d.ts.map +1 -1
  368. package/types/index.d.ts +11 -5
  369. package/types/index.d.ts.map +1 -1
  370. package/types/ops/AgentOps.d.ts +1 -1
  371. package/types/ops/AgentOps.d.ts.map +1 -1
  372. package/types/ops/AuthenticateOps.d.ts +10 -2
  373. package/types/ops/AuthenticateOps.d.ts.map +1 -1
  374. package/types/ops/ConnectionProfileOps.d.ts +49 -21
  375. package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
  376. package/types/ops/EmailTemplateOps.d.ts +14 -33
  377. package/types/ops/EmailTemplateOps.d.ts.map +1 -1
  378. package/types/ops/IdmOps.d.ts +29 -37
  379. package/types/ops/IdmOps.d.ts.map +1 -1
  380. package/types/ops/JoseOps.d.ts +33 -0
  381. package/types/ops/JoseOps.d.ts.map +1 -0
  382. package/types/ops/JourneyOps.d.ts.map +1 -1
  383. package/types/ops/LogOps.d.ts.map +1 -1
  384. package/types/ops/NodeOps.d.ts.map +1 -1
  385. package/types/ops/OAuth2ClientOps.d.ts.map +1 -1
  386. package/types/ops/OpsTypes.d.ts +17 -1
  387. package/types/ops/OpsTypes.d.ts.map +1 -1
  388. package/types/ops/OrganizationOps.d.ts.map +1 -1
  389. package/types/ops/Saml2Ops.d.ts +52 -55
  390. package/types/ops/Saml2Ops.d.ts.map +1 -1
  391. package/types/ops/ScriptOps.d.ts.map +1 -1
  392. package/types/ops/ServiceAccountOps.d.ts +20 -0
  393. package/types/ops/ServiceAccountOps.d.ts.map +1 -0
  394. package/types/ops/ServiceOps.d.ts +18 -10
  395. package/types/ops/ServiceOps.d.ts.map +1 -1
  396. package/types/ops/ThemeOps.d.ts +35 -50
  397. package/types/ops/ThemeOps.d.ts.map +1 -1
  398. package/types/ops/utils/Console.d.ts +1 -1
  399. package/types/ops/utils/Console.d.ts.map +1 -1
  400. package/types/ops/utils/DataProtection.d.ts.map +1 -1
  401. package/types/ops/utils/ExportImportUtils.d.ts +5 -2
  402. package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
  403. package/types/ops/utils/OpsUtils.d.ts +6 -0
  404. package/types/ops/utils/OpsUtils.d.ts.map +1 -1
  405. package/types/ops/utils/Wordwrap.d.ts.map +1 -1
  406. package/types/shared/State.d.ts +223 -0
  407. package/types/shared/State.d.ts.map +1 -0
  408. package/types/test/mocks/ForgeRockApiMockEngine.d.ts +21 -1
  409. package/types/test/mocks/ForgeRockApiMockEngine.d.ts.map +1 -1
  410. package/types/utils/AutoSetupPolly.d.ts +1 -0
  411. package/types/utils/AutoSetupPolly.d.ts.map +1 -0
  412. package/types/utils/SetupJest.d.ts +1 -0
  413. package/types/utils/SetupJest.d.ts.map +1 -0
  414. package/types/utils/snapshotResolve.d.ts +1 -0
  415. package/types/utils/snapshotResolve.d.ts.map +1 -0
  416. package/cjs/api/EmailTemplateApi.js +0 -73
  417. package/cjs/api/EmailTemplateApi.js.map +0 -1
  418. package/cjs/api/ThemeApi.js +0 -367
  419. package/cjs/api/ThemeApi.js.map +0 -1
  420. package/cjs/api/ThemeApi.test.js.map +0 -1
  421. package/cjs/storage/SessionStorage.js +0 -91
  422. package/cjs/storage/SessionStorage.js.map +0 -1
  423. package/cjs/test/mocks/snapshotResolve.js.map +0 -1
  424. package/esm/api/EmailTemplateApi.mjs +0 -34
  425. package/esm/api/ThemeApi.mjs +0 -271
  426. package/esm/storage/SessionStorage.mjs +0 -79
  427. package/types/api/EmailTemplateApi.d.ts +0 -22
  428. package/types/api/EmailTemplateApi.d.ts.map +0 -1
  429. package/types/api/ThemeApi.d.ts +0 -56
  430. package/types/api/ThemeApi.d.ts.map +0 -1
  431. package/types/storage/SessionStorage.d.ts +0 -71
  432. package/types/storage/SessionStorage.d.ts.map +0 -1
  433. package/types/test/mocks/snapshotResolve.d.ts +0 -1
  434. package/types/test/mocks/snapshotResolve.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"IdpOps.js","names":["getFileDataTemplate","meta","script","idp","listSocialProviders","providers","getSocialIdentityProviders","result","sort","a","b","_id","localeCompare","forEach","socialIdentityProvider","printMessage","err","message","getSocialProvider","providerId","then","response","foundProviders","filter","provider","length","Error","exportSocialProviderToFile","file","fileName","getTypedFilename","createProgressIndicator","idpData","updateProgressIndicator","fileData","transform","scriptData","getScript","convertBase64TextToArray","saveJsonToFile","stopProgressIndicator","exportSocialProvidersToFile","getRealmString","allIdpsData","exportSocialProvidersToFiles","importSocialProviderFromFile","fs","readFile","data","JSON","parse","validateImport","found","idpId","hasOwnProperty","call","scriptId","convertTextArrayToBase64","createOrUpdateScript","putProviderByTypeAndId","_type","catch","importProviderErr","brightCyan","importFirstSocialProviderFromFile","importSocialProvidersFromFile","Object","keys","name","importSocialProvidersFromFiles","names","readdirSync","jsonFiles","toLowerCase","endsWith","total","readFileSync","count"],"sources":["ops/IdpOps.ts"],"sourcesContent":["import fs from 'fs';\nimport {\n getSocialIdentityProviders,\n putProviderByTypeAndId,\n} from '../api/SocialIdentityProvidersApi';\nimport { getScript } from '../api/ScriptApi';\nimport { createOrUpdateScript } from './ScriptOps';\nimport {\n convertBase64TextToArray,\n convertTextArrayToBase64,\n getRealmString,\n getTypedFilename,\n saveJsonToFile,\n validateImport,\n} from './utils/ExportImportUtils';\nimport {\n printMessage,\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from './utils/Console';\n\n// use a function vs a template variable to avoid problems in loops\nfunction getFileDataTemplate() {\n return {\n meta: {},\n script: {},\n idp: {},\n };\n}\n\n/**\n * List providers\n */\nexport async function listSocialProviders() {\n try {\n const providers = await getSocialIdentityProviders();\n providers.result.sort((a, b) => a._id.localeCompare(b._id));\n providers.result.forEach((socialIdentityProvider) => {\n printMessage(`${socialIdentityProvider._id}`, 'data');\n });\n } catch (err) {\n printMessage(`listSocialProviders ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n}\n\n/**\n * Get social identity provider by id\n * @param {String} providerId social identity provider id/name\n * @returns {Promise} a promise that resolves a social identity provider object\n */\nexport async function getSocialProvider(providerId) {\n return getSocialIdentityProviders().then((response) => {\n const foundProviders = response.result.filter(\n (provider) => provider._id === providerId\n );\n switch (foundProviders.length) {\n case 1:\n return foundProviders[0];\n case 0:\n throw new Error(`Provider '${providerId}' not found`);\n default:\n throw new Error(\n `${foundProviders.length} providers '${providerId}' found`\n );\n }\n });\n}\n\n/**\n * Export provider by id\n * @param {String} providerId provider id/name\n * @param {String} file optional export file name\n */\nexport async function exportSocialProviderToFile(providerId, file = '') {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(providerId, 'idp');\n }\n createProgressIndicator(1, `Exporting ${providerId}`);\n try {\n const idpData = await getSocialProvider(providerId);\n updateProgressIndicator(`Writing file ${fileName}`);\n const fileData = getFileDataTemplate();\n fileData.idp[idpData._id] = idpData;\n if (idpData.transform) {\n const scriptData = await getScript(idpData.transform);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[idpData.transform] = scriptData;\n }\n saveJsonToFile(fileData, fileName);\n stopProgressIndicator(\n `Exported ${providerId['brightCyan']} to ${fileName['brightCyan']}.`\n );\n } catch (err) {\n stopProgressIndicator(`${err}`);\n printMessage(`${err}`, 'error');\n }\n}\n\n/**\n * Export all providers\n * @param {String} file optional export file name\n */\nexport async function exportSocialProvidersToFile(file) {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(`all${getRealmString()}Providers`, 'idp');\n }\n const fileData = getFileDataTemplate();\n const allIdpsData = (await getSocialIdentityProviders()).result;\n createProgressIndicator(allIdpsData.length, 'Exporting providers');\n for (const idpData of allIdpsData) {\n updateProgressIndicator(`Exporting provider ${idpData._id}`);\n fileData.idp[idpData._id] = idpData;\n if (idpData.transform) {\n // eslint-disable-next-line no-await-in-loop\n const scriptData = await getScript(idpData.transform);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[idpData.transform] = scriptData;\n }\n }\n saveJsonToFile(fileData, fileName);\n stopProgressIndicator(\n `${allIdpsData.length} providers exported to ${fileName}.`\n );\n}\n\n/**\n * Export all providers to individual files\n */\nexport async function exportSocialProvidersToFiles() {\n const allIdpsData = await (await getSocialIdentityProviders()).result;\n // printMessage(allIdpsData, 'data');\n createProgressIndicator(allIdpsData.length, 'Exporting providers');\n for (const idpData of allIdpsData) {\n updateProgressIndicator(`Writing provider ${idpData._id}`);\n const fileName = getTypedFilename(idpData._id, 'idp');\n const fileData = getFileDataTemplate();\n fileData.idp[idpData._id] = idpData;\n if (idpData.transform) {\n // eslint-disable-next-line no-await-in-loop\n const scriptData = await getScript(idpData.transform);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[idpData.transform] = scriptData;\n }\n saveJsonToFile(fileData, fileName);\n }\n stopProgressIndicator(`${allIdpsData.length} providers exported.`);\n}\n\n/**\n * Import provider by id/name\n * @param {String} providerId provider id/name\n * @param {String} file import file name\n */\nexport async function importSocialProviderFromFile(providerId, file) {\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n createProgressIndicator(1, 'Importing provider...');\n let found = false;\n for (const idpId in fileData.idp) {\n if ({}.hasOwnProperty.call(fileData.idp, idpId)) {\n if (idpId === providerId) {\n found = true;\n updateProgressIndicator(`Importing ${fileData.idp[idpId]._id}`);\n const scriptId = fileData.idp[idpId].transform;\n const scriptData = fileData.script[scriptId];\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n // eslint-disable-next-line no-await-in-loop\n await createOrUpdateScript(\n fileData.idp[idpId].transform,\n fileData.script[fileData.idp[idpId].transform]\n );\n }\n putProviderByTypeAndId(\n fileData.idp[idpId]._type._id,\n idpId,\n fileData.idp[idpId]\n )\n .then(() => {\n stopProgressIndicator(\n `Successfully imported provider ${providerId}.`\n );\n })\n .catch((importProviderErr) => {\n stopProgressIndicator(\n `Error importing provider ${fileData.idp[idpId]._id}`\n );\n printMessage(\n `\\nError importing provider ${providerId}`,\n 'error'\n );\n printMessage(importProviderErr.response.data, 'error');\n });\n break;\n }\n }\n }\n if (!found) {\n stopProgressIndicator(\n `Provider ${providerId.brightCyan} not found in ${file.brightCyan}!`\n );\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import first provider from file\n * @param {String} file import file name\n */\nexport async function importFirstSocialProviderFromFile(file) {\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n createProgressIndicator(1, 'Importing provider...');\n for (const idpId in fileData.idp) {\n if ({}.hasOwnProperty.call(fileData.idp, idpId)) {\n updateProgressIndicator(`Importing ${fileData.idp[idpId]._id}`);\n const scriptId = fileData.idp[idpId].transform;\n const scriptData = fileData.script[scriptId];\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n // eslint-disable-next-line no-await-in-loop\n await createOrUpdateScript(\n fileData.idp[idpId].transform,\n fileData.script[fileData.idp[idpId].transform]\n );\n }\n putProviderByTypeAndId(\n fileData.idp[idpId]._type._id,\n idpId,\n fileData.idp[idpId]\n ).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing provider ${fileData.idp[idpId]._id}`\n );\n printMessage(\n `Error importing provider ${fileData.idp[idpId]._id}`,\n 'error'\n );\n } else {\n stopProgressIndicator(\n `Successfully imported provider ${fileData.idp[idpId]._id}.`\n );\n }\n });\n break;\n }\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import all providers from file\n * @param {String} file import file name\n */\nexport async function importSocialProvidersFromFile(file) {\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n createProgressIndicator(\n Object.keys(fileData.idp).length,\n 'Importing providers...'\n );\n for (const idpId in fileData.idp) {\n if ({}.hasOwnProperty.call(fileData.idp, idpId)) {\n const scriptId = fileData.idp[idpId].transform;\n const scriptData = fileData.script[scriptId];\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n // eslint-disable-next-line no-await-in-loop\n await createOrUpdateScript(\n fileData.idp[idpId].transform,\n fileData.script[fileData.idp[idpId].transform]\n );\n }\n // eslint-disable-next-line no-await-in-loop\n const result = await putProviderByTypeAndId(\n fileData.idp[idpId]._type._id,\n idpId,\n fileData.idp[idpId]\n );\n if (!result) {\n updateProgressIndicator(\n `Successfully imported ${fileData.idp[idpId].name}`\n );\n }\n }\n }\n stopProgressIndicator(`Providers imported.`);\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import providers from *.idp.json files in current working directory\n */\nexport async function importSocialProvidersFromFiles() {\n const names = fs.readdirSync('.');\n const jsonFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.idp.json')\n );\n\n createProgressIndicator(jsonFiles.length, 'Importing providers...');\n let total = 0;\n for (const file of jsonFiles) {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n const count = Object.keys(fileData.idp).length;\n total += count;\n for (const idpId in fileData.idp) {\n if ({}.hasOwnProperty.call(fileData.idp, idpId)) {\n // eslint-disable-next-line no-await-in-loop\n const result = await putProviderByTypeAndId(\n fileData.idp[idpId]._type._id,\n idpId,\n fileData.idp[idpId]\n );\n if (result == null) {\n printMessage(\n `Error importing ${count} providers from ${file}`,\n 'error'\n );\n }\n }\n }\n updateProgressIndicator(`Imported ${count} provider(s) from ${file}`);\n } else {\n printMessage(`Validation of ${file} failed!`, 'error');\n }\n }\n stopProgressIndicator(\n `Finished importing ${total} provider(s) from ${jsonFiles.length} file(s).`\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"IdpOps.js","names":["getFileDataTemplate","meta","script","idp","listSocialProviders","providers","getSocialIdentityProviders","result","sort","a","b","_id","localeCompare","forEach","socialIdentityProvider","printMessage","err","message","getSocialProvider","providerId","then","response","foundProviders","filter","provider","length","Error","exportSocialProviderToFile","file","fileName","getTypedFilename","createProgressIndicator","idpData","updateProgressIndicator","fileData","transform","scriptData","getScript","convertBase64TextToArray","saveJsonToFile","stopProgressIndicator","exportSocialProvidersToFile","getRealmString","allIdpsData","exportSocialProvidersToFiles","importSocialProviderFromFile","fs","readFile","data","JSON","parse","validateImport","found","idpId","hasOwnProperty","call","scriptId","convertTextArrayToBase64","createOrUpdateScript","putProviderByTypeAndId","_type","catch","importProviderErr","brightCyan","importFirstSocialProviderFromFile","importSocialProvidersFromFile","Object","keys","name","importSocialProvidersFromFiles","names","readdirSync","jsonFiles","toLowerCase","endsWith","total","readFileSync","count"],"sources":["ops/IdpOps.ts"],"sourcesContent":["import fs from 'fs';\nimport {\n getSocialIdentityProviders,\n putProviderByTypeAndId,\n} from '../api/SocialIdentityProvidersApi';\nimport { getScript } from '../api/ScriptApi';\nimport { createOrUpdateScript } from './ScriptOps';\nimport {\n convertBase64TextToArray,\n convertTextArrayToBase64,\n getRealmString,\n getTypedFilename,\n saveJsonToFile,\n validateImport,\n} from './utils/ExportImportUtils';\nimport {\n printMessage,\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from './utils/Console';\n\n// use a function vs a template variable to avoid problems in loops\nfunction getFileDataTemplate() {\n return {\n meta: {},\n script: {},\n idp: {},\n };\n}\n\n/**\n * List providers\n */\nexport async function listSocialProviders() {\n try {\n const providers = await getSocialIdentityProviders();\n providers.result.sort((a, b) => a._id.localeCompare(b._id));\n providers.result.forEach((socialIdentityProvider) => {\n printMessage(`${socialIdentityProvider._id}`, 'data');\n });\n } catch (err) {\n printMessage(`listSocialProviders ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n}\n\n/**\n * Get social identity provider by id\n * @param {String} providerId social identity provider id/name\n * @returns {Promise} a promise that resolves a social identity provider object\n */\nexport async function getSocialProvider(providerId) {\n return getSocialIdentityProviders().then((response) => {\n const foundProviders = response.result.filter(\n (provider) => provider._id === providerId\n );\n switch (foundProviders.length) {\n case 1:\n return foundProviders[0];\n case 0:\n throw new Error(`Provider '${providerId}' not found`);\n default:\n throw new Error(\n `${foundProviders.length} providers '${providerId}' found`\n );\n }\n });\n}\n\n/**\n * Export provider by id\n * @param {String} providerId provider id/name\n * @param {String} file optional export file name\n */\nexport async function exportSocialProviderToFile(providerId, file = '') {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(providerId, 'idp');\n }\n createProgressIndicator(1, `Exporting ${providerId}`);\n try {\n const idpData = await getSocialProvider(providerId);\n updateProgressIndicator(`Writing file ${fileName}`);\n const fileData = getFileDataTemplate();\n fileData.idp[idpData._id] = idpData;\n if (idpData.transform) {\n const scriptData = await getScript(idpData.transform);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[idpData.transform] = scriptData;\n }\n saveJsonToFile(fileData, fileName);\n stopProgressIndicator(\n `Exported ${providerId['brightCyan']} to ${fileName['brightCyan']}.`\n );\n } catch (err) {\n stopProgressIndicator(`${err}`);\n printMessage(`${err}`, 'error');\n }\n}\n\n/**\n * Export all providers\n * @param {String} file optional export file name\n */\nexport async function exportSocialProvidersToFile(file) {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(`all${getRealmString()}Providers`, 'idp');\n }\n const fileData = getFileDataTemplate();\n const allIdpsData = (await getSocialIdentityProviders()).result;\n createProgressIndicator(allIdpsData.length, 'Exporting providers');\n for (const idpData of allIdpsData) {\n updateProgressIndicator(`Exporting provider ${idpData._id}`);\n fileData.idp[idpData._id] = idpData;\n if (idpData.transform) {\n // eslint-disable-next-line no-await-in-loop\n const scriptData = await getScript(idpData.transform);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[idpData.transform] = scriptData;\n }\n }\n saveJsonToFile(fileData, fileName);\n stopProgressIndicator(\n `${allIdpsData.length} providers exported to ${fileName}.`\n );\n}\n\n/**\n * Export all providers to individual files\n */\nexport async function exportSocialProvidersToFiles() {\n const allIdpsData = await (await getSocialIdentityProviders()).result;\n // printMessage(allIdpsData, 'data');\n createProgressIndicator(allIdpsData.length, 'Exporting providers');\n for (const idpData of allIdpsData) {\n updateProgressIndicator(`Writing provider ${idpData._id}`);\n const fileName = getTypedFilename(idpData._id, 'idp');\n const fileData = getFileDataTemplate();\n fileData.idp[idpData._id] = idpData;\n if (idpData.transform) {\n // eslint-disable-next-line no-await-in-loop\n const scriptData = await getScript(idpData.transform);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[idpData.transform] = scriptData;\n }\n saveJsonToFile(fileData, fileName);\n }\n stopProgressIndicator(`${allIdpsData.length} providers exported.`);\n}\n\n/**\n * Import provider by id/name\n * @param {String} providerId provider id/name\n * @param {String} file import file name\n */\nexport async function importSocialProviderFromFile(providerId, file) {\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n createProgressIndicator(1, 'Importing provider...');\n let found = false;\n for (const idpId in fileData.idp) {\n if ({}.hasOwnProperty.call(fileData.idp, idpId)) {\n if (idpId === providerId) {\n found = true;\n updateProgressIndicator(`Importing ${fileData.idp[idpId]._id}`);\n const scriptId = fileData.idp[idpId].transform;\n const scriptData = fileData.script[scriptId];\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n // eslint-disable-next-line no-await-in-loop\n await createOrUpdateScript(\n fileData.idp[idpId].transform,\n fileData.script[fileData.idp[idpId].transform]\n );\n }\n putProviderByTypeAndId(\n fileData.idp[idpId]._type._id,\n idpId,\n fileData.idp[idpId]\n )\n .then(() => {\n stopProgressIndicator(\n `Successfully imported provider ${providerId}.`\n );\n })\n .catch((importProviderErr) => {\n stopProgressIndicator(\n `Error importing provider ${fileData.idp[idpId]._id}`\n );\n printMessage(\n `\\nError importing provider ${providerId}`,\n 'error'\n );\n printMessage(importProviderErr.response.data, 'error');\n });\n break;\n }\n }\n }\n if (!found) {\n stopProgressIndicator(\n `Provider ${providerId.brightCyan} not found in ${file.brightCyan}!`\n );\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import first provider from file\n * @param {String} file import file name\n */\nexport async function importFirstSocialProviderFromFile(file) {\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n createProgressIndicator(1, 'Importing provider...');\n for (const idpId in fileData.idp) {\n if ({}.hasOwnProperty.call(fileData.idp, idpId)) {\n updateProgressIndicator(`Importing ${fileData.idp[idpId]._id}`);\n const scriptId = fileData.idp[idpId].transform;\n const scriptData = fileData.script[scriptId];\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n // eslint-disable-next-line no-await-in-loop\n await createOrUpdateScript(\n fileData.idp[idpId].transform,\n fileData.script[fileData.idp[idpId].transform]\n );\n }\n putProviderByTypeAndId(\n fileData.idp[idpId]._type._id,\n idpId,\n fileData.idp[idpId]\n ).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing provider ${fileData.idp[idpId]._id}`\n );\n printMessage(\n `Error importing provider ${fileData.idp[idpId]._id}`,\n 'error'\n );\n } else {\n stopProgressIndicator(\n `Successfully imported provider ${fileData.idp[idpId]._id}.`\n );\n }\n });\n break;\n }\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import all providers from file\n * @param {String} file import file name\n */\nexport async function importSocialProvidersFromFile(file) {\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n createProgressIndicator(\n Object.keys(fileData.idp).length,\n 'Importing providers...'\n );\n for (const idpId in fileData.idp) {\n if ({}.hasOwnProperty.call(fileData.idp, idpId)) {\n const scriptId = fileData.idp[idpId].transform;\n const scriptData = fileData.script[scriptId];\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n // eslint-disable-next-line no-await-in-loop\n await createOrUpdateScript(\n fileData.idp[idpId].transform,\n fileData.script[fileData.idp[idpId].transform]\n );\n }\n // eslint-disable-next-line no-await-in-loop\n const result = await putProviderByTypeAndId(\n fileData.idp[idpId]._type._id,\n idpId,\n fileData.idp[idpId]\n );\n if (!result) {\n updateProgressIndicator(\n `Successfully imported ${fileData.idp[idpId].name}`\n );\n }\n }\n }\n stopProgressIndicator(`Providers imported.`);\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import providers from *.idp.json files in current working directory\n */\nexport async function importSocialProvidersFromFiles() {\n const names = fs.readdirSync('.');\n const jsonFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.idp.json')\n );\n\n createProgressIndicator(jsonFiles.length, 'Importing providers...');\n let total = 0;\n for (const file of jsonFiles) {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n const count = Object.keys(fileData.idp).length;\n total += count;\n for (const idpId in fileData.idp) {\n if ({}.hasOwnProperty.call(fileData.idp, idpId)) {\n // eslint-disable-next-line no-await-in-loop\n const result = await putProviderByTypeAndId(\n fileData.idp[idpId]._type._id,\n idpId,\n fileData.idp[idpId]\n );\n if (result == null) {\n printMessage(\n `Error importing ${count} providers from ${file}`,\n 'error'\n );\n }\n }\n }\n updateProgressIndicator(`Imported ${count} provider(s) from ${file}`);\n } else {\n printMessage(`Validation of ${file} failed!`, 'error');\n }\n }\n stopProgressIndicator(\n `Finished importing ${total} provider(s) from ${jsonFiles.length} file(s).`\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AAIA;AACA;AACA;AAQA;AAKyB;AAAA;AAAA;AAEzB;AACA,SAASA,mBAAmB,GAAG;EAC7B,OAAO;IACLC,IAAI,EAAE,CAAC,CAAC;IACRC,MAAM,EAAE,CAAC,CAAC;IACVC,GAAG,EAAE,CAAC;EACR,CAAC;AACH;;AAEA;AACA;AACA;AAFA,SAGsBC,mBAAmB;EAAA;AAAA;AAazC;AACA;AACA;AACA;AACA;AAJA;EAAA,yCAbO,aAAqC;IAC1C,IAAI;MACF,IAAMC,SAAS,SAAS,IAAAC,sDAA0B,GAAE;MACpDD,SAAS,CAACE,MAAM,CAACC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,GAAG,CAACC,aAAa,CAACF,CAAC,CAACC,GAAG,CAAC,CAAC;MAC3DN,SAAS,CAACE,MAAM,CAACM,OAAO,CAAEC,sBAAsB,IAAK;QACnD,IAAAC,qBAAY,YAAID,sBAAsB,CAACH,GAAG,GAAI,MAAM,CAAC;MACvD,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOK,GAAG,EAAE;MACZ,IAAAD,qBAAY,uCAA+BC,GAAG,CAACC,OAAO,GAAI,OAAO,CAAC;MAClE,IAAAF,qBAAY,EAACC,GAAG,EAAE,OAAO,CAAC;IAC5B;EACF,CAAC;EAAA;AAAA;AAAA,SAOqBE,iBAAiB;EAAA;AAAA;AAkBvC;AACA;AACA;AACA;AACA;AAJA;EAAA,uCAlBO,WAAiCC,UAAU,EAAE;IAClD,OAAO,IAAAb,sDAA0B,GAAE,CAACc,IAAI,CAAEC,QAAQ,IAAK;MACrD,IAAMC,cAAc,GAAGD,QAAQ,CAACd,MAAM,CAACgB,MAAM,CAC1CC,QAAQ,IAAKA,QAAQ,CAACb,GAAG,KAAKQ,UAAU,CAC1C;MACD,QAAQG,cAAc,CAACG,MAAM;QAC3B,KAAK,CAAC;UACJ,OAAOH,cAAc,CAAC,CAAC,CAAC;QAC1B,KAAK,CAAC;UACJ,MAAM,IAAII,KAAK,qBAAcP,UAAU,iBAAc;QACvD;UACE,MAAM,IAAIO,KAAK,WACVJ,cAAc,CAACG,MAAM,yBAAeN,UAAU,aAClD;MAAC;IAER,CAAC,CAAC;EACJ,CAAC;EAAA;AAAA;AAAA,SAOqBQ,0BAA0B;EAAA;AAAA;AA0BhD;AACA;AACA;AACA;AAHA;EAAA,gDA1BO,WAA0CR,UAAU,EAAa;IAAA,IAAXS,IAAI,uEAAG,EAAE;IACpE,IAAIC,QAAQ,GAAGD,IAAI;IACnB,IAAI,CAACC,QAAQ,EAAE;MACbA,QAAQ,GAAG,IAAAC,mCAAgB,EAACX,UAAU,EAAE,KAAK,CAAC;IAChD;IACA,IAAAY,gCAAuB,EAAC,CAAC,sBAAeZ,UAAU,EAAG;IACrD,IAAI;MACF,IAAMa,OAAO,SAASd,iBAAiB,CAACC,UAAU,CAAC;MACnD,IAAAc,gCAAuB,yBAAiBJ,QAAQ,EAAG;MACnD,IAAMK,QAAQ,GAAGlC,mBAAmB,EAAE;MACtCkC,QAAQ,CAAC/B,GAAG,CAAC6B,OAAO,CAACrB,GAAG,CAAC,GAAGqB,OAAO;MACnC,IAAIA,OAAO,CAACG,SAAS,EAAE;QACrB,IAAMC,UAAU,SAAS,IAAAC,oBAAS,EAACL,OAAO,CAACG,SAAS,CAAC;QACrDC,UAAU,CAAClC,MAAM,GAAG,IAAAoC,2CAAwB,EAACF,UAAU,CAAClC,MAAM,CAAC;QAC/DgC,QAAQ,CAAChC,MAAM,CAAC8B,OAAO,CAACG,SAAS,CAAC,GAAGC,UAAU;MACjD;MACA,IAAAG,iCAAc,EAACL,QAAQ,EAAEL,QAAQ,CAAC;MAClC,IAAAW,8BAAqB,qBACPrB,UAAU,CAAC,YAAY,CAAC,iBAAOU,QAAQ,CAAC,YAAY,CAAC,OAClE;IACH,CAAC,CAAC,OAAOb,GAAG,EAAE;MACZ,IAAAwB,8BAAqB,YAAIxB,GAAG,EAAG;MAC/B,IAAAD,qBAAY,YAAIC,GAAG,GAAI,OAAO,CAAC;IACjC;EACF,CAAC;EAAA;AAAA;AAAA,SAMqByB,2BAA2B;EAAA;AAAA;AAwBjD;AACA;AACA;AAFA;EAAA,iDAxBO,WAA2Cb,IAAI,EAAE;IACtD,IAAIC,QAAQ,GAAGD,IAAI;IACnB,IAAI,CAACC,QAAQ,EAAE;MACbA,QAAQ,GAAG,IAAAC,mCAAgB,eAAO,IAAAY,iCAAc,GAAE,gBAAa,KAAK,CAAC;IACvE;IACA,IAAMR,QAAQ,GAAGlC,mBAAmB,EAAE;IACtC,IAAM2C,WAAW,GAAG,OAAO,IAAArC,sDAA0B,GAAE,EAAEC,MAAM;IAC/D,IAAAwB,gCAAuB,EAACY,WAAW,CAAClB,MAAM,EAAE,qBAAqB,CAAC;IAClE,KAAK,IAAMO,OAAO,IAAIW,WAAW,EAAE;MACjC,IAAAV,gCAAuB,+BAAuBD,OAAO,CAACrB,GAAG,EAAG;MAC5DuB,QAAQ,CAAC/B,GAAG,CAAC6B,OAAO,CAACrB,GAAG,CAAC,GAAGqB,OAAO;MACnC,IAAIA,OAAO,CAACG,SAAS,EAAE;QACrB;QACA,IAAMC,UAAU,SAAS,IAAAC,oBAAS,EAACL,OAAO,CAACG,SAAS,CAAC;QACrDC,UAAU,CAAClC,MAAM,GAAG,IAAAoC,2CAAwB,EAACF,UAAU,CAAClC,MAAM,CAAC;QAC/DgC,QAAQ,CAAChC,MAAM,CAAC8B,OAAO,CAACG,SAAS,CAAC,GAAGC,UAAU;MACjD;IACF;IACA,IAAAG,iCAAc,EAACL,QAAQ,EAAEL,QAAQ,CAAC;IAClC,IAAAW,8BAAqB,YAChBG,WAAW,CAAClB,MAAM,oCAA0BI,QAAQ,OACxD;EACH,CAAC;EAAA;AAAA;AAAA,SAKqBe,4BAA4B;EAAA;AAAA;AAoBlD;AACA;AACA;AACA;AACA;AAJA;EAAA,kDApBO,aAA8C;IACnD,IAAMD,WAAW,SAAS,OAAO,IAAArC,sDAA0B,GAAE,EAAEC,MAAM;IACrE;IACA,IAAAwB,gCAAuB,EAACY,WAAW,CAAClB,MAAM,EAAE,qBAAqB,CAAC;IAClE,KAAK,IAAMO,OAAO,IAAIW,WAAW,EAAE;MACjC,IAAAV,gCAAuB,6BAAqBD,OAAO,CAACrB,GAAG,EAAG;MAC1D,IAAMkB,QAAQ,GAAG,IAAAC,mCAAgB,EAACE,OAAO,CAACrB,GAAG,EAAE,KAAK,CAAC;MACrD,IAAMuB,QAAQ,GAAGlC,mBAAmB,EAAE;MACtCkC,QAAQ,CAAC/B,GAAG,CAAC6B,OAAO,CAACrB,GAAG,CAAC,GAAGqB,OAAO;MACnC,IAAIA,OAAO,CAACG,SAAS,EAAE;QACrB;QACA,IAAMC,UAAU,SAAS,IAAAC,oBAAS,EAACL,OAAO,CAACG,SAAS,CAAC;QACrDC,UAAU,CAAClC,MAAM,GAAG,IAAAoC,2CAAwB,EAACF,UAAU,CAAClC,MAAM,CAAC;QAC/DgC,QAAQ,CAAChC,MAAM,CAAC8B,OAAO,CAACG,SAAS,CAAC,GAAGC,UAAU;MACjD;MACA,IAAAG,iCAAc,EAACL,QAAQ,EAAEL,QAAQ,CAAC;IACpC;IACA,IAAAW,8BAAqB,YAAIG,WAAW,CAAClB,MAAM,0BAAuB;EACpE,CAAC;EAAA;AAAA;AAAA,SAOqBoB,4BAA4B;EAAA;AAAA;AAyDlD;AACA;AACA;AACA;AAHA;EAAA,kDAzDO,WAA4C1B,UAAU,EAAES,IAAI,EAAE;IACnEkB,WAAE,CAACC,QAAQ,CAACnB,IAAI,EAAE,MAAM;MAAA,6BAAE,WAAOZ,GAAG,EAAEgC,IAAI,EAAK;QAC7C,IAAIhC,GAAG,EAAE,MAAMA,GAAG;QAClB,IAAMkB,QAAQ,GAAGe,IAAI,CAACC,KAAK,CAACF,IAAI,CAAC;QACjC,IAAI,IAAAG,iCAAc,EAACjB,QAAQ,CAACjC,IAAI,CAAC,EAAE;UACjC,IAAA8B,gCAAuB,EAAC,CAAC,EAAE,uBAAuB,CAAC;UACnD,IAAIqB,KAAK,GAAG,KAAK;UAAC,4BACPC,KAAK;YACd,IAAI,CAAC,CAAC,CAACC,cAAc,CAACC,IAAI,CAACrB,QAAQ,CAAC/B,GAAG,EAAEkD,KAAK,CAAC,EAAE;cAC/C,IAAIA,KAAK,KAAKlC,UAAU,EAAE;gBACxBiC,KAAK,GAAG,IAAI;gBACZ,IAAAnB,gCAAuB,sBAAcC,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAAC1C,GAAG,EAAG;gBAC/D,IAAM6C,QAAQ,GAAGtB,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAAClB,SAAS;gBAC9C,IAAMC,UAAU,GAAGF,QAAQ,CAAChC,MAAM,CAACsD,QAAQ,CAAC;gBAC5C,IAAIA,QAAQ,IAAIpB,UAAU,EAAE;kBAC1BA,UAAU,CAAClC,MAAM,GAAG,IAAAuD,2CAAwB,EAACrB,UAAU,CAAClC,MAAM,CAAC;kBAC/D;kBACA,MAAM,IAAAwD,+BAAoB,EACxBxB,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAAClB,SAAS,EAC7BD,QAAQ,CAAChC,MAAM,CAACgC,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAAClB,SAAS,CAAC,CAC/C;gBACH;gBACA,IAAAwB,kDAAsB,EACpBzB,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAACO,KAAK,CAACjD,GAAG,EAC7B0C,KAAK,EACLnB,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CACpB,CACEjC,IAAI,CAAC,MAAM;kBACV,IAAAoB,8BAAqB,2CACerB,UAAU,OAC7C;gBACH,CAAC,CAAC,CACD0C,KAAK,CAAEC,iBAAiB,IAAK;kBAC5B,IAAAtB,8BAAqB,qCACSN,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAAC1C,GAAG,EACpD;kBACD,IAAAI,qBAAY,uCACoBI,UAAU,GACxC,OAAO,CACR;kBACD,IAAAJ,qBAAY,EAAC+C,iBAAiB,CAACzC,QAAQ,CAAC2B,IAAI,EAAE,OAAO,CAAC;gBACxD,CAAC,CAAC;gBACJ;cACF;YACF;UAAC;UArCH,KAAK,IAAMK,KAAK,IAAInB,QAAQ,CAAC/B,GAAG,EAAE;YAAA,wBAAvBkD,KAAK;YAAA,sBAmCV;UAGN;UACA,IAAI,CAACD,KAAK,EAAE;YACV,IAAAZ,8BAAqB,qBACPrB,UAAU,CAAC4C,UAAU,2BAAiBnC,IAAI,CAACmC,UAAU,OAClE;UACH;QACF,CAAC,MAAM;UACL,IAAAhD,qBAAY,EAAC,6BAA6B,EAAE,OAAO,CAAC;QACtD;MACF,CAAC;MAAA;QAAA;MAAA;IAAA,IAAC;EACJ,CAAC;EAAA;AAAA;AAAA,SAMqBiD,iCAAiC;EAAA;AAAA;AA+CvD;AACA;AACA;AACA;AAHA;EAAA,uDA/CO,WAAiDpC,IAAI,EAAE;IAC5DkB,WAAE,CAACC,QAAQ,CAACnB,IAAI,EAAE,MAAM;MAAA,8BAAE,WAAOZ,GAAG,EAAEgC,IAAI,EAAK;QAC7C,IAAIhC,GAAG,EAAE,MAAMA,GAAG;QAClB,IAAMkB,QAAQ,GAAGe,IAAI,CAACC,KAAK,CAACF,IAAI,CAAC;QACjC,IAAI,IAAAG,iCAAc,EAACjB,QAAQ,CAACjC,IAAI,CAAC,EAAE;UACjC,IAAA8B,gCAAuB,EAAC,CAAC,EAAE,uBAAuB,CAAC;UAAC,8BACzCsB,KAAK;YACd,IAAI,CAAC,CAAC,CAACC,cAAc,CAACC,IAAI,CAACrB,QAAQ,CAAC/B,GAAG,EAAEkD,KAAK,CAAC,EAAE;cAC/C,IAAApB,gCAAuB,sBAAcC,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAAC1C,GAAG,EAAG;cAC/D,IAAM6C,QAAQ,GAAGtB,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAAClB,SAAS;cAC9C,IAAMC,UAAU,GAAGF,QAAQ,CAAChC,MAAM,CAACsD,QAAQ,CAAC;cAC5C,IAAIA,QAAQ,IAAIpB,UAAU,EAAE;gBAC1BA,UAAU,CAAClC,MAAM,GAAG,IAAAuD,2CAAwB,EAACrB,UAAU,CAAClC,MAAM,CAAC;gBAC/D;gBACA,MAAM,IAAAwD,+BAAoB,EACxBxB,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAAClB,SAAS,EAC7BD,QAAQ,CAAChC,MAAM,CAACgC,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAAClB,SAAS,CAAC,CAC/C;cACH;cACA,IAAAwB,kDAAsB,EACpBzB,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAACO,KAAK,CAACjD,GAAG,EAC7B0C,KAAK,EACLnB,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CACpB,CAACjC,IAAI,CAAEb,MAAM,IAAK;gBACjB,IAAIA,MAAM,IAAI,IAAI,EAAE;kBAClB,IAAAiC,8BAAqB,qCACSN,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAAC1C,GAAG,EACpD;kBACD,IAAAI,qBAAY,qCACkBmB,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAAC1C,GAAG,GACnD,OAAO,CACR;gBACH,CAAC,MAAM;kBACL,IAAA6B,8BAAqB,2CACeN,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAAC1C,GAAG,OAC1D;gBACH;cACF,CAAC,CAAC;cACF;YACF;UAAC;UAjCH,KAAK,IAAM0C,KAAK,IAAInB,QAAQ,CAAC/B,GAAG,EAAE;YAAA,0BAAvBkD,KAAK;YAAA,uBAgCZ;UAEJ;QACF,CAAC,MAAM;UACL,IAAAtC,qBAAY,EAAC,6BAA6B,EAAE,OAAO,CAAC;QACtD;MACF,CAAC;MAAA;QAAA;MAAA;IAAA,IAAC;EACJ,CAAC;EAAA;AAAA;AAAA,SAMqBkD,6BAA6B;EAAA;AAAA;AAyCnD;AACA;AACA;AAFA;EAAA,mDAzCO,WAA6CrC,IAAI,EAAE;IACxDkB,WAAE,CAACC,QAAQ,CAACnB,IAAI,EAAE,MAAM;MAAA,8BAAE,WAAOZ,GAAG,EAAEgC,IAAI,EAAK;QAC7C,IAAIhC,GAAG,EAAE,MAAMA,GAAG;QAClB,IAAMkB,QAAQ,GAAGe,IAAI,CAACC,KAAK,CAACF,IAAI,CAAC;QACjC,IAAI,IAAAG,iCAAc,EAACjB,QAAQ,CAACjC,IAAI,CAAC,EAAE;UACjC,IAAA8B,gCAAuB,EACrBmC,MAAM,CAACC,IAAI,CAACjC,QAAQ,CAAC/B,GAAG,CAAC,CAACsB,MAAM,EAChC,wBAAwB,CACzB;UACD,KAAK,IAAM4B,KAAK,IAAInB,QAAQ,CAAC/B,GAAG,EAAE;YAChC,IAAI,CAAC,CAAC,CAACmD,cAAc,CAACC,IAAI,CAACrB,QAAQ,CAAC/B,GAAG,EAAEkD,KAAK,CAAC,EAAE;cAC/C,IAAMG,QAAQ,GAAGtB,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAAClB,SAAS;cAC9C,IAAMC,UAAU,GAAGF,QAAQ,CAAChC,MAAM,CAACsD,QAAQ,CAAC;cAC5C,IAAIA,QAAQ,IAAIpB,UAAU,EAAE;gBAC1BA,UAAU,CAAClC,MAAM,GAAG,IAAAuD,2CAAwB,EAACrB,UAAU,CAAClC,MAAM,CAAC;gBAC/D;gBACA,MAAM,IAAAwD,+BAAoB,EACxBxB,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAAClB,SAAS,EAC7BD,QAAQ,CAAChC,MAAM,CAACgC,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAAClB,SAAS,CAAC,CAC/C;cACH;cACA;cACA,IAAM5B,MAAM,SAAS,IAAAoD,kDAAsB,EACzCzB,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAACO,KAAK,CAACjD,GAAG,EAC7B0C,KAAK,EACLnB,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CACpB;cACD,IAAI,CAAC9C,MAAM,EAAE;gBACX,IAAA0B,gCAAuB,kCACIC,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAACe,IAAI,EAClD;cACH;YACF;UACF;UACA,IAAA5B,8BAAqB,wBAAuB;QAC9C,CAAC,MAAM;UACL,IAAAzB,qBAAY,EAAC,6BAA6B,EAAE,OAAO,CAAC;QACtD;MACF,CAAC;MAAA;QAAA;MAAA;IAAA,IAAC;EACJ,CAAC;EAAA;AAAA;AAAA,SAKqBsD,8BAA8B;EAAA;AAAA;AAAA;EAAA,oDAA7C,aAAgD;IACrD,IAAMC,KAAK,GAAGxB,WAAE,CAACyB,WAAW,CAAC,GAAG,CAAC;IACjC,IAAMC,SAAS,GAAGF,KAAK,CAAC/C,MAAM,CAAE6C,IAAI,IAClCA,IAAI,CAACK,WAAW,EAAE,CAACC,QAAQ,CAAC,WAAW,CAAC,CACzC;IAED,IAAA3C,gCAAuB,EAACyC,SAAS,CAAC/C,MAAM,EAAE,wBAAwB,CAAC;IACnE,IAAIkD,KAAK,GAAG,CAAC;IACb,KAAK,IAAM/C,IAAI,IAAI4C,SAAS,EAAE;MAC5B,IAAMxB,IAAI,GAAGF,WAAE,CAAC8B,YAAY,CAAChD,IAAI,EAAE,MAAM,CAAC;MAC1C,IAAMM,QAAQ,GAAGe,IAAI,CAACC,KAAK,CAACF,IAAI,CAAC;MACjC,IAAI,IAAAG,iCAAc,EAACjB,QAAQ,CAACjC,IAAI,CAAC,EAAE;QACjC,IAAM4E,KAAK,GAAGX,MAAM,CAACC,IAAI,CAACjC,QAAQ,CAAC/B,GAAG,CAAC,CAACsB,MAAM;QAC9CkD,KAAK,IAAIE,KAAK;QACd,KAAK,IAAMxB,KAAK,IAAInB,QAAQ,CAAC/B,GAAG,EAAE;UAChC,IAAI,CAAC,CAAC,CAACmD,cAAc,CAACC,IAAI,CAACrB,QAAQ,CAAC/B,GAAG,EAAEkD,KAAK,CAAC,EAAE;YAC/C;YACA,IAAM9C,MAAM,SAAS,IAAAoD,kDAAsB,EACzCzB,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CAACO,KAAK,CAACjD,GAAG,EAC7B0C,KAAK,EACLnB,QAAQ,CAAC/B,GAAG,CAACkD,KAAK,CAAC,CACpB;YACD,IAAI9C,MAAM,IAAI,IAAI,EAAE;cAClB,IAAAQ,qBAAY,4BACS8D,KAAK,6BAAmBjD,IAAI,GAC/C,OAAO,CACR;YACH;UACF;QACF;QACA,IAAAK,gCAAuB,qBAAa4C,KAAK,+BAAqBjD,IAAI,EAAG;MACvE,CAAC,MAAM;QACL,IAAAb,qBAAY,0BAAkBa,IAAI,eAAY,OAAO,CAAC;MACxD;IACF;IACA,IAAAY,8BAAqB,+BACGmC,KAAK,+BAAqBH,SAAS,CAAC/C,MAAM,eACjE;EACH,CAAC;EAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"IdpOps.test.js","names":["mock","MockAdapter","axios","state","default","session","setTenant","setRealm","setCookieName","setCookieValue","setDeploymentType","global","CLOUD_DEPLOYMENT_TYPE_KEY","describe","test","expect","Idp","exportSocialProviderToFile","toBeDefined","exportSocialProvidersToFile","exportSocialProvidersToFiles","getSocialProvider","importFirstSocialProviderFromFile","importSocialProviderFromFile","importSocialProvidersFromFile","importSocialProvidersFromFiles","listSocialProviders","mockGetSocialProviders","assertions","toBeTruthy"],"sources":["ops/IdpOps.test.ts"],"sourcesContent":["import axios from 'axios';\nimport MockAdapter from 'axios-mock-adapter';\nimport { Idp, state } from '../index';\nimport * as global from '../storage/StaticStorage';\nimport { mockGetSocialProviders } from '../test/mocks/ForgeRockApiMockEngine';\n\nconst mock = new MockAdapter(axios);\n\nstate.default.session.setTenant('https://openam-frodo-dev.forgeblocks.com/am');\nstate.default.session.setRealm('alpha');\nstate.default.session.setCookieName('cookieName');\nstate.default.session.setCookieValue('cookieValue');\nstate.default.session.setDeploymentType(global.CLOUD_DEPLOYMENT_TYPE_KEY);\n\ndescribe('IdpOps - exportSocialProviderToFile()', () => {\n test('exportSocialProviderToFile() 0: Method is implemented', async () => {\n expect(Idp.exportSocialProviderToFile).toBeDefined();\n });\n});\n\ndescribe('IdpOps - exportSocialProvidersToFile()', () => {\n test('exportSocialProvidersToFile() 0: Method is implemented', async () => {\n expect(Idp.exportSocialProvidersToFile).toBeDefined();\n });\n});\n\ndescribe('IdpOps - exportSocialProvidersToFiles()', () => {\n test('exportSocialProvidersToFiles() 0: Method is implemented', async () => {\n expect(Idp.exportSocialProvidersToFiles).toBeDefined();\n });\n});\n\ndescribe('IdpOps - getSocialProvider()', () => {\n test('getSocialProvider() 0: Method is implemented', async () => {\n expect(Idp.getSocialProvider).toBeDefined();\n });\n});\n\ndescribe('IdpOps - importFirstSocialProviderFromFile()', () => {\n test('importFirstSocialProviderFromFile() 0: Method is implemented', async () => {\n expect(Idp.importFirstSocialProviderFromFile).toBeDefined();\n });\n});\n\ndescribe('IdpOps - importSocialProviderFromFile()', () => {\n test('importSocialProviderFromFile() 0: Method is implemented', async () => {\n expect(Idp.importSocialProviderFromFile).toBeDefined();\n });\n});\n\ndescribe('IdpOps - importSocialProvidersFromFile()', () => {\n test('importSocialProvidersFromFile() 0: Method is implemented', async () => {\n expect(Idp.importSocialProvidersFromFile).toBeDefined();\n });\n});\n\ndescribe('IdpOps - importSocialProvidersFromFiles()', () => {\n test('importSocialProvidersFromFiles() 0: Method is implemented', async () => {\n expect(Idp.importSocialProvidersFromFiles).toBeDefined();\n });\n});\n\ndescribe('IdpOps - listSocialProviders()', () => {\n test('listSocialProviders() 0: Method is implemented', async () => {\n expect(Idp.listSocialProviders).toBeDefined();\n });\n\n test('listSocialProviders() 1: List social identity providers', async () => {\n mockGetSocialProviders(mock);\n expect.assertions(2);\n await Idp.listSocialProviders();\n expect(true).toBeTruthy();\n });\n});\n"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;AAEA,IAAMA,IAAI,GAAG,IAAIC,yBAAJ,CAAgBC,cAAhB,CAAb;;AAEAC,YAAA,CAAMC,OAAN,CAAcC,OAAd,CAAsBC,SAAtB,CAAgC,6CAAhC;;AACAH,YAAA,CAAMC,OAAN,CAAcC,OAAd,CAAsBE,QAAtB,CAA+B,OAA/B;;AACAJ,YAAA,CAAMC,OAAN,CAAcC,OAAd,CAAsBG,aAAtB,CAAoC,YAApC;;AACAL,YAAA,CAAMC,OAAN,CAAcC,OAAd,CAAsBI,cAAtB,CAAqC,aAArC;;AACAN,YAAA,CAAMC,OAAN,CAAcC,OAAd,CAAsBK,iBAAtB,CAAwCC,MAAM,CAACC,yBAA/C;;AAEAC,QAAQ,CAAC,uCAAD,EAA0C,MAAM;EACtDC,IAAI,CAAC,uDAAD,iCAA0D,aAAY;IACxEC,MAAM,CAACC,UAAA,CAAIC,0BAAL,CAAN,CAAuCC,WAAvC;EACD,CAFG,EAAJ;AAGD,CAJO,CAAR;AAMAL,QAAQ,CAAC,wCAAD,EAA2C,MAAM;EACvDC,IAAI,CAAC,wDAAD,iCAA2D,aAAY;IACzEC,MAAM,CAACC,UAAA,CAAIG,2BAAL,CAAN,CAAwCD,WAAxC;EACD,CAFG,EAAJ;AAGD,CAJO,CAAR;AAMAL,QAAQ,CAAC,yCAAD,EAA4C,MAAM;EACxDC,IAAI,CAAC,yDAAD,iCAA4D,aAAY;IAC1EC,MAAM,CAACC,UAAA,CAAII,4BAAL,CAAN,CAAyCF,WAAzC;EACD,CAFG,EAAJ;AAGD,CAJO,CAAR;AAMAL,QAAQ,CAAC,8BAAD,EAAiC,MAAM;EAC7CC,IAAI,CAAC,8CAAD,iCAAiD,aAAY;IAC/DC,MAAM,CAACC,UAAA,CAAIK,iBAAL,CAAN,CAA8BH,WAA9B;EACD,CAFG,EAAJ;AAGD,CAJO,CAAR;AAMAL,QAAQ,CAAC,8CAAD,EAAiD,MAAM;EAC7DC,IAAI,CAAC,8DAAD,iCAAiE,aAAY;IAC/EC,MAAM,CAACC,UAAA,CAAIM,iCAAL,CAAN,CAA8CJ,WAA9C;EACD,CAFG,EAAJ;AAGD,CAJO,CAAR;AAMAL,QAAQ,CAAC,yCAAD,EAA4C,MAAM;EACxDC,IAAI,CAAC,yDAAD,iCAA4D,aAAY;IAC1EC,MAAM,CAACC,UAAA,CAAIO,4BAAL,CAAN,CAAyCL,WAAzC;EACD,CAFG,EAAJ;AAGD,CAJO,CAAR;AAMAL,QAAQ,CAAC,0CAAD,EAA6C,MAAM;EACzDC,IAAI,CAAC,0DAAD,iCAA6D,aAAY;IAC3EC,MAAM,CAACC,UAAA,CAAIQ,6BAAL,CAAN,CAA0CN,WAA1C;EACD,CAFG,EAAJ;AAGD,CAJO,CAAR;AAMAL,QAAQ,CAAC,2CAAD,EAA8C,MAAM;EAC1DC,IAAI,CAAC,2DAAD,iCAA8D,aAAY;IAC5EC,MAAM,CAACC,UAAA,CAAIS,8BAAL,CAAN,CAA2CP,WAA3C;EACD,CAFG,EAAJ;AAGD,CAJO,CAAR;AAMAL,QAAQ,CAAC,gCAAD,EAAmC,MAAM;EAC/CC,IAAI,CAAC,gDAAD,iCAAmD,aAAY;IACjEC,MAAM,CAACC,UAAA,CAAIU,mBAAL,CAAN,CAAgCR,WAAhC;EACD,CAFG,EAAJ;EAIAJ,IAAI,CAAC,yDAAD,iCAA4D,aAAY;IAC1E,IAAAa,8CAAA,EAAuB3B,IAAvB;IACAe,MAAM,CAACa,UAAP,CAAkB,CAAlB;IACA,MAAMZ,UAAA,CAAIU,mBAAJ,EAAN;IACAX,MAAM,CAAC,IAAD,CAAN,CAAac,UAAb;EACD,CALG,EAAJ;AAMD,CAXO,CAAR"}
1
+ {"version":3,"file":"IdpOps.test.js","names":["mock","MockAdapter","axios","state","setHost","setRealm","setCookieName","setCookieValue","setDeploymentType","global","CLOUD_DEPLOYMENT_TYPE_KEY","describe","test","expect","Idp","exportSocialProviderToFile","toBeDefined","exportSocialProvidersToFile","exportSocialProvidersToFiles","getSocialProvider","importFirstSocialProviderFromFile","importSocialProviderFromFile","importSocialProvidersFromFile","importSocialProvidersFromFiles","listSocialProviders","mockGetSocialProviders","assertions","toBeTruthy"],"sources":["ops/IdpOps.test.ts"],"sourcesContent":["import axios from 'axios';\nimport MockAdapter from 'axios-mock-adapter';\nimport { Idp, state } from '../index';\nimport * as global from '../storage/StaticStorage';\nimport { mockGetSocialProviders } from '../test/mocks/ForgeRockApiMockEngine';\n\nconst mock = new MockAdapter(axios);\n\nstate.setHost('https://openam-frodo-dev.forgeblocks.com/am');\nstate.setRealm('alpha');\nstate.setCookieName('cookieName');\nstate.setCookieValue('cookieValue');\nstate.setDeploymentType(global.CLOUD_DEPLOYMENT_TYPE_KEY);\n\ndescribe('IdpOps - exportSocialProviderToFile()', () => {\n test('exportSocialProviderToFile() 0: Method is implemented', async () => {\n expect(Idp.exportSocialProviderToFile).toBeDefined();\n });\n});\n\ndescribe('IdpOps - exportSocialProvidersToFile()', () => {\n test('exportSocialProvidersToFile() 0: Method is implemented', async () => {\n expect(Idp.exportSocialProvidersToFile).toBeDefined();\n });\n});\n\ndescribe('IdpOps - exportSocialProvidersToFiles()', () => {\n test('exportSocialProvidersToFiles() 0: Method is implemented', async () => {\n expect(Idp.exportSocialProvidersToFiles).toBeDefined();\n });\n});\n\ndescribe('IdpOps - getSocialProvider()', () => {\n test('getSocialProvider() 0: Method is implemented', async () => {\n expect(Idp.getSocialProvider).toBeDefined();\n });\n});\n\ndescribe('IdpOps - importFirstSocialProviderFromFile()', () => {\n test('importFirstSocialProviderFromFile() 0: Method is implemented', async () => {\n expect(Idp.importFirstSocialProviderFromFile).toBeDefined();\n });\n});\n\ndescribe('IdpOps - importSocialProviderFromFile()', () => {\n test('importSocialProviderFromFile() 0: Method is implemented', async () => {\n expect(Idp.importSocialProviderFromFile).toBeDefined();\n });\n});\n\ndescribe('IdpOps - importSocialProvidersFromFile()', () => {\n test('importSocialProvidersFromFile() 0: Method is implemented', async () => {\n expect(Idp.importSocialProvidersFromFile).toBeDefined();\n });\n});\n\ndescribe('IdpOps - importSocialProvidersFromFiles()', () => {\n test('importSocialProvidersFromFiles() 0: Method is implemented', async () => {\n expect(Idp.importSocialProvidersFromFiles).toBeDefined();\n });\n});\n\ndescribe('IdpOps - listSocialProviders()', () => {\n test('listSocialProviders() 0: Method is implemented', async () => {\n expect(Idp.listSocialProviders).toBeDefined();\n });\n\n test('listSocialProviders() 1: List social identity providers', async () => {\n mockGetSocialProviders(mock);\n expect.assertions(2);\n await Idp.listSocialProviders();\n expect(true).toBeTruthy();\n });\n});\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AAA8E;AAAA;AAAA;AAAA;AAAA;AAE9E,IAAMA,IAAI,GAAG,IAAIC,yBAAW,CAACC,cAAK,CAAC;AAEnCC,YAAK,CAACC,OAAO,CAAC,6CAA6C,CAAC;AAC5DD,YAAK,CAACE,QAAQ,CAAC,OAAO,CAAC;AACvBF,YAAK,CAACG,aAAa,CAAC,YAAY,CAAC;AACjCH,YAAK,CAACI,cAAc,CAAC,aAAa,CAAC;AACnCJ,YAAK,CAACK,iBAAiB,CAACC,MAAM,CAACC,yBAAyB,CAAC;AAEzDC,QAAQ,CAAC,uCAAuC,EAAE,MAAM;EACtDC,IAAI,CAAC,uDAAuD,iCAAE,aAAY;IACxEC,MAAM,CAACC,UAAG,CAACC,0BAA0B,CAAC,CAACC,WAAW,EAAE;EACtD,CAAC,EAAC;AACJ,CAAC,CAAC;AAEFL,QAAQ,CAAC,wCAAwC,EAAE,MAAM;EACvDC,IAAI,CAAC,wDAAwD,iCAAE,aAAY;IACzEC,MAAM,CAACC,UAAG,CAACG,2BAA2B,CAAC,CAACD,WAAW,EAAE;EACvD,CAAC,EAAC;AACJ,CAAC,CAAC;AAEFL,QAAQ,CAAC,yCAAyC,EAAE,MAAM;EACxDC,IAAI,CAAC,yDAAyD,iCAAE,aAAY;IAC1EC,MAAM,CAACC,UAAG,CAACI,4BAA4B,CAAC,CAACF,WAAW,EAAE;EACxD,CAAC,EAAC;AACJ,CAAC,CAAC;AAEFL,QAAQ,CAAC,8BAA8B,EAAE,MAAM;EAC7CC,IAAI,CAAC,8CAA8C,iCAAE,aAAY;IAC/DC,MAAM,CAACC,UAAG,CAACK,iBAAiB,CAAC,CAACH,WAAW,EAAE;EAC7C,CAAC,EAAC;AACJ,CAAC,CAAC;AAEFL,QAAQ,CAAC,8CAA8C,EAAE,MAAM;EAC7DC,IAAI,CAAC,8DAA8D,iCAAE,aAAY;IAC/EC,MAAM,CAACC,UAAG,CAACM,iCAAiC,CAAC,CAACJ,WAAW,EAAE;EAC7D,CAAC,EAAC;AACJ,CAAC,CAAC;AAEFL,QAAQ,CAAC,yCAAyC,EAAE,MAAM;EACxDC,IAAI,CAAC,yDAAyD,iCAAE,aAAY;IAC1EC,MAAM,CAACC,UAAG,CAACO,4BAA4B,CAAC,CAACL,WAAW,EAAE;EACxD,CAAC,EAAC;AACJ,CAAC,CAAC;AAEFL,QAAQ,CAAC,0CAA0C,EAAE,MAAM;EACzDC,IAAI,CAAC,0DAA0D,iCAAE,aAAY;IAC3EC,MAAM,CAACC,UAAG,CAACQ,6BAA6B,CAAC,CAACN,WAAW,EAAE;EACzD,CAAC,EAAC;AACJ,CAAC,CAAC;AAEFL,QAAQ,CAAC,2CAA2C,EAAE,MAAM;EAC1DC,IAAI,CAAC,2DAA2D,iCAAE,aAAY;IAC5EC,MAAM,CAACC,UAAG,CAACS,8BAA8B,CAAC,CAACP,WAAW,EAAE;EAC1D,CAAC,EAAC;AACJ,CAAC,CAAC;AAEFL,QAAQ,CAAC,gCAAgC,EAAE,MAAM;EAC/CC,IAAI,CAAC,gDAAgD,iCAAE,aAAY;IACjEC,MAAM,CAACC,UAAG,CAACU,mBAAmB,CAAC,CAACR,WAAW,EAAE;EAC/C,CAAC,EAAC;EAEFJ,IAAI,CAAC,yDAAyD,iCAAE,aAAY;IAC1E,IAAAa,8CAAsB,EAACzB,IAAI,CAAC;IAC5Ba,MAAM,CAACa,UAAU,CAAC,CAAC,CAAC;IACpB,MAAMZ,UAAG,CAACU,mBAAmB,EAAE;IAC/BX,MAAM,CAAC,IAAI,CAAC,CAACc,UAAU,EAAE;EAC3B,CAAC,EAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createJwkRsa = createJwkRsa;
7
+ exports.createJwks = createJwks;
8
+ exports.createSignedJwtToken = createSignedJwtToken;
9
+ exports.getJwkRsaPublic = getJwkRsaPublic;
10
+ exports.verifySignedJwtToken = verifySignedJwtToken;
11
+ var _nodeJose = _interopRequireDefault(require("node-jose"));
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
14
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
15
+ function createJwkRsa() {
16
+ return _createJwkRsa.apply(this, arguments);
17
+ }
18
+ function _createJwkRsa() {
19
+ _createJwkRsa = _asyncToGenerator(function* () {
20
+ var jwk = yield _nodeJose.default.JWK.createKey('RSA', 4096, {
21
+ alg: 'RS256'
22
+ });
23
+ // include the private key
24
+ return jwk.toJSON(true);
25
+ });
26
+ return _createJwkRsa.apply(this, arguments);
27
+ }
28
+ function getJwkRsaPublic(_x) {
29
+ return _getJwkRsaPublic.apply(this, arguments);
30
+ }
31
+ function _getJwkRsaPublic() {
32
+ _getJwkRsaPublic = _asyncToGenerator(function* (jwkJson) {
33
+ var jwk = yield _nodeJose.default.JWK.asKey(jwkJson);
34
+ // do not include the private key
35
+ return jwk.toJSON(false);
36
+ });
37
+ return _getJwkRsaPublic.apply(this, arguments);
38
+ }
39
+ function createJwks() {
40
+ for (var _len = arguments.length, keys = new Array(_len), _key = 0; _key < _len; _key++) {
41
+ keys[_key] = arguments[_key];
42
+ }
43
+ return {
44
+ keys
45
+ };
46
+ }
47
+ function createSignedJwtToken(_x2, _x3) {
48
+ return _createSignedJwtToken.apply(this, arguments);
49
+ }
50
+ function _createSignedJwtToken() {
51
+ _createSignedJwtToken = _asyncToGenerator(function* (payload, jwkJson) {
52
+ var key = yield _nodeJose.default.JWK.asKey(jwkJson);
53
+ if (typeof payload === 'object') {
54
+ payload = JSON.stringify(payload);
55
+ }
56
+ var jwt = yield _nodeJose.default.JWS.createSign({
57
+ alg: 'RS256',
58
+ compact: true,
59
+ fields: {}
60
+ },
61
+ // https://github.com/cisco/node-jose/issues/253
62
+ {
63
+ key,
64
+ reference: false
65
+ }).update(payload).final();
66
+ return jwt;
67
+ });
68
+ return _createSignedJwtToken.apply(this, arguments);
69
+ }
70
+ function verifySignedJwtToken(_x4, _x5) {
71
+ return _verifySignedJwtToken.apply(this, arguments);
72
+ }
73
+ function _verifySignedJwtToken() {
74
+ _verifySignedJwtToken = _asyncToGenerator(function* (jwt, jwkJson) {
75
+ var jwk = yield _nodeJose.default.JWK.asKey(jwkJson);
76
+ var verifyResult = yield _nodeJose.default.JWS.createVerify(jwk).verify(jwt);
77
+ return verifyResult;
78
+ });
79
+ return _verifySignedJwtToken.apply(this, arguments);
80
+ }
81
+ //# sourceMappingURL=JoseOps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JoseOps.js","names":["createJwkRsa","jwk","jose","JWK","createKey","alg","toJSON","getJwkRsaPublic","jwkJson","asKey","createJwks","keys","createSignedJwtToken","payload","key","JSON","stringify","jwt","JWS","createSign","compact","fields","reference","update","final","verifySignedJwtToken","verifyResult","createVerify","verify"],"sources":["ops/JoseOps.ts"],"sourcesContent":["import jose from 'node-jose';\n\nexport interface JwkInterface {\n kty: string;\n use?: string;\n key_ops?: string[];\n alg: string;\n kid?: string;\n x5u?: string;\n x5c?: string;\n x5t?: string;\n 'x5t#S256'?: string;\n}\n\nexport type JwkRsa = JwkInterface & {\n d: string;\n dp: string;\n dq: string;\n e: string;\n n: string;\n p: string;\n q: string;\n qi: string;\n};\n\nexport type JwkRsaPublic = JwkInterface & {\n e: string;\n n: string;\n};\n\nexport interface JwksInterface {\n keys: JwkInterface[];\n}\n\nexport async function createJwkRsa(): Promise<JwkRsa> {\n const jwk = await jose.JWK.createKey('RSA', 4096, { alg: 'RS256' });\n // include the private key\n return jwk.toJSON(true) as JwkRsa;\n}\n\nexport async function getJwkRsaPublic(jwkJson: JwkRsa): Promise<JwkRsaPublic> {\n const jwk = await jose.JWK.asKey(jwkJson);\n // do not include the private key\n return jwk.toJSON(false) as JwkRsaPublic;\n}\n\nexport function createJwks(...keys: JwkInterface[]): JwksInterface {\n return {\n keys,\n };\n}\n\nexport async function createSignedJwtToken(payload, jwkJson: JwkRsa) {\n const key = await jose.JWK.asKey(jwkJson);\n if (typeof payload === 'object') {\n payload = JSON.stringify(payload);\n }\n const jwt = await jose.JWS.createSign(\n { alg: 'RS256', compact: true, fields: {} },\n // https://github.com/cisco/node-jose/issues/253\n { key, reference: false }\n )\n .update(payload)\n .final();\n return jwt;\n}\n\nexport async function verifySignedJwtToken(jwt: string, jwkJson: JwkRsaPublic) {\n const jwk = await jose.JWK.asKey(jwkJson);\n const verifyResult = await jose.JWS.createVerify(jwk).verify(jwt);\n return verifyResult;\n}\n"],"mappings":";;;;;;;;;;AAAA;AAA6B;AAAA;AAAA;AAAA,SAkCPA,YAAY;EAAA;AAAA;AAAA;EAAA,kCAA3B,aAA+C;IACpD,IAAMC,GAAG,SAASC,iBAAI,CAACC,GAAG,CAACC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE;MAAEC,GAAG,EAAE;IAAQ,CAAC,CAAC;IACnE;IACA,OAAOJ,GAAG,CAACK,MAAM,CAAC,IAAI,CAAC;EACzB,CAAC;EAAA;AAAA;AAAA,SAEqBC,eAAe;EAAA;AAAA;AAAA;EAAA,qCAA9B,WAA+BC,OAAe,EAAyB;IAC5E,IAAMP,GAAG,SAASC,iBAAI,CAACC,GAAG,CAACM,KAAK,CAACD,OAAO,CAAC;IACzC;IACA,OAAOP,GAAG,CAACK,MAAM,CAAC,KAAK,CAAC;EAC1B,CAAC;EAAA;AAAA;AAEM,SAASI,UAAU,GAAyC;EAAA,kCAArCC,IAAI;IAAJA,IAAI;EAAA;EAChC,OAAO;IACLA;EACF,CAAC;AACH;AAAC,SAEqBC,oBAAoB;EAAA;AAAA;AAAA;EAAA,0CAAnC,WAAoCC,OAAO,EAAEL,OAAe,EAAE;IACnE,IAAMM,GAAG,SAASZ,iBAAI,CAACC,GAAG,CAACM,KAAK,CAACD,OAAO,CAAC;IACzC,IAAI,OAAOK,OAAO,KAAK,QAAQ,EAAE;MAC/BA,OAAO,GAAGE,IAAI,CAACC,SAAS,CAACH,OAAO,CAAC;IACnC;IACA,IAAMI,GAAG,SAASf,iBAAI,CAACgB,GAAG,CAACC,UAAU,CACnC;MAAEd,GAAG,EAAE,OAAO;MAAEe,OAAO,EAAE,IAAI;MAAEC,MAAM,EAAE,CAAC;IAAE,CAAC;IAC3C;IACA;MAAEP,GAAG;MAAEQ,SAAS,EAAE;IAAM,CAAC,CAC1B,CACEC,MAAM,CAACV,OAAO,CAAC,CACfW,KAAK,EAAE;IACV,OAAOP,GAAG;EACZ,CAAC;EAAA;AAAA;AAAA,SAEqBQ,oBAAoB;EAAA;AAAA;AAAA;EAAA,0CAAnC,WAAoCR,GAAW,EAAET,OAAqB,EAAE;IAC7E,IAAMP,GAAG,SAASC,iBAAI,CAACC,GAAG,CAACM,KAAK,CAACD,OAAO,CAAC;IACzC,IAAMkB,YAAY,SAASxB,iBAAI,CAACgB,GAAG,CAACS,YAAY,CAAC1B,GAAG,CAAC,CAAC2B,MAAM,CAACX,GAAG,CAAC;IACjE,OAAOS,YAAY;EACrB,CAAC;EAAA;AAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JoseOps.test.js","names":["jest","setTimeout","describe","test","expect","Jose","createJwkRsa","toBeDefined","jwk","toBeTruthy","kty","toBe","alg","kid","d","dp","dq","e","n","p","q","qi","getJwkRsaPublic","jwkPublic","toBeFalsy","createJwks","jwks","keys","length","jwk1","jwk2","createSignedJwtToken","u","parseUrl","aud","origin","port","protocol","pathname","exp","Math","floor","Date","getTime","jti","v4","iss","sub","payload","jwt","split","isEqualJson","JSON","parse","decode","verifySignedJwtToken","verifyResult","toString"],"sources":["ops/JoseOps.test.ts"],"sourcesContent":["import { jest } from '@jest/globals';\nimport * as Jose from './JoseOps';\nimport { parseUrl } from '../api/utils/ApiUtils';\nimport { v4 } from 'uuid';\nimport { isEqualJson } from './utils/OpsUtils';\nimport { decode } from '../api/utils/Base64';\n\n// Increase timeout for this test as pipeline keeps failing with error:\n// Timeout - Async callback was not invoked within the 5000 ms timeout specified by jest.setTimeout.\njest.setTimeout(30000);\n\ndescribe('JoseOps - createJWK()', () => {\n test('createJWK() 0: Method is implemented', async () => {\n expect(Jose.createJwkRsa).toBeDefined();\n });\n\n test('createJWK() 1: Create JWK with RSA key', async () => {\n const jwk = await Jose.createJwkRsa();\n expect(jwk).toBeTruthy();\n expect(jwk.kty).toBe('RSA');\n expect(jwk.alg).toBe('RS256');\n expect(jwk.kid).toBeTruthy();\n expect(jwk.d).toBeTruthy();\n expect(jwk.dp).toBeTruthy();\n expect(jwk.dq).toBeTruthy();\n expect(jwk.e).toBe('AQAB');\n expect(jwk.n).toBeTruthy();\n expect(jwk.p).toBeTruthy();\n expect(jwk.q).toBeTruthy();\n expect(jwk.qi).toBeTruthy();\n });\n});\n\ndescribe('JoseOps - getJwkRsaPublic()', () => {\n test('getJwkRsaPublic() 0: Method is implemented', async () => {\n expect(Jose.getJwkRsaPublic).toBeDefined();\n });\n\n test('getJwkRsaPublic() 1: Get JWK with RSA public key, only', async () => {\n const jwk = await Jose.createJwkRsa();\n const jwkPublic = await Jose.getJwkRsaPublic(jwk);\n expect(jwkPublic).toBeTruthy();\n expect(jwkPublic.kty).toBe('RSA');\n expect(jwkPublic.alg).toBe('RS256');\n expect(jwkPublic.kid).toBeTruthy();\n expect(jwkPublic['d']).toBeFalsy();\n expect(jwkPublic['dp']).toBeFalsy();\n expect(jwkPublic['dq']).toBeFalsy();\n expect(jwkPublic.e).toBe('AQAB');\n expect(jwkPublic.n).toBeTruthy();\n expect(jwkPublic['p']).toBeFalsy();\n expect(jwkPublic['q']).toBeFalsy();\n expect(jwkPublic['qi']).toBeFalsy();\n });\n});\n\ndescribe('JoseOps - createJwks()', () => {\n test('createJwks() 0: Method is implemented', async () => {\n expect(Jose.createJwks).toBeDefined();\n });\n\n test('createJwks() 1: Create JWKS with 1 key', async () => {\n const jwk = await Jose.createJwkRsa();\n const jwks = await Jose.createJwks(jwk);\n expect(jwks).toBeTruthy();\n expect(jwks.keys).toBeTruthy();\n expect(jwks.keys.length).toBe(1);\n });\n\n test('createJwks() 2: Create JWKS with 2 keys', async () => {\n const jwk1 = await Jose.createJwkRsa();\n const jwk2 = await Jose.createJwkRsa();\n const jwks = await Jose.createJwks(jwk1, jwk2);\n expect(jwks).toBeTruthy();\n expect(jwks.keys).toBeTruthy();\n expect(jwks.keys.length).toBe(2);\n });\n});\n\ndescribe('JoseOps - createSignedJwtToken()', () => {\n test('createSignedJwtToken() 0: Method is implemented', async () => {\n expect(Jose.createSignedJwtToken).toBeDefined();\n });\n\n test('createSignedJwtToken() 1: Create signed JWT', async () => {\n // The audience is the URL of the access token in the realm for client, and must include the port number\n const u = parseUrl('https://openam-svcaccts-final.forgeblocks.com/am');\n const aud = `${u.origin}:${\n u.port ? u.port : u.protocol === 'https' ? '443' : '80'\n }${u.pathname}/oauth2/access_token`;\n\n // Cross platform way of setting JWT expiry time 3 minutes in the future, expressed as number of seconds since EPOCH\n const exp = Math.floor(new Date().getTime() / 1000 + 180);\n\n // A unique ID for the JWT which is required when requesting the openid scope\n const jti = v4();\n\n const iss = '0de8d0d8-e423-41e8-9034-73883af90917';\n const sub = iss;\n\n // Create the payload for our bearer token\n const payload = {\n iss,\n sub,\n aud,\n exp,\n jti,\n };\n const jwk = await Jose.createJwkRsa();\n const jwt = await Jose.createSignedJwtToken(payload, jwk);\n expect(jwt).toBeTruthy();\n expect(jwt.split('.').length).toBe(3);\n expect(\n isEqualJson(JSON.parse(decode(jwt.split('.')[1])), payload)\n ).toBeTruthy();\n });\n});\n\ndescribe('JoseOps - verifySignedJwtToken()', () => {\n test('verifySignedJwtToken() 0: Method is implemented', async () => {\n expect(Jose.verifySignedJwtToken).toBeDefined();\n });\n\n test('verifySignedJwtToken() 1: Verify signed JWT', async () => {\n // The audience is the URL of the access token in the realm for client, and must include the port number\n const u = parseUrl('https://openam-svcaccts-final.forgeblocks.com/am');\n const aud = `${u.origin}:${\n u.port ? u.port : u.protocol === 'https' ? '443' : '80'\n }${u.pathname}/oauth2/access_token`;\n\n // Cross platform way of setting JWT expiry time 3 minutes in the future, expressed as number of seconds since EPOCH\n const exp = Math.floor(new Date().getTime() / 1000 + 180);\n\n // A unique ID for the JWT which is required when requesting the openid scope\n const jti = v4();\n\n const iss = '0de8d0d8-e423-41e8-9034-73883af90917';\n const sub = iss;\n\n // Create the payload for our bearer token\n const payload = {\n iss,\n sub,\n aud,\n exp,\n jti,\n };\n const jwk = await Jose.createJwkRsa();\n const jwt = await Jose.createSignedJwtToken(payload, jwk);\n expect(jwt).toBeTruthy();\n const jwkPublic = await Jose.getJwkRsaPublic(jwk);\n const verifyResult = await Jose.verifySignedJwtToken(jwt, jwkPublic);\n expect(\n isEqualJson(JSON.parse(verifyResult.payload.toString()), payload)\n ).toBeTruthy();\n });\n});\n"],"mappings":"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"}