@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,92 +1,326 @@
1
1
  import axios from 'axios';
2
2
  import MockAdapter from 'axios-mock-adapter';
3
3
  import { Saml2, state } from '../index';
4
- import * as global from '../storage/StaticStorage';
5
- import { mockGetSaml2Providers, mockFindSaml2Providers, mockGetSaml2ProviderByLocationAndId, mockGetSaml2ProviderMetadata } from '../test/mocks/ForgeRockApiMockEngine';
4
+ import * as globalConfig from '../storage/StaticStorage';
5
+ import { Saml2ProiderLocation } from '../api/ApiTypes';
6
+ import { mockGetSaml2Providers, mockFindSaml2Providers, mockGetSaml2ProviderByLocationAndId, mockGetSaml2ProviderMetadata, mockGetScript, mockPutScript, getSaml2ProviderImportData, getSaml2ProvidersImportData } from '../test/mocks/ForgeRockApiMockEngine';
7
+ import { encodeBase64Url } from '../api/utils/Base64';
8
+ import { isEqualJson } from './utils/OpsUtils';
9
+ import { mockCreateSaml2Provider } from '../test/mocks/ForgeRockApiMockEngine';
10
+ import { convertTextArrayToBase64Url } from './utils/ExportImportUtils';
6
11
  const mock = new MockAdapter(axios);
