@rockcarver/frodo-lib 2.0.0-13 → 2.0.0-14

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 (398) hide show
  1. package/build.zip +0 -0
  2. package/cjs/api/AgentApi.js.map +1 -1
  3. package/cjs/api/AuthenticateApi.js.map +1 -1
  4. package/cjs/api/BaseApi.js +1 -1
  5. package/cjs/api/BaseApi.js.map +1 -1
  6. package/cjs/api/CirclesOfTrustApi.js.map +1 -1
  7. package/cjs/api/IdmConfigApi.js.map +1 -1
  8. package/cjs/api/IdmSystemApi.js.map +1 -1
  9. package/cjs/api/ManagedObjectApi.js.map +1 -1
  10. package/cjs/api/NodeApi.js.map +1 -1
  11. package/cjs/api/OAuth2ClientApi.js.map +1 -1
  12. package/cjs/api/OAuth2OIDCApi.js.map +1 -1
  13. package/cjs/api/OAuth2OIDCApi.test.js +2 -2
  14. package/cjs/api/OAuth2OIDCApi.test.js.map +1 -1
  15. package/cjs/api/OAuth2ProviderApi.js.map +1 -1
  16. package/cjs/api/PoliciesApi.js.map +1 -1
  17. package/cjs/api/PolicySetApi.js.map +1 -1
  18. package/cjs/api/RealmApi.js.map +1 -1
  19. package/cjs/api/ResourceTypesApi.js.map +1 -1
  20. package/cjs/api/Saml2Api.js.map +1 -1
  21. package/cjs/api/ScriptApi.js.map +1 -1
  22. package/cjs/api/ServerInfoApi.js.map +1 -1
  23. package/cjs/api/ServiceApi.js.map +1 -1
  24. package/cjs/api/SocialIdentityProvidersApi.js.map +1 -1
  25. package/cjs/api/TreeApi.js.map +1 -1
  26. package/cjs/api/cloud/AdminFederationProvidersApi.js.map +1 -1
  27. package/cjs/api/cloud/EnvInfoApi.js.map +1 -1
  28. package/cjs/api/cloud/FeatureApi.js.map +1 -1
  29. package/cjs/api/cloud/LogApi.js.map +1 -1
  30. package/cjs/api/cloud/SecretsApi.js.map +1 -1
  31. package/cjs/api/cloud/StartupApi.js.map +1 -1
  32. package/cjs/api/cloud/VariablesApi.js.map +1 -1
  33. package/cjs/api/utils/ApiUtils.js.map +1 -1
  34. package/cjs/api/utils/Base64.js +4 -4
  35. package/cjs/api/utils/Base64.js.map +1 -1
  36. package/cjs/index.js.map +1 -1
  37. package/cjs/lib/Frodo.js +9 -2
  38. package/cjs/lib/Frodo.js.map +1 -1
  39. package/cjs/lib/FrodoLib.js +17 -20
  40. package/cjs/lib/FrodoLib.js.map +1 -1
  41. package/cjs/ops/AdminOps.js.map +1 -1
  42. package/cjs/ops/AgentOps.js +35 -35
  43. package/cjs/ops/AgentOps.js.map +1 -1
  44. package/cjs/ops/AuthenticateOps.js +10 -12
  45. package/cjs/ops/AuthenticateOps.js.map +1 -1
  46. package/cjs/ops/CirclesOfTrustOps.js +14 -14
  47. package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
  48. package/cjs/ops/ConnectionProfileOps.js +2 -2
  49. package/cjs/ops/ConnectionProfileOps.js.map +1 -1
  50. package/cjs/ops/ConnectionProfileOps.test.js +5 -5
  51. package/cjs/ops/ConnectionProfileOps.test.js.map +1 -1
  52. package/cjs/ops/EmailTemplateOps.js.map +1 -1
  53. package/cjs/ops/IdmOps.js.map +1 -1
  54. package/cjs/ops/IdpOps.js.map +1 -1
  55. package/cjs/ops/InfoOps.js +3 -4
  56. package/cjs/ops/InfoOps.js.map +1 -1
  57. package/cjs/ops/JoseOps.js +30 -0
  58. package/cjs/ops/JoseOps.js.map +1 -1
  59. package/cjs/ops/JourneyOps.js +41 -43
  60. package/cjs/ops/JourneyOps.js.map +1 -1
  61. package/cjs/ops/JourneyOps.test.js +3 -2
  62. package/cjs/ops/JourneyOps.test.js.map +1 -1
  63. package/cjs/ops/ManagedObjectOps.js.map +1 -1
  64. package/cjs/ops/NodeOps.js.map +1 -1
  65. package/cjs/ops/OAuth2ClientOps.js +19 -19
  66. package/cjs/ops/OAuth2ClientOps.js.map +1 -1
  67. package/cjs/ops/OAuth2OidcOps.js.map +1 -1
  68. package/cjs/ops/OAuth2ProviderOps.js.map +1 -1
  69. package/cjs/ops/OpsTypes.js.map +1 -1
  70. package/cjs/ops/OrganizationOps.js.map +1 -1
  71. package/cjs/ops/PolicyOps.js +29 -29
  72. package/cjs/ops/PolicyOps.js.map +1 -1
  73. package/cjs/ops/PolicySetOps.js +27 -27
  74. package/cjs/ops/PolicySetOps.js.map +1 -1
  75. package/cjs/ops/RealmOps.js.map +1 -1
  76. package/cjs/ops/ResourceTypeOps.js +23 -23
  77. package/cjs/ops/ResourceTypeOps.js.map +1 -1
  78. package/cjs/ops/Saml2Ops.js +11 -11
  79. package/cjs/ops/Saml2Ops.js.map +1 -1
  80. package/cjs/ops/Saml2Ops.test.js +3 -2
  81. package/cjs/ops/Saml2Ops.test.js.map +1 -1
  82. package/cjs/ops/ScriptOps.js +3 -3
  83. package/cjs/ops/ScriptOps.js.map +1 -1
  84. package/cjs/ops/ServiceOps.js.map +1 -1
  85. package/cjs/ops/ThemeOps.js.map +1 -1
  86. package/cjs/ops/cloud/AdminFederationOps.js.map +1 -1
  87. package/cjs/ops/cloud/FeatureOps.js.map +1 -1
  88. package/cjs/ops/cloud/LogOps.js.map +1 -1
  89. package/cjs/ops/cloud/SecretsOps.js.map +1 -1
  90. package/cjs/ops/cloud/ServiceAccountOps.js +1 -1
  91. package/cjs/ops/cloud/ServiceAccountOps.js.map +1 -1
  92. package/cjs/ops/cloud/StartupOps.js.map +1 -1
  93. package/cjs/ops/cloud/VariablesOps.js.map +1 -1
  94. package/cjs/ops/utils/Console.js.map +1 -1
  95. package/cjs/ops/utils/DataProtection.js +3 -3
  96. package/cjs/ops/utils/DataProtection.js.map +1 -1
  97. package/cjs/ops/utils/DataProtection.test.js +1 -1
  98. package/cjs/ops/utils/DataProtection.test.js.map +1 -1
  99. package/cjs/ops/utils/ExportImportUtils.js +2 -2
  100. package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
  101. package/cjs/ops/utils/OpsUtils.js +105 -25
  102. package/cjs/ops/utils/OpsUtils.js.map +1 -1
  103. package/cjs/ops/utils/OpsUtils.test.js +6 -5
  104. package/cjs/ops/utils/OpsUtils.test.js.map +1 -1
  105. package/cjs/ops/utils/ScriptValidationUtils.js +33 -2
  106. package/cjs/ops/utils/ScriptValidationUtils.js.map +1 -1
  107. package/cjs/ops/utils/ScriptValidationUtils.test.js +1 -1
  108. package/cjs/ops/utils/ScriptValidationUtils.test.js.map +1 -1
  109. package/cjs/ops/utils/{Version.js → VersionUtils.js} +1 -1
  110. package/cjs/ops/utils/VersionUtils.js.map +1 -0
  111. package/cjs/ops/utils/{Version.test.js → VersionUtils.test.js} +3 -3
  112. package/cjs/ops/utils/VersionUtils.test.js.map +1 -0
  113. package/cjs/shared/Constants.js +34 -0
  114. package/cjs/shared/Constants.js.map +1 -0
  115. package/cjs/shared/State.js +477 -220
  116. package/cjs/shared/State.js.map +1 -1
  117. package/cjs/utils/SetupPollyForFrodoLib.js.map +1 -1
  118. package/esm/api/AgentApi.js.map +1 -1
  119. package/esm/api/AuthenticateApi.js.map +1 -1
  120. package/esm/api/BaseApi.js +2 -2
  121. package/esm/api/BaseApi.js.map +1 -1
  122. package/esm/api/CirclesOfTrustApi.js.map +1 -1
  123. package/esm/api/IdmConfigApi.js.map +1 -1
  124. package/esm/api/IdmSystemApi.js.map +1 -1
  125. package/esm/api/ManagedObjectApi.js.map +1 -1
  126. package/esm/api/NodeApi.js.map +1 -1
  127. package/esm/api/OAuth2ClientApi.js.map +1 -1
  128. package/esm/api/OAuth2OIDCApi.js.map +1 -1
  129. package/esm/api/OAuth2OIDCApi.test.js +2 -2
  130. package/esm/api/OAuth2OIDCApi.test.js.map +1 -1
  131. package/esm/api/OAuth2ProviderApi.js.map +1 -1
  132. package/esm/api/PoliciesApi.js.map +1 -1
  133. package/esm/api/PolicySetApi.js.map +1 -1
  134. package/esm/api/RealmApi.js.map +1 -1
  135. package/esm/api/ResourceTypesApi.js.map +1 -1
  136. package/esm/api/Saml2Api.js.map +1 -1
  137. package/esm/api/ScriptApi.js.map +1 -1
  138. package/esm/api/ServerInfoApi.js.map +1 -1
  139. package/esm/api/ServiceApi.js.map +1 -1
  140. package/esm/api/SocialIdentityProvidersApi.js.map +1 -1
  141. package/esm/api/TreeApi.js.map +1 -1
  142. package/esm/api/cloud/AdminFederationProvidersApi.js.map +1 -1
  143. package/esm/api/cloud/EnvInfoApi.js.map +1 -1
  144. package/esm/api/cloud/FeatureApi.js.map +1 -1
  145. package/esm/api/cloud/LogApi.js.map +1 -1
  146. package/esm/api/cloud/SecretsApi.js.map +1 -1
  147. package/esm/api/cloud/StartupApi.js.map +1 -1
  148. package/esm/api/cloud/VariablesApi.js.map +1 -1
  149. package/esm/api/utils/ApiUtils.js.map +1 -1
  150. package/esm/api/utils/Base64.js +4 -4
  151. package/esm/api/utils/Base64.js.map +1 -1
  152. package/esm/index.js +13 -1
  153. package/esm/index.js.map +1 -1
  154. package/esm/lib/Frodo.js +9 -2
  155. package/esm/lib/Frodo.js.map +1 -1
  156. package/esm/lib/FrodoLib.js +12 -16
  157. package/esm/lib/FrodoLib.js.map +1 -1
  158. package/esm/ops/AdminOps.js.map +1 -1
  159. package/esm/ops/AgentOps.js.map +1 -1
  160. package/esm/ops/AuthenticateOps.js +10 -10
  161. package/esm/ops/AuthenticateOps.js.map +1 -1
  162. package/esm/ops/CirclesOfTrustOps.js.map +1 -1
  163. package/esm/ops/ConnectionProfileOps.js +2 -2
  164. package/esm/ops/ConnectionProfileOps.js.map +1 -1
  165. package/esm/ops/ConnectionProfileOps.test.js +5 -5
  166. package/esm/ops/ConnectionProfileOps.test.js.map +1 -1
  167. package/esm/ops/EmailTemplateOps.js.map +1 -1
  168. package/esm/ops/IdmOps.js.map +1 -1
  169. package/esm/ops/IdpOps.js.map +1 -1
  170. package/esm/ops/InfoOps.js +2 -2
  171. package/esm/ops/InfoOps.js.map +1 -1
  172. package/esm/ops/JoseOps.js +20 -0
  173. package/esm/ops/JoseOps.js.map +1 -1
  174. package/esm/ops/JourneyOps.js +10 -11
  175. package/esm/ops/JourneyOps.js.map +1 -1
  176. package/esm/ops/JourneyOps.test.js +2 -2
  177. package/esm/ops/JourneyOps.test.js.map +1 -1
  178. package/esm/ops/ManagedObjectOps.js.map +1 -1
  179. package/esm/ops/NodeOps.js.map +1 -1
  180. package/esm/ops/OAuth2ClientOps.js.map +1 -1
  181. package/esm/ops/OAuth2OidcOps.js.map +1 -1
  182. package/esm/ops/OAuth2ProviderOps.js.map +1 -1
  183. package/esm/ops/OpsTypes.js.map +1 -1
  184. package/esm/ops/OrganizationOps.js.map +1 -1
  185. package/esm/ops/PolicyOps.js.map +1 -1
  186. package/esm/ops/PolicySetOps.js.map +1 -1
  187. package/esm/ops/RealmOps.js.map +1 -1
  188. package/esm/ops/ResourceTypeOps.js.map +1 -1
  189. package/esm/ops/Saml2Ops.js.map +1 -1
  190. package/esm/ops/Saml2Ops.test.js +2 -2
  191. package/esm/ops/Saml2Ops.test.js.map +1 -1
  192. package/esm/ops/ScriptOps.js.map +1 -1
  193. package/esm/ops/ServiceOps.js.map +1 -1
  194. package/esm/ops/ThemeOps.js.map +1 -1
  195. package/esm/ops/cloud/AdminFederationOps.js.map +1 -1
  196. package/esm/ops/cloud/FeatureOps.js.map +1 -1
  197. package/esm/ops/cloud/LogOps.js.map +1 -1
  198. package/esm/ops/cloud/SecretsOps.js.map +1 -1
  199. package/esm/ops/cloud/ServiceAccountOps.js +1 -1
  200. package/esm/ops/cloud/ServiceAccountOps.js.map +1 -1
  201. package/esm/ops/cloud/StartupOps.js.map +1 -1
  202. package/esm/ops/cloud/VariablesOps.js.map +1 -1
  203. package/esm/ops/utils/Console.js.map +1 -1
  204. package/esm/ops/utils/DataProtection.js +3 -3
  205. package/esm/ops/utils/DataProtection.js.map +1 -1
  206. package/esm/ops/utils/DataProtection.test.js +2 -2
  207. package/esm/ops/utils/DataProtection.test.js.map +1 -1
  208. package/esm/ops/utils/ExportImportUtils.js +2 -2
  209. package/esm/ops/utils/ExportImportUtils.js.map +1 -1
  210. package/esm/ops/utils/OpsUtils.js +96 -22
  211. package/esm/ops/utils/OpsUtils.js.map +1 -1
  212. package/esm/ops/utils/OpsUtils.test.js +5 -5
  213. package/esm/ops/utils/OpsUtils.test.js.map +1 -1
  214. package/esm/ops/utils/ScriptValidationUtils.js +28 -0
  215. package/esm/ops/utils/ScriptValidationUtils.js.map +1 -1
  216. package/esm/ops/utils/ScriptValidationUtils.test.js +2 -2
  217. package/esm/ops/utils/ScriptValidationUtils.test.js.map +1 -1
  218. package/esm/ops/utils/{Version.js → VersionUtils.js} +1 -1
  219. package/esm/ops/utils/VersionUtils.js.map +1 -0
  220. package/esm/ops/utils/{Version.test.js → VersionUtils.test.js} +2 -2
  221. package/esm/ops/utils/VersionUtils.test.js.map +1 -0
  222. package/esm/shared/Constants.js +27 -0
  223. package/esm/shared/Constants.js.map +1 -0
  224. package/esm/shared/State.js +481 -226
  225. package/esm/shared/State.js.map +1 -1
  226. package/esm/utils/SetupPollyForFrodoLib.js.map +1 -1
  227. package/package.json +5 -2
  228. package/types/api/AgentApi.d.ts +1 -1
  229. package/types/api/AgentApi.d.ts.map +1 -1
  230. package/types/api/AuthenticateApi.d.ts +1 -1
  231. package/types/api/AuthenticateApi.d.ts.map +1 -1
  232. package/types/api/BaseApi.d.ts +1 -1
  233. package/types/api/BaseApi.d.ts.map +1 -1
  234. package/types/api/CirclesOfTrustApi.d.ts +1 -1
  235. package/types/api/CirclesOfTrustApi.d.ts.map +1 -1
  236. package/types/api/IdmConfigApi.d.ts +1 -1
  237. package/types/api/IdmConfigApi.d.ts.map +1 -1
  238. package/types/api/IdmSystemApi.d.ts +1 -1
  239. package/types/api/IdmSystemApi.d.ts.map +1 -1
  240. package/types/api/ManagedObjectApi.d.ts +1 -1
  241. package/types/api/ManagedObjectApi.d.ts.map +1 -1
  242. package/types/api/NodeApi.d.ts +1 -1
  243. package/types/api/NodeApi.d.ts.map +1 -1
  244. package/types/api/OAuth2ClientApi.d.ts +1 -1
  245. package/types/api/OAuth2ClientApi.d.ts.map +1 -1
  246. package/types/api/OAuth2OIDCApi.d.ts +1 -1
  247. package/types/api/OAuth2OIDCApi.d.ts.map +1 -1
  248. package/types/api/OAuth2ProviderApi.d.ts +1 -1
  249. package/types/api/OAuth2ProviderApi.d.ts.map +1 -1
  250. package/types/api/PoliciesApi.d.ts +1 -1
  251. package/types/api/PoliciesApi.d.ts.map +1 -1
  252. package/types/api/PolicySetApi.d.ts +1 -1
  253. package/types/api/PolicySetApi.d.ts.map +1 -1
  254. package/types/api/RealmApi.d.ts +1 -1
  255. package/types/api/RealmApi.d.ts.map +1 -1
  256. package/types/api/ResourceTypesApi.d.ts +1 -1
  257. package/types/api/ResourceTypesApi.d.ts.map +1 -1
  258. package/types/api/Saml2Api.d.ts +1 -1
  259. package/types/api/Saml2Api.d.ts.map +1 -1
  260. package/types/api/ScriptApi.d.ts +1 -1
  261. package/types/api/ScriptApi.d.ts.map +1 -1
  262. package/types/api/ServerInfoApi.d.ts +1 -1
  263. package/types/api/ServerInfoApi.d.ts.map +1 -1
  264. package/types/api/ServiceApi.d.ts +1 -1
  265. package/types/api/ServiceApi.d.ts.map +1 -1
  266. package/types/api/SocialIdentityProvidersApi.d.ts +1 -1
  267. package/types/api/SocialIdentityProvidersApi.d.ts.map +1 -1
  268. package/types/api/TreeApi.d.ts +1 -1
  269. package/types/api/TreeApi.d.ts.map +1 -1
  270. package/types/api/cloud/AdminFederationProvidersApi.d.ts +1 -1
  271. package/types/api/cloud/AdminFederationProvidersApi.d.ts.map +1 -1
  272. package/types/api/cloud/EnvInfoApi.d.ts +1 -1
  273. package/types/api/cloud/EnvInfoApi.d.ts.map +1 -1
  274. package/types/api/cloud/FeatureApi.d.ts +1 -1
  275. package/types/api/cloud/FeatureApi.d.ts.map +1 -1
  276. package/types/api/cloud/LogApi.d.ts +1 -1
  277. package/types/api/cloud/LogApi.d.ts.map +1 -1
  278. package/types/api/cloud/SecretsApi.d.ts +1 -1
  279. package/types/api/cloud/SecretsApi.d.ts.map +1 -1
  280. package/types/api/cloud/StartupApi.d.ts +1 -1
  281. package/types/api/cloud/StartupApi.d.ts.map +1 -1
  282. package/types/api/cloud/VariablesApi.d.ts +1 -1
  283. package/types/api/cloud/VariablesApi.d.ts.map +1 -1
  284. package/types/api/utils/ApiUtils.d.ts +1 -1
  285. package/types/api/utils/ApiUtils.d.ts.map +1 -1
  286. package/types/api/utils/Base64.d.ts +6 -6
  287. package/types/api/utils/Base64.d.ts.map +1 -1
  288. package/types/index.d.ts +37 -0
  289. package/types/index.d.ts.map +1 -1
  290. package/types/lib/Frodo.d.ts +13 -1135
  291. package/types/lib/Frodo.d.ts.map +1 -1
  292. package/types/lib/FrodoLib.d.ts +79 -368
  293. package/types/lib/FrodoLib.d.ts.map +1 -1
  294. package/types/ops/AdminOps.d.ts +3 -2
  295. package/types/ops/AdminOps.d.ts.map +1 -1
  296. package/types/ops/AgentOps.d.ts +3 -2
  297. package/types/ops/AgentOps.d.ts.map +1 -1
  298. package/types/ops/AuthenticateOps.d.ts +3 -2
  299. package/types/ops/AuthenticateOps.d.ts.map +1 -1
  300. package/types/ops/CirclesOfTrustOps.d.ts +3 -2
  301. package/types/ops/CirclesOfTrustOps.d.ts.map +1 -1
  302. package/types/ops/ConnectionProfileOps.d.ts +3 -2
  303. package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
  304. package/types/ops/EmailTemplateOps.d.ts +3 -2
  305. package/types/ops/EmailTemplateOps.d.ts.map +1 -1
  306. package/types/ops/IdmOps.d.ts +3 -2
  307. package/types/ops/IdmOps.d.ts.map +1 -1
  308. package/types/ops/IdpOps.d.ts +3 -2
  309. package/types/ops/IdpOps.d.ts.map +1 -1
  310. package/types/ops/InfoOps.d.ts +3 -2
  311. package/types/ops/InfoOps.d.ts.map +1 -1
  312. package/types/ops/JoseOps.d.ts +17 -1
  313. package/types/ops/JoseOps.d.ts.map +1 -1
  314. package/types/ops/JourneyOps.d.ts +16 -10
  315. package/types/ops/JourneyOps.d.ts.map +1 -1
  316. package/types/ops/ManagedObjectOps.d.ts +3 -2
  317. package/types/ops/ManagedObjectOps.d.ts.map +1 -1
  318. package/types/ops/NodeOps.d.ts +3 -2
  319. package/types/ops/NodeOps.d.ts.map +1 -1
  320. package/types/ops/OAuth2ClientOps.d.ts +3 -2
  321. package/types/ops/OAuth2ClientOps.d.ts.map +1 -1
  322. package/types/ops/OAuth2OidcOps.d.ts +6 -5
  323. package/types/ops/OAuth2OidcOps.d.ts.map +1 -1
  324. package/types/ops/OAuth2ProviderOps.d.ts +3 -2
  325. package/types/ops/OAuth2ProviderOps.d.ts.map +1 -1
  326. package/types/ops/OpsTypes.d.ts +1 -1
  327. package/types/ops/OpsTypes.d.ts.map +1 -1
  328. package/types/ops/OrganizationOps.d.ts +3 -2
  329. package/types/ops/OrganizationOps.d.ts.map +1 -1
  330. package/types/ops/PolicyOps.d.ts +3 -2
  331. package/types/ops/PolicyOps.d.ts.map +1 -1
  332. package/types/ops/PolicySetOps.d.ts +3 -2
  333. package/types/ops/PolicySetOps.d.ts.map +1 -1
  334. package/types/ops/RealmOps.d.ts +3 -2
  335. package/types/ops/RealmOps.d.ts.map +1 -1
  336. package/types/ops/ResourceTypeOps.d.ts +3 -2
  337. package/types/ops/ResourceTypeOps.d.ts.map +1 -1
  338. package/types/ops/Saml2Ops.d.ts +3 -2
  339. package/types/ops/Saml2Ops.d.ts.map +1 -1
  340. package/types/ops/ScriptOps.d.ts +3 -2
  341. package/types/ops/ScriptOps.d.ts.map +1 -1
  342. package/types/ops/ServiceOps.d.ts +4 -3
  343. package/types/ops/ServiceOps.d.ts.map +1 -1
  344. package/types/ops/ThemeOps.d.ts +3 -2
  345. package/types/ops/ThemeOps.d.ts.map +1 -1
  346. package/types/ops/cloud/AdminFederationOps.d.ts +3 -2
  347. package/types/ops/cloud/AdminFederationOps.d.ts.map +1 -1
  348. package/types/ops/cloud/FeatureOps.d.ts +3 -2
  349. package/types/ops/cloud/FeatureOps.d.ts.map +1 -1
  350. package/types/ops/cloud/LogOps.d.ts +3 -2
  351. package/types/ops/cloud/LogOps.d.ts.map +1 -1
  352. package/types/ops/cloud/SecretsOps.d.ts +3 -2
  353. package/types/ops/cloud/SecretsOps.d.ts.map +1 -1
  354. package/types/ops/cloud/ServiceAccountOps.d.ts +7 -6
  355. package/types/ops/cloud/ServiceAccountOps.d.ts.map +1 -1
  356. package/types/ops/cloud/StartupOps.d.ts +3 -2
  357. package/types/ops/cloud/StartupOps.d.ts.map +1 -1
  358. package/types/ops/cloud/VariablesOps.d.ts +3 -2
  359. package/types/ops/cloud/VariablesOps.d.ts.map +1 -1
  360. package/types/ops/utils/Console.d.ts +1 -1
  361. package/types/ops/utils/Console.d.ts.map +1 -1
  362. package/types/ops/utils/DataProtection.d.ts +1 -1
  363. package/types/ops/utils/DataProtection.d.ts.map +1 -1
  364. package/types/ops/utils/ExportImportUtils.d.ts +3 -2
  365. package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
  366. package/types/ops/utils/OpsUtils.d.ts +73 -17
  367. package/types/ops/utils/OpsUtils.d.ts.map +1 -1
  368. package/types/ops/utils/ScriptValidationUtils.d.ts +20 -1
  369. package/types/ops/utils/ScriptValidationUtils.d.ts.map +1 -1
  370. package/types/ops/utils/{Version.d.ts → VersionUtils.d.ts} +4 -4
  371. package/types/ops/utils/VersionUtils.d.ts.map +1 -0
  372. package/types/shared/Constants.d.ts +34 -0
  373. package/types/shared/Constants.d.ts.map +1 -0
  374. package/types/shared/State.d.ts +38 -38
  375. package/types/shared/State.d.ts.map +1 -1
  376. package/types/utils/SetupPollyForFrodoLib.d.ts +1 -1
  377. package/types/utils/SetupPollyForFrodoLib.d.ts.map +1 -1
  378. package/cjs/ops/utils/Version.js.map +0 -1
  379. package/cjs/ops/utils/Version.test.js.map +0 -1
  380. package/cjs/ops/utils/Wordwrap.js +0 -12
  381. package/cjs/ops/utils/Wordwrap.js.map +0 -1
  382. package/cjs/ops/utils/Wordwrap.test.js +0 -22
  383. package/cjs/ops/utils/Wordwrap.test.js.map +0 -1
  384. package/cjs/storage/StaticStorage.js +0 -31
  385. package/cjs/storage/StaticStorage.js.map +0 -1
  386. package/esm/ops/utils/Version.js.map +0 -1
  387. package/esm/ops/utils/Version.test.js.map +0 -1
  388. package/esm/ops/utils/Wordwrap.js +0 -5
  389. package/esm/ops/utils/Wordwrap.js.map +0 -1
  390. package/esm/ops/utils/Wordwrap.test.js +0 -19
  391. package/esm/ops/utils/Wordwrap.test.js.map +0 -1
  392. package/esm/storage/StaticStorage.js +0 -15
  393. package/esm/storage/StaticStorage.js.map +0 -1
  394. package/types/ops/utils/Version.d.ts.map +0 -1
  395. package/types/ops/utils/Wordwrap.d.ts +0 -2
  396. package/types/ops/utils/Wordwrap.d.ts.map +0 -1
  397. package/types/storage/StaticStorage.d.ts +0 -15
  398. package/types/storage/StaticStorage.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Saml2Ops.test.js","names":["autoSetupPolly","state","setDeploymentType","globalConfig","CLOUD_DEPLOYMENT_TYPE_KEY","stageProvider","_x","_stageProvider","apply","arguments","_asyncToGenerator","provider","create","length","undefined","Saml2Ops","getSaml2Provider","entityId","deleteSaml2Provider","error","isAxiosError","_error$response","console","log","concat","message","dir","response","data","importSaml2Provider","importData","getSaml2ProviderImportData","_error$response2","describe","provider1","location","entityId64","encodeBase64Url","provider2","provider3","provider4","provider5","provider6","provider7","provider8","provider9","provider10","beforeAll","process","env","FRODO_POLLY_MODE","FRODO_RECORD_PHASE","afterAll","test","expect","createSaml2ExportTemplate","toBeDefined","toMatchSnapshot","meta","any","Object","getSaml2ProviderStubs","getProviderByLocationAndId","getProviderMetadataUrl","toMatch","RegExp","FRODO_HOST","url","URL","pathname","searchParams","URLSearchParams","search","get","getProviderMetadata","getSaml2ProviderStub","exportSaml2Provider","exportSaml2Providers","assertions","toBeTruthy","importSaml2Providers","getSaml2ProvidersImportData","failures","toBe","warnings","deleteSaml2Providers"],"sources":["../../src/ops/Saml2Ops.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses\n *\n * This step breaks down into 5 phases:\n *\n * Phase 1: Record Group 1 of non-destructive tests\n * Phase 2: Record Group 2 of non-destructive tests - Import all\n * Phase 3: Record Group 1 of DESTRUCTIVE tests - Deletes by entity id\n * Phase 4: Record Group 2 of DESTRUCTIVE tests - Delete all\n *\n * Because destructive tests interfere with the recording of non-destructive\n * tests and also interfere among themselves, they have to be run in groups\n * of non-interfering tests.\n *\n * To record API responses, you must call the test:record script and\n * override all the connection state variables required to connect to the\n * env to record from and also indicate the phase:\n *\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=1 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=2 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n *\n * THESE TESTS ARE DESTRUCTIVE!!! DO NOT RUN AGAINST AN ENV WITH ACTIVE CONFIGURATION!!!\n *\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=3 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=4 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=5 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n *\n * The above command assumes that you have a connection profile for\n * 'frodo-dev' on your development machine.\n *\n * 2. Update snapshots\n *\n * After recording API responses, you must manually update/create snapshots\n * by running:\n *\n * FRODO_DEBUG=1 npm run test:update Saml2Ops\n *\n * 3. Test your changes\n *\n * If 1 and 2 didn't produce any errors, you are ready to run the tests in\n * replay mode and make sure they all succeed as well:\n *\n * npm run test:only Saml2Ops\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport { state } from '../index';\nimport * as Saml2Ops from './Saml2Ops';\nimport * as globalConfig from '../storage/StaticStorage';\nimport { Saml2ProiderLocation } from '../api/ApiTypes';\nimport {\n getSaml2ProviderImportData,\n getSaml2ProvidersImportData,\n} from '../test/mocks/ForgeRockApiMockEngine';\nimport { encodeBase64Url } from '../api/utils/Base64';\nimport { autoSetupPolly } from '../utils/AutoSetupPolly';\n\nautoSetupPolly();\n\nstate.setDeploymentType(globalConfig.CLOUD_DEPLOYMENT_TYPE_KEY);\n\nasync function stageProvider(provider: { entityId: string }, create = true) {\n // delete if exists, then create\n try {\n await Saml2Ops.getSaml2Provider({ entityId: provider.entityId, state });\n await Saml2Ops.deleteSaml2Provider({ entityId: provider.entityId, state });\n } catch (error) {\n if (error.isAxiosError) {\n console.log(\n `Error deleting provider '${provider.entityId}': ${error.message}`\n );\n console.dir(error.response?.data);\n }\n } finally {\n if (create) {\n try {\n await Saml2Ops.importSaml2Provider({\n entityId: provider.entityId,\n importData: getSaml2ProviderImportData(provider.entityId),\n state,\n });\n } catch (error) {\n console.log(\n `Error importing provider '${provider.entityId}': ${error.message}`\n );\n console.dir(error.response?.data);\n }\n }\n }\n}\n\ndescribe('Saml2Ops', () => {\n type SamlProvider = {\n entityId: string;\n location: Saml2ProiderLocation;\n entityId64: string;\n };\n const provider1: SamlProvider = {\n entityId: 'iSPAzure',\n location: 'hosted',\n entityId64: encodeBase64Url('iSPAzure'),\n };\n const provider2: SamlProvider = {\n entityId: 'urn:federation:MicrosoftOnline',\n location: 'remote',\n entityId64: encodeBase64Url('urn:federation:MicrosoftOnline'),\n };\n const provider3: SamlProvider = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPFedlet',\n location: 'hosted',\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPFedlet'),\n };\n const provider4: SamlProvider = {\n entityId: 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/',\n location: 'remote',\n entityId64: encodeBase64Url(\n 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/'\n ),\n };\n const provider5: SamlProvider = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPAzure',\n location: 'hosted',\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPAzure'),\n };\n const provider6: SamlProvider = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPBroadcom',\n location: 'hosted',\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPBroadcom'),\n };\n const provider7: SamlProvider = {\n entityId: 'idp',\n location: 'remote',\n entityId64: encodeBase64Url('idp'),\n };\n const provider8: SamlProvider = {\n entityId: 'SPAzure',\n location: 'hosted',\n entityId64: encodeBase64Url('SPAzure'),\n };\n const provider9: SamlProvider = {\n entityId: 'volkerDevSP',\n location: 'hosted',\n entityId64: encodeBase64Url('volkerDevSP'),\n };\n const provider10: SamlProvider = {\n entityId: 'https://saml.mytestrun.com/sp',\n location: 'remote',\n entityId64: encodeBase64Url('https://saml.mytestrun.com/sp'),\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '1'\n ) {\n await stageProvider(provider1);\n await stageProvider(provider2);\n await stageProvider(provider3);\n await stageProvider(provider4);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n } else if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '2'\n ) {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider3, false);\n await stageProvider(provider4, false);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n await stageProvider(provider10, false);\n } else if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '5'\n ) {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n }\n // Pahses 3 + 4\n else if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageProvider(provider1);\n await stageProvider(provider2);\n await stageProvider(provider3);\n await stageProvider(provider4);\n await stageProvider(provider5);\n await stageProvider(provider6);\n await stageProvider(provider7);\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider3, false);\n await stageProvider(provider4, false);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n await stageProvider(provider10, false);\n }\n });\n\n // Phase 1\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '1')\n ) {\n describe('createSaml2ExportTemplate()', () => {\n test('0: Method is implemented', () => {\n expect(Saml2Ops.createSaml2ExportTemplate).toBeDefined();\n });\n\n test('1: Create saml2 export template', () => {\n const response = Saml2Ops.createSaml2ExportTemplate({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('getSaml2ProviderStubs()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2ProviderStubs).toBeDefined();\n });\n\n test('1: Get saml2 provider stubs', async () => {\n const response = await Saml2Ops.getSaml2ProviderStubs({ state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getProviderByLocationAndId()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderByLocationAndId).toBeDefined();\n });\n\n test(`1: Get hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderByLocationAndId({\n location: provider1.location,\n entityId64: provider1.entityId64,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get remote provider '${provider2.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderByLocationAndId({\n location: provider2.location,\n entityId64: provider2.entityId64,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getProviderMetadataUrl()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderMetadataUrl).toBeDefined();\n });\n\n test(`1: Get metadata url for hosted provider '${provider3.entityId}'`, async () => {\n const response = Saml2Ops.getProviderMetadataUrl({\n entityId: provider3.entityId,\n state,\n });\n expect(response).toMatch(\n new RegExp(\n `^${\n process.env.FRODO_HOST ||\n 'https://openam-frodo-dev.forgeblocks.com'\n }`\n )\n );\n const url = new URL(response);\n expect(url.pathname).toMatch('/am/saml2/jsp/exportmetadata.jsp');\n const searchParams = new URLSearchParams(url.search);\n expect(searchParams.get('entityid')).toMatch(provider3.entityId);\n });\n\n test(`2: Get metadata url for remote provider '${provider4.entityId}'`, async () => {\n const response = Saml2Ops.getProviderMetadataUrl({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatch(\n new RegExp(\n `^${\n process.env.FRODO_HOST ||\n 'https://openam-frodo-dev.forgeblocks.com'\n }`\n )\n );\n const url = new URL(response);\n expect(url.pathname).toMatch('/am/saml2/jsp/exportmetadata.jsp');\n const searchParams = new URLSearchParams(url.search);\n expect(searchParams.get('entityid')).toMatch(provider4.entityId);\n });\n });\n\n describe('getProviderMetadata()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderMetadata).toBeDefined();\n });\n\n test(`1: Get metadata for hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderMetadata({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get metadata for remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderMetadata({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getSaml2ProviderStub()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2ProviderStub).toBeDefined();\n });\n\n test(`1: Get stub of hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2ProviderStub({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get stub of remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2ProviderStub({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2Provider).toBeDefined();\n });\n\n test(`1: Get hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2Provider({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('exportSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.exportSaml2Provider).toBeDefined();\n });\n\n test(`1: Export hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.exportSaml2Provider({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n\n test(`2: Export remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.exportSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.exportSaml2Providers).toBeDefined();\n });\n\n test('1: Export saml2 entity providers', async () => {\n const response = await Saml2Ops.exportSaml2Providers({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('importSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.importSaml2Provider).toBeDefined();\n });\n\n test(`1: Import hosted provider '${provider5.entityId}'`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider5.entityId,\n importData: getSaml2ProviderImportData(provider5.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n\n test(`2: Import hosted provider '${provider6.entityId}'`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider6.entityId,\n importData: getSaml2ProviderImportData(provider6.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n\n test(`3: Import remote provider '${provider7.entityId}' with metadata`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider7.entityId,\n importData: getSaml2ProviderImportData(provider7.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n });\n }\n\n // Phase 2\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '2')\n ) {\n describe('importSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.importSaml2Providers).toBeDefined();\n });\n\n test('1: Import providers', async () => {\n expect.assertions(2);\n const response = await Saml2Ops.importSaml2Providers({\n importData: getSaml2ProvidersImportData(),\n state,\n });\n expect(response.failures).toBe(0);\n expect(response.warnings).toBe(0);\n });\n });\n }\n\n // Phase 3\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '3')\n ) {\n describe('deleteSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.deleteSaml2Provider).toBeDefined();\n });\n\n test(`1: Delete hosted provider '${provider3.entityId}'`, async () => {\n const response = await Saml2Ops.deleteSaml2Provider({\n entityId: provider3.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Delete remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.deleteSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n }\n\n // Phase 4\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '4')\n ) {\n describe('deleteSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.deleteSaml2Providers).toBeDefined();\n });\n\n test(`1: Delete all providers`, async () => {\n const response = await Saml2Ops.deleteSaml2Providers({ state });\n expect(response).toMatchSnapshot();\n });\n });\n }\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"Saml2Ops.test.js","names":["autoSetupPolly","state","setDeploymentType","Constants","CLOUD_DEPLOYMENT_TYPE_KEY","stageProvider","_x","_stageProvider","apply","arguments","_asyncToGenerator","provider","create","length","undefined","Saml2Ops","getSaml2Provider","entityId","deleteSaml2Provider","error","isAxiosError","_error$response","console","log","concat","message","dir","response","data","importSaml2Provider","importData","getSaml2ProviderImportData","_error$response2","describe","provider1","location","entityId64","encodeBase64Url","provider2","provider3","provider4","provider5","provider6","provider7","provider8","provider9","provider10","beforeAll","process","env","FRODO_POLLY_MODE","FRODO_RECORD_PHASE","afterAll","test","expect","createSaml2ExportTemplate","toBeDefined","toMatchSnapshot","meta","any","Object","getSaml2ProviderStubs","getProviderByLocationAndId","getProviderMetadataUrl","toMatch","RegExp","FRODO_HOST","url","URL","pathname","searchParams","URLSearchParams","search","get","getProviderMetadata","getSaml2ProviderStub","exportSaml2Provider","exportSaml2Providers","assertions","toBeTruthy","importSaml2Providers","getSaml2ProvidersImportData","failures","toBe","warnings","deleteSaml2Providers"],"sources":["../../src/ops/Saml2Ops.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses\n *\n * This step breaks down into 5 phases:\n *\n * Phase 1: Record Group 1 of non-destructive tests\n * Phase 2: Record Group 2 of non-destructive tests - Import all\n * Phase 3: Record Group 1 of DESTRUCTIVE tests - Deletes by entity id\n * Phase 4: Record Group 2 of DESTRUCTIVE tests - Delete all\n *\n * Because destructive tests interfere with the recording of non-destructive\n * tests and also interfere among themselves, they have to be run in groups\n * of non-interfering tests.\n *\n * To record API responses, you must call the test:record script and\n * override all the connection state variables required to connect to the\n * env to record from and also indicate the phase:\n *\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=1 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=2 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n *\n * THESE TESTS ARE DESTRUCTIVE!!! DO NOT RUN AGAINST AN ENV WITH ACTIVE CONFIGURATION!!!\n *\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=3 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=4 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=5 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n *\n * The above command assumes that you have a connection profile for\n * 'frodo-dev' on your development machine.\n *\n * 2. Update snapshots\n *\n * After recording API responses, you must manually update/create snapshots\n * by running:\n *\n * FRODO_DEBUG=1 npm run test:update Saml2Ops\n *\n * 3. Test your changes\n *\n * If 1 and 2 didn't produce any errors, you are ready to run the tests in\n * replay mode and make sure they all succeed as well:\n *\n * npm run test:only Saml2Ops\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport { state } from '../index';\nimport * as Saml2Ops from './Saml2Ops';\nimport Constants from '../shared/Constants';\nimport { Saml2ProiderLocation } from '../api/ApiTypes';\nimport {\n getSaml2ProviderImportData,\n getSaml2ProvidersImportData,\n} from '../test/mocks/ForgeRockApiMockEngine';\nimport { encodeBase64Url } from '../api/utils/Base64';\nimport { autoSetupPolly } from '../utils/AutoSetupPolly';\n\nautoSetupPolly();\n\nstate.setDeploymentType(Constants.CLOUD_DEPLOYMENT_TYPE_KEY);\n\nasync function stageProvider(provider: { entityId: string }, create = true) {\n // delete if exists, then create\n try {\n await Saml2Ops.getSaml2Provider({ entityId: provider.entityId, state });\n await Saml2Ops.deleteSaml2Provider({ entityId: provider.entityId, state });\n } catch (error) {\n if (error.isAxiosError) {\n console.log(\n `Error deleting provider '${provider.entityId}': ${error.message}`\n );\n console.dir(error.response?.data);\n }\n } finally {\n if (create) {\n try {\n await Saml2Ops.importSaml2Provider({\n entityId: provider.entityId,\n importData: getSaml2ProviderImportData(provider.entityId),\n state,\n });\n } catch (error) {\n console.log(\n `Error importing provider '${provider.entityId}': ${error.message}`\n );\n console.dir(error.response?.data);\n }\n }\n }\n}\n\ndescribe('Saml2Ops', () => {\n type SamlProvider = {\n entityId: string;\n location: Saml2ProiderLocation;\n entityId64: string;\n };\n const provider1: SamlProvider = {\n entityId: 'iSPAzure',\n location: 'hosted',\n entityId64: encodeBase64Url('iSPAzure'),\n };\n const provider2: SamlProvider = {\n entityId: 'urn:federation:MicrosoftOnline',\n location: 'remote',\n entityId64: encodeBase64Url('urn:federation:MicrosoftOnline'),\n };\n const provider3: SamlProvider = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPFedlet',\n location: 'hosted',\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPFedlet'),\n };\n const provider4: SamlProvider = {\n entityId: 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/',\n location: 'remote',\n entityId64: encodeBase64Url(\n 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/'\n ),\n };\n const provider5: SamlProvider = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPAzure',\n location: 'hosted',\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPAzure'),\n };\n const provider6: SamlProvider = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPBroadcom',\n location: 'hosted',\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPBroadcom'),\n };\n const provider7: SamlProvider = {\n entityId: 'idp',\n location: 'remote',\n entityId64: encodeBase64Url('idp'),\n };\n const provider8: SamlProvider = {\n entityId: 'SPAzure',\n location: 'hosted',\n entityId64: encodeBase64Url('SPAzure'),\n };\n const provider9: SamlProvider = {\n entityId: 'volkerDevSP',\n location: 'hosted',\n entityId64: encodeBase64Url('volkerDevSP'),\n };\n const provider10: SamlProvider = {\n entityId: 'https://saml.mytestrun.com/sp',\n location: 'remote',\n entityId64: encodeBase64Url('https://saml.mytestrun.com/sp'),\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '1'\n ) {\n await stageProvider(provider1);\n await stageProvider(provider2);\n await stageProvider(provider3);\n await stageProvider(provider4);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n } else if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '2'\n ) {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider3, false);\n await stageProvider(provider4, false);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n await stageProvider(provider10, false);\n } else if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '5'\n ) {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n }\n // Pahses 3 + 4\n else if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageProvider(provider1);\n await stageProvider(provider2);\n await stageProvider(provider3);\n await stageProvider(provider4);\n await stageProvider(provider5);\n await stageProvider(provider6);\n await stageProvider(provider7);\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider3, false);\n await stageProvider(provider4, false);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n await stageProvider(provider10, false);\n }\n });\n\n // Phase 1\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '1')\n ) {\n describe('createSaml2ExportTemplate()', () => {\n test('0: Method is implemented', () => {\n expect(Saml2Ops.createSaml2ExportTemplate).toBeDefined();\n });\n\n test('1: Create saml2 export template', () => {\n const response = Saml2Ops.createSaml2ExportTemplate({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('getSaml2ProviderStubs()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2ProviderStubs).toBeDefined();\n });\n\n test('1: Get saml2 provider stubs', async () => {\n const response = await Saml2Ops.getSaml2ProviderStubs({ state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getProviderByLocationAndId()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderByLocationAndId).toBeDefined();\n });\n\n test(`1: Get hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderByLocationAndId({\n location: provider1.location,\n entityId64: provider1.entityId64,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get remote provider '${provider2.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderByLocationAndId({\n location: provider2.location,\n entityId64: provider2.entityId64,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getProviderMetadataUrl()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderMetadataUrl).toBeDefined();\n });\n\n test(`1: Get metadata url for hosted provider '${provider3.entityId}'`, async () => {\n const response = Saml2Ops.getProviderMetadataUrl({\n entityId: provider3.entityId,\n state,\n });\n expect(response).toMatch(\n new RegExp(\n `^${\n process.env.FRODO_HOST ||\n 'https://openam-frodo-dev.forgeblocks.com'\n }`\n )\n );\n const url = new URL(response);\n expect(url.pathname).toMatch('/am/saml2/jsp/exportmetadata.jsp');\n const searchParams = new URLSearchParams(url.search);\n expect(searchParams.get('entityid')).toMatch(provider3.entityId);\n });\n\n test(`2: Get metadata url for remote provider '${provider4.entityId}'`, async () => {\n const response = Saml2Ops.getProviderMetadataUrl({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatch(\n new RegExp(\n `^${\n process.env.FRODO_HOST ||\n 'https://openam-frodo-dev.forgeblocks.com'\n }`\n )\n );\n const url = new URL(response);\n expect(url.pathname).toMatch('/am/saml2/jsp/exportmetadata.jsp');\n const searchParams = new URLSearchParams(url.search);\n expect(searchParams.get('entityid')).toMatch(provider4.entityId);\n });\n });\n\n describe('getProviderMetadata()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderMetadata).toBeDefined();\n });\n\n test(`1: Get metadata for hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderMetadata({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get metadata for remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderMetadata({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getSaml2ProviderStub()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2ProviderStub).toBeDefined();\n });\n\n test(`1: Get stub of hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2ProviderStub({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get stub of remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2ProviderStub({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2Provider).toBeDefined();\n });\n\n test(`1: Get hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2Provider({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('exportSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.exportSaml2Provider).toBeDefined();\n });\n\n test(`1: Export hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.exportSaml2Provider({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n\n test(`2: Export remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.exportSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.exportSaml2Providers).toBeDefined();\n });\n\n test('1: Export saml2 entity providers', async () => {\n const response = await Saml2Ops.exportSaml2Providers({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('importSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.importSaml2Provider).toBeDefined();\n });\n\n test(`1: Import hosted provider '${provider5.entityId}'`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider5.entityId,\n importData: getSaml2ProviderImportData(provider5.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n\n test(`2: Import hosted provider '${provider6.entityId}'`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider6.entityId,\n importData: getSaml2ProviderImportData(provider6.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n\n test(`3: Import remote provider '${provider7.entityId}' with metadata`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider7.entityId,\n importData: getSaml2ProviderImportData(provider7.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n });\n }\n\n // Phase 2\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '2')\n ) {\n describe('importSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.importSaml2Providers).toBeDefined();\n });\n\n test('1: Import providers', async () => {\n expect.assertions(2);\n const response = await Saml2Ops.importSaml2Providers({\n importData: getSaml2ProvidersImportData(),\n state,\n });\n expect(response.failures).toBe(0);\n expect(response.warnings).toBe(0);\n });\n });\n }\n\n // Phase 3\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '3')\n ) {\n describe('deleteSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.deleteSaml2Provider).toBeDefined();\n });\n\n test(`1: Delete hosted provider '${provider3.entityId}'`, async () => {\n const response = await Saml2Ops.deleteSaml2Provider({\n entityId: provider3.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Delete remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.deleteSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n }\n\n // Phase 4\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '4')\n ) {\n describe('deleteSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.deleteSaml2Providers).toBeDefined();\n });\n\n test(`1: Delete all providers`, async () => {\n const response = await Saml2Ops.deleteSaml2Providers({ state });\n expect(response).toMatchSnapshot();\n });\n });\n }\n});\n"],"mappings":"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"}
@@ -372,12 +372,12 @@ function _exportScripts() {
372
372
  message: "Reading script ".concat(script.name),
373
373
  state
374
374
  });