7
- state.default.session.setTenant('https://openam-frodo-dev.forgeblocks.com/am');
8
- state.default.session.setRealm('alpha');
9
- state.default.session.setCookieName('cookieName');
10
- state.default.session.setCookieValue('cookieValue');
11
- state.default.session.setDeploymentType(global.CLOUD_DEPLOYMENT_TYPE_KEY);
12
- describe('Saml2Ops - listSaml2Providers()', () => {
13
- mockGetSaml2Providers(mock);
14
- test('listSaml2Providers() 0: Method is implemented', async () => {
15
- expect(Saml2.listSaml2Providers).toBeDefined();
16
- });
17
- test('listSaml2Providers() 1: List saml2 entity providers', async () => {
12
+ const outputHandler = message => {
13
+ console.log(message);
14
+ };
15
+ state.setHost('https://openam-volker-dev.forgeblocks.com/am');
16
+ state.setRealm('alpha');
17
+ state.setCookieName('cookieName');
18
+ state.setCookieValue('cookieValue');
19
+ state.setDeploymentType(globalConfig.CLOUD_DEPLOYMENT_TYPE_KEY);
20
+ state.setDebug(true);
21
+ state.setDebugHandler(outputHandler);
22
+ state.setPrintHandler(outputHandler);
23
+ describe('Saml2Ops - createSaml2ExportTemplate()', () => {
24
+ test('createSaml2ExportTemplate() 0: Method is implemented', async () => {
25
+ expect(Saml2.createSaml2ExportTemplate).toBeDefined();
26
+ });
27
+ test('createSaml2ExportTemplate() 1: Create saml2 export template', async () => {
28
+ const saml2Export = {
29
+ script: {},
30
+ saml: {
31
+ hosted: {},
32
+ remote: {},
33
+ metadata: {}
34
+ }
35
+ };
36
+ const response = Saml2.createSaml2ExportTemplate();
37
+ expect(isEqualJson(response, saml2Export, ['meta'])).toBeTruthy();
38
+ });
39
+ });
40
+ describe('Saml2Ops - getSaml2ProviderStubs()', () => {
41
+ test('getSaml2ProviderStubs() 0: Method is implemented', async () => {
42
+ expect(Saml2.getSaml2ProviderStubs).toBeDefined();
43
+ });
44
+ test('getSaml2ProviderStubs() 1: Get saml2 entity provider stubs', async () => {
18
45
  mockGetSaml2Providers(mock);
19
- expect.assertions(2);
20
- await Saml2.listSaml2Providers();
21
- expect(true).toBeTruthy();
46
+ const providers = await Saml2.getSaml2ProviderStubs();
47
+ expect(providers).toBeTruthy();
48
+ expect(providers.length).toBe(8);
49
+ });
50
+ });
51
+ describe('Saml2Ops - getProviderByLocationAndId()', () => {
52
+ test('getProviderByLocationAndId() 0: Method is implemented', async () => {
53
+ expect(Saml2.getProviderByLocationAndId).toBeDefined();
54
+ });
55
+ test('getProviderByLocationAndId() 1: Get hosted provider "iSPAzure"', async () => {
56
+ const location = Saml2ProiderLocation.HOSTED;
57
+ const entityId = 'iSPAzure';
58
+ const entityId64 = encodeBase64Url(entityId);
59
+ mockGetSaml2ProviderByLocationAndId(mock);
60
+ const provider = await Saml2.getProviderByLocationAndId(location, entityId64);
61
+ expect(provider).toBeTruthy();
62
+ expect(provider._id).toBe(entityId64);
63
+ expect(provider.entityId).toBe(entityId);
64
+ expect(provider.entityLocation).toBeFalsy();
65
+ expect(provider.roles).toBeFalsy();
66
+ });
67
+ test('getProviderByLocationAndId() 2: Get remote provider "urn:federation:MicrosoftOnline"', async () => {
68
+ const location = Saml2ProiderLocation.REMOTE;
69
+ const entityId = 'urn:federation:MicrosoftOnline';
70
+ const entityId64 = encodeBase64Url(entityId);
71
+ mockGetSaml2ProviderByLocationAndId(mock);
72
+ const provider = await Saml2.getProviderByLocationAndId(location, entityId64);
73
+ expect(provider).toBeTruthy();
74
+ expect(provider._id).toBe(entityId64);
75
+ expect(provider.entityId).toBe(entityId);
76
+ expect(provider.entityLocation).toBeFalsy();
77
+ expect(provider.roles).toBeFalsy();
22
78
  });
23
79
  });
24
- describe('Saml2Ops - exportSaml2ProviderToFile()', () => {
25
- test('exportSaml2ProviderToFile() 0: Method is implemented', async () => {
26
- expect(Saml2.exportSaml2ProviderToFile).toBeDefined();
80
+ describe('Saml2Ops - getProviderMetadataUrl()', () => {
81
+ test('getProviderMetadataUrl() 0: Method is implemented', async () => {
82
+ expect(Saml2.getProviderMetadataUrl).toBeDefined();
83
+ });
84
+ test('getProviderMetadataUrl() 1: Get metadata url for hosted entity provider "idp"', async () => {
85
+ const entityId = 'idp';
86
+ const metadataUrl = 'https://openam-volker-dev.forgeblocks.com/am/saml2/jsp/exportmetadata.jsp?entityid=idp&realm=alpha';
87
+ const result = Saml2.getProviderMetadataUrl(entityId);
88
+ expect(result).toBe(metadataUrl);
89
+ });
90
+ test('getProviderMetadataUrl() 2: Get metadata url for hosted entity provider "https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/"', async () => {
91
+ const entityId = 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/';
92
+ const metadataUrl = 'https://openam-volker-dev.forgeblocks.com/am/saml2/jsp/exportmetadata.jsp?entityid=https%3A%2F%2Fsts.windows.net%2F711ffa9c-5972-4713-ace3-688c9732614a%2F&realm=alpha';
93
+ const result = Saml2.getProviderMetadataUrl(entityId);
94
+ expect(result).toBe(metadataUrl);
27
95
  });
28
96
  });
29
- describe('Saml2Ops - exportSaml2Metadata()', () => {
30
- test('exportSaml2Metadata() 0: Method is implemented', async () => {
31
- expect(Saml2.exportSaml2Metadata).toBeDefined();
97
+ describe('Saml2Ops - getProviderMetadata()', () => {
98
+ test('getProviderMetadata() 0: Method is implemented', async () => {
99
+ expect(Saml2.getProviderMetadata).toBeDefined();
32
100
  });
33
- test('describeSaml2Provider() 1: Export hosted saml2 entity provider metadata', async () => {
101
+ test('getProviderMetadata() 1: Get metadata for hosted provider "iSPAzure"', async () => {
102
+ const entityId = 'iSPAzure';
103
+ const metaSub = '<EntityDescriptor entityID="iSPAzure" xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:query="urn:oasis:names:tc:SAML:metadata:ext:query" xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:xenc11="http://www.w3.org/2009/xmlenc11#" xmlns:alg="urn:oasis:names:tc:SAML:metadata:algsupport" xmlns:x509qry="urn:oasis:names:tc:SAML:metadata:X509:query" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">';
34
104
  mockGetSaml2ProviderMetadata(mock);
35
- expect.assertions(2);
36
- await Saml2.exportSaml2Metadata('iSPAzure');
37
- expect(true).toBeTruthy();
105
+ const metadata = await Saml2.getProviderMetadata(entityId);
106
+ expect(metadata).toBeTruthy();
107
+ expect(metadata.indexOf(metaSub)).toBeTruthy();
38
108
  });
39
- test('describeSaml2Provider() 2: Export remote saml2 entity provider metadata', async () => {
109
+ test('getProviderMetadata() 2: Get metadata for hosted provider "https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/"', async () => {
110
+ const entityId = 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/';
111
+ const metaSub = '<EntityDescriptor entityID="https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/" ID="_e5f839b8-1482-40ae-9261-b6eb35465a16" xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:query="urn:oasis:names:tc:SAML:metadata:ext:query" xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:xenc11="http://www.w3.org/2009/xmlenc11#" xmlns:alg="urn:oasis:names:tc:SAML:metadata:algsupport" xmlns:x509qry="urn:oasis:names:tc:SAML:metadata:X509:query" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">';
40
112
  mockGetSaml2ProviderMetadata(mock);
41
- expect.assertions(2);
42
- await Saml2.exportSaml2Metadata('urn:federation:MicrosoftOnline');
43
- expect(true).toBeTruthy();
113
+ const metadata = await Saml2.getProviderMetadata(entityId);
114
+ expect(metadata).toBeTruthy();
115
+ expect(metadata.indexOf(metaSub)).toBeTruthy();
44
116
  });
45
117
  });
46
- describe('Saml2Ops - describeSaml2Provider()', () => {
47
- test('describeSaml2Provider() 0: Method is implemented', async () => {
48
- expect(Saml2.describeSaml2Provider).toBeDefined();
118
+ describe('Saml2Ops - getSaml2ProviderStub()', () => {
119
+ test('getSaml2ProviderStub() 0: Method is implemented', async () => {
120
+ expect(Saml2.getSaml2ProviderStub).toBeDefined();
49
121
  });
50
- test('describeSaml2Provider() 1: Describe saml2 entity provider', async () => {
122
+ test('getSaml2ProviderStub() 1: Get stub of hosted provider "iSPAzure"', async () => {
123
+ const location = Saml2ProiderLocation.HOSTED;
124
+ const entityId = 'iSPAzure';
125
+ const entityId64 = encodeBase64Url(entityId);
51
126
  mockFindSaml2Providers(mock);
52
- mockGetSaml2ProviderByLocationAndId(mock);
53
- mockGetSaml2ProviderMetadata(mock);
54
- expect.assertions(2);
55
- await Saml2.describeSaml2Provider('iSPAzure');
56
- expect(true).toBeTruthy();
127
+ const stub = await Saml2.getSaml2ProviderStub(entityId);
128
+ expect(stub).toBeTruthy();
129
+ expect(stub._id).toBe(entityId64);
130
+ expect(stub.entityId).toBe(entityId);
131
+ expect(stub.location).toBe(location);
132
+ expect(stub.roles).toBeTruthy();
57
133
  });
58
- });
59
- describe('Saml2Ops - exportSaml2ProvidersToFile()', () => {
60
- test('exportSaml2ProvidersToFile() 0: Method is implemented', async () => {
61
- expect(Saml2.exportSaml2ProvidersToFile).toBeDefined();
134
+ test('getSaml2ProviderStub() 2: Get stub of remote provider "https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/"', async () => {
135
+ const location = Saml2ProiderLocation.REMOTE;
136
+ const entityId = 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/';
137
+ const entityId64 = encodeBase64Url(entityId);
138
+ mockFindSaml2Providers(mock);
139
+ const stub = await Saml2.getSaml2ProviderStub(entityId);
140
+ expect(stub).toBeTruthy();
141
+ expect(stub._id).toBe(entityId64);
142
+ expect(stub.entityId).toBe(entityId);
143
+ expect(stub.location).toBe(location);
144
+ expect(stub.roles).toBeTruthy();
62
145
  });
63
146
  });
64
- describe('Saml2Ops - exportSaml2ProvidersToFiles()', () => {
65
- test('exportSaml2ProvidersToFiles() 0: Method is implemented', async () => {
66
- expect(Saml2.exportSaml2ProvidersToFiles).toBeDefined();
147
+ describe('Saml2Ops - getSaml2Provider()', () => {
148
+ test('getSaml2Provider() 0: Method is implemented', async () => {
149
+ expect(Saml2.getSaml2Provider).toBeDefined();
150
+ });
151
+ test('getSaml2Provider() 1: Get hosted provider "iSPAzure"', async () => {
152
+ const entityId = 'iSPAzure';
153
+ const entityId64 = encodeBase64Url(entityId);
154
+ mockFindSaml2Providers(mock);
155
+ mockGetSaml2ProviderByLocationAndId(mock);
156
+ const provider = await Saml2.getSaml2Provider(entityId);
157
+ expect(provider).toBeTruthy();
158
+ expect(provider._id).toBe(entityId64);
159
+ expect(provider.entityId).toBe(entityId);
160
+ expect(provider.entityLocation).toBeFalsy();
161
+ expect(provider.location).toBeFalsy();
162
+ expect(provider.roles).toBeFalsy();
163
+ });
164
+ test('getSaml2Provider() 2: Get remote provider "https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/"', async () => {
165
+ const entityId = 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/';
166
+ const entityId64 = encodeBase64Url(entityId);
167
+ mockFindSaml2Providers(mock);
168
+ mockGetSaml2ProviderByLocationAndId(mock);
169
+ const provider = await Saml2.getSaml2Provider(entityId);
170
+ expect(provider).toBeTruthy();
171
+ expect(provider._id).toBe(entityId64);
172
+ expect(provider.entityId).toBe(entityId);
173
+ expect(provider.entityLocation).toBeFalsy();
174
+ expect(provider.location).toBeFalsy();
175
+ expect(provider.roles).toBeFalsy();
67
176
  });
68
177
  });
69
- describe('Saml2Ops - importSaml2ProviderFromFile()', () => {
70
- test('importSaml2ProviderFromFile() 0: Method is implemented', async () => {
71
- expect(Saml2.importSaml2ProviderFromFile).toBeDefined();
178
+ describe('Saml2Ops - exportSaml2Provider()', () => {
179
+ test('exportSaml2Provider() 0: Method is implemented', async () => {
180
+ expect(Saml2.exportSaml2Provider).toBeDefined();
181
+ });
182
+ test('exportSaml2Provider() 1: Export hosted provider "iSPAzure"', async () => {
183
+ const location = Saml2ProiderLocation.HOSTED;
184
+ const entityId = 'iSPAzure';
185
+ const entityId64 = encodeBase64Url(entityId);
186
+ mockFindSaml2Providers(mock);
187
+ mockGetSaml2ProviderByLocationAndId(mock);
188
+ mockGetSaml2ProviderMetadata(mock);
189
+ mockGetScript(mock);
190
+ const exportData = await Saml2.exportSaml2Provider(entityId);
191
+ expect(isEqualJson(exportData, Saml2.createSaml2ExportTemplate(), ['meta', 'script', 'hosted', 'remote', 'metadata'])).toBeTruthy();
192
+ expect(exportData.saml[location][entityId64]).toBeTruthy();
193
+ expect(exportData.saml.metadata[entityId64]).toBeTruthy();
194
+ expect(Object.keys(exportData.script).length).toBe(0);
195
+ });
196
+ test('exportSaml2Provider() 2: Export remote provider "https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/"', async () => {
197
+ const location = Saml2ProiderLocation.REMOTE;
198
+ const entityId = 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/';
199
+ const entityId64 = encodeBase64Url(entityId);
200
+ mockFindSaml2Providers(mock);
201
+ mockGetSaml2ProviderByLocationAndId(mock);
202
+ mockGetSaml2ProviderMetadata(mock);
203
+ mockGetScript(mock);
204
+ const exportData = await Saml2.exportSaml2Provider(entityId);
205
+ expect(isEqualJson(exportData, Saml2.createSaml2ExportTemplate(), ['meta', 'script', 'hosted', 'remote', 'metadata'])).toBeTruthy();
206
+ expect(exportData.saml[location][entityId64]).toBeTruthy();
207
+ expect(exportData.saml.metadata[entityId64]).toBeTruthy();
208
+ expect(Object.keys(exportData.script).length).toBe(0);
72
209
  });
73
210
  });
74
- describe('Saml2Ops - importFirstSaml2ProviderFromFile()', () => {
75
- test('importFirstSaml2ProviderFromFile() 0: Method is implemented', async () => {
76
- expect(Saml2.importFirstSaml2ProviderFromFile).toBeDefined();
211
+ describe('Saml2Ops - exportSaml2Providers()', () => {
212
+ test('exportSaml2Providers() 0: Method is implemented', async () => {
213
+ expect(Saml2.exportSaml2Providers).toBeDefined();
214
+ });
215
+ test('exportSaml2Providers() 1: Export saml2 entity providers', async () => {
216
+ mockGetSaml2Providers(mock);
217
+ mockGetSaml2ProviderByLocationAndId(mock);
218
+ mockGetSaml2ProviderMetadata(mock);
219
+ mockGetScript(mock);
220
+ const exportData = await Saml2.exportSaml2Providers();
221
+ expect(isEqualJson(exportData, Saml2.createSaml2ExportTemplate(), ['meta', 'script', 'hosted', 'remote', 'metadata'])).toBeTruthy();
222
+ expect(Object.entries(exportData.saml.hosted).length).toBe(5);
223
+ expect(Object.entries(exportData.saml.remote).length).toBe(3);
224
+ expect(Object.entries(exportData.saml.metadata).length).toBe(8);
225
+ expect(Object.keys(exportData.script).length).toBe(3);
77
226
  });
78
227
  });
79
- describe('Saml2Ops - importSaml2ProvidersFromFile()', () => {
80
- test('importSaml2ProvidersFromFile() 0: Method is implemented', async () => {
81
- expect(Saml2.importSaml2ProvidersFromFile).toBeDefined();
228
+ describe('Saml2Ops - importSaml2Provider()', () => {
229
+ test('importSaml2Provider() 0: Method is implemented', async () => {
230
+ expect(Saml2.importSaml2Provider).toBeDefined();
231
+ });
232
+ test('importSaml2Provider() 1: Import hosted provider "https://idc.scheuber.io/am/saml2/IDPAzure"', async () => {
233
+ const entityLocation = Saml2ProiderLocation.HOSTED;
234
+ const entityId = 'https://idc.scheuber.io/am/saml2/IDPAzure';
235
+ const entityId64 = encodeBase64Url(entityId);
236
+ const importData = getSaml2ProviderImportData(entityId);
237
+ mockPutScript(mock, (mockScriptId, mockScriptObj) => {
238
+ expect(Object.keys(importData.script)).toContain(mockScriptId);
239
+ expect(mockScriptObj._id).toEqual(mockScriptId);
240
+ });
241
+ mockCreateSaml2Provider(mock, (mockSaml2ProviderId64, mockSaml2ProviderLocation, mockSaml2ProviderObj) => {
242
+ expect(mockSaml2ProviderId64).toEqual(entityId64);
243
+ expect(mockSaml2ProviderLocation).toEqual(entityLocation);
244
+ expect(isEqualJson(importData.saml[entityLocation][entityId64], mockSaml2ProviderObj, ['_rev'])).toBeTruthy();
245
+ });
246
+ // expect 5 assertions because import contains 1 script
247
+ expect.assertions(5);
248
+ await Saml2.importSaml2Provider(entityId, importData);
249
+ });
250
+ test('importSaml2Provider() 2: Import hosted provider "https://idc.scheuber.io/am/saml2/IDPBroadcom"', async () => {
251
+ const entityLocation = Saml2ProiderLocation.HOSTED;
252
+ const entityId = 'https://idc.scheuber.io/am/saml2/IDPBroadcom';
253
+ const entityId64 = encodeBase64Url(entityId);
254
+ const importData = getSaml2ProviderImportData(entityId);
255
+ mockPutScript(mock, (mockScriptId, mockScriptObj) => {
256
+ expect(Object.keys(importData.script)).toContain(mockScriptId);
257
+ expect(mockScriptObj._id).toEqual(mockScriptId);
258
+ });
259
+ mockCreateSaml2Provider(mock, (mockSaml2ProviderId64, mockSaml2ProviderLocation, mockSaml2ProviderObj) => {
260
+ expect(mockSaml2ProviderId64).toEqual(entityId64);
261
+ expect(mockSaml2ProviderLocation).toEqual(entityLocation);
262
+ expect(isEqualJson(importData.saml[entityLocation][entityId64], mockSaml2ProviderObj, ['_rev'])).toBeTruthy();
263
+ });
264
+ // expect 7 assertions because import contains 2 scripts
265
+ expect.assertions(7);
266
+ await Saml2.importSaml2Provider(entityId, importData);
267
+ });
268
+ test('importSaml2Provider() 3: Import remote provider "https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/" with metadata', async () => {
269
+ const entityLocation = Saml2ProiderLocation.REMOTE;
270
+ const entityId = 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/';
271
+ const entityId64 = encodeBase64Url(entityId);
272
+ const importData = getSaml2ProviderImportData(entityId);
273
+ mockPutScript(mock, (mockScriptId, mockScriptObj) => {
274
+ expect(Object.keys(importData.script)).toContain(mockScriptId);
275
+ expect(mockScriptObj._id).toEqual(mockScriptId);
276
+ });
277
+ mockCreateSaml2Provider(mock, (mockSaml2ProviderId64, mockSaml2ProviderLocation, mockSaml2ProviderObj) => {
278
+ expect(mockSaml2ProviderId64).toEqual(entityId64);
279
+ expect(mockSaml2ProviderLocation).toEqual(entityLocation);
280
+ // this is an import of a remote identity provider, which can only be done using SAML2 metadata
281
+ expect(mockSaml2ProviderObj.standardMetadata).toEqual(convertTextArrayToBase64Url(importData.saml.metadata[entityId64]));
282
+ });
283
+ // expect only 3 assertions because import contains no scripts
284
+ expect.assertions(3);
285
+ await Saml2.importSaml2Provider(entityId, importData);
82
286
  });
83
287
  });
84
- describe('Saml2Ops - importSaml2ProvidersFromFiles()', () => {
85
- test('importSaml2ProvidersFromFiles() 0: Method is implemented', async () => {
86
- expect(Saml2.importSaml2ProvidersFromFiles).toBeDefined();
288
+ describe('Saml2Ops - importSaml2Providers()', () => {
289
+ test('importSaml2Providers() 0: Method is implemented', async () => {
290
+ expect(Saml2.importSaml2Providers).toBeDefined();
87
291
  });
88
- }); // Test contributions
89
-
292
+ test('importSaml2Providers() 1: Import providers', async () => {
293
+ const importData = getSaml2ProvidersImportData();
294
+ let scriptIds = Object.keys(importData.script);
295
+ let hostedEntityIds64 = Object.keys(importData.saml.hosted);
296
+ let remoteEntityIds64 = Object.keys(importData.saml.remote);
297
+ const allEntityIds64 = hostedEntityIds64.concat(remoteEntityIds64);
298
+ let metaDataIds64 = Object.keys(importData.saml.metadata);
299
+ mockPutScript(mock, (mockScriptId, mockScriptObj) => {
300
+ expect(scriptIds).toContain(mockScriptId);
301
+ expect(mockScriptObj._id).toEqual(mockScriptId);
302
+ scriptIds = scriptIds.filter(scriptId => scriptId !== mockScriptId);
303
+ });
304
+ mockCreateSaml2Provider(mock, (mockSaml2ProviderId64, mockSaml2ProviderLocation, mockSaml2ProviderObj) => {
305
+ expect(allEntityIds64).toContain(mockSaml2ProviderId64);
306
+ expect(mockSaml2ProviderLocation).toEqual(hostedEntityIds64.includes(mockSaml2ProviderId64) ? Saml2ProiderLocation.HOSTED : Saml2ProiderLocation.REMOTE);
307
+ // for hosted providers compare the provider config, for remote providers compare the metadata
308
+ expect(isEqualJson(importData.saml[mockSaml2ProviderLocation][mockSaml2ProviderId64], mockSaml2ProviderObj, ['_rev']) || mockSaml2ProviderObj.standardMetadata === convertTextArrayToBase64Url(importData.saml.metadata[mockSaml2ProviderId64])).toBeTruthy();
309
+ hostedEntityIds64 = hostedEntityIds64.filter(saml2ProviderId64 => saml2ProviderId64 !== mockSaml2ProviderId64);
310
+ remoteEntityIds64 = remoteEntityIds64.filter(saml2ProviderId64 => saml2ProviderId64 !== mockSaml2ProviderId64);
311
+ if (mockSaml2ProviderObj.standardMetadata) {
312
+ metaDataIds64 = metaDataIds64.filter(saml2ProviderId64 => saml2ProviderId64 !== mockSaml2ProviderId64);
313
+ }
314
+ });
315
+ expect.assertions(40);
316
+ await Saml2.importSaml2Providers(importData);
317
+ expect(scriptIds.length).toBe(0);
318
+ expect(hostedEntityIds64.length).toBe(0);
319
+ expect(remoteEntityIds64.length).toBe(0);
320
+ // frodo exports metadata for both hosted and remote providers but on import it is only required for remote providers
321
+ expect(metaDataIds64.length).toBe(6);
322
+ });
323
+ });
90
324
  describe('Saml2Ops - deleteSaml2Provider()', () => {
91
325
  test('deleteSaml2Provider() 0: Method is implemented', async () => {
92
326
  expect(Saml2.deleteSaml2Provider).toBeDefined();
@@ -97,34 +331,19 @@ describe('Saml2Ops - deleteSaml2Providers()', () => {
97
331
  expect(Saml2.deleteSaml2Providers).toBeDefined();
98
332
  });
99
333
  });
100
- describe('Saml2Ops - exportRawSaml2ProviderToFile()', () => {
101
- test('exportRawSaml2ProviderToFile() 0: Method is implemented', async () => {
102
- expect(Saml2.exportRawSaml2ProviderToFile).toBeDefined();
103
- });
104
- });
105
- describe('Saml2Ops - exportRawSaml2ProvidersToFile()', () => {
106
- test('exportRawSaml2ProvidersToFile() 0: Method is implemented', async () => {
107
- expect(Saml2.exportRawSaml2ProvidersToFile).toBeDefined();
108
- });
109
- });
110
- describe('Saml2Ops - exportRawSaml2ProvidersToFiles()', () => {
111
- test('exportRawSaml2ProvidersToFiles() 0: Method is implemented', async () => {
112
- expect(Saml2.exportRawSaml2ProvidersToFiles).toBeDefined();
113
- });
114
- });
115
- describe('Saml2Ops - importRawSaml2ProvidersFromFile()', () => {
116
- test('importRawSaml2ProvidersFromFile() 0: Method is implemented', async () => {
117
- expect(Saml2.importRawSaml2ProvidersFromFile).toBeDefined();
334
+ describe('Saml2Ops - getRawProviders()', () => {
335
+ test('getRawProviders() 0: Method is implemented', async () => {
336
+ expect(Saml2.getRawProviders).toBeDefined();
118
337
  });
119
338
  });
120
- describe('Saml2Ops - importRawSaml2ProvidersFromFiles()', () => {
121
- test('importRawSaml2ProvidersFromFiles() 0: Method is implemented', async () => {
122
- expect(Saml2.importRawSaml2ProvidersFromFiles).toBeDefined();
339
+ describe('Saml2Ops - getRawProvider()', () => {
340
+ test('getRawProvider() 0: Method is implemented', async () => {
341
+ expect(Saml2.getRawProvider).toBeDefined();
123
342
  });
124
343
  });
125
- describe('Saml2Ops - importRawSaml2ProviderFromFile()', () => {
126
- test('importRawSaml2ProviderFromFile() 0: Method is implemented', async () => {
127
- expect(Saml2.importRawSaml2ProviderFromFile).toBeDefined();
344
+ describe('Saml2Ops - putRawProvider()', () => {
345
+ test('putRawProvider() 0: Method is implemented', async () => {
346
+ expect(Saml2.putRawProvider).toBeDefined();
128
347
  });
129
348
  });
130
349
  //# sourceMappingURL=Saml2Ops.test.js.map
@@ -5,16 +5,15 @@ import { createProgressIndicator, createTable, printMessage, stopProgressIndicat
5
5
  import { getScriptByName, getScripts, putScript } from '../api/ScriptApi';
6
6
  import wordwrap from './utils/Wordwrap';
7
7
  import { convertBase64TextToArray, convertTextArrayToBase64, getTypedFilename, saveToFile, titleCase, validateImport } from './utils/ExportImportUtils';
8
- import storage from '../storage/SessionStorage';
8
+ import * as state from '../shared/State';
9
+
9
10
  /**
10
11
  * List scripts
11
12
  */
12
-
13
13
  export async function listScripts(long = false) {
14
14
  try {
15
15
  const scripts = (await getScripts()).result;
16
16
  scripts.sort((a, b) => a.name.localeCompare(b.name));
17
-
18
17
  if (long) {
19
18
  const table = createTable(['Name', 'UUID', 'Language', 'Context', 'Description']);
20
19
  const langMap = {
@@ -34,93 +33,83 @@ export async function listScripts(long = false) {
34
33
  printMessage(`Error listing scripts - ${error}`, 'error');
35
34
  }
36
35
  }
36
+
37
37
  /**
38
38
  * Export script to file
39
39
  * @param {String} name script name
40
40
  * @param {String} file file name
41
41
  */
42
-
43
42
  export async function exportScriptByName(name, file) {
44
43
  let fileName = getTypedFilename(name, 'script');
45
-
46
44
  if (file) {
47
45
  fileName = file;
48
46
  }
49
-
50
47
  const scriptData = (await getScriptByName(name)).result;
51
-
52
48
  if (scriptData.length > 1) {
53
49
  printMessage(`Multiple scripts with name ${name} found...`, 'error');
54
50
  }
55
-
56
51
  scriptData.forEach(element => {
57
- const scriptTextArray = convertBase64TextToArray(element.script); // eslint-disable-next-line no-param-reassign
58
-
52
+ const scriptTextArray = convertBase64TextToArray(element.script);
53
+ // eslint-disable-next-line no-param-reassign
59
54
  element.script = scriptTextArray;
60
55
  });
61
56
  saveToFile('script', scriptData, '_id', fileName);
62
57
  }
58
+
63
59
  /**
64
60
  * Export all scripts to single file
65
61
  * @param {String} file file name
66
62
  */
67
-
68
63
  export async function exportScriptsToFile(file) {
69
- let fileName = getTypedFilename(`all${storage.session.getRealm()}Scripts`, 'script');
70
-
64
+ let fileName = getTypedFilename(`all${state.getRealm()}Scripts`, 'script');
71
65
  if (file) {
72
66
  fileName = file;
73
67
  }
74
-
75
68
  const scriptList = (await getScripts()).result;
76
69
  const allScriptsData = [];
77
70
  createProgressIndicator(scriptList.length, 'Exporting script');
78
-
79
71
  for (const item of scriptList) {
80
- updateProgressIndicator(`Reading script ${item.name}`); // eslint-disable-next-line no-await-in-loop
81
-
72
+ updateProgressIndicator(`Reading script ${item.name}`);
73
+ // eslint-disable-next-line no-await-in-loop
82
74
  const scriptData = (await getScriptByName(item.name)).result;
83
75
  scriptData.forEach(element => {
84
- const scriptTextArray = convertBase64TextToArray(element.script); // eslint-disable-next-line no-param-reassign
85
-
76
+ const scriptTextArray = convertBase64TextToArray(element.script);
77
+ // eslint-disable-next-line no-param-reassign
86
78
  element.script = scriptTextArray;
87
79
  allScriptsData.push(element);
88
80
  });
89
81
  }
90
-
91
82
  stopProgressIndicator('Done');
92
83
  saveToFile('script', allScriptsData, '_id', fileName);
93
84
  }
85
+
94
86
  /**
95
87
  * Export all scripts to individual files
96
88
  */
97
-
98
89
  export async function exportScriptsToFiles() {
99
90
  const scriptList = (await getScripts()).result;
100
91
  createProgressIndicator(scriptList.length, 'Exporting script');
101
-
102
92
  for (const item of scriptList) {
103
- updateProgressIndicator(`Reading script ${item.name}`); // eslint-disable-next-line no-await-in-loop
104
-
93
+ updateProgressIndicator(`Reading script ${item.name}`);
94
+ // eslint-disable-next-line no-await-in-loop
105
95
  const scriptData = (await getScriptByName(item.name)).result;
106
96
  scriptData.forEach(element => {
107
- const scriptTextArray = convertBase64TextToArray(element.script); // eslint-disable-next-line no-param-reassign
108
-
97
+ const scriptTextArray = convertBase64TextToArray(element.script);
98
+ // eslint-disable-next-line no-param-reassign
109
99
  element.script = scriptTextArray;
110
100
  });
111
101
  const fileName = getTypedFilename(item.name, 'script');
112
102
  saveToFile('script', scriptData, '_id', fileName);
113
103
  }
114
-
115
104
  stopProgressIndicator('Done');
116
105
  }
106
+
117
107
  /**
118
108
  * Import script
119
109
  * @param {String} id script uuid
120
110
  * @param {Object} data script object
121
111
  * @returns {Object} a status object
122
112
  */
123
-
124
113
  export async function createOrUpdateScript(id, data) {
125
114
  try {
126
115
  await putScript(id, data);
@@ -129,12 +118,13 @@ export async function createOrUpdateScript(id, data) {
129
118
  name: data.name
130
119
  };
131
120
  } catch (e) {
132
- if (e.response.status === 409) {
121
+ var _e$response;
122
+ if (((_e$response = e.response) === null || _e$response === void 0 ? void 0 : _e$response.status) === 409) {
133
123
  printMessage(`createOrUpdateScript WARNING: script with name ${data.name} already exists, using renaming policy... <name> => <name - imported (n)>`, 'warn');
134
- const newName = applyNameCollisionPolicy(data.name); // console.log(newName);
135
-
136
- printMessage(`Trying to save script as ${newName}`, 'warn'); // eslint-disable-next-line no-param-reassign
137
-
124
+ const newName = applyNameCollisionPolicy(data.name);
125
+ // console.log(newName);
126
+ printMessage(`Trying to save script as ${newName}`, 'warn');
127
+ // eslint-disable-next-line no-param-reassign
138
128
  data.name = newName;
139
129
  await createOrUpdateScript(id, data);
140
130
  return {
@@ -142,7 +132,6 @@ export async function createOrUpdateScript(id, data) {
142
132
  name: data.name
143
133
  };
144
134
  }
145
-
146
135
  printMessage(`createOrUpdateScript ERROR: put script error, script ${id} - ${e.message}`, 'error');
147
136
  return {
148
137
  error: true,
@@ -154,42 +143,37 @@ export async function importScriptsFromFile(name, file, reUuid = false) {
154
143
  fs.readFile(file, 'utf8', (err, data) => {
155
144
  if (err) throw err;
156
145
  const scriptData = JSON.parse(data);
157
-
158
146
  if (validateImport(scriptData.meta)) {
159
147
  createProgressIndicator(Object.keys(scriptData.script).length, '');
160
-
161
148
  for (const existingId in scriptData.script) {
162
149
  if ({}.hasOwnProperty.call(scriptData.script, existingId)) {
163
- let newId = existingId; // console.log(id);
164
-
150
+ let newId = existingId;
151
+ // console.log(id);
165
152
  const encodedScript = convertTextArrayToBase64(scriptData.script[existingId].script);
166
153
  scriptData.script[existingId].script = encodedScript;
167
-
168
154
  if (reUuid) {
169
- newId = uuidv4(); // printMessage(
155
+ newId = uuidv4();
156
+ // printMessage(
170
157
  // `Re-uuid-ing script ${scriptData.script[existingId].name} ${existingId} => ${newId}...`
171
158
  // );
172
-
173
159
  scriptData.script[existingId]._id = newId;
174
160
  }
175
-
176
161
  if (name) {
177
162
  // printMessage(
178
163
  // `Renaming script ${scriptData.script[existingId].name} => ${options.script}...`
179
164
  // );
180
165
  scriptData.script[existingId].name = name;
181
166
  }
182
-
183
- updateProgressIndicator(`Importing ${scriptData.script[existingId].name}`); // console.log(scriptData.script[id]);
184
-
167
+ updateProgressIndicator(`Importing ${scriptData.script[existingId].name}`);
168
+ // console.log(scriptData.script[id]);
185
169
  createOrUpdateScript(newId, scriptData.script[existingId]).then(result => {
186
170
  if (result == null) printMessage(`Error importing ${scriptData.script[existingId].name}`, 'error');
187
171
  });
188
172
  if (name) break;
189
173
  }
190
174
  }
191
-
192
- stopProgressIndicator('Done'); // printMessage('Done');
175
+ stopProgressIndicator('Done');
176
+ // printMessage('Done');
193
177
  } else {
194
178
  printMessage('Import validation failed...', 'error');
195
179
  }