375
- var scriptData = yield getScriptByName({
375
+ var _scriptData = yield getScriptByName({
376
376
  scriptName: script.name,
377
377
  state
378
378
  });
379
- scriptData.script = (0, _ExportImportUtils.convertBase64TextToArray)(scriptData.script);
380
- exportData.script[scriptData._id] = scriptData;
379
+ _scriptData.script = (0, _ExportImportUtils.convertBase64TextToArray)(_scriptData.script);
380
+ exportData.script[_scriptData._id] = _scriptData;
381
381
  }
382
382
  (0, _Console.stopProgressIndicator)({
383
383
  message: "Exported ".concat(scriptList.length, " scripts."),
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptOps.js","names":["_uuid","require","_OpsUtils","_Console","_ScriptApi","_ExportImportUtils","_ScriptValidationUtils","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_default","state","getScripts","getScriptByName","scriptName","putScript","scriptId","scriptData","exportScript","exportScriptByName","exportScripts","importScripts","importData","_arguments","reUuid","length","validate","getScript","deleteScript","exports","default","createScriptExportTemplate","_ref","meta","getMetadata","script","_x","_getScripts2","_ref2","result","_getScripts","_x2","_getScriptByName2","_ref3","_getScriptByName","Error","concat","_x3","_putScript2","_ref4","Array","isArray","convertTextArrayToBase64","_putScript","_error$response","response","status","printMessage","message","name","type","newName","applyNameCollisionPolicy","_x4","_exportScript","_ref5","debugMessage","convertBase64TextToArray","exportData","_id","_x5","_exportScriptByName","_ref6","_x6","_exportScripts","_ref7","scriptList","createProgressIndicator","total","updateProgressIndicator","stopProgressIndicator","_x7","_importScripts","_ref8","outcome","existingId","Object","keys","scriptSkeleton","newId","uuidv4","validateScriptDecoded"],"sources":["../../src/ops/ScriptOps.ts"],"sourcesContent":["import { v4 as uuidv4 } from 'uuid';\nimport { applyNameCollisionPolicy } from './utils/OpsUtils';\nimport {\n createProgressIndicator,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from './utils/Console';\nimport {\n getScript,\n getScriptByName as _getScriptByName,\n getScripts as _getScripts,\n putScript as _putScript,\n deleteScript,\n} from '../api/ScriptApi';\nimport {\n convertBase64TextToArray,\n convertTextArrayToBase64,\n getMetadata,\n} from './utils/ExportImportUtils';\nimport { ScriptSkeleton } from '../api/ApiTypes';\nimport { ExportMetaData } from '../ops/OpsTypes';\nimport { validateScriptDecoded } from './utils/ScriptValidationUtils';\nimport State from '../shared/State';\n\nexport default (state: State) => {\n return {\n /**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\n async getScripts(): Promise<ScriptSkeleton[]> {\n return getScripts({ state });\n },\n\n /**\n * Get script by name\n * @param {string} name name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\n async getScriptByName(scriptName: string): Promise<ScriptSkeleton> {\n return getScriptByName({ scriptName, state });\n },\n\n /**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<boolean>} a status object\n */\n async putScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<boolean> {\n return putScript({ scriptId, scriptData, state });\n },\n\n /**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n async exportScript(scriptId: string): Promise<ScriptExportInterface> {\n return exportScript({ scriptId, state });\n },\n\n /**\n * Export script by name\n * @param {string} name script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n async exportScriptByName(\n scriptName: string\n ): Promise<ScriptExportInterface> {\n return exportScriptByName({ scriptName, state });\n },\n\n /**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n async exportScripts(): Promise<ScriptExportInterface> {\n return exportScripts({ state });\n },\n\n /**\n * Import scripts\n * @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<boolean>} true if no errors occurred during import, false otherwise\n */\n async importScripts(\n scriptName: string,\n importData: ScriptExportInterface,\n reUuid = false,\n validate = false\n ): Promise<boolean> {\n return importScripts({\n scriptName,\n importData,\n reUuid,\n validate,\n state,\n });\n },\n\n getScript(scriptId: string) {\n return getScript({ scriptId, state });\n },\n\n deleteScript(scriptId: string) {\n return deleteScript({ scriptId, state });\n },\n };\n};\n\nexport interface ScriptExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n}\n\n/**\n * Create an empty idp export template\n * @returns {ScriptExportInterface} an empty idp export template\n */\nexport function createScriptExportTemplate({\n state,\n}: {\n state: State;\n}): ScriptExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n } as ScriptExportInterface;\n}\n\n/**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\nexport async function getScripts({\n state,\n}: {\n state: State;\n}): Promise<ScriptSkeleton[]> {\n const { result } = await _getScripts({ state });\n return result;\n}\n\n/**\n * Get script by name\n * @param {string} scriptName name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\nexport async function getScriptByName({\n scriptName,\n state,\n}: {\n scriptName: string;\n state: State;\n}): Promise<ScriptSkeleton> {\n const { result } = await _getScriptByName({ scriptName, state });\n switch (result.length) {\n case 1:\n return result[0];\n case 0:\n throw new Error(`Script '${scriptName}' not found`);\n default:\n throw new Error(`${result.length} scripts '${scriptName}' found`);\n }\n}\n\n/**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<boolean>} a status object\n */\nexport async function putScript({\n scriptId,\n scriptData,\n state,\n}: {\n scriptId: string;\n scriptData: ScriptSkeleton;\n state: State;\n}): Promise<boolean> {\n try {\n if (Array.isArray(scriptData.script)) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n }\n const result = await _putScript({ scriptId, scriptData, state });\n return result;\n } catch (error) {\n if (error.response?.status === 409) {\n printMessage({\n message: `createOrUpdateScript WARNING: script with name ${scriptData.name} already exists, using renaming policy... <name> => <name - imported (n)>`,\n type: 'warn',\n state,\n });\n const newName = applyNameCollisionPolicy(scriptData.name);\n scriptData.name = newName;\n const result = await putScript({ scriptId, scriptData, state });\n printMessage({\n message: `Saved script as ${newName}`,\n type: 'warn',\n state,\n });\n return result;\n }\n throw error;\n }\n}\n\n/**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScript({\n scriptId,\n state,\n}: {\n scriptId: string;\n state: State;\n}): Promise<ScriptExportInterface> {\n debugMessage({ message: `ScriptOps.exportScriptById: start`, state });\n const scriptData = await getScript({ scriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n const exportData = createScriptExportTemplate({ state });\n exportData.script[scriptData._id] = scriptData;\n debugMessage({ message: `ScriptOps.exportScriptById: end`, state });\n return exportData;\n}\n\n/**\n * Export script by name\n * @param {string} scriptName script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScriptByName({\n scriptName,\n state,\n}: {\n scriptName: string;\n state: State;\n}): Promise<ScriptExportInterface> {\n debugMessage({ message: `ScriptOps.exportScriptByName: start`, state });\n const scriptData = await getScriptByName({ scriptName, state });\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n const exportData = createScriptExportTemplate({ state });\n exportData.script[scriptData._id] = scriptData;\n debugMessage({ message: `ScriptOps.exportScriptByName: end`, state });\n return exportData;\n}\n\n/**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScripts({\n state,\n}: {\n state: State;\n}): Promise<ScriptExportInterface> {\n const scriptList = await getScripts({ state });\n const exportData = createScriptExportTemplate({ state });\n createProgressIndicator({\n total: scriptList.length,\n message: `Exporting ${scriptList.length} scripts...`,\n state,\n });\n for (const script of scriptList) {\n updateProgressIndicator({\n message: `Reading script ${script.name}`,\n state,\n });\n const scriptData = await getScriptByName({\n scriptName: script.name,\n state,\n });\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n exportData.script[scriptData._id] = scriptData;\n }\n stopProgressIndicator({\n message: `Exported ${scriptList.length} scripts.`,\n state,\n });\n return exportData;\n}\n\n/**\n * Import scripts\n * @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<boolean>} true if no errors occurred during import, false otherwise\n */\nexport async function importScripts({\n scriptName,\n importData,\n reUuid = false,\n validate = false,\n state,\n}: {\n scriptName: string;\n importData: ScriptExportInterface;\n reUuid?: boolean;\n validate?: boolean;\n state: State;\n}): Promise<boolean> {\n let outcome = true;\n debugMessage({ message: `ScriptOps.importScripts: start`, state });\n for (const existingId of Object.keys(importData.script)) {\n const scriptSkeleton = importData.script[existingId];\n let newId = existingId;\n if (reUuid) {\n newId = uuidv4();\n debugMessage({\n message: `ScriptOps.importScripts: Re-uuid-ing script ${scriptSkeleton.name} ${existingId} => ${newId}...`,\n state,\n });\n scriptSkeleton._id = newId;\n }\n if (scriptName) {\n debugMessage({\n message: `ScriptOps.importScripts: Renaming script ${scriptSkeleton.name} => ${scriptName}...`,\n state,\n });\n scriptSkeleton.name = scriptName;\n }\n if (validate) {\n if (!validateScriptDecoded({ scriptSkeleton, state })) {\n outcome = false;\n printMessage({\n message: `Error importing script '${scriptSkeleton.name}': Script is not valid`,\n type: 'error',\n state,\n });\n continue;\n }\n }\n try {\n await putScript({ scriptId: newId, scriptData: scriptSkeleton, state });\n } catch (error) {\n outcome = false;\n printMessage({\n message: `Error importing script '${scriptSkeleton.name}': ${error.message}`,\n type: 'error',\n state,\n });\n debugMessage({ message: error, state });\n }\n if (scriptName) break;\n }\n debugMessage({ message: `ScriptOps.importScripts: end`, state });\n return outcome;\n}\n\nexport { getScript, deleteScript };\n"],"mappings":"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"}
1
+ {"version":3,"file":"ScriptOps.js","names":["_uuid","require","_OpsUtils","_Console","_ScriptApi","_ExportImportUtils","_ScriptValidationUtils","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_default","state","getScripts","getScriptByName","scriptName","putScript","scriptId","scriptData","exportScript","exportScriptByName","exportScripts","importScripts","importData","_arguments","reUuid","length","validate","getScript","deleteScript","exports","default","createScriptExportTemplate","_ref","meta","getMetadata","script","_x","_getScripts2","_ref2","result","_getScripts","_x2","_getScriptByName2","_ref3","_getScriptByName","Error","concat","_x3","_putScript2","_ref4","Array","isArray","convertTextArrayToBase64","_putScript","_error$response","response","status","printMessage","message","name","type","newName","applyNameCollisionPolicy","_x4","_exportScript","_ref5","debugMessage","convertBase64TextToArray","exportData","_id","_x5","_exportScriptByName","_ref6","_x6","_exportScripts","_ref7","scriptList","createProgressIndicator","total","updateProgressIndicator","stopProgressIndicator","_x7","_importScripts","_ref8","outcome","existingId","Object","keys","scriptSkeleton","newId","uuidv4","validateScriptDecoded"],"sources":["../../src/ops/ScriptOps.ts"],"sourcesContent":["import { v4 as uuidv4 } from 'uuid';\nimport { applyNameCollisionPolicy } from './utils/OpsUtils';\nimport {\n createProgressIndicator,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from './utils/Console';\nimport {\n getScript,\n getScriptByName as _getScriptByName,\n getScripts as _getScripts,\n putScript as _putScript,\n deleteScript,\n} from '../api/ScriptApi';\nimport {\n convertBase64TextToArray,\n convertTextArrayToBase64,\n getMetadata,\n} from './utils/ExportImportUtils';\nimport { ScriptSkeleton } from '../api/ApiTypes';\nimport { ExportMetaData } from '../ops/OpsTypes';\nimport { validateScriptDecoded } from './utils/ScriptValidationUtils';\nimport { State } from '../shared/State';\n\nexport type Script = {\n /**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\n getScripts(): Promise<ScriptSkeleton[]>;\n /**\n * Get script by name\n * @param {string} name name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\n getScriptByName(scriptName: string): Promise<ScriptSkeleton>;\n /**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<boolean>} a status object\n */\n putScript(scriptId: string, scriptData: ScriptSkeleton): Promise<boolean>;\n /**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n exportScript(scriptId: string): Promise<ScriptExportInterface>;\n /**\n * Export script by name\n * @param {string} name script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n exportScriptByName(scriptName: string): Promise<ScriptExportInterface>;\n /**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n exportScripts(): Promise<ScriptExportInterface>;\n /**\n * Import scripts\n * @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<boolean>} true if no errors occurred during import, false otherwise\n */\n importScripts(\n scriptName: string,\n importData: ScriptExportInterface,\n reUuid?: boolean,\n validate?: boolean\n ): Promise<boolean>;\n getScript(scriptId: string): Promise<any>;\n deleteScript(scriptId: string): Promise<any>;\n};\n\nexport default (state: State): Script => {\n return {\n /**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\n async getScripts(): Promise<ScriptSkeleton[]> {\n return getScripts({ state });\n },\n\n /**\n * Get script by name\n * @param {string} name name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\n async getScriptByName(scriptName: string): Promise<ScriptSkeleton> {\n return getScriptByName({ scriptName, state });\n },\n\n /**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<boolean>} a status object\n */\n async putScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<boolean> {\n return putScript({ scriptId, scriptData, state });\n },\n\n /**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n async exportScript(scriptId: string): Promise<ScriptExportInterface> {\n return exportScript({ scriptId, state });\n },\n\n /**\n * Export script by name\n * @param {string} name script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n async exportScriptByName(\n scriptName: string\n ): Promise<ScriptExportInterface> {\n return exportScriptByName({ scriptName, state });\n },\n\n /**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n async exportScripts(): Promise<ScriptExportInterface> {\n return exportScripts({ state });\n },\n\n /**\n * Import scripts\n * @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<boolean>} true if no errors occurred during import, false otherwise\n */\n async importScripts(\n scriptName: string,\n importData: ScriptExportInterface,\n reUuid = false,\n validate = false\n ): Promise<boolean> {\n return importScripts({\n scriptName,\n importData,\n reUuid,\n validate,\n state,\n });\n },\n\n getScript(scriptId: string) {\n return getScript({ scriptId, state });\n },\n\n deleteScript(scriptId: string) {\n return deleteScript({ scriptId, state });\n },\n };\n};\n\nexport interface ScriptExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n}\n\n/**\n * Create an empty idp export template\n * @returns {ScriptExportInterface} an empty idp export template\n */\nexport function createScriptExportTemplate({\n state,\n}: {\n state: State;\n}): ScriptExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n } as ScriptExportInterface;\n}\n\n/**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\nexport async function getScripts({\n state,\n}: {\n state: State;\n}): Promise<ScriptSkeleton[]> {\n const { result } = await _getScripts({ state });\n return result;\n}\n\n/**\n * Get script by name\n * @param {string} scriptName name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\nexport async function getScriptByName({\n scriptName,\n state,\n}: {\n scriptName: string;\n state: State;\n}): Promise<ScriptSkeleton> {\n const { result } = await _getScriptByName({ scriptName, state });\n switch (result.length) {\n case 1:\n return result[0];\n case 0:\n throw new Error(`Script '${scriptName}' not found`);\n default:\n throw new Error(`${result.length} scripts '${scriptName}' found`);\n }\n}\n\n/**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<boolean>} a status object\n */\nexport async function putScript({\n scriptId,\n scriptData,\n state,\n}: {\n scriptId: string;\n scriptData: ScriptSkeleton;\n state: State;\n}): Promise<boolean> {\n try {\n if (Array.isArray(scriptData.script)) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n }\n const result = await _putScript({ scriptId, scriptData, state });\n return result;\n } catch (error) {\n if (error.response?.status === 409) {\n printMessage({\n message: `createOrUpdateScript WARNING: script with name ${scriptData.name} already exists, using renaming policy... <name> => <name - imported (n)>`,\n type: 'warn',\n state,\n });\n const newName = applyNameCollisionPolicy(scriptData.name);\n scriptData.name = newName;\n const result = await putScript({ scriptId, scriptData, state });\n printMessage({\n message: `Saved script as ${newName}`,\n type: 'warn',\n state,\n });\n return result;\n }\n throw error;\n }\n}\n\n/**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScript({\n scriptId,\n state,\n}: {\n scriptId: string;\n state: State;\n}): Promise<ScriptExportInterface> {\n debugMessage({ message: `ScriptOps.exportScriptById: start`, state });\n const scriptData = await getScript({ scriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n const exportData = createScriptExportTemplate({ state });\n exportData.script[scriptData._id] = scriptData;\n debugMessage({ message: `ScriptOps.exportScriptById: end`, state });\n return exportData;\n}\n\n/**\n * Export script by name\n * @param {string} scriptName script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScriptByName({\n scriptName,\n state,\n}: {\n scriptName: string;\n state: State;\n}): Promise<ScriptExportInterface> {\n debugMessage({ message: `ScriptOps.exportScriptByName: start`, state });\n const scriptData = await getScriptByName({ scriptName, state });\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n const exportData = createScriptExportTemplate({ state });\n exportData.script[scriptData._id] = scriptData;\n debugMessage({ message: `ScriptOps.exportScriptByName: end`, state });\n return exportData;\n}\n\n/**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScripts({\n state,\n}: {\n state: State;\n}): Promise<ScriptExportInterface> {\n const scriptList = await getScripts({ state });\n const exportData = createScriptExportTemplate({ state });\n createProgressIndicator({\n total: scriptList.length,\n message: `Exporting ${scriptList.length} scripts...`,\n state,\n });\n for (const script of scriptList) {\n updateProgressIndicator({\n message: `Reading script ${script.name}`,\n state,\n });\n const scriptData = await getScriptByName({\n scriptName: script.name,\n state,\n });\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n exportData.script[scriptData._id] = scriptData;\n }\n stopProgressIndicator({\n message: `Exported ${scriptList.length} scripts.`,\n state,\n });\n return exportData;\n}\n\n/**\n * Import scripts\n * @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<boolean>} true if no errors occurred during import, false otherwise\n */\nexport async function importScripts({\n scriptName,\n importData,\n reUuid = false,\n validate = false,\n state,\n}: {\n scriptName: string;\n importData: ScriptExportInterface;\n reUuid?: boolean;\n validate?: boolean;\n state: State;\n}): Promise<boolean> {\n let outcome = true;\n debugMessage({ message: `ScriptOps.importScripts: start`, state });\n for (const existingId of Object.keys(importData.script)) {\n const scriptSkeleton = importData.script[existingId];\n let newId = existingId;\n if (reUuid) {\n newId = uuidv4();\n debugMessage({\n message: `ScriptOps.importScripts: Re-uuid-ing script ${scriptSkeleton.name} ${existingId} => ${newId}...`,\n state,\n });\n scriptSkeleton._id = newId;\n }\n if (scriptName) {\n debugMessage({\n message: `ScriptOps.importScripts: Renaming script ${scriptSkeleton.name} => ${scriptName}...`,\n state,\n });\n scriptSkeleton.name = scriptName;\n }\n if (validate) {\n if (!validateScriptDecoded({ scriptSkeleton, state })) {\n outcome = false;\n printMessage({\n message: `Error importing script '${scriptSkeleton.name}': Script is not valid`,\n type: 'error',\n state,\n });\n continue;\n }\n }\n try {\n await putScript({ scriptId: newId, scriptData: scriptSkeleton, state });\n } catch (error) {\n outcome = false;\n printMessage({\n message: `Error importing script '${scriptSkeleton.name}': ${error.message}`,\n type: 'error',\n state,\n });\n debugMessage({ message: error, state });\n }\n if (scriptName) break;\n }\n debugMessage({ message: `ScriptOps.importScripts: end`, state });\n return outcome;\n}\n\nexport { getScript, deleteScript };\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceOps.js","names":["state","createServiceExportTemplate","getListOfServices","_arguments","arguments","_asyncToGenerator","globalConfig","length","undefined","getFullServices","_arguments2","deleteFullService","serviceId","_arguments3","deleteFullServices","_arguments4","exportService","_arguments5","exportServices","_arguments6","importService","importData","clean","_arguments7","importServices","_arguments8","exports","default","_default","meta","service","_x","_getListOfServices2","apply","_ref","debugMessage","message","services","_getListOfServices","result","_x2","_getFullServices","_ref2","concat","serviceList","fullServiceData","Promise","all","map","_ref11","listItem","nextDescendents","getService","_id","getServiceDescendents","_objectSpread","error","_error$response","_error$response2","_error$response2$data","response","status","data","_error$response3","_error$response3$data","printMessage","type","_x11","filter","putFullService","_x3","_putFullService","_ref3","_rev","enabled","_error$response4","_error$response5","_error$response5$data","_error$response6","_error$response6$data","putService","serviceData","_ref12","descendent","_type","descendentId","putServiceNextDescendent","serviceType","serviceNextDescendentId","serviceNextDescendentData","_error$response7","_error$response7$data","_x12","putFullServices","_x4","_putFullServices","_ref4","serviceEntries","results","id","push","_error$response8","_error$response8$data","_error$response9","_error$response9$data","detail","JSON","stringify","_x5","_deleteFullService","_ref5","nextDescendent","deleteServiceNextDescendent","deleteService","_x6","_deleteFullServices","_ref6","_ref13","serviceListItem","_error$response10","_error$response11","_error$response11$dat","_error$response12","_error$response12$dat","_x13","_error$response13","_error$response13$dat","_x7","_exportService","_ref7","exportData","_error$response14","_error$response14$dat","_x8","_exportServices","_ref8","_error$response15","_error$response15$dat","_x9","_importService","_ref9","_x10","_importServices","_ref10","Object","entries","_error$response16","_error$response16$dat","_error$response17","_error$response17$dat"],"sources":["../../src/ops/ServiceOps.ts"],"sourcesContent":["import { AmServiceSkeleton, FullService } from '../api/ApiTypes';\nimport {\n deleteService,\n deleteServiceNextDescendent,\n getService,\n getListOfServices as _getListOfServices,\n getServiceDescendents,\n putService,\n putServiceNextDescendent,\n} from '../api/ServiceApi';\nimport State from '../shared/State';\nimport { ServiceExportInterface } from './OpsTypes';\nimport { debugMessage, printMessage } from './utils/Console';\n\nexport default (state: State) => {\n return {\n createServiceExportTemplate(): ServiceExportInterface {\n return createServiceExportTemplate();\n },\n\n /**\n * Get list of services\n * @param {boolean} globalConfig true if the list of global services is requested, false otherwise. Default: false.\n */\n async getListOfServices(globalConfig = false) {\n return getListOfServices({ globalConfig, state });\n },\n\n /**\n * Get all services including their descendents.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving to an array of services with their descendants\n */\n async getFullServices(globalConfig = false): Promise<FullService[]> {\n return getFullServices({ globalConfig, state });\n },\n\n /**\n * Deletes the specified service\n * @param {string} serviceId The service to delete\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n async deleteFullService(serviceId: string, globalConfig = false) {\n return deleteFullService({ serviceId, globalConfig, state });\n },\n\n /**\n * Deletes all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n async deleteFullServices(globalConfig = false) {\n return deleteFullServices({ globalConfig, state });\n },\n\n /**\n * Export service. The response can be saved to file as is.\n * @param serviceId service id/name\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns {Promise<ServiceExportInterface>} Promise resolving to a ServiceExportInterface object.\n */\n async exportService(\n serviceId: string,\n globalConfig = false\n ): Promise<ServiceExportInterface> {\n return exportService({ serviceId, globalConfig, state });\n },\n\n /**\n * Export all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n async exportServices(\n globalConfig = false\n ): Promise<ServiceExportInterface> {\n return exportServices({ globalConfig, state });\n },\n\n /**\n * Imports a single service using a reference to the service and a file to read the data from. Optionally clean (remove) an existing service first\n * @param {string} serviceId The service id/name to add\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove a possible existing service with the same id first.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving when the service has been imported\n */\n async importService(\n serviceId: string,\n importData: ServiceExportInterface,\n clean: boolean,\n globalConfig = false\n ): Promise<AmServiceSkeleton> {\n return importService({\n serviceId,\n importData,\n clean,\n globalConfig,\n state,\n });\n },\n\n /**\n * Imports multiple services from the same file. Optionally clean (remove) existing services first\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove possible existing services first\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n async importServices(\n importData: ServiceExportInterface,\n clean: boolean,\n globalConfig = false\n ) {\n return importServices({\n importData,\n clean,\n globalConfig,\n state,\n });\n },\n };\n};\n\n/**\n * Create an empty service export template\n * @returns {SingleTreeExportInterface} an empty service export template\n */\nexport function createServiceExportTemplate(): ServiceExportInterface {\n return {\n meta: {},\n service: {},\n } as ServiceExportInterface;\n}\n\n/**\n * Get list of services\n * @param {boolean} globalConfig true if the list of global services is requested, false otherwise. Default: false.\n */\nexport async function getListOfServices({\n globalConfig = false,\n state,\n}: {\n globalConfig: boolean;\n state: State;\n}) {\n debugMessage({ message: `ServiceOps.getListOfServices: start`, state });\n const services = (await _getListOfServices({ globalConfig, state })).result;\n debugMessage({ message: `ServiceOps.getListOfServices: end`, state });\n return services;\n}\n\n/**\n * Get all services including their descendents.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving to an array of services with their descendants\n */\nexport async function getFullServices({\n globalConfig = false,\n state,\n}: {\n globalConfig: boolean;\n state: State;\n}): Promise<FullService[]> {\n debugMessage({\n message: `ServiceOps.getFullServices: start, globalConfig=${globalConfig}`,\n state,\n });\n const serviceList = (await _getListOfServices({ globalConfig, state }))\n .result;\n\n const fullServiceData = await Promise.all(\n serviceList.map(async (listItem) => {\n try {\n const [service, nextDescendents] = await Promise.all([\n getService({ serviceId: listItem._id, globalConfig, state }),\n getServiceDescendents({\n serviceId: listItem._id,\n globalConfig,\n state,\n }),\n ]);\n\n return {\n ...service,\n nextDescendents,\n };\n } catch (error) {\n if (\n !(\n error.response?.status === 403 &&\n error.response?.data?.message ===\n 'This operation is not available in ForgeRock Identity Cloud.'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage({\n message: `Unable to retrieve data for ${listItem._id} with error: ${message}`,\n type: 'error',\n state,\n });\n }\n }\n })\n );\n\n debugMessage({ message: `ServiceOps.getFullServices: end`, state });\n return fullServiceData.filter((data) => !!data); // make sure to filter out any undefined objects\n}\n\n/**\n * Saves a service using the provide id and data, including descendents\n * @param {string} serviceId the service id / name\n * @param {string} fullServiceData service object including descendants\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns promise resolving to a service object\n */\nasync function putFullService({\n serviceId,\n fullServiceData,\n clean,\n globalConfig = false,\n state,\n}: {\n serviceId: string;\n fullServiceData: FullService;\n clean: boolean;\n globalConfig: boolean;\n state: State;\n}): Promise<AmServiceSkeleton> {\n debugMessage({\n message: `ServiceOps.putFullService: start, serviceId=${serviceId}, globalConfig=${globalConfig}`,\n state,\n });\n const nextDescendents = fullServiceData.nextDescendents;\n\n delete fullServiceData.nextDescendents;\n delete fullServiceData._rev;\n delete fullServiceData.enabled;\n\n if (clean) {\n try {\n debugMessage({ message: `ServiceOps.putFullService: clean`, state });\n await deleteFullService({ serviceId, globalConfig, state });\n } catch (error) {\n if (\n !(\n error.response?.status === 404 &&\n error.response?.data?.message === 'Not Found'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage({\n message: `Error deleting service '${serviceId}' before import: ${message}`,\n type: 'error',\n state,\n });\n }\n }\n }\n\n // create service first\n const result = await putService({\n serviceId,\n serviceData: fullServiceData,\n globalConfig,\n state,\n });\n\n // return fast if no next descendents supplied\n if (nextDescendents.length === 0) {\n debugMessage({\n message: `ServiceOps.putFullService: end (w/o descendents)`,\n state,\n });\n return result;\n }\n\n // now create next descendents\n await Promise.all(\n nextDescendents.map(async (descendent) => {\n const type = descendent._type._id;\n const descendentId = descendent._id;\n debugMessage({\n message: `ServiceOps.putFullService: descendentId=${descendentId}`,\n state,\n });\n let result = undefined;\n try {\n result = await putServiceNextDescendent({\n serviceId,\n serviceType: type,\n serviceNextDescendentId: descendentId,\n serviceNextDescendentData: descendent,\n globalConfig,\n state,\n });\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage({\n message: `Put descendent '${descendentId}' of service '${serviceId}': ${message}`,\n type: 'error',\n state,\n });\n }\n return result;\n })\n );\n debugMessage({\n message: `ServiceOps.putFullService: end (w/ descendents)`,\n state,\n });\n}\n\n/**\n * Saves multiple services using the serviceEntries which contain both id and data with descendants\n * @param {[string, FullService][]} serviceEntries The services to add\n * @param {boolean} clean Indicates whether to remove possible existing services first\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns {Promise<AmService[]>} promise resolving to an array of service objects\n */\nasync function putFullServices({\n serviceEntries,\n clean,\n globalConfig = false,\n state,\n}: {\n serviceEntries: [string, FullService][];\n clean: boolean;\n globalConfig: boolean;\n state: State;\n}): Promise<AmServiceSkeleton[]> {\n debugMessage({\n message: `ServiceOps.putFullServices: start, globalConfig=${globalConfig}`,\n state,\n });\n const results: AmServiceSkeleton[] = [];\n for (const [id, data] of serviceEntries) {\n try {\n const result = await putFullService({\n serviceId: id,\n fullServiceData: data,\n clean,\n globalConfig,\n state,\n });\n results.push(result);\n printMessage({ message: `Imported: ${id}`, type: 'info', state });\n } catch (error) {\n const message = error.response?.data?.message;\n const detail = error.response?.data?.detail;\n printMessage({\n message: `Import service '${id}': ${message}`,\n type: 'error',\n state,\n });\n if (detail) {\n printMessage({\n message: `Details: ${JSON.stringify(detail)}`,\n type: 'error',\n state,\n });\n }\n }\n }\n debugMessage({ message: `ServiceOps.putFullServices: end`, state });\n return results;\n}\n\n/**\n * Deletes the specified service\n * @param {string} serviceId The service to delete\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function deleteFullService({\n serviceId,\n globalConfig = false,\n state,\n}: {\n serviceId: string;\n globalConfig: boolean;\n state: State;\n}) {\n debugMessage({\n message: `ServiceOps.deleteFullService: start, globalConfig=${globalConfig}`,\n state,\n });\n const serviceNextDescendentData = await getServiceDescendents({\n serviceId,\n globalConfig,\n state,\n });\n\n await Promise.all(\n serviceNextDescendentData.map((nextDescendent) =>\n deleteServiceNextDescendent({\n serviceId,\n serviceType: nextDescendent._type._id,\n serviceNextDescendentId: nextDescendent._id,\n globalConfig,\n state,\n })\n )\n );\n\n await deleteService({ serviceId, globalConfig, state });\n debugMessage({ message: `ServiceOps.deleteFullService: end`, state });\n}\n\n/**\n * Deletes all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function deleteFullServices({\n globalConfig = false,\n state,\n}: {\n globalConfig: boolean;\n state: State;\n}) {\n debugMessage({\n message: `ServiceOps.deleteFullServices: start, globalConfig=${globalConfig}`,\n state,\n });\n try {\n const serviceList = (await _getListOfServices({ globalConfig, state }))\n .result;\n\n await Promise.all(\n serviceList.map(async (serviceListItem) => {\n try {\n await deleteFullService({\n serviceId: serviceListItem._id,\n globalConfig,\n state,\n });\n } catch (error) {\n if (\n !(\n error.response?.status === 403 &&\n error.response?.data?.message ===\n 'This operation is not available in ForgeRock Identity Cloud.'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage({\n message: `Delete service '${serviceListItem._id}': ${message}`,\n state,\n type: 'error',\n });\n }\n }\n })\n );\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage({\n message: `Delete services: ${message}`,\n type: 'error',\n state,\n });\n }\n debugMessage({ message: `ServiceOps.deleteFullServices: end`, state });\n}\n\n/**\n * Export service. The response can be saved to file as is.\n * @param serviceId service id/name\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns {Promise<ServiceExportInterface>} Promise resolving to a ServiceExportInterface object.\n */\nexport async function exportService({\n serviceId,\n globalConfig = false,\n state,\n}: {\n serviceId: string;\n globalConfig: boolean;\n state: State;\n}): Promise<ServiceExportInterface> {\n debugMessage({\n message: `ServiceOps.exportService: start, globalConfig=${globalConfig}`,\n state,\n });\n const exportData = createServiceExportTemplate();\n try {\n const service = await getService({ serviceId, globalConfig, state });\n service.nextDescendents = await getServiceDescendents({\n serviceId,\n globalConfig,\n state,\n });\n exportData.service[serviceId] = service;\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage({\n message: `Export service '${serviceId}': ${message}`,\n type: 'error',\n state,\n });\n }\n debugMessage({ message: `ServiceOps.exportService: end`, state });\n return exportData;\n}\n\n/**\n * Export all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function exportServices({\n globalConfig = false,\n state,\n}: {\n globalConfig: boolean;\n state: State;\n}): Promise<ServiceExportInterface> {\n debugMessage({\n message: `ServiceOps.exportServices: start, globalConfig=${globalConfig}`,\n state,\n });\n const exportData = createServiceExportTemplate();\n try {\n const services = await getFullServices({ globalConfig, state });\n for (const service of services) {\n exportData.service[service._type._id] = service;\n }\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage({\n message: `Export servics: ${message}`,\n type: 'error',\n state,\n });\n }\n debugMessage({ message: `ServiceOps.exportServices: end`, state });\n return exportData;\n}\n\n/**\n * Imports a single service using a reference to the service and a file to read the data from. Optionally clean (remove) an existing service first\n * @param {string} serviceId The service id/name to add\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove a possible existing service with the same id first.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving when the service has been imported\n */\nexport async function importService({\n serviceId,\n importData,\n clean,\n globalConfig = false,\n state,\n}: {\n serviceId: string;\n importData: ServiceExportInterface;\n clean: boolean;\n globalConfig: boolean;\n state: State;\n}): Promise<AmServiceSkeleton> {\n debugMessage({\n message: `ServiceOps.importService: start, globalConfig=${globalConfig}`,\n state,\n });\n const serviceData = importData.service[serviceId];\n const result = await putFullService({\n serviceId,\n fullServiceData: serviceData,\n clean,\n globalConfig,\n state,\n });\n debugMessage({ message: `ServiceOps.importService: end`, state });\n return result;\n}\n\n/**\n * Imports multiple services from the same file. Optionally clean (remove) existing services first\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove possible existing services first\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function importServices({\n importData,\n clean,\n globalConfig = false,\n state,\n}: {\n importData: ServiceExportInterface;\n clean: boolean;\n globalConfig: boolean;\n state: State;\n}) {\n debugMessage({\n message: `ServiceOps.importServices: start, globalConfig=${globalConfig}`,\n state,\n });\n try {\n const result = await putFullServices({\n serviceEntries: Object.entries(importData.service),\n clean,\n globalConfig,\n state,\n });\n debugMessage({ message: `ServiceOps.importServices: end`, state });\n return result;\n } catch (error) {\n const message = error.response?.data?.message;\n const detail = error.response?.data?.detail;\n printMessage({\n message: `Unable to import services: error: ${message}`,\n type: 'error',\n state,\n });\n if (detail) {\n printMessage({\n message: `Details: ${JSON.stringify(detail)}`,\n type: 'error',\n state,\n });\n }\n throw error;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ServiceOps.js","names":["state","createServiceExportTemplate","getListOfServices","_arguments","arguments","_asyncToGenerator","globalConfig","length","undefined","getFullServices","_arguments2","deleteFullService","serviceId","_arguments3","deleteFullServices","_arguments4","exportService","_arguments5","exportServices","_arguments6","importService","importData","clean","_arguments7","importServices","_arguments8","exports","default","_default","meta","service","_x","_getListOfServices2","apply","_ref","debugMessage","message","services","_getListOfServices","result","_x2","_getFullServices","_ref2","concat","serviceList","fullServiceData","Promise","all","map","_ref11","listItem","nextDescendents","getService","_id","getServiceDescendents","_objectSpread","error","_error$response","_error$response2","_error$response2$data","response","status","data","_error$response3","_error$response3$data","printMessage","type","_x11","filter","putFullService","_x3","_putFullService","_ref3","_rev","enabled","_error$response4","_error$response5","_error$response5$data","_error$response6","_error$response6$data","putService","serviceData","_ref12","descendent","_type","descendentId","putServiceNextDescendent","serviceType","serviceNextDescendentId","serviceNextDescendentData","_error$response7","_error$response7$data","_x12","putFullServices","_x4","_putFullServices","_ref4","serviceEntries","results","id","push","_error$response8","_error$response8$data","_error$response9","_error$response9$data","detail","JSON","stringify","_x5","_deleteFullService","_ref5","nextDescendent","deleteServiceNextDescendent","deleteService","_x6","_deleteFullServices","_ref6","_ref13","serviceListItem","_error$response10","_error$response11","_error$response11$dat","_error$response12","_error$response12$dat","_x13","_error$response13","_error$response13$dat","_x7","_exportService","_ref7","exportData","_error$response14","_error$response14$dat","_x8","_exportServices","_ref8","_error$response15","_error$response15$dat","_x9","_importService","_ref9","_x10","_importServices","_ref10","Object","entries","_error$response16","_error$response16$dat","_error$response17","_error$response17$dat"],"sources":["../../src/ops/ServiceOps.ts"],"sourcesContent":["import { AmServiceSkeleton, FullService } from '../api/ApiTypes';\nimport {\n deleteService,\n deleteServiceNextDescendent,\n getService,\n getListOfServices as _getListOfServices,\n getServiceDescendents,\n putService,\n putServiceNextDescendent,\n} from '../api/ServiceApi';\nimport { State } from '../shared/State';\nimport { ServiceExportInterface } from './OpsTypes';\nimport { debugMessage, printMessage } from './utils/Console';\n\nexport type Service = {\n createServiceExportTemplate(): ServiceExportInterface;\n /**\n * Get list of services\n * @param {boolean} globalConfig true if the list of global services is requested, false otherwise. Default: false.\n */\n getListOfServices(\n globalConfig?: boolean\n ): Promise<import('../api/ServiceApi').ServiceListItem[]>;\n /**\n * Get all services including their descendents.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving to an array of services with their descendants\n */\n getFullServices(globalConfig?: boolean): Promise<FullService[]>;\n /**\n * Deletes the specified service\n * @param {string} serviceId The service to delete\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n deleteFullService(serviceId: string, globalConfig?: boolean): Promise<void>;\n /**\n * Deletes all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n deleteFullServices(globalConfig?: boolean): Promise<void>;\n /**\n * Export service. The response can be saved to file as is.\n * @param serviceId service id/name\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns {Promise<ServiceExportInterface>} Promise resolving to a ServiceExportInterface object.\n */\n exportService(\n serviceId: string,\n globalConfig?: boolean\n ): Promise<ServiceExportInterface>;\n /**\n * Export all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n exportServices(globalConfig?: boolean): Promise<ServiceExportInterface>;\n /**\n * Imports a single service using a reference to the service and a file to read the data from. Optionally clean (remove) an existing service first\n * @param {string} serviceId The service id/name to add\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove a possible existing service with the same id first.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving when the service has been imported\n */\n importService(\n serviceId: string,\n importData: ServiceExportInterface,\n clean: boolean,\n globalConfig?: boolean\n ): Promise<AmServiceSkeleton>;\n /**\n * Imports multiple services from the same file. Optionally clean (remove) existing services first\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove possible existing services first\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n importServices(\n importData: ServiceExportInterface,\n clean: boolean,\n globalConfig?: boolean\n ): Promise<AmServiceSkeleton[]>;\n};\n\nexport default (state: State): Service => {\n return {\n createServiceExportTemplate(): ServiceExportInterface {\n return createServiceExportTemplate();\n },\n\n /**\n * Get list of services\n * @param {boolean} globalConfig true if the list of global services is requested, false otherwise. Default: false.\n */\n async getListOfServices(globalConfig = false) {\n return getListOfServices({ globalConfig, state });\n },\n\n /**\n * Get all services including their descendents.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving to an array of services with their descendants\n */\n async getFullServices(globalConfig = false): Promise<FullService[]> {\n return getFullServices({ globalConfig, state });\n },\n\n /**\n * Deletes the specified service\n * @param {string} serviceId The service to delete\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n async deleteFullService(serviceId: string, globalConfig = false) {\n return deleteFullService({ serviceId, globalConfig, state });\n },\n\n /**\n * Deletes all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n async deleteFullServices(globalConfig = false) {\n return deleteFullServices({ globalConfig, state });\n },\n\n /**\n * Export service. The response can be saved to file as is.\n * @param serviceId service id/name\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns {Promise<ServiceExportInterface>} Promise resolving to a ServiceExportInterface object.\n */\n async exportService(\n serviceId: string,\n globalConfig = false\n ): Promise<ServiceExportInterface> {\n return exportService({ serviceId, globalConfig, state });\n },\n\n /**\n * Export all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n async exportServices(\n globalConfig = false\n ): Promise<ServiceExportInterface> {\n return exportServices({ globalConfig, state });\n },\n\n /**\n * Imports a single service using a reference to the service and a file to read the data from. Optionally clean (remove) an existing service first\n * @param {string} serviceId The service id/name to add\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove a possible existing service with the same id first.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving when the service has been imported\n */\n async importService(\n serviceId: string,\n importData: ServiceExportInterface,\n clean: boolean,\n globalConfig = false\n ): Promise<AmServiceSkeleton> {\n return importService({\n serviceId,\n importData,\n clean,\n globalConfig,\n state,\n });\n },\n\n /**\n * Imports multiple services from the same file. Optionally clean (remove) existing services first\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove possible existing services first\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\n async importServices(\n importData: ServiceExportInterface,\n clean: boolean,\n globalConfig = false\n ) {\n return importServices({\n importData,\n clean,\n globalConfig,\n state,\n });\n },\n };\n};\n\n/**\n * Create an empty service export template\n * @returns {SingleTreeExportInterface} an empty service export template\n */\nexport function createServiceExportTemplate(): ServiceExportInterface {\n return {\n meta: {},\n service: {},\n } as ServiceExportInterface;\n}\n\n/**\n * Get list of services\n * @param {boolean} globalConfig true if the list of global services is requested, false otherwise. Default: false.\n */\nexport async function getListOfServices({\n globalConfig = false,\n state,\n}: {\n globalConfig: boolean;\n state: State;\n}) {\n debugMessage({ message: `ServiceOps.getListOfServices: start`, state });\n const services = (await _getListOfServices({ globalConfig, state })).result;\n debugMessage({ message: `ServiceOps.getListOfServices: end`, state });\n return services;\n}\n\n/**\n * Get all services including their descendents.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving to an array of services with their descendants\n */\nexport async function getFullServices({\n globalConfig = false,\n state,\n}: {\n globalConfig: boolean;\n state: State;\n}): Promise<FullService[]> {\n debugMessage({\n message: `ServiceOps.getFullServices: start, globalConfig=${globalConfig}`,\n state,\n });\n const serviceList = (await _getListOfServices({ globalConfig, state }))\n .result;\n\n const fullServiceData = await Promise.all(\n serviceList.map(async (listItem) => {\n try {\n const [service, nextDescendents] = await Promise.all([\n getService({ serviceId: listItem._id, globalConfig, state }),\n getServiceDescendents({\n serviceId: listItem._id,\n globalConfig,\n state,\n }),\n ]);\n\n return {\n ...service,\n nextDescendents,\n };\n } catch (error) {\n if (\n !(\n error.response?.status === 403 &&\n error.response?.data?.message ===\n 'This operation is not available in ForgeRock Identity Cloud.'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage({\n message: `Unable to retrieve data for ${listItem._id} with error: ${message}`,\n type: 'error',\n state,\n });\n }\n }\n })\n );\n\n debugMessage({ message: `ServiceOps.getFullServices: end`, state });\n return fullServiceData.filter((data) => !!data); // make sure to filter out any undefined objects\n}\n\n/**\n * Saves a service using the provide id and data, including descendents\n * @param {string} serviceId the service id / name\n * @param {string} fullServiceData service object including descendants\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns promise resolving to a service object\n */\nasync function putFullService({\n serviceId,\n fullServiceData,\n clean,\n globalConfig = false,\n state,\n}: {\n serviceId: string;\n fullServiceData: FullService;\n clean: boolean;\n globalConfig: boolean;\n state: State;\n}): Promise<AmServiceSkeleton> {\n debugMessage({\n message: `ServiceOps.putFullService: start, serviceId=${serviceId}, globalConfig=${globalConfig}`,\n state,\n });\n const nextDescendents = fullServiceData.nextDescendents;\n\n delete fullServiceData.nextDescendents;\n delete fullServiceData._rev;\n delete fullServiceData.enabled;\n\n if (clean) {\n try {\n debugMessage({ message: `ServiceOps.putFullService: clean`, state });\n await deleteFullService({ serviceId, globalConfig, state });\n } catch (error) {\n if (\n !(\n error.response?.status === 404 &&\n error.response?.data?.message === 'Not Found'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage({\n message: `Error deleting service '${serviceId}' before import: ${message}`,\n type: 'error',\n state,\n });\n }\n }\n }\n\n // create service first\n const result = await putService({\n serviceId,\n serviceData: fullServiceData,\n globalConfig,\n state,\n });\n\n // return fast if no next descendents supplied\n if (nextDescendents.length === 0) {\n debugMessage({\n message: `ServiceOps.putFullService: end (w/o descendents)`,\n state,\n });\n return result;\n }\n\n // now create next descendents\n await Promise.all(\n nextDescendents.map(async (descendent) => {\n const type = descendent._type._id;\n const descendentId = descendent._id;\n debugMessage({\n message: `ServiceOps.putFullService: descendentId=${descendentId}`,\n state,\n });\n let result = undefined;\n try {\n result = await putServiceNextDescendent({\n serviceId,\n serviceType: type,\n serviceNextDescendentId: descendentId,\n serviceNextDescendentData: descendent,\n globalConfig,\n state,\n });\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage({\n message: `Put descendent '${descendentId}' of service '${serviceId}': ${message}`,\n type: 'error',\n state,\n });\n }\n return result;\n })\n );\n debugMessage({\n message: `ServiceOps.putFullService: end (w/ descendents)`,\n state,\n });\n}\n\n/**\n * Saves multiple services using the serviceEntries which contain both id and data with descendants\n * @param {[string, FullService][]} serviceEntries The services to add\n * @param {boolean} clean Indicates whether to remove possible existing services first\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns {Promise<AmService[]>} promise resolving to an array of service objects\n */\nasync function putFullServices({\n serviceEntries,\n clean,\n globalConfig = false,\n state,\n}: {\n serviceEntries: [string, FullService][];\n clean: boolean;\n globalConfig: boolean;\n state: State;\n}): Promise<AmServiceSkeleton[]> {\n debugMessage({\n message: `ServiceOps.putFullServices: start, globalConfig=${globalConfig}`,\n state,\n });\n const results: AmServiceSkeleton[] = [];\n for (const [id, data] of serviceEntries) {\n try {\n const result = await putFullService({\n serviceId: id,\n fullServiceData: data,\n clean,\n globalConfig,\n state,\n });\n results.push(result);\n printMessage({ message: `Imported: ${id}`, type: 'info', state });\n } catch (error) {\n const message = error.response?.data?.message;\n const detail = error.response?.data?.detail;\n printMessage({\n message: `Import service '${id}': ${message}`,\n type: 'error',\n state,\n });\n if (detail) {\n printMessage({\n message: `Details: ${JSON.stringify(detail)}`,\n type: 'error',\n state,\n });\n }\n }\n }\n debugMessage({ message: `ServiceOps.putFullServices: end`, state });\n return results;\n}\n\n/**\n * Deletes the specified service\n * @param {string} serviceId The service to delete\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function deleteFullService({\n serviceId,\n globalConfig = false,\n state,\n}: {\n serviceId: string;\n globalConfig: boolean;\n state: State;\n}) {\n debugMessage({\n message: `ServiceOps.deleteFullService: start, globalConfig=${globalConfig}`,\n state,\n });\n const serviceNextDescendentData = await getServiceDescendents({\n serviceId,\n globalConfig,\n state,\n });\n\n await Promise.all(\n serviceNextDescendentData.map((nextDescendent) =>\n deleteServiceNextDescendent({\n serviceId,\n serviceType: nextDescendent._type._id,\n serviceNextDescendentId: nextDescendent._id,\n globalConfig,\n state,\n })\n )\n );\n\n await deleteService({ serviceId, globalConfig, state });\n debugMessage({ message: `ServiceOps.deleteFullService: end`, state });\n}\n\n/**\n * Deletes all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function deleteFullServices({\n globalConfig = false,\n state,\n}: {\n globalConfig: boolean;\n state: State;\n}) {\n debugMessage({\n message: `ServiceOps.deleteFullServices: start, globalConfig=${globalConfig}`,\n state,\n });\n try {\n const serviceList = (await _getListOfServices({ globalConfig, state }))\n .result;\n\n await Promise.all(\n serviceList.map(async (serviceListItem) => {\n try {\n await deleteFullService({\n serviceId: serviceListItem._id,\n globalConfig,\n state,\n });\n } catch (error) {\n if (\n !(\n error.response?.status === 403 &&\n error.response?.data?.message ===\n 'This operation is not available in ForgeRock Identity Cloud.'\n )\n ) {\n const message = error.response?.data?.message;\n printMessage({\n message: `Delete service '${serviceListItem._id}': ${message}`,\n state,\n type: 'error',\n });\n }\n }\n })\n );\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage({\n message: `Delete services: ${message}`,\n type: 'error',\n state,\n });\n }\n debugMessage({ message: `ServiceOps.deleteFullServices: end`, state });\n}\n\n/**\n * Export service. The response can be saved to file as is.\n * @param serviceId service id/name\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns {Promise<ServiceExportInterface>} Promise resolving to a ServiceExportInterface object.\n */\nexport async function exportService({\n serviceId,\n globalConfig = false,\n state,\n}: {\n serviceId: string;\n globalConfig: boolean;\n state: State;\n}): Promise<ServiceExportInterface> {\n debugMessage({\n message: `ServiceOps.exportService: start, globalConfig=${globalConfig}`,\n state,\n });\n const exportData = createServiceExportTemplate();\n try {\n const service = await getService({ serviceId, globalConfig, state });\n service.nextDescendents = await getServiceDescendents({\n serviceId,\n globalConfig,\n state,\n });\n exportData.service[serviceId] = service;\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage({\n message: `Export service '${serviceId}': ${message}`,\n type: 'error',\n state,\n });\n }\n debugMessage({ message: `ServiceOps.exportService: end`, state });\n return exportData;\n}\n\n/**\n * Export all services\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function exportServices({\n globalConfig = false,\n state,\n}: {\n globalConfig: boolean;\n state: State;\n}): Promise<ServiceExportInterface> {\n debugMessage({\n message: `ServiceOps.exportServices: start, globalConfig=${globalConfig}`,\n state,\n });\n const exportData = createServiceExportTemplate();\n try {\n const services = await getFullServices({ globalConfig, state });\n for (const service of services) {\n exportData.service[service._type._id] = service;\n }\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage({\n message: `Export servics: ${message}`,\n type: 'error',\n state,\n });\n }\n debugMessage({ message: `ServiceOps.exportServices: end`, state });\n return exportData;\n}\n\n/**\n * Imports a single service using a reference to the service and a file to read the data from. Optionally clean (remove) an existing service first\n * @param {string} serviceId The service id/name to add\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove a possible existing service with the same id first.\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n * @returns Promise resolving when the service has been imported\n */\nexport async function importService({\n serviceId,\n importData,\n clean,\n globalConfig = false,\n state,\n}: {\n serviceId: string;\n importData: ServiceExportInterface;\n clean: boolean;\n globalConfig: boolean;\n state: State;\n}): Promise<AmServiceSkeleton> {\n debugMessage({\n message: `ServiceOps.importService: start, globalConfig=${globalConfig}`,\n state,\n });\n const serviceData = importData.service[serviceId];\n const result = await putFullService({\n serviceId,\n fullServiceData: serviceData,\n clean,\n globalConfig,\n state,\n });\n debugMessage({ message: `ServiceOps.importService: end`, state });\n return result;\n}\n\n/**\n * Imports multiple services from the same file. Optionally clean (remove) existing services first\n * @param {ServiceExportInterface} importData The service configuration export data to import\n * @param {boolean} clean Indicates whether to remove possible existing services first\n * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.\n */\nexport async function importServices({\n importData,\n clean,\n globalConfig = false,\n state,\n}: {\n importData: ServiceExportInterface;\n clean: boolean;\n globalConfig: boolean;\n state: State;\n}) {\n debugMessage({\n message: `ServiceOps.importServices: start, globalConfig=${globalConfig}`,\n state,\n });\n try {\n const result = await putFullServices({\n serviceEntries: Object.entries(importData.service),\n clean,\n globalConfig,\n state,\n });\n debugMessage({ message: `ServiceOps.importServices: end`, state });\n return result;\n } catch (error) {\n const message = error.response?.data?.message;\n const detail = error.response?.data?.detail;\n printMessage({\n message: `Unable to import services: error: ${message}`,\n type: 'error',\n state,\n });\n if (detail) {\n printMessage({\n message: `Details: ${JSON.stringify(detail)}`,\n type: 'error',\n state,\n });\n }\n throw error;\n }\n}\n"],"mappings":"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"}