@rockcarver/frodo-lib 1.1.0 → 1.1.2-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. package/build.zip +0 -0
  2. package/cjs/api/AgentApi.js +4 -4
  3. package/cjs/api/AgentApi.js.map +1 -1
  4. package/cjs/api/AgentApi.test.js +3 -3
  5. package/cjs/api/AgentApi.test.js.map +1 -1
  6. package/cjs/api/AuthenticateApi.js +3 -3
  7. package/cjs/api/AuthenticateApi.js.map +1 -1
  8. package/cjs/api/AuthenticateApi.test.js +2 -2
  9. package/cjs/api/AuthenticateApi.test.js.map +1 -1
  10. package/cjs/api/BaseApi.js +4 -4
  11. package/cjs/api/BaseApi.js.map +1 -1
  12. package/cjs/api/CirclesOfTrustApi.js +3 -3
  13. package/cjs/api/CirclesOfTrustApi.js.map +1 -1
  14. package/cjs/api/IdmConfigApi.js +3 -3
  15. package/cjs/api/IdmConfigApi.js.map +1 -1
  16. package/cjs/api/IdmSystemApi.js +3 -3
  17. package/cjs/api/IdmSystemApi.js.map +1 -1
  18. package/cjs/api/ManagedObjectApi.js +3 -3
  19. package/cjs/api/ManagedObjectApi.js.map +1 -1
  20. package/cjs/api/NodeApi.js +3 -3
  21. package/cjs/api/NodeApi.js.map +1 -1
  22. package/cjs/api/NodeApi.test.js +2 -2
  23. package/cjs/api/NodeApi.test.js.map +1 -1
  24. package/cjs/api/OAuth2ClientApi.js +3 -3
  25. package/cjs/api/OAuth2ClientApi.js.map +1 -1
  26. package/cjs/api/OAuth2OIDCApi.js +4 -4
  27. package/cjs/api/OAuth2OIDCApi.js.map +1 -1
  28. package/cjs/api/OAuth2OIDCApi.test.js +4 -4
  29. package/cjs/api/OAuth2OIDCApi.test.js.map +1 -1
  30. package/cjs/api/OAuth2ProviderApi.js +3 -3
  31. package/cjs/api/OAuth2ProviderApi.js.map +1 -1
  32. package/cjs/api/PoliciesApi.js +3 -3
  33. package/cjs/api/PoliciesApi.js.map +1 -1
  34. package/cjs/api/PoliciesApi.test.js +4 -4
  35. package/cjs/api/PoliciesApi.test.js.map +1 -1
  36. package/cjs/api/PolicySetApi.js +4 -4
  37. package/cjs/api/PolicySetApi.js.map +1 -1
  38. package/cjs/api/PolicySetApi.test.js +3 -3
  39. package/cjs/api/PolicySetApi.test.js.map +1 -1
  40. package/cjs/api/RealmApi.js +3 -3
  41. package/cjs/api/RealmApi.js.map +1 -1
  42. package/cjs/api/ResourceTypesApi.js +3 -3
  43. package/cjs/api/ResourceTypesApi.js.map +1 -1
  44. package/cjs/api/ResourceTypesApi.test.js +2 -2
  45. package/cjs/api/ResourceTypesApi.test.js.map +1 -1
  46. package/cjs/api/Saml2Api.js +3 -3
  47. package/cjs/api/Saml2Api.js.map +1 -1
  48. package/cjs/api/ScriptApi.js +3 -3
  49. package/cjs/api/ScriptApi.js.map +1 -1
  50. package/cjs/api/ServerInfoApi.js +2 -2
  51. package/cjs/api/ServerInfoApi.js.map +1 -1
  52. package/cjs/api/ServiceApi.js +3 -3
  53. package/cjs/api/ServiceApi.js.map +1 -1
  54. package/cjs/api/SocialIdentityProvidersApi.js +3 -3
  55. package/cjs/api/SocialIdentityProvidersApi.js.map +1 -1
  56. package/cjs/api/TreeApi.js +3 -3
  57. package/cjs/api/TreeApi.js.map +1 -1
  58. package/cjs/api/TreeApi.test.js +2 -2
  59. package/cjs/api/TreeApi.test.js.map +1 -1
  60. package/cjs/api/cloud/AdminFederationProvidersApi.js +3 -3
  61. package/cjs/api/cloud/AdminFederationProvidersApi.js.map +1 -1
  62. package/cjs/api/cloud/EnvInfoApi.js +3 -3
  63. package/cjs/api/cloud/EnvInfoApi.js.map +1 -1
  64. package/cjs/api/cloud/FeatureApi.js +3 -3
  65. package/cjs/api/cloud/FeatureApi.js.map +1 -1
  66. package/cjs/api/cloud/LogApi.js +3 -3
  67. package/cjs/api/cloud/LogApi.js.map +1 -1
  68. package/cjs/api/cloud/SecretsApi.js +4 -4
  69. package/cjs/api/cloud/SecretsApi.js.map +1 -1
  70. package/cjs/api/cloud/SecretsApi.test.js +2 -2
  71. package/cjs/api/cloud/SecretsApi.test.js.map +1 -1
  72. package/cjs/api/cloud/StartupApi.js +3 -3
  73. package/cjs/api/cloud/StartupApi.js.map +1 -1
  74. package/cjs/api/cloud/StartupApi.test.js +1 -1
  75. package/cjs/api/cloud/StartupApi.test.js.map +1 -1
  76. package/cjs/api/cloud/VariablesApi.js +4 -4
  77. package/cjs/api/cloud/VariablesApi.js.map +1 -1
  78. package/cjs/api/cloud/VariablesApi.test.js +2 -2
  79. package/cjs/api/cloud/VariablesApi.test.js.map +1 -1
  80. package/cjs/api/utils/ApiUtils.js +1 -1
  81. package/cjs/api/utils/ApiUtils.js.map +1 -1
  82. package/cjs/api/utils/ApiUtils.test.js +2 -2
  83. package/cjs/api/utils/ApiUtils.test.js.map +1 -1
  84. package/cjs/ext/axios-curlirize/curlirize.js +1 -1
  85. package/cjs/ext/axios-curlirize/curlirize.js.map +1 -1
  86. package/cjs/index.js +49 -49
  87. package/cjs/ops/AdminOps.js +8 -8
  88. package/cjs/ops/AdminOps.js.map +1 -1
  89. package/cjs/ops/AgentOps.js +3 -3
  90. package/cjs/ops/AgentOps.js.map +1 -1
  91. package/cjs/ops/AgentOps.test.js +3 -3
  92. package/cjs/ops/AgentOps.test.js.map +1 -1
  93. package/cjs/ops/AuthenticateOps.js +12 -12
  94. package/cjs/ops/AuthenticateOps.js.map +1 -1
  95. package/cjs/ops/AuthenticateOps.test.js +2 -2
  96. package/cjs/ops/AuthenticateOps.test.js.map +1 -1
  97. package/cjs/ops/CirclesOfTrustOps.js +3 -3
  98. package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
  99. package/cjs/ops/ConnectionProfileOps.js +8 -8
  100. package/cjs/ops/ConnectionProfileOps.js.map +1 -1
  101. package/cjs/ops/ConnectionProfileOps.test.js +2 -2
  102. package/cjs/ops/ConnectionProfileOps.test.js.map +1 -1
  103. package/cjs/ops/EmailTemplateOps.js +1 -1
  104. package/cjs/ops/EmailTemplateOps.js.map +1 -1
  105. package/cjs/ops/EmailTemplateOps.test.js +2 -2
  106. package/cjs/ops/EmailTemplateOps.test.js.map +1 -1
  107. package/cjs/ops/IdmOps.js +2 -2
  108. package/cjs/ops/IdmOps.js.map +1 -1
  109. package/cjs/ops/IdmOps.test.js +2 -2
  110. package/cjs/ops/IdmOps.test.js.map +1 -1
  111. package/cjs/ops/IdpOps.js +6 -6
  112. package/cjs/ops/IdpOps.js.map +1 -1
  113. package/cjs/ops/IdpOps.test.js +2 -2
  114. package/cjs/ops/IdpOps.test.js.map +1 -1
  115. package/cjs/ops/InfoOps.js +6 -6
  116. package/cjs/ops/InfoOps.js.map +1 -1
  117. package/cjs/ops/JoseOps.test.js +4 -4
  118. package/cjs/ops/JoseOps.test.js.map +1 -1
  119. package/cjs/ops/JourneyOps.js +17 -17
  120. package/cjs/ops/JourneyOps.js.map +1 -1
  121. package/cjs/ops/JourneyOps.test.js +4 -4
  122. package/cjs/ops/JourneyOps.test.js.map +1 -1
  123. package/cjs/ops/ManagedObjectOps.js +1 -1
  124. package/cjs/ops/ManagedObjectOps.js.map +1 -1
  125. package/cjs/ops/NodeOps.js +7 -7
  126. package/cjs/ops/NodeOps.js.map +1 -1
  127. package/cjs/ops/OAuth2ClientOps.js +6 -6
  128. package/cjs/ops/OAuth2ClientOps.js.map +1 -1
  129. package/cjs/ops/OAuth2ClientOps.test.js +3 -3
  130. package/cjs/ops/OAuth2ClientOps.test.js.map +1 -1
  131. package/cjs/ops/OAuth2ProviderOps.js +1 -1
  132. package/cjs/ops/OAuth2ProviderOps.js.map +1 -1
  133. package/cjs/ops/OrganizationOps.js +3 -3
  134. package/cjs/ops/OrganizationOps.js.map +1 -1
  135. package/cjs/ops/PolicyOps.js +8 -8
  136. package/cjs/ops/PolicyOps.js.map +1 -1
  137. package/cjs/ops/PolicyOps.test.js +6 -6
  138. package/cjs/ops/PolicyOps.test.js.map +1 -1
  139. package/cjs/ops/PolicySetOps.js +6 -6
  140. package/cjs/ops/PolicySetOps.js.map +1 -1
  141. package/cjs/ops/PolicySetOps.test.js +4 -4
  142. package/cjs/ops/PolicySetOps.test.js.map +1 -1
  143. package/cjs/ops/RealmOps.js +2 -2
  144. package/cjs/ops/RealmOps.js.map +1 -1
  145. package/cjs/ops/ResourceTypeOps.js +6 -6
  146. package/cjs/ops/ResourceTypeOps.js.map +1 -1
  147. package/cjs/ops/ResourceTypeOps.test.js +2 -2
  148. package/cjs/ops/ResourceTypeOps.test.js.map +1 -1
  149. package/cjs/ops/Saml2Ops.js +7 -7
  150. package/cjs/ops/Saml2Ops.js.map +1 -1
  151. package/cjs/ops/Saml2Ops.test.js +6 -6
  152. package/cjs/ops/Saml2Ops.test.js.map +1 -1
  153. package/cjs/ops/ScriptOps.js +5 -5
  154. package/cjs/ops/ScriptOps.js.map +1 -1
  155. package/cjs/ops/ScriptOps.test.js +2 -2
  156. package/cjs/ops/ScriptOps.test.js.map +1 -1
  157. package/cjs/ops/ServiceOps.js +2 -2
  158. package/cjs/ops/ServiceOps.js.map +1 -1
  159. package/cjs/ops/ThemeOps.js +3 -3
  160. package/cjs/ops/ThemeOps.js.map +1 -1
  161. package/cjs/ops/ThemeOps.test.js +3 -3
  162. package/cjs/ops/ThemeOps.test.js.map +1 -1
  163. package/cjs/ops/cloud/AdminFederationOps.js +4 -4
  164. package/cjs/ops/cloud/AdminFederationOps.js.map +1 -1
  165. package/cjs/ops/cloud/FeatureOps.js +2 -2
  166. package/cjs/ops/cloud/FeatureOps.js.map +1 -1
  167. package/cjs/ops/cloud/LogOps.js +1 -1
  168. package/cjs/ops/cloud/LogOps.js.map +1 -1
  169. package/cjs/ops/cloud/SecretsOps.js +4 -4
  170. package/cjs/ops/cloud/SecretsOps.js.map +1 -1
  171. package/cjs/ops/cloud/ServiceAccountOps.js +3 -3
  172. package/cjs/ops/cloud/ServiceAccountOps.js.map +1 -1
  173. package/cjs/ops/cloud/ServiceAccountOps.test.js +3 -3
  174. package/cjs/ops/cloud/ServiceAccountOps.test.js.map +1 -1
  175. package/cjs/ops/cloud/StartupOps.js +4 -4
  176. package/cjs/ops/cloud/StartupOps.js.map +1 -1
  177. package/cjs/ops/cloud/VariablesOps.js +5 -5
  178. package/cjs/ops/cloud/VariablesOps.js.map +1 -1
  179. package/cjs/ops/utils/Console.js +1 -1
  180. package/cjs/ops/utils/Console.js.map +1 -1
  181. package/cjs/ops/utils/DataProtection.js +3 -3
  182. package/cjs/ops/utils/DataProtection.js.map +1 -1
  183. package/cjs/ops/utils/DataProtection.test.js +1 -1
  184. package/cjs/ops/utils/DataProtection.test.js.map +1 -1
  185. package/cjs/ops/utils/ExportImportUtils.js +4 -4
  186. package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
  187. package/cjs/ops/utils/ExportImportUtils.test.js +1 -1
  188. package/cjs/ops/utils/ExportImportUtils.test.js.map +1 -1
  189. package/cjs/ops/utils/OpsUtils.js +3 -3
  190. package/cjs/ops/utils/OpsUtils.js.map +1 -1
  191. package/cjs/ops/utils/OpsUtils.test.js +3 -3
  192. package/cjs/ops/utils/OpsUtils.test.js.map +1 -1
  193. package/cjs/ops/utils/ValidationUtils.js +2 -2
  194. package/cjs/ops/utils/ValidationUtils.js.map +1 -1
  195. package/cjs/ops/utils/ValidationUtils.test.js +1 -1
  196. package/cjs/ops/utils/ValidationUtils.test.js.map +1 -1
  197. package/cjs/ops/utils/Version.js +1 -1
  198. package/cjs/ops/utils/Version.js.map +1 -1
  199. package/cjs/ops/utils/Version.test.js +1 -1
  200. package/cjs/ops/utils/Version.test.js.map +1 -1
  201. package/cjs/ops/utils/Wordwrap.test.js +1 -1
  202. package/cjs/ops/utils/Wordwrap.test.js.map +1 -1
  203. package/cjs/shared/State.test.js +1 -1
  204. package/cjs/shared/State.test.js.map +1 -1
  205. package/cjs/test/mocks/ForgeRockApiMockEngine.js +2 -2
  206. package/cjs/test/mocks/ForgeRockApiMockEngine.js.map +1 -1
  207. package/cjs/utils/AutoSetupPolly.js +2 -2
  208. package/cjs/utils/AutoSetupPolly.js.map +1 -1
  209. package/cjs/utils/SetupPollyForFrodoLib.js +1 -1
  210. package/cjs/utils/SetupPollyForFrodoLib.js.map +1 -1
  211. package/esm/api/AgentApi.js +4 -4
  212. package/esm/api/AgentApi.js.map +1 -1
  213. package/esm/api/AgentApi.test.js +3 -3
  214. package/esm/api/AgentApi.test.js.map +1 -1
  215. package/esm/api/AuthenticateApi.js +3 -3
  216. package/esm/api/AuthenticateApi.js.map +1 -1
  217. package/esm/api/AuthenticateApi.test.js +2 -4
  218. package/esm/api/AuthenticateApi.test.js.map +1 -1
  219. package/esm/api/BaseApi.js +4 -4
  220. package/esm/api/BaseApi.js.map +1 -1
  221. package/esm/api/CirclesOfTrustApi.js +3 -3
  222. package/esm/api/CirclesOfTrustApi.js.map +1 -1
  223. package/esm/api/IdmConfigApi.js +3 -3
  224. package/esm/api/IdmConfigApi.js.map +1 -1
  225. package/esm/api/IdmSystemApi.js +3 -3
  226. package/esm/api/IdmSystemApi.js.map +1 -1
  227. package/esm/api/ManagedObjectApi.js +3 -3
  228. package/esm/api/ManagedObjectApi.js.map +1 -1
  229. package/esm/api/NodeApi.js +3 -3
  230. package/esm/api/NodeApi.js.map +1 -1
  231. package/esm/api/NodeApi.test.js +2 -2
  232. package/esm/api/NodeApi.test.js.map +1 -1
  233. package/esm/api/OAuth2ClientApi.js +3 -3
  234. package/esm/api/OAuth2ClientApi.js.map +1 -1
  235. package/esm/api/OAuth2OIDCApi.js +4 -4
  236. package/esm/api/OAuth2OIDCApi.js.map +1 -1
  237. package/esm/api/OAuth2OIDCApi.test.js +4 -4
  238. package/esm/api/OAuth2OIDCApi.test.js.map +1 -1
  239. package/esm/api/OAuth2ProviderApi.js +3 -3
  240. package/esm/api/OAuth2ProviderApi.js.map +1 -1
  241. package/esm/api/PoliciesApi.js +3 -3
  242. package/esm/api/PoliciesApi.js.map +1 -1
  243. package/esm/api/PoliciesApi.test.js +4 -4
  244. package/esm/api/PoliciesApi.test.js.map +1 -1
  245. package/esm/api/PolicySetApi.js +4 -4
  246. package/esm/api/PolicySetApi.js.map +1 -1
  247. package/esm/api/PolicySetApi.test.js +3 -3
  248. package/esm/api/PolicySetApi.test.js.map +1 -1
  249. package/esm/api/RealmApi.js +3 -3
  250. package/esm/api/RealmApi.js.map +1 -1
  251. package/esm/api/ResourceTypesApi.js +3 -3
  252. package/esm/api/ResourceTypesApi.js.map +1 -1
  253. package/esm/api/ResourceTypesApi.test.js +2 -2
  254. package/esm/api/ResourceTypesApi.test.js.map +1 -1
  255. package/esm/api/Saml2Api.js +3 -3
  256. package/esm/api/Saml2Api.js.map +1 -1
  257. package/esm/api/ScriptApi.js +3 -3
  258. package/esm/api/ScriptApi.js.map +1 -1
  259. package/esm/api/ServerInfoApi.js +2 -2
  260. package/esm/api/ServerInfoApi.js.map +1 -1
  261. package/esm/api/ServiceApi.js +3 -3
  262. package/esm/api/ServiceApi.js.map +1 -1
  263. package/esm/api/SocialIdentityProvidersApi.js +3 -3
  264. package/esm/api/SocialIdentityProvidersApi.js.map +1 -1
  265. package/esm/api/TreeApi.js +3 -3
  266. package/esm/api/TreeApi.js.map +1 -1
  267. package/esm/api/TreeApi.test.js +2 -2
  268. package/esm/api/TreeApi.test.js.map +1 -1
  269. package/esm/api/cloud/AdminFederationProvidersApi.js +3 -3
  270. package/esm/api/cloud/AdminFederationProvidersApi.js.map +1 -1
  271. package/esm/api/cloud/EnvInfoApi.js +3 -3
  272. package/esm/api/cloud/EnvInfoApi.js.map +1 -1
  273. package/esm/api/cloud/FeatureApi.js +3 -3
  274. package/esm/api/cloud/FeatureApi.js.map +1 -1
  275. package/esm/api/cloud/LogApi.js +3 -3
  276. package/esm/api/cloud/LogApi.js.map +1 -1
  277. package/esm/api/cloud/SecretsApi.js +4 -4
  278. package/esm/api/cloud/SecretsApi.js.map +1 -1
  279. package/esm/api/cloud/SecretsApi.test.js +2 -2
  280. package/esm/api/cloud/SecretsApi.test.js.map +1 -1
  281. package/esm/api/cloud/StartupApi.js +3 -3
  282. package/esm/api/cloud/StartupApi.js.map +1 -1
  283. package/esm/api/cloud/StartupApi.test.js +1 -1
  284. package/esm/api/cloud/StartupApi.test.js.map +1 -1
  285. package/esm/api/cloud/VariablesApi.js +4 -4
  286. package/esm/api/cloud/VariablesApi.js.map +1 -1
  287. package/esm/api/cloud/VariablesApi.test.js +2 -2
  288. package/esm/api/cloud/VariablesApi.test.js.map +1 -1
  289. package/esm/api/utils/ApiUtils.js +1 -2
  290. package/esm/api/utils/ApiUtils.js.map +1 -1
  291. package/esm/api/utils/ApiUtils.test.js +2 -2
  292. package/esm/api/utils/ApiUtils.test.js.map +1 -1
  293. package/esm/ext/axios-curlirize/curlirize.js +1 -1
  294. package/esm/ext/axios-curlirize/curlirize.js.map +1 -1
  295. package/esm/index.js +49 -54
  296. package/esm/index.js.map +1 -1
  297. package/esm/ops/AdminOps.js +8 -8
  298. package/esm/ops/AdminOps.js.map +1 -1
  299. package/esm/ops/AgentOps.js +3 -3
  300. package/esm/ops/AgentOps.js.map +1 -1
  301. package/esm/ops/AgentOps.test.js +3 -3
  302. package/esm/ops/AgentOps.test.js.map +1 -1
  303. package/esm/ops/AuthenticateOps.js +12 -12
  304. package/esm/ops/AuthenticateOps.js.map +1 -1
  305. package/esm/ops/AuthenticateOps.test.js +2 -4
  306. package/esm/ops/AuthenticateOps.test.js.map +1 -1
  307. package/esm/ops/CirclesOfTrustOps.js +3 -5
  308. package/esm/ops/CirclesOfTrustOps.js.map +1 -1
  309. package/esm/ops/ConnectionProfileOps.js +8 -8
  310. package/esm/ops/ConnectionProfileOps.js.map +1 -1
  311. package/esm/ops/ConnectionProfileOps.test.js +2 -2
  312. package/esm/ops/ConnectionProfileOps.test.js.map +1 -1
  313. package/esm/ops/EmailTemplateOps.js +1 -2
  314. package/esm/ops/EmailTemplateOps.js.map +1 -1
  315. package/esm/ops/EmailTemplateOps.test.js +2 -2
  316. package/esm/ops/EmailTemplateOps.test.js.map +1 -1
  317. package/esm/ops/IdmOps.js +2 -3
  318. package/esm/ops/IdmOps.js.map +1 -1
  319. package/esm/ops/IdmOps.test.js +2 -2
  320. package/esm/ops/IdmOps.test.js.map +1 -1
  321. package/esm/ops/IdpOps.js +8 -8
  322. package/esm/ops/IdpOps.js.map +1 -1
  323. package/esm/ops/IdpOps.test.js +2 -2
  324. package/esm/ops/IdpOps.test.js.map +1 -1
  325. package/esm/ops/InfoOps.js +6 -6
  326. package/esm/ops/InfoOps.js.map +1 -1
  327. package/esm/ops/JoseOps.test.js +4 -4
  328. package/esm/ops/JoseOps.test.js.map +1 -1
  329. package/esm/ops/JourneyOps.js +17 -17
  330. package/esm/ops/JourneyOps.js.map +1 -1
  331. package/esm/ops/JourneyOps.test.js +4 -4
  332. package/esm/ops/JourneyOps.test.js.map +1 -1
  333. package/esm/ops/ManagedObjectOps.js +1 -2
  334. package/esm/ops/ManagedObjectOps.js.map +1 -1
  335. package/esm/ops/NodeOps.js +7 -7
  336. package/esm/ops/NodeOps.js.map +1 -1
  337. package/esm/ops/OAuth2ClientOps.js +7 -10
  338. package/esm/ops/OAuth2ClientOps.js.map +1 -1
  339. package/esm/ops/OAuth2ClientOps.test.js +3 -3
  340. package/esm/ops/OAuth2ClientOps.test.js.map +1 -1
  341. package/esm/ops/OAuth2ProviderOps.js +1 -2
  342. package/esm/ops/OAuth2ProviderOps.js.map +1 -1
  343. package/esm/ops/OrganizationOps.js +3 -4
  344. package/esm/ops/OrganizationOps.js.map +1 -1
  345. package/esm/ops/PolicyOps.js +9 -12
  346. package/esm/ops/PolicyOps.js.map +1 -1
  347. package/esm/ops/PolicyOps.test.js +6 -6
  348. package/esm/ops/PolicyOps.test.js.map +1 -1
  349. package/esm/ops/PolicySetOps.js +7 -10
  350. package/esm/ops/PolicySetOps.js.map +1 -1
  351. package/esm/ops/PolicySetOps.test.js +4 -4
  352. package/esm/ops/PolicySetOps.test.js.map +1 -1
  353. package/esm/ops/RealmOps.js +2 -3
  354. package/esm/ops/RealmOps.js.map +1 -1
  355. package/esm/ops/ResourceTypeOps.js +4 -4
  356. package/esm/ops/ResourceTypeOps.js.map +1 -1
  357. package/esm/ops/ResourceTypeOps.test.js +2 -2
  358. package/esm/ops/ResourceTypeOps.test.js.map +1 -1
  359. package/esm/ops/Saml2Ops.js +7 -7
  360. package/esm/ops/Saml2Ops.js.map +1 -1
  361. package/esm/ops/Saml2Ops.test.js +6 -6
  362. package/esm/ops/Saml2Ops.test.js.map +1 -1
  363. package/esm/ops/ScriptOps.js +5 -5
  364. package/esm/ops/ScriptOps.js.map +1 -1
  365. package/esm/ops/ScriptOps.test.js +2 -2
  366. package/esm/ops/ScriptOps.test.js.map +1 -1
  367. package/esm/ops/ServiceOps.js +2 -2
  368. package/esm/ops/ServiceOps.js.map +1 -1
  369. package/esm/ops/ThemeOps.js +3 -3
  370. package/esm/ops/ThemeOps.js.map +1 -1
  371. package/esm/ops/ThemeOps.test.js +3 -3
  372. package/esm/ops/ThemeOps.test.js.map +1 -1
  373. package/esm/ops/cloud/AdminFederationOps.js +4 -4
  374. package/esm/ops/cloud/AdminFederationOps.js.map +1 -1
  375. package/esm/ops/cloud/FeatureOps.js +2 -2
  376. package/esm/ops/cloud/FeatureOps.js.map +1 -1
  377. package/esm/ops/cloud/LogOps.js +1 -3
  378. package/esm/ops/cloud/LogOps.js.map +1 -1
  379. package/esm/ops/cloud/SecretsOps.js +4 -5
  380. package/esm/ops/cloud/SecretsOps.js.map +1 -1
  381. package/esm/ops/cloud/ServiceAccountOps.js +3 -3
  382. package/esm/ops/cloud/ServiceAccountOps.js.map +1 -1
  383. package/esm/ops/cloud/ServiceAccountOps.test.js +3 -5
  384. package/esm/ops/cloud/ServiceAccountOps.test.js.map +1 -1
  385. package/esm/ops/cloud/StartupOps.js +4 -6
  386. package/esm/ops/cloud/StartupOps.js.map +1 -1
  387. package/esm/ops/cloud/VariablesOps.js +5 -6
  388. package/esm/ops/cloud/VariablesOps.js.map +1 -1
  389. package/esm/ops/utils/Console.js +1 -2
  390. package/esm/ops/utils/Console.js.map +1 -1
  391. package/esm/ops/utils/DataProtection.js +3 -3
  392. package/esm/ops/utils/DataProtection.js.map +1 -1
  393. package/esm/ops/utils/DataProtection.test.js +1 -1
  394. package/esm/ops/utils/DataProtection.test.js.map +1 -1
  395. package/esm/ops/utils/ExportImportUtils.js +4 -4
  396. package/esm/ops/utils/ExportImportUtils.js.map +1 -1
  397. package/esm/ops/utils/ExportImportUtils.test.js +1 -3
  398. package/esm/ops/utils/ExportImportUtils.test.js.map +1 -1
  399. package/esm/ops/utils/OpsUtils.js +3 -3
  400. package/esm/ops/utils/OpsUtils.js.map +1 -1
  401. package/esm/ops/utils/OpsUtils.test.js +3 -3
  402. package/esm/ops/utils/OpsUtils.test.js.map +1 -1
  403. package/esm/ops/utils/ValidationUtils.js +2 -2
  404. package/esm/ops/utils/ValidationUtils.js.map +1 -1
  405. package/esm/ops/utils/ValidationUtils.test.js +1 -1
  406. package/esm/ops/utils/ValidationUtils.test.js.map +1 -1
  407. package/esm/ops/utils/Version.js +1 -1
  408. package/esm/ops/utils/Version.js.map +1 -1
  409. package/esm/ops/utils/Version.test.js +1 -1
  410. package/esm/ops/utils/Version.test.js.map +1 -1
  411. package/esm/ops/utils/Wordwrap.test.js +1 -1
  412. package/esm/ops/utils/Wordwrap.test.js.map +1 -1
  413. package/esm/shared/State.test.js +1 -1
  414. package/esm/shared/State.test.js.map +1 -1
  415. package/esm/test/mocks/ForgeRockApiMockEngine.js +2 -2
  416. package/esm/test/mocks/ForgeRockApiMockEngine.js.map +1 -1
  417. package/esm/utils/AutoSetupPolly.js +2 -2
  418. package/esm/utils/AutoSetupPolly.js.map +1 -1
  419. package/esm/utils/SetupPollyForFrodoLib.js +1 -1
  420. package/esm/utils/SetupPollyForFrodoLib.js.map +1 -1
  421. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Console.js","names":["_cliTable","_interopRequireDefault","require","state","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","printMessage","message","type","arguments","length","undefined","newline","handler","getPrintHandler","verboseMessage","getVerboseHandler","debugMessage","getDebugHandler","maskPasswordHeader","curlCommand","header","mask","regex","RegExp","replace","curlirizeMessage","getCurlirizeHandler","createProgressIndicator","total","getCreateProgressHandler","updateProgressIndicator","getUpdateProgressHandler","stopProgressIndicator","status","getStopProgressHandler","createTable","head","Table","chars","top","bottom","left","mid","right","style","createKeyValueTable","wordWrap","getObjectDepth","object","Math","max","values","map","hasValues","keys","addRows","depth","level","table","keyMap","space","push","hAlign","content","indention","Array","fill","join","concat","createObjectTable"],"sources":["../../../src/ops/utils/Console.ts"],"sourcesContent":["import Table from 'cli-table3';\nimport * as state from '../../shared/State';\n\n/**\n * Handles data / messages output. The caller decides and implements how\n * the data and messages are handled, by implementing the handler function\n * on its side. `handler` is optional, and if not included by the caller,\n * the data and messages will be lost.\n *\n * @param {string | unknown} message The string message to return\n * @param {string} [type=text] \"text\", \"info\", \"warn\", \"error\" or \"data\". All but\n * type=\"data\" will be written to stderr.\n * @param {boolean} [newline=true] Whether to add a newline at the end of message\n * messages returned\n */\nexport function printMessage(\n message: string | object,\n type = 'text',\n newline = true\n) {\n const handler = state.getPrintHandler();\n if (handler) {\n handler(message, type, newline);\n }\n}\n\n/**\n * Handles verbose output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string | unknown} message The verbose output message\n */\nexport function verboseMessage(message: string | object) {\n const handler = state.getVerboseHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Handles debug output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string | object} message The debug output message\n */\nexport function debugMessage(message: string | object) {\n const handler = state.getDebugHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Helper function to mask password header in curl command\n * @param curlCommand curl command to mask\n * @returns masked curl command\n */\nfunction maskPasswordHeader(curlCommand: string) {\n const header = 'X-OpenAM-Password:';\n const mask = '<suppressed>';\n const regex = new RegExp('\"' + header + '.+?\"', 'g');\n return curlCommand.replace(regex, '\"' + header + mask + '\"');\n}\n\n/**\n * Handles curlirize output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string} message The curlirize output message\n */\nexport function curlirizeMessage(message: string) {\n const handler = state.getCurlirizeHandler();\n if (handler) {\n handler(maskPasswordHeader(message));\n }\n}\n\n/**\n * Calls a callback on client to create a progress indicator.\n * The actual implementation of the indicator is left to the client\n * Two types of indicators are supported:\n * - determinate: should be used when the process completion rate\n * can be detected (example: progress bar showing percentage or count)\n * - indeterminate: used when progress isn’t detectable, or if\n * it’s not necessary to indicate how long an activity will take.\n * (example: spinner showing progress, but not quantifying the progress)\n *\n * Example:\n * [========================================] 100% | 49/49 | Analyzing journey - transactional_auth\n *\n * @param {Number} total The total number of entries to track progress for\n * @param {String} message optional progress bar message\n * @param {String} type optional type of progress indicator. default is 'determinate'\n *\n */\nexport function createProgressIndicator(\n total,\n message: string = null,\n type = 'determinate'\n) {\n const handler = state.getCreateProgressHandler();\n if (handler) {\n handler(type, total, message);\n }\n}\n\n/**\n * Updates the progress indicator with new data/updated status.\n * @param {string} message optional message to show with the indicator\n *\n */\nexport function updateProgressIndicator(message: string = null) {\n const handler = state.getUpdateProgressHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Stop and hide the progress indicator\n * @param {string} message optional message to show with the indicator\n * @param {string} status one of 'none', 'success', 'warn', 'fail'\n */\nexport function stopProgressIndicator(message: string = null, status = 'none') {\n const handler = state.getStopProgressHandler();\n if (handler) {\n handler(message, status);\n }\n}\n\n/**\n * Create an empty table\n * @param {[String]} head header row as an array of strings\n * @returns {CliTable3} an empty table\n */\nexport function createTable(head) {\n return new Table({\n head,\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n}\n\n/**\n * Create a new key/value table\n * @returns {CliTable3} an empty key/value table\n */\nexport function createKeyValueTable() {\n return new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n wordWrap: true,\n });\n}\n\n/**\n * Helper function to determine the total depth of an object\n * @param {Object} object input object\n * @returns {Number} total depth of the input object\n */\nfunction getObjectDepth(object) {\n return Object(object) === object\n ? 1 + Math.max(-1, ...Object.values(object).map(getObjectDepth))\n : 0;\n}\n\n/**\n * Helper function to determine if an object has values\n * @param {Object} object input object\n * @returns {boolean} true of the object or any of its sub-objects contain values, false otherwise\n */\nfunction hasValues(object) {\n let has = false;\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n return true;\n }\n has = has || hasValues(object[key]);\n }\n return has;\n}\n\n/**\n * Helper function (recursive) to add rows to an object table\n * @param {Object} object object to render\n * @param {Number} depth total depth of initial object\n * @param {Number} level current level\n * @param {CliTable3} table the object table to add the rows to\n * @returns the updated object table\n */\nfunction addRows(object, depth, level, table, keyMap) {\n const space = ' ';\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n if (level === 1) {\n table.push([\n keyMap[key] ? keyMap[key]['brightCyan'] : key['brightCyan'],\n object[key],\n ]);\n } else {\n table.push([\n {\n hAlign: 'right',\n content: keyMap[key] ? keyMap[key]['gray'] : key['gray'],\n },\n object[key],\n ]);\n }\n }\n }\n for (const key of keys) {\n if (Object(object[key]) === object[key]) {\n // only print header if there are any values below\n if (hasValues(object[key])) {\n let indention = new Array(level).fill(space).join('');\n if (level < 3) indention = `\\n${indention}`;\n table.push([\n indention.concat(\n keyMap[key] ? keyMap[key]['brightCyan'] : key['brightCyan']\n ),\n '',\n ]);\n }\n // eslint-disable-next-line no-param-reassign\n table = addRows(object[key], depth, level + 1, table, keyMap);\n }\n }\n return table;\n}\n\n/**\n * Create and populate an object table from any JSON object. Use for describe commands.\n * @param {Object} object JSON object to create\n * @returns {CliTable3} a table that can be printed to the console\n */\nexport function createObjectTable(object, keyMap = {}) {\n // eslint-disable-next-line no-param-reassign\n const depth = getObjectDepth(object);\n // eslint-disable-next-line no-param-reassign\n const level = 0;\n // eslint-disable-next-line no-param-reassign\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n addRows(object, depth, level + 1, table, keyMap);\n return table;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Console.js","names":["_cliTable","_interopRequireDefault","require","state","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","printMessage","message","type","arguments","length","undefined","newline","handler","getPrintHandler","verboseMessage","getVerboseHandler","debugMessage","getDebugHandler","maskPasswordHeader","curlCommand","header","mask","regex","RegExp","replace","curlirizeMessage","getCurlirizeHandler","createProgressIndicator","total","getCreateProgressHandler","updateProgressIndicator","getUpdateProgressHandler","stopProgressIndicator","status","getStopProgressHandler","createTable","head","Table","chars","top","bottom","left","mid","right","style","createKeyValueTable","wordWrap","getObjectDepth","object","Math","max","values","map","hasValues","keys","addRows","depth","level","table","keyMap","space","push","hAlign","content","indention","Array","fill","join","concat","createObjectTable"],"sources":["../../../src/ops/utils/Console.ts"],"sourcesContent":["import Table from 'cli-table3';\nimport * as state from '../../shared/State';\n\n/**\n * Handles data / messages output. The caller decides and implements how\n * the data and messages are handled, by implementing the handler function\n * on its side. `handler` is optional, and if not included by the caller,\n * the data and messages will be lost.\n *\n * @param {string | unknown} message The string message to return\n * @param {string} [type=text] \"text\", \"info\", \"warn\", \"error\" or \"data\". All but\n * type=\"data\" will be written to stderr.\n * @param {boolean} [newline=true] Whether to add a newline at the end of message\n * messages returned\n */\nexport function printMessage(\n message: string | object,\n type = 'text',\n newline = true\n) {\n const handler = state.getPrintHandler();\n if (handler) {\n handler(message, type, newline);\n }\n}\n\n/**\n * Handles verbose output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string | unknown} message The verbose output message\n */\nexport function verboseMessage(message: string | object) {\n const handler = state.getVerboseHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Handles debug output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string | object} message The debug output message\n */\nexport function debugMessage(message: string | object) {\n const handler = state.getDebugHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Helper function to mask password header in curl command\n * @param curlCommand curl command to mask\n * @returns masked curl command\n */\nfunction maskPasswordHeader(curlCommand: string) {\n const header = 'X-OpenAM-Password:';\n const mask = '<suppressed>';\n const regex = new RegExp('\"' + header + '.+?\"', 'g');\n return curlCommand.replace(regex, '\"' + header + mask + '\"');\n}\n\n/**\n * Handles curlirize output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string} message The curlirize output message\n */\nexport function curlirizeMessage(message: string) {\n const handler = state.getCurlirizeHandler();\n if (handler) {\n handler(maskPasswordHeader(message));\n }\n}\n\n/**\n * Calls a callback on client to create a progress indicator.\n * The actual implementation of the indicator is left to the client\n * Two types of indicators are supported:\n * - determinate: should be used when the process completion rate\n * can be detected (example: progress bar showing percentage or count)\n * - indeterminate: used when progress isn’t detectable, or if\n * it’s not necessary to indicate how long an activity will take.\n * (example: spinner showing progress, but not quantifying the progress)\n *\n * Example:\n * [========================================] 100% | 49/49 | Analyzing journey - transactional_auth\n *\n * @param {Number} total The total number of entries to track progress for\n * @param {String} message optional progress bar message\n * @param {String} type optional type of progress indicator. default is 'determinate'\n *\n */\nexport function createProgressIndicator(\n total,\n message: string = null,\n type = 'determinate'\n) {\n const handler = state.getCreateProgressHandler();\n if (handler) {\n handler(type, total, message);\n }\n}\n\n/**\n * Updates the progress indicator with new data/updated status.\n * @param {string} message optional message to show with the indicator\n *\n */\nexport function updateProgressIndicator(message: string = null) {\n const handler = state.getUpdateProgressHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Stop and hide the progress indicator\n * @param {string} message optional message to show with the indicator\n * @param {string} status one of 'none', 'success', 'warn', 'fail'\n */\nexport function stopProgressIndicator(message: string = null, status = 'none') {\n const handler = state.getStopProgressHandler();\n if (handler) {\n handler(message, status);\n }\n}\n\n/**\n * Create an empty table\n * @param {[String]} head header row as an array of strings\n * @returns {CliTable3} an empty table\n */\nexport function createTable(head) {\n return new Table({\n head,\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n}\n\n/**\n * Create a new key/value table\n * @returns {CliTable3} an empty key/value table\n */\nexport function createKeyValueTable() {\n return new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n wordWrap: true,\n });\n}\n\n/**\n * Helper function to determine the total depth of an object\n * @param {Object} object input object\n * @returns {Number} total depth of the input object\n */\nfunction getObjectDepth(object) {\n return Object(object) === object\n ? 1 + Math.max(-1, ...Object.values(object).map(getObjectDepth))\n : 0;\n}\n\n/**\n * Helper function to determine if an object has values\n * @param {Object} object input object\n * @returns {boolean} true of the object or any of its sub-objects contain values, false otherwise\n */\nfunction hasValues(object) {\n let has = false;\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n return true;\n }\n has = has || hasValues(object[key]);\n }\n return has;\n}\n\n/**\n * Helper function (recursive) to add rows to an object table\n * @param {Object} object object to render\n * @param {Number} depth total depth of initial object\n * @param {Number} level current level\n * @param {CliTable3} table the object table to add the rows to\n * @returns the updated object table\n */\nfunction addRows(object, depth, level, table, keyMap) {\n const space = ' ';\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n if (level === 1) {\n table.push([\n keyMap[key] ? keyMap[key]['brightCyan'] : key['brightCyan'],\n object[key],\n ]);\n } else {\n table.push([\n {\n hAlign: 'right',\n content: keyMap[key] ? keyMap[key]['gray'] : key['gray'],\n },\n object[key],\n ]);\n }\n }\n }\n for (const key of keys) {\n if (Object(object[key]) === object[key]) {\n // only print header if there are any values below\n if (hasValues(object[key])) {\n let indention = new Array(level).fill(space).join('');\n if (level < 3) indention = `\\n${indention}`;\n table.push([\n indention.concat(\n keyMap[key] ? keyMap[key]['brightCyan'] : key['brightCyan']\n ),\n '',\n ]);\n }\n // eslint-disable-next-line no-param-reassign\n table = addRows(object[key], depth, level + 1, table, keyMap);\n }\n }\n return table;\n}\n\n/**\n * Create and populate an object table from any JSON object. Use for describe commands.\n * @param {Object} object JSON object to create\n * @returns {CliTable3} a table that can be printed to the console\n */\nexport function createObjectTable(object, keyMap = {}) {\n // eslint-disable-next-line no-param-reassign\n const depth = getObjectDepth(object);\n // eslint-disable-next-line no-param-reassign\n const level = 0;\n // eslint-disable-next-line no-param-reassign\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n addRows(object, depth, level + 1, table, keyMap);\n return table;\n}\n"],"mappings":"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"}
@@ -8,9 +8,9 @@ var _fs = _interopRequireWildcard(require("fs"));
8
8
  var _crypto = _interopRequireDefault(require("crypto"));
9
9
  var _os = require("os");
10
10
  var _util = require("util");
11
- var _Console = require("./Console");
12
- var state = _interopRequireWildcard(require("../../shared/State"));
13
- var _StaticStorage = require("../../storage/StaticStorage");
11
+ var _Console = require("./Console.js");
12
+ var state = _interopRequireWildcard(require("../../shared/State.js"));
13
+ var _StaticStorage = require("../../storage/StaticStorage.js");
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -1 +1 @@
1
- {"version":3,"file":"DataProtection.js","names":["_fs","_interopRequireWildcard","require","_crypto","_interopRequireDefault","_os","_util","_Console","state","_StaticStorage","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","scrypt","promisify","crypto","_masterKey","_nonce","_salt","_key","_encrypt","DataProtection","constructor","masterKeyPath","getMasterKeyPath","process","env","FRODO_MASTER_KEY_PATH_KEY","concat","homedir","FRODO_MASTER_KEY_KEY","fs","existsSync","masterKey","randomBytes","toString","fsp","writeFile","readFile","printMessage","message","_ref2","salt","_x","_x2","nonce","data","cipher","createCipheriv","encrypted","Buffer","update","JSON","stringify","final","tag","getAuthTag","buffer","encrypt","_this","decrypt","_this2","from","slice","decipher","createDecipheriv","setAuthTag","parse","_default","exports"],"sources":["../../../src/ops/utils/DataProtection.ts"],"sourcesContent":["/**\n * Data is stored in base64 format. Initially it was binary data\n * Format used in this encryption module.\n * inspired by AndiDittrich\n * +--------------------+-----------------------+----------------+----------------+\n * | SALT | Initialization Vector | Auth Tag | Payload |\n * | Used to derive key | AES GCM XOR Init | Data Integrity | Encrypted Data |\n * | 64 Bytes, random | 16 Bytes, random | 16 Bytes | (N-96) Bytes |\n * +--------------------+-----------------------+----------------+----------------+\n * This module doesn't take care of data persistence, it's assumed the consuming method/class/package will do so.\n */\nimport fs, { promises as fsp } from 'fs';\nimport crypto from 'crypto';\nimport { homedir } from 'os';\nimport { promisify } from 'util';\nimport { printMessage } from './Console';\nimport * as state from '../../shared/State';\nimport {\n FRODO_MASTER_KEY_PATH_KEY,\n FRODO_MASTER_KEY_KEY,\n} from '../../storage/StaticStorage';\n\nconst scrypt = promisify(crypto.scrypt);\n// using WeakMaps for added security since it gets garbage collected\nconst _masterKey = new WeakMap();\nconst _nonce = new WeakMap();\nconst _salt = new WeakMap();\nconst _key = new WeakMap();\nconst _encrypt = new WeakMap();\n\nclass DataProtection {\n constructor() {\n const masterKeyPath = () =>\n state.getMasterKeyPath() ||\n process.env[FRODO_MASTER_KEY_PATH_KEY] ||\n `${homedir()}/.frodo/masterkey.key`;\n // Generates a master key in base64 format. This master key will be used to derive the key for encryption. this key should be protected by an HSM or KMS\n _masterKey.set(this, async () => {\n try {\n if (process.env[FRODO_MASTER_KEY_KEY])\n return process.env[FRODO_MASTER_KEY_KEY];\n if (!fs.existsSync(masterKeyPath())) {\n const masterKey = crypto.randomBytes(32).toString('base64');\n await fsp.writeFile(masterKeyPath(), masterKey);\n }\n return await fsp.readFile(masterKeyPath(), 'utf8');\n } catch (err) {\n printMessage(err.message, 'error');\n return '';\n }\n });\n\n // the nonce for AES GCM\n _nonce.set(this, () => crypto.randomBytes(16));\n\n // The salt\n _salt.set(this, () => crypto.randomBytes(64));\n\n // The function that derives the key, this supports sync and async operations\n _key.set(\n this,\n // eslint-disable-next-line no-return-await\n async (masterKey, salt) => await scrypt(masterKey, salt, 32)\n );\n\n // private method to encrypt and return encrypted data. cleaner code\n _encrypt.set(this, (key, nonce, data, salt) => {\n const cipher = crypto.createCipheriv('aes-256-gcm', key, nonce);\n const encrypted = Buffer.concat([\n cipher.update(JSON.stringify(data), 'utf8'),\n cipher.final(),\n ]);\n const tag = cipher.getAuthTag();\n const buffer = Buffer.concat([salt, nonce, tag, encrypted]);\n return buffer.toString('base64');\n });\n }\n\n async encrypt(data) {\n const nonce = _nonce.get(this)();\n const salt = _salt.get(this)();\n const masterKey = await _masterKey.get(this)();\n const key = await _key.get(this)(masterKey, salt);\n return _encrypt.get(this)(key, nonce, data, salt);\n }\n\n async decrypt(data) {\n const buffer = Buffer.from(data.toString(), 'base64');\n const salt = buffer.slice(0, 64);\n const nonce = buffer.slice(64, 80);\n const tag = buffer.slice(80, 96);\n const encrypted = buffer.slice(96);\n const masterKey = await _masterKey.get(this)();\n const key = await _key.get(this)(masterKey, salt);\n const decipher = crypto.createDecipheriv('aes-256-gcm', key, nonce);\n decipher.setAuthTag(tag);\n return JSON.parse(\n decipher.update(encrypted.toString('binary'), 'binary', 'utf8') +\n decipher.final('utf8')\n );\n }\n}\nexport default DataProtection;\n"],"mappings":"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"}
1
+ {"version":3,"file":"DataProtection.js","names":["_fs","_interopRequireWildcard","require","_crypto","_interopRequireDefault","_os","_util","_Console","state","_StaticStorage","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","scrypt","promisify","crypto","_masterKey","_nonce","_salt","_key","_encrypt","DataProtection","constructor","masterKeyPath","getMasterKeyPath","process","env","FRODO_MASTER_KEY_PATH_KEY","concat","homedir","FRODO_MASTER_KEY_KEY","fs","existsSync","masterKey","randomBytes","toString","fsp","writeFile","readFile","printMessage","message","_ref2","salt","_x","_x2","nonce","data","cipher","createCipheriv","encrypted","Buffer","update","JSON","stringify","final","tag","getAuthTag","buffer","encrypt","_this","decrypt","_this2","from","slice","decipher","createDecipheriv","setAuthTag","parse","_default","exports"],"sources":["../../../src/ops/utils/DataProtection.ts"],"sourcesContent":["/**\n * Data is stored in base64 format. Initially it was binary data\n * Format used in this encryption module.\n * inspired by AndiDittrich\n * +--------------------+-----------------------+----------------+----------------+\n * | SALT | Initialization Vector | Auth Tag | Payload |\n * | Used to derive key | AES GCM XOR Init | Data Integrity | Encrypted Data |\n * | 64 Bytes, random | 16 Bytes, random | 16 Bytes | (N-96) Bytes |\n * +--------------------+-----------------------+----------------+----------------+\n * This module doesn't take care of data persistence, it's assumed the consuming method/class/package will do so.\n */\nimport fs, { promises as fsp } from 'fs';\nimport crypto from 'crypto';\nimport { homedir } from 'os';\nimport { promisify } from 'util';\nimport { printMessage } from './Console';\nimport * as state from '../../shared/State';\nimport {\n FRODO_MASTER_KEY_PATH_KEY,\n FRODO_MASTER_KEY_KEY,\n} from '../../storage/StaticStorage';\n\nconst scrypt = promisify(crypto.scrypt);\n// using WeakMaps for added security since it gets garbage collected\nconst _masterKey = new WeakMap();\nconst _nonce = new WeakMap();\nconst _salt = new WeakMap();\nconst _key = new WeakMap();\nconst _encrypt = new WeakMap();\n\nclass DataProtection {\n constructor() {\n const masterKeyPath = () =>\n state.getMasterKeyPath() ||\n process.env[FRODO_MASTER_KEY_PATH_KEY] ||\n `${homedir()}/.frodo/masterkey.key`;\n // Generates a master key in base64 format. This master key will be used to derive the key for encryption. this key should be protected by an HSM or KMS\n _masterKey.set(this, async () => {\n try {\n if (process.env[FRODO_MASTER_KEY_KEY])\n return process.env[FRODO_MASTER_KEY_KEY];\n if (!fs.existsSync(masterKeyPath())) {\n const masterKey = crypto.randomBytes(32).toString('base64');\n await fsp.writeFile(masterKeyPath(), masterKey);\n }\n return await fsp.readFile(masterKeyPath(), 'utf8');\n } catch (err) {\n printMessage(err.message, 'error');\n return '';\n }\n });\n\n // the nonce for AES GCM\n _nonce.set(this, () => crypto.randomBytes(16));\n\n // The salt\n _salt.set(this, () => crypto.randomBytes(64));\n\n // The function that derives the key, this supports sync and async operations\n _key.set(\n this,\n // eslint-disable-next-line no-return-await\n async (masterKey, salt) => await scrypt(masterKey, salt, 32)\n );\n\n // private method to encrypt and return encrypted data. cleaner code\n _encrypt.set(this, (key, nonce, data, salt) => {\n const cipher = crypto.createCipheriv('aes-256-gcm', key, nonce);\n const encrypted = Buffer.concat([\n cipher.update(JSON.stringify(data), 'utf8'),\n cipher.final(),\n ]);\n const tag = cipher.getAuthTag();\n const buffer = Buffer.concat([salt, nonce, tag, encrypted]);\n return buffer.toString('base64');\n });\n }\n\n async encrypt(data) {\n const nonce = _nonce.get(this)();\n const salt = _salt.get(this)();\n const masterKey = await _masterKey.get(this)();\n const key = await _key.get(this)(masterKey, salt);\n return _encrypt.get(this)(key, nonce, data, salt);\n }\n\n async decrypt(data) {\n const buffer = Buffer.from(data.toString(), 'base64');\n const salt = buffer.slice(0, 64);\n const nonce = buffer.slice(64, 80);\n const tag = buffer.slice(80, 96);\n const encrypted = buffer.slice(96);\n const masterKey = await _masterKey.get(this)();\n const key = await _key.get(this)(masterKey, salt);\n const decipher = crypto.createDecipheriv('aes-256-gcm', key, nonce);\n decipher.setAuthTag(tag);\n return JSON.parse(\n decipher.update(encrypted.toString('binary'), 'binary', 'utf8') +\n decipher.final('utf8')\n );\n }\n}\nexport default DataProtection;\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _DataProtection = _interopRequireDefault(require("./DataProtection"));
3
+ var _DataProtection = _interopRequireDefault(require("./DataProtection.js"));
4
4
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
5
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
6
6
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
@@ -1 +1 @@
1
- {"version":3,"file":"DataProtection.test.js","names":["_DataProtection","_interopRequireDefault","require","obj","__esModule","default","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","test","dp","DataProtection","EXPECTED","originalString","RESULT","encrypt","expect","length","toBe","encrypted","decrypt"],"sources":["../../../src/ops/utils/DataProtection.test.ts"],"sourcesContent":["import DataProtection from './DataProtection';\n\ntest('DataProtection to encrypt', async () => {\n // Note this test checks that encyption happned not that encryption is correct\n // this test relys on other tests to proove the likelyhood of successful encryption\n // Arrange\n const dp = new DataProtection();\n const EXPECTED =\n 'aMLtCqK1b+d3d88DDKrmIV7A6pifP77IItLKX7N7/UTOPxf8YCQWHCpTrmNnM5wNXue8HllEFIS+sxXRb20oCb4HImpbQM0so5DrHIqcIlF5LYDKjvzBOz1PdlclhIuIV+Gr8M3GRbNkQxXJuUZ4th5ISLpOjM+k8bDAlnHsRx5LLlbLFnAKq8Pu9DaTYUkZABOCOjfkoTb6re1p9c7xE2pAe213';\n const originalString =\n 'Go not to the Elves for counsel, for they will say both no and yes.';\n // Act\n const RESULT = await dp.encrypt(originalString);\n // Assert\n expect(RESULT.length).toBe(EXPECTED.length);\n});\n\ntest('DataProtection to decrypt', async () => {\n // Arrange\n const dp = new DataProtection();\n const originalString =\n 'Go not to the Elves for counsel, for they will say both no and yes.';\n // Act\n const encrypted = await dp.encrypt(originalString);\n const RESULT = await dp.decrypt(encrypted);\n // Assert\n expect(RESULT).toBe(originalString);\n});\n"],"mappings":";;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8C,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,mBAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,GAAA,EAAAC,GAAA,cAAAC,IAAA,GAAAP,GAAA,CAAAK,GAAA,EAAAC,GAAA,OAAAE,KAAA,GAAAD,IAAA,CAAAC,KAAA,WAAAC,KAAA,IAAAP,MAAA,CAAAO,KAAA,iBAAAF,IAAA,CAAAG,IAAA,IAAAT,OAAA,CAAAO,KAAA,YAAAG,OAAA,CAAAV,OAAA,CAAAO,KAAA,EAAAI,IAAA,CAAAT,KAAA,EAAAC,MAAA;AAAA,SAAAS,kBAAAC,EAAA,6BAAAC,IAAA,SAAAC,IAAA,GAAAC,SAAA,aAAAN,OAAA,WAAAV,OAAA,EAAAC,MAAA,QAAAF,GAAA,GAAAc,EAAA,CAAAI,KAAA,CAAAH,IAAA,EAAAC,IAAA,YAAAb,MAAAK,KAAA,IAAAT,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,UAAAI,KAAA,cAAAJ,OAAAe,GAAA,IAAApB,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,WAAAe,GAAA,KAAAhB,KAAA,CAAAiB,SAAA;AAE9CC,IAAI,CAAC,2BAA2B,eAAAR,iBAAA,CAAE,aAAY;EAC5C;EACA;EACA;EACA,IAAMS,EAAE,GAAG,IAAIC,uBAAc,CAAC,CAAC;EAC/B,IAAMC,QAAQ,GACZ,8NAA8N;EAChO,IAAMC,cAAc,GAClB,qEAAqE;EACvE;EACA,IAAMC,MAAM,SAASJ,EAAE,CAACK,OAAO,CAACF,cAAc,CAAC;EAC/C;EACAG,MAAM,CAACF,MAAM,CAACG,MAAM,CAAC,CAACC,IAAI,CAACN,QAAQ,CAACK,MAAM,CAAC;AAC7C,CAAC,EAAC;AAEFR,IAAI,CAAC,2BAA2B,eAAAR,iBAAA,CAAE,aAAY;EAC5C;EACA,IAAMS,EAAE,GAAG,IAAIC,uBAAc,CAAC,CAAC;EAC/B,IAAME,cAAc,GAClB,qEAAqE;EACvE;EACA,IAAMM,SAAS,SAAST,EAAE,CAACK,OAAO,CAACF,cAAc,CAAC;EAClD,IAAMC,MAAM,SAASJ,EAAE,CAACU,OAAO,CAACD,SAAS,CAAC;EAC1C;EACAH,MAAM,CAACF,MAAM,CAAC,CAACI,IAAI,CAACL,cAAc,CAAC;AACrC,CAAC,EAAC"}
1
+ {"version":3,"file":"DataProtection.test.js","names":["test","_asyncToGenerator","dp","DataProtection","EXPECTED","originalString","RESULT","encrypt","expect","length","toBe","encrypted","decrypt"],"sources":["../../../src/ops/utils/DataProtection.test.ts"],"sourcesContent":["import DataProtection from './DataProtection';\n\ntest('DataProtection to encrypt', async () => {\n // Note this test checks that encyption happned not that encryption is correct\n // this test relys on other tests to proove the likelyhood of successful encryption\n // Arrange\n const dp = new DataProtection();\n const EXPECTED =\n 'aMLtCqK1b+d3d88DDKrmIV7A6pifP77IItLKX7N7/UTOPxf8YCQWHCpTrmNnM5wNXue8HllEFIS+sxXRb20oCb4HImpbQM0so5DrHIqcIlF5LYDKjvzBOz1PdlclhIuIV+Gr8M3GRbNkQxXJuUZ4th5ISLpOjM+k8bDAlnHsRx5LLlbLFnAKq8Pu9DaTYUkZABOCOjfkoTb6re1p9c7xE2pAe213';\n const originalString =\n 'Go not to the Elves for counsel, for they will say both no and yes.';\n // Act\n const RESULT = await dp.encrypt(originalString);\n // Assert\n expect(RESULT.length).toBe(EXPECTED.length);\n});\n\ntest('DataProtection to decrypt', async () => {\n // Arrange\n const dp = new DataProtection();\n const originalString =\n 'Go not to the Elves for counsel, for they will say both no and yes.';\n // Act\n const encrypted = await dp.encrypt(originalString);\n const RESULT = await dp.decrypt(encrypted);\n // Assert\n expect(RESULT).toBe(originalString);\n});\n"],"mappings":";;;;;;AAEAA,IAAI,CAAC,2BAA2B,eAAAC,iBAAA,CAAE,aAAY;EAC5C;EACA;EACA;EACA,IAAMC,EAAE,GAAG,IAAIC,uBAAc,CAAC,CAAC;EAC/B,IAAMC,QAAQ,GACZ,8NAA8N;EAChO,IAAMC,cAAc,GAClB,qEAAqE;EACvE;EACA,IAAMC,MAAM,SAASJ,EAAE,CAACK,OAAO,CAACF,cAAc,CAAC;EAC/C;EACAG,MAAM,CAACF,MAAM,CAACG,MAAM,CAAC,CAACC,IAAI,CAACN,QAAQ,CAACK,MAAM,CAAC;AAC7C,CAAC,EAAC;AAEFT,IAAI,CAAC,2BAA2B,eAAAC,iBAAA,CAAE,aAAY;EAC5C;EACA,IAAMC,EAAE,GAAG,IAAIC,uBAAc,CAAC,CAAC;EAC/B,IAAME,cAAc,GAClB,qEAAqE;EACvE;EACA,IAAMM,SAAS,SAAST,EAAE,CAACK,OAAO,CAACF,cAAc,CAAC;EAClD,IAAMC,MAAM,SAASJ,EAAE,CAACU,OAAO,CAACD,SAAS,CAAC;EAC1C;EACAH,MAAM,CAACF,MAAM,CAAC,CAACI,IAAI,CAACL,cAAc,CAAC;AACrC,CAAC,EAAC"}
@@ -22,10 +22,10 @@ var _fs = _interopRequireDefault(require("fs"));
22
22
  var _promises = require("fs/promises");
23
23
  var _path = require("path");
24
24
  var _slugify = _interopRequireDefault(require("slugify"));
25
- var _Base = require("../../api/utils/Base64");
26
- var state = _interopRequireWildcard(require("../../shared/State"));
27
- var _StaticStorage = require("../../storage/StaticStorage");
28
- var _Console = require("./Console");
25
+ var _Base = require("../../api/utils/Base64.js");
26
+ var state = _interopRequireWildcard(require("../../shared/State.js"));
27
+ var _StaticStorage = require("../../storage/StaticStorage.js");
28
+ var _Console = require("./Console.js");
29
29
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
30
30
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
31
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -1 +1 @@
1
- {"version":3,"file":"ExportImportUtils.js","names":["_fs","_interopRequireDefault","require","_promises","_path","_slugify","_Base","state","_interopRequireWildcard","_StaticStorage","_Console","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","getMetadata","metadata","origin","getHost","originAmVersion","getAmVersion","exportedBy","getUsername","exportDate","Date","toISOString","exportTool","FRODO_METADATA_ID","exportToolVersion","getFrodoVersion","titleCase","input","str","toString","splitStr","toLowerCase","split","i","length","charAt","toUpperCase","slice","join","getRealmString","realm","getRealm","reduce","result","item","concat","convertBase64TextToArray","b64text","arrayOut","plainText","decode","replace","convertBase64UrlTextToArray","b64UTF8Text","decodeBase64Url","convertTextArrayToBase64","textArray","joinedText","b64encodedScript","encode","convertTextArrayToBase64Url","encodeBase64Url","validateImport","getTypedFilename","name","type","suffix","slug","slugify","getWorkingDirectory","wd","getDirectory","fs","existsSync","debugMessage","mkdirSync","recursive","saveToFile","data","identifier","filename","exportData","Array","isArray","forEach","element","writeFile","JSON","stringify","printMessage","saveJsonToFile","includeMeta","meta","writeFileSync","appendTextToFile","appendFileSync","message","findFilesByName","fileName","fast","path","entries","readdirSync","encoding","withFileTypes","files","filter","entry","isDirectory","file","map","folders","folder","push","readFilesRecursive","_x","_readFilesRecursive","directory","items","readdir","filePathsNested","all","_ref","entity","lstat","_x2","flat"],"sources":["../../../src/ops/utils/ExportImportUtils.ts"],"sourcesContent":["import fs from 'fs';\nimport { lstat, readdir } from 'fs/promises';\nimport { join } from 'path';\nimport slugify from 'slugify';\nimport {\n decode,\n decodeBase64Url,\n encode,\n encodeBase64Url,\n} from '../../api/utils/Base64';\nimport * as state from '../../shared/State';\nimport { FRODO_METADATA_ID } from '../../storage/StaticStorage';\nimport { ExportMetaData } from '../OpsTypes';\nimport { debugMessage, printMessage } from './Console';\n\nexport function getMetadata(): ExportMetaData {\n const metadata: ExportMetaData = {\n origin: state.getHost(),\n originAmVersion: state.getAmVersion(),\n exportedBy: state.getUsername(),\n exportDate: new Date().toISOString(),\n exportTool: FRODO_METADATA_ID,\n exportToolVersion: state.getFrodoVersion(),\n };\n return metadata;\n}\n\n/*\n * Output str in title case\n *\n * e.g.: 'ALL UPPERCASE AND all lowercase' = 'All Uppercase And All Lowercase'\n */\nexport function titleCase(input) {\n const str = input.toString();\n const splitStr = str.toLowerCase().split(' ');\n for (let i = 0; i < splitStr.length; i += 1) {\n splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].slice(1);\n }\n return splitStr.join(' ');\n}\n\nexport function getRealmString() {\n const realm = state.getRealm();\n return realm\n .split('/')\n .reduce((result, item) => `${result}${titleCase(item)}`, '');\n}\n\nexport function convertBase64TextToArray(b64text) {\n let arrayOut = [];\n let plainText = decode(b64text);\n plainText = plainText.replace(/\\t/g, ' ');\n arrayOut = plainText.split('\\n');\n return arrayOut;\n}\n\nexport function convertBase64UrlTextToArray(b64UTF8Text) {\n let arrayOut = [];\n let plainText = decodeBase64Url(b64UTF8Text);\n plainText = plainText.replace(/\\t/g, ' ');\n arrayOut = plainText.split('\\n');\n return arrayOut;\n}\n\nexport function convertTextArrayToBase64(textArray) {\n const joinedText = textArray.join('\\n');\n const b64encodedScript = encode(joinedText);\n return b64encodedScript;\n}\n\nexport function convertTextArrayToBase64Url(textArray) {\n const joinedText = textArray.join('\\n');\n const b64encodedScript = encodeBase64Url(joinedText);\n return b64encodedScript;\n}\n\n// eslint-disable-next-line no-unused-vars\nexport function validateImport(metadata): boolean {\n return metadata || true;\n}\n\nexport function getTypedFilename(name: string, type: string, suffix = 'json') {\n const slug = slugify(name.replace(/^http(s?):\\/\\//, ''));\n return `${slug}.${type}.${suffix}`;\n}\n\nexport function getWorkingDirectory() {\n let wd = '.';\n if (state.getDirectory()) {\n wd = state.getDirectory().replace(/\\/$/, '');\n // create directory if it doesn't exist\n if (!fs.existsSync(wd)) {\n debugMessage(\n `ExportImportUtils.getWorkingDirectory: creating directory '${wd}'`\n );\n fs.mkdirSync(wd, { recursive: true });\n }\n }\n return wd;\n}\n\nexport function saveToFile(type, data, identifier, filename) {\n const exportData = {};\n exportData['meta'] = getMetadata();\n exportData[type] = {};\n\n if (Array.isArray(data)) {\n data.forEach((element) => {\n exportData[type][element[identifier]] = element;\n });\n } else {\n exportData[type][data[identifier]] = data;\n }\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${type} to file`, 'error');\n }\n return '';\n });\n}\n\n/**\n * Save JSON object to file\n * @param {Object} data data object\n * @param {String} filename file name\n * @return {boolean} true if successful, false otherwise\n */\nexport function saveJsonToFile(data, filename, includeMeta = true): boolean {\n const exportData = data;\n if (includeMeta) exportData.meta = getMetadata();\n try {\n fs.writeFileSync(filename, JSON.stringify(exportData, null, 2));\n return true;\n } catch (err) {\n printMessage(`ERROR - can't save ${filename}`, 'error');\n return false;\n }\n}\n\n/**\n * Append text data to file\n * @param {String} data text data\n * @param {String} filename file name\n */\nexport function appendTextToFile(data, filename) {\n try {\n fs.appendFileSync(filename, data);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Find files by name\n * @param {string} fileName file name to search for\n * @param {boolean} fast return first result and stop search\n * @param {string} path path to directory where to start the search\n * @returns {string[]} array of found file paths relative to starting directory\n */\nexport function findFilesByName(\n fileName: string,\n fast = true,\n path = './'\n): string[] {\n const entries = fs.readdirSync(path, {\n encoding: 'utf8',\n withFileTypes: true,\n });\n\n // Get files within the current directory and add a path key to the file objects\n const files: string[] = entries\n .filter((entry) => !entry.isDirectory())\n .filter((file) => file.name === fileName)\n // .map((file) => ({ ...file, path: path + file.name }));\n .map((file) => path + file.name);\n\n if (fast && files.length > 0) return files;\n\n // search sub-folders\n const folders = entries.filter((entry) => entry.isDirectory());\n for (const folder of folders)\n files.push(...findFilesByName(fileName, fast, `${path}${folder.name}/`));\n\n return files;\n}\n\n/**\n * find all (nested) files in a directory\n *\n * @param directory directory to search\n * @returns list of files\n */\nexport async function readFilesRecursive(directory: string): Promise<string[]> {\n const items = await readdir(directory);\n\n const filePathsNested = await Promise.all(\n items.map(async (entity) => {\n const path = join(directory, entity);\n const isDirectory = (await lstat(path)).isDirectory();\n\n if (isDirectory) {\n return readFilesRecursive(path);\n }\n return path;\n })\n );\n\n return filePathsNested.flat();\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ExportImportUtils.js","names":["_fs","_interopRequireDefault","require","_promises","_path","_slugify","_Base","state","_interopRequireWildcard","_StaticStorage","_Console","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","getMetadata","metadata","origin","getHost","originAmVersion","getAmVersion","exportedBy","getUsername","exportDate","Date","toISOString","exportTool","FRODO_METADATA_ID","exportToolVersion","getFrodoVersion","titleCase","input","str","toString","splitStr","toLowerCase","split","i","length","charAt","toUpperCase","slice","join","getRealmString","realm","getRealm","reduce","result","item","concat","convertBase64TextToArray","b64text","arrayOut","plainText","decode","replace","convertBase64UrlTextToArray","b64UTF8Text","decodeBase64Url","convertTextArrayToBase64","textArray","joinedText","b64encodedScript","encode","convertTextArrayToBase64Url","encodeBase64Url","validateImport","getTypedFilename","name","type","suffix","slug","slugify","getWorkingDirectory","wd","getDirectory","fs","existsSync","debugMessage","mkdirSync","recursive","saveToFile","data","identifier","filename","exportData","Array","isArray","forEach","element","writeFile","JSON","stringify","printMessage","saveJsonToFile","includeMeta","meta","writeFileSync","appendTextToFile","appendFileSync","message","findFilesByName","fileName","fast","path","entries","readdirSync","encoding","withFileTypes","files","filter","entry","isDirectory","file","map","folders","folder","push","readFilesRecursive","_x","_readFilesRecursive","directory","items","readdir","filePathsNested","all","_ref","entity","lstat","_x2","flat"],"sources":["../../../src/ops/utils/ExportImportUtils.ts"],"sourcesContent":["import fs from 'fs';\nimport { lstat, readdir } from 'fs/promises';\nimport { join } from 'path';\nimport slugify from 'slugify';\nimport {\n decode,\n decodeBase64Url,\n encode,\n encodeBase64Url,\n} from '../../api/utils/Base64';\nimport * as state from '../../shared/State';\nimport { FRODO_METADATA_ID } from '../../storage/StaticStorage';\nimport { ExportMetaData } from '../OpsTypes';\nimport { debugMessage, printMessage } from './Console';\n\nexport function getMetadata(): ExportMetaData {\n const metadata: ExportMetaData = {\n origin: state.getHost(),\n originAmVersion: state.getAmVersion(),\n exportedBy: state.getUsername(),\n exportDate: new Date().toISOString(),\n exportTool: FRODO_METADATA_ID,\n exportToolVersion: state.getFrodoVersion(),\n };\n return metadata;\n}\n\n/*\n * Output str in title case\n *\n * e.g.: 'ALL UPPERCASE AND all lowercase' = 'All Uppercase And All Lowercase'\n */\nexport function titleCase(input) {\n const str = input.toString();\n const splitStr = str.toLowerCase().split(' ');\n for (let i = 0; i < splitStr.length; i += 1) {\n splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].slice(1);\n }\n return splitStr.join(' ');\n}\n\nexport function getRealmString() {\n const realm = state.getRealm();\n return realm\n .split('/')\n .reduce((result, item) => `${result}${titleCase(item)}`, '');\n}\n\nexport function convertBase64TextToArray(b64text) {\n let arrayOut = [];\n let plainText = decode(b64text);\n plainText = plainText.replace(/\\t/g, ' ');\n arrayOut = plainText.split('\\n');\n return arrayOut;\n}\n\nexport function convertBase64UrlTextToArray(b64UTF8Text) {\n let arrayOut = [];\n let plainText = decodeBase64Url(b64UTF8Text);\n plainText = plainText.replace(/\\t/g, ' ');\n arrayOut = plainText.split('\\n');\n return arrayOut;\n}\n\nexport function convertTextArrayToBase64(textArray) {\n const joinedText = textArray.join('\\n');\n const b64encodedScript = encode(joinedText);\n return b64encodedScript;\n}\n\nexport function convertTextArrayToBase64Url(textArray) {\n const joinedText = textArray.join('\\n');\n const b64encodedScript = encodeBase64Url(joinedText);\n return b64encodedScript;\n}\n\n// eslint-disable-next-line no-unused-vars\nexport function validateImport(metadata): boolean {\n return metadata || true;\n}\n\nexport function getTypedFilename(name: string, type: string, suffix = 'json') {\n const slug = slugify(name.replace(/^http(s?):\\/\\//, ''));\n return `${slug}.${type}.${suffix}`;\n}\n\nexport function getWorkingDirectory() {\n let wd = '.';\n if (state.getDirectory()) {\n wd = state.getDirectory().replace(/\\/$/, '');\n // create directory if it doesn't exist\n if (!fs.existsSync(wd)) {\n debugMessage(\n `ExportImportUtils.getWorkingDirectory: creating directory '${wd}'`\n );\n fs.mkdirSync(wd, { recursive: true });\n }\n }\n return wd;\n}\n\nexport function saveToFile(type, data, identifier, filename) {\n const exportData = {};\n exportData['meta'] = getMetadata();\n exportData[type] = {};\n\n if (Array.isArray(data)) {\n data.forEach((element) => {\n exportData[type][element[identifier]] = element;\n });\n } else {\n exportData[type][data[identifier]] = data;\n }\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${type} to file`, 'error');\n }\n return '';\n });\n}\n\n/**\n * Save JSON object to file\n * @param {Object} data data object\n * @param {String} filename file name\n * @return {boolean} true if successful, false otherwise\n */\nexport function saveJsonToFile(data, filename, includeMeta = true): boolean {\n const exportData = data;\n if (includeMeta) exportData.meta = getMetadata();\n try {\n fs.writeFileSync(filename, JSON.stringify(exportData, null, 2));\n return true;\n } catch (err) {\n printMessage(`ERROR - can't save ${filename}`, 'error');\n return false;\n }\n}\n\n/**\n * Append text data to file\n * @param {String} data text data\n * @param {String} filename file name\n */\nexport function appendTextToFile(data, filename) {\n try {\n fs.appendFileSync(filename, data);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Find files by name\n * @param {string} fileName file name to search for\n * @param {boolean} fast return first result and stop search\n * @param {string} path path to directory where to start the search\n * @returns {string[]} array of found file paths relative to starting directory\n */\nexport function findFilesByName(\n fileName: string,\n fast = true,\n path = './'\n): string[] {\n const entries = fs.readdirSync(path, {\n encoding: 'utf8',\n withFileTypes: true,\n });\n\n // Get files within the current directory and add a path key to the file objects\n const files: string[] = entries\n .filter((entry) => !entry.isDirectory())\n .filter((file) => file.name === fileName)\n // .map((file) => ({ ...file, path: path + file.name }));\n .map((file) => path + file.name);\n\n if (fast && files.length > 0) return files;\n\n // search sub-folders\n const folders = entries.filter((entry) => entry.isDirectory());\n for (const folder of folders)\n files.push(...findFilesByName(fileName, fast, `${path}${folder.name}/`));\n\n return files;\n}\n\n/**\n * find all (nested) files in a directory\n *\n * @param directory directory to search\n * @returns list of files\n */\nexport async function readFilesRecursive(directory: string): Promise<string[]> {\n const items = await readdir(directory);\n\n const filePathsNested = await Promise.all(\n items.map(async (entity) => {\n const path = join(directory, entity);\n const isDirectory = (await lstat(path)).isDirectory();\n\n if (isDirectory) {\n return readFilesRecursive(path);\n }\n return path;\n })\n );\n\n return filePathsNested.flat();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,GAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAA8B,IAAAI,KAAA,GAAAJ,OAAA;AAAA,IAAAK,KAAA,GAAAC,uBAAA,CAAAN,OAAA;AAAA,IAAAO,cAAA,GAAAP,OAAA;AAAA,IAAAQ,QAAA,GAAAR,OAAA;AAAA,SAAAS,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAJ,wBAAAQ,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAArB,uBAAAe,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAiB,mBAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAX,GAAA,EAAAY,GAAA,cAAAC,IAAA,GAAAN,GAAA,CAAAP,GAAA,EAAAY,GAAA,OAAAE,KAAA,GAAAD,IAAA,CAAAC,KAAA,WAAAC,KAAA,IAAAN,MAAA,CAAAM,KAAA,iBAAAF,IAAA,CAAAG,IAAA,IAAAR,OAAA,CAAAM,KAAA,YAAAG,OAAA,CAAAT,OAAA,CAAAM,KAAA,EAAAI,IAAA,CAAAR,KAAA,EAAAC,MAAA;AAAA,SAAAQ,kBAAAC,EAAA,6BAAAC,IAAA,SAAAC,IAAA,GAAAC,SAAA,aAAAN,OAAA,WAAAT,OAAA,EAAAC,MAAA,QAAAF,GAAA,GAAAa,EAAA,CAAAI,KAAA,CAAAH,IAAA,EAAAC,IAAA,YAAAZ,MAAAI,KAAA,IAAAR,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,UAAAG,KAAA,cAAAH,OAAAc,GAAA,IAAAnB,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,WAAAc,GAAA,KAAAf,KAAA,CAAAgB,SAAA;AAYvB,SAASC,WAAWA,CAAA,EAAmB;EAC5C,IAAMC,QAAwB,GAAG;IAC/BC,MAAM,EAAEjD,KAAK,CAACkD,OAAO,CAAC,CAAC;IACvBC,eAAe,EAAEnD,KAAK,CAACoD,YAAY,CAAC,CAAC;IACrCC,UAAU,EAAErD,KAAK,CAACsD,WAAW,CAAC,CAAC;IAC/BC,UAAU,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;IACpCC,UAAU,EAAEC,gCAAiB;IAC7BC,iBAAiB,EAAE5D,KAAK,CAAC6D,eAAe,CAAC;EAC3C,CAAC;EACD,OAAOb,QAAQ;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASc,SAASA,CAACC,KAAK,EAAE;EAC/B,IAAMC,GAAG,GAAGD,KAAK,CAACE,QAAQ,CAAC,CAAC;EAC5B,IAAMC,QAAQ,GAAGF,GAAG,CAACG,WAAW,CAAC,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC;EAC7C,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,QAAQ,CAACI,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;IAC3CH,QAAQ,CAACG,CAAC,CAAC,GAAGH,QAAQ,CAACG,CAAC,CAAC,CAACE,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGN,QAAQ,CAACG,CAAC,CAAC,CAACI,KAAK,CAAC,CAAC,CAAC;EAC1E;EACA,OAAOP,QAAQ,CAACQ,IAAI,CAAC,GAAG,CAAC;AAC3B;AAEO,SAASC,cAAcA,CAAA,EAAG;EAC/B,IAAMC,KAAK,GAAG5E,KAAK,CAAC6E,QAAQ,CAAC,CAAC;EAC9B,OAAOD,KAAK,CACTR,KAAK,CAAC,GAAG,CAAC,CACVU,MAAM,CAAC,CAACC,MAAM,EAAEC,IAAI,QAAAC,MAAA,CAAQF,MAAM,EAAAE,MAAA,CAAGnB,SAAS,CAACkB,IAAI,CAAC,CAAE,EAAE,EAAE,CAAC;AAChE;AAEO,SAASE,wBAAwBA,CAACC,OAAO,EAAE;EAChD,IAAIC,QAAQ,GAAG,EAAE;EACjB,IAAIC,SAAS,GAAG,IAAAC,YAAM,EAACH,OAAO,CAAC;EAC/BE,SAAS,GAAGA,SAAS,CAACE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;EAC5CH,QAAQ,GAAGC,SAAS,CAACjB,KAAK,CAAC,IAAI,CAAC;EAChC,OAAOgB,QAAQ;AACjB;AAEO,SAASI,2BAA2BA,CAACC,WAAW,EAAE;EACvD,IAAIL,QAAQ,GAAG,EAAE;EACjB,IAAIC,SAAS,GAAG,IAAAK,qBAAe,EAACD,WAAW,CAAC;EAC5CJ,SAAS,GAAGA,SAAS,CAACE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;EAC5CH,QAAQ,GAAGC,SAAS,CAACjB,KAAK,CAAC,IAAI,CAAC;EAChC,OAAOgB,QAAQ;AACjB;AAEO,SAASO,wBAAwBA,CAACC,SAAS,EAAE;EAClD,IAAMC,UAAU,GAAGD,SAAS,CAAClB,IAAI,CAAC,IAAI,CAAC;EACvC,IAAMoB,gBAAgB,GAAG,IAAAC,YAAM,EAACF,UAAU,CAAC;EAC3C,OAAOC,gBAAgB;AACzB;AAEO,SAASE,2BAA2BA,CAACJ,SAAS,EAAE;EACrD,IAAMC,UAAU,GAAGD,SAAS,CAAClB,IAAI,CAAC,IAAI,CAAC;EACvC,IAAMoB,gBAAgB,GAAG,IAAAG,qBAAe,EAACJ,UAAU,CAAC;EACpD,OAAOC,gBAAgB;AACzB;;AAEA;AACO,SAASI,cAAcA,CAAClD,QAAQ,EAAW;EAChD,OAAOA,QAAQ,IAAI,IAAI;AACzB;AAEO,SAASmD,gBAAgBA,CAACC,IAAY,EAAEC,IAAY,EAAmB;EAAA,IAAjBC,MAAM,GAAA3D,SAAA,CAAA2B,MAAA,QAAA3B,SAAA,QAAAG,SAAA,GAAAH,SAAA,MAAG,MAAM;EAC1E,IAAM4D,IAAI,GAAG,IAAAC,gBAAO,EAACJ,IAAI,CAACb,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;EACxD,UAAAN,MAAA,CAAUsB,IAAI,OAAAtB,MAAA,CAAIoB,IAAI,OAAApB,MAAA,CAAIqB,MAAM;AAClC;AAEO,SAASG,mBAAmBA,CAAA,EAAG;EACpC,IAAIC,EAAE,GAAG,GAAG;EACZ,IAAI1G,KAAK,CAAC2G,YAAY,CAAC,CAAC,EAAE;IACxBD,EAAE,GAAG1G,KAAK,CAAC2G,YAAY,CAAC,CAAC,CAACpB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IAC5C;IACA,IAAI,CAACqB,WAAE,CAACC,UAAU,CAACH,EAAE,CAAC,EAAE;MACtB,IAAAI,qBAAY,gEAAA7B,MAAA,CACoDyB,EAAE,MAClE,CAAC;MACDE,WAAE,CAACG,SAAS,CAACL,EAAE,EAAE;QAAEM,SAAS,EAAE;MAAK,CAAC,CAAC;IACvC;EACF;EACA,OAAON,EAAE;AACX;AAEO,SAASO,UAAUA,CAACZ,IAAI,EAAEa,IAAI,EAAEC,UAAU,EAAEC,QAAQ,EAAE;EAC3D,IAAMC,UAAU,GAAG,CAAC,CAAC;EACrBA,UAAU,CAAC,MAAM,CAAC,GAAGtE,WAAW,CAAC,CAAC;EAClCsE,UAAU,CAAChB,IAAI,CAAC,GAAG,CAAC,CAAC;EAErB,IAAIiB,KAAK,CAACC,OAAO,CAACL,IAAI,CAAC,EAAE;IACvBA,IAAI,CAACM,OAAO,CAAEC,OAAO,IAAK;MACxBJ,UAAU,CAAChB,IAAI,CAAC,CAACoB,OAAO,CAACN,UAAU,CAAC,CAAC,GAAGM,OAAO;IACjD,CAAC,CAAC;EACJ,CAAC,MAAM;IACLJ,UAAU,CAAChB,IAAI,CAAC,CAACa,IAAI,CAACC,UAAU,CAAC,CAAC,GAAGD,IAAI;EAC3C;EACAN,WAAE,CAACc,SAAS,CAACN,QAAQ,EAAEO,IAAI,CAACC,SAAS,CAACP,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAGxE,GAAG,IAAK;IACnE,IAAIA,GAAG,EAAE;MACP,OAAO,IAAAgF,qBAAY,wBAAA5C,MAAA,CAAuBoB,IAAI,eAAY,OAAO,CAAC;IACpE;IACA,OAAO,EAAE;EACX,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASyB,cAAcA,CAACZ,IAAI,EAAEE,QAAQ,EAA+B;EAAA,IAA7BW,WAAW,GAAApF,SAAA,CAAA2B,MAAA,QAAA3B,SAAA,QAAAG,SAAA,GAAAH,SAAA,MAAG,IAAI;EAC/D,IAAM0E,UAAU,GAAGH,IAAI;EACvB,IAAIa,WAAW,EAAEV,UAAU,CAACW,IAAI,GAAGjF,WAAW,CAAC,CAAC;EAChD,IAAI;IACF6D,WAAE,CAACqB,aAAa,CAACb,QAAQ,EAAEO,IAAI,CAACC,SAAS,CAACP,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/D,OAAO,IAAI;EACb,CAAC,CAAC,OAAOxE,GAAG,EAAE;IACZ,IAAAgF,qBAAY,wBAAA5C,MAAA,CAAuBmC,QAAQ,GAAI,OAAO,CAAC;IACvD,OAAO,KAAK;EACd;AACF;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASc,gBAAgBA,CAAChB,IAAI,EAAEE,QAAQ,EAAE;EAC/C,IAAI;IACFR,WAAE,CAACuB,cAAc,CAACf,QAAQ,EAAEF,IAAI,CAAC;EACnC,CAAC,CAAC,OAAO/E,KAAK,EAAE;IACd,IAAA0F,qBAAY,KAAA5C,MAAA,CAAI9C,KAAK,CAACiG,OAAO,GAAI,OAAO,CAAC;EAC3C;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAC7BC,QAAgB,EAGN;EAAA,IAFVC,IAAI,GAAA5F,SAAA,CAAA2B,MAAA,QAAA3B,SAAA,QAAAG,SAAA,GAAAH,SAAA,MAAG,IAAI;EAAA,IACX6F,IAAI,GAAA7F,SAAA,CAAA2B,MAAA,QAAA3B,SAAA,QAAAG,SAAA,GAAAH,SAAA,MAAG,IAAI;EAEX,IAAM8F,OAAO,GAAG7B,WAAE,CAAC8B,WAAW,CAACF,IAAI,EAAE;IACnCG,QAAQ,EAAE,MAAM;IAChBC,aAAa,EAAE;EACjB,CAAC,CAAC;;EAEF;EACA,IAAMC,KAAe,GAAGJ,OAAO,CAC5BK,MAAM,CAAEC,KAAK,IAAK,CAACA,KAAK,CAACC,WAAW,CAAC,CAAC,CAAC,CACvCF,MAAM,CAAEG,IAAI,IAAKA,IAAI,CAAC7C,IAAI,KAAKkC,QAAQ;EACxC;EAAA,CACCY,GAAG,CAAED,IAAI,IAAKT,IAAI,GAAGS,IAAI,CAAC7C,IAAI,CAAC;EAElC,IAAImC,IAAI,IAAIM,KAAK,CAACvE,MAAM,GAAG,CAAC,EAAE,OAAOuE,KAAK;;EAE1C;EACA,IAAMM,OAAO,GAAGV,OAAO,CAACK,MAAM,CAAEC,KAAK,IAAKA,KAAK,CAACC,WAAW,CAAC,CAAC,CAAC;EAC9D,KAAK,IAAMI,MAAM,IAAID,OAAO,EAC1BN,KAAK,CAACQ,IAAI,CAAC,GAAGhB,eAAe,CAACC,QAAQ,EAAEC,IAAI,KAAAtD,MAAA,CAAKuD,IAAI,EAAAvD,MAAA,CAAGmE,MAAM,CAAChD,IAAI,MAAG,CAAC,CAAC;EAE1E,OAAOyC,KAAK;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AALA,SAMsBS,kBAAkBA,CAAAC,EAAA;EAAA,OAAAC,mBAAA,CAAA5G,KAAA,OAAAD,SAAA;AAAA;AAAA,SAAA6G,oBAAA;EAAAA,mBAAA,GAAAjH,iBAAA,CAAjC,WAAkCkH,SAAiB,EAAqB;IAC7E,IAAMC,KAAK,SAAS,IAAAC,iBAAO,EAACF,SAAS,CAAC;IAEtC,IAAMG,eAAe,SAASvH,OAAO,CAACwH,GAAG,CACvCH,KAAK,CAACR,GAAG;MAAA,IAAAY,IAAA,GAAAvH,iBAAA,CAAC,WAAOwH,MAAM,EAAK;QAC1B,IAAMvB,IAAI,GAAG,IAAA9D,UAAI,EAAC+E,SAAS,EAAEM,MAAM,CAAC;QACpC,IAAMf,WAAW,GAAG,OAAO,IAAAgB,eAAK,EAACxB,IAAI,CAAC,EAAEQ,WAAW,CAAC,CAAC;QAErD,IAAIA,WAAW,EAAE;UACf,OAAOM,kBAAkB,CAACd,IAAI,CAAC;QACjC;QACA,OAAOA,IAAI;MACb,CAAC;MAAA,iBAAAyB,GAAA;QAAA,OAAAH,IAAA,CAAAlH,KAAA,OAAAD,SAAA;MAAA;IAAA,IACH,CAAC;IAED,OAAOiH,eAAe,CAACM,IAAI,CAAC,CAAC;EAC/B,CAAC;EAAA,OAAAV,mBAAA,CAAA5G,KAAA,OAAAD,SAAA;AAAA"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _path = require("path");
4
4
  var _fs = require("fs");
5
- var _ExportImportUtils = require("./ExportImportUtils");
5
+ var _ExportImportUtils = require("./ExportImportUtils.js");
6
6
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
7
7
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
8
8
  // Warning! implimentation file contains non determinisitc functions which are either; not reasonable to test or imposible
@@ -1 +1 @@
1
- {"version":3,"file":"ExportImportUtils.test.js","names":["_path","require","_fs","_ExportImportUtils","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","FS_TMP_DIR","PATH_TO_ARTIFACT","test","originalScript","base64Script","Buffer","from","toString","result","convertBase64TextToArray","expect","toEqual","split","originalArrayOfScriptLines","expected","convertTextArrayToBase64","validateImport","not","toBe","describe","skip","afterAll","existsSync","rmSync","id","data","location","character","words","lotr","saveToFile","resultingJSON","JSON","parse","readFileSync","Object","keys","meta"],"sources":["../../../src/ops/utils/ExportImportUtils.test.ts"],"sourcesContent":["import { resolve } from 'path';\nimport { rmSync, existsSync, readFileSync } from 'fs';\nimport {\n convertTextArrayToBase64,\n convertBase64TextToArray,\n saveToFile,\n validateImport,\n} from './ExportImportUtils';\n// Warning! implimentation file contains non determinisitc functions which are either; not reasonable to test or imposible\n// Cause: date based non overidable functions\n// Not tested: getCurrentTimestamp\n\nconst FS_TMP_DIR = resolve('.', 'test', 'fs_tmp');\nconst PATH_TO_ARTIFACT = resolve(FS_TMP_DIR, 'export.json');\n\ntest('convertBase64TextToArray returns an array of text lines in base64 encoding', () => {\n // Arrange\n const originalScript = `\n function frodo() {\n return 'ring to mt doom';\n }\n `;\n const base64Script = Buffer.from(originalScript).toString('base64');\n // Act\n const result = convertBase64TextToArray(base64Script);\n // Assert\n expect(result).toEqual(originalScript.split('\\n'));\n});\n\ntest('convertTextArrayToBase64', () => {\n // Arrange\n const originalArrayOfScriptLines = `\n function frodo() {\n return 'ring to mt doom';\n }\n `;\n const expected = Buffer.from(originalArrayOfScriptLines).toString('base64');\n // Act\n const result = convertTextArrayToBase64(\n originalArrayOfScriptLines.split('\\n')\n );\n // Assert\n expect(result).toEqual(expected);\n});\n\ntest('validateImport should always return true', () => {\n expect(validateImport(null)).not.toBe(false);\n});\n\n// This function has no way to determine when its asnyc task is complete, suggest using callback or promises to allow for testing\ndescribe.skip('file system based tests', () => {\n afterAll(() => {\n if (existsSync(PATH_TO_ARTIFACT)) {\n rmSync(PATH_TO_ARTIFACT);\n }\n });\n\n test('saveToFile should save a file to specified tmp directory with expected data format', async () => {\n // Arrange\n const id = `id-3021`;\n const data = [\n {\n id,\n location: 'The Shire',\n character: 'Gandalf',\n words: 1064,\n },\n ];\n\n const expected = {\n lotr: {\n 'id-3021': {\n id: 'id-3021',\n location: 'The Shire',\n character: 'Gandalf',\n words: 1064,\n },\n },\n };\n // Act\n saveToFile('lotr', data, 'id', PATH_TO_ARTIFACT);\n const resultingJSON = JSON.parse(readFileSync(PATH_TO_ARTIFACT, 'utf8'));\n // Assert\n expect(resultingJSON.lotr).toEqual(expected.lotr);\n });\n\n test('saveToFile should save a file with metadata', async () => {\n // Arrange\n const id = `id-3021`;\n const data = [\n {\n id,\n location: 'The Shire',\n character: 'Gandalf',\n words: 1064,\n },\n ];\n // Act\n saveToFile('lotr', data, 'id', PATH_TO_ARTIFACT);\n const resultingJSON = JSON.parse(readFileSync(PATH_TO_ARTIFACT, 'utf8'));\n // Assert\n expect(Object.keys(resultingJSON.meta)).toEqual([\n 'origin',\n 'exportedBy',\n 'exportDate',\n 'exportTool',\n 'exportToolVersion',\n ]);\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"ExportImportUtils.test.js","names":["_path","require","_fs","_ExportImportUtils","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","FS_TMP_DIR","PATH_TO_ARTIFACT","test","originalScript","base64Script","Buffer","from","toString","result","convertBase64TextToArray","expect","toEqual","split","originalArrayOfScriptLines","expected","convertTextArrayToBase64","validateImport","not","toBe","describe","skip","afterAll","existsSync","rmSync","id","data","location","character","words","lotr","saveToFile","resultingJSON","JSON","parse","readFileSync","Object","keys","meta"],"sources":["../../../src/ops/utils/ExportImportUtils.test.ts"],"sourcesContent":["import { resolve } from 'path';\nimport { rmSync, existsSync, readFileSync } from 'fs';\nimport {\n convertTextArrayToBase64,\n convertBase64TextToArray,\n saveToFile,\n validateImport,\n} from './ExportImportUtils';\n// Warning! implimentation file contains non determinisitc functions which are either; not reasonable to test or imposible\n// Cause: date based non overidable functions\n// Not tested: getCurrentTimestamp\n\nconst FS_TMP_DIR = resolve('.', 'test', 'fs_tmp');\nconst PATH_TO_ARTIFACT = resolve(FS_TMP_DIR, 'export.json');\n\ntest('convertBase64TextToArray returns an array of text lines in base64 encoding', () => {\n // Arrange\n const originalScript = `\n function frodo() {\n return 'ring to mt doom';\n }\n `;\n const base64Script = Buffer.from(originalScript).toString('base64');\n // Act\n const result = convertBase64TextToArray(base64Script);\n // Assert\n expect(result).toEqual(originalScript.split('\\n'));\n});\n\ntest('convertTextArrayToBase64', () => {\n // Arrange\n const originalArrayOfScriptLines = `\n function frodo() {\n return 'ring to mt doom';\n }\n `;\n const expected = Buffer.from(originalArrayOfScriptLines).toString('base64');\n // Act\n const result = convertTextArrayToBase64(\n originalArrayOfScriptLines.split('\\n')\n );\n // Assert\n expect(result).toEqual(expected);\n});\n\ntest('validateImport should always return true', () => {\n expect(validateImport(null)).not.toBe(false);\n});\n\n// This function has no way to determine when its asnyc task is complete, suggest using callback or promises to allow for testing\ndescribe.skip('file system based tests', () => {\n afterAll(() => {\n if (existsSync(PATH_TO_ARTIFACT)) {\n rmSync(PATH_TO_ARTIFACT);\n }\n });\n\n test('saveToFile should save a file to specified tmp directory with expected data format', async () => {\n // Arrange\n const id = `id-3021`;\n const data = [\n {\n id,\n location: 'The Shire',\n character: 'Gandalf',\n words: 1064,\n },\n ];\n\n const expected = {\n lotr: {\n 'id-3021': {\n id: 'id-3021',\n location: 'The Shire',\n character: 'Gandalf',\n words: 1064,\n },\n },\n };\n // Act\n saveToFile('lotr', data, 'id', PATH_TO_ARTIFACT);\n const resultingJSON = JSON.parse(readFileSync(PATH_TO_ARTIFACT, 'utf8'));\n // Assert\n expect(resultingJSON.lotr).toEqual(expected.lotr);\n });\n\n test('saveToFile should save a file with metadata', async () => {\n // Arrange\n const id = `id-3021`;\n const data = [\n {\n id,\n location: 'The Shire',\n character: 'Gandalf',\n words: 1064,\n },\n ];\n // Act\n saveToFile('lotr', data, 'id', PATH_TO_ARTIFACT);\n const resultingJSON = JSON.parse(readFileSync(PATH_TO_ARTIFACT, 'utf8'));\n // Assert\n expect(Object.keys(resultingJSON.meta)).toEqual([\n 'origin',\n 'exportedBy',\n 'exportDate',\n 'exportTool',\n 'exportToolVersion',\n ]);\n });\n});\n"],"mappings":"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"}
@@ -14,9 +14,9 @@ exports.readFiles = readFiles;
14
14
  exports.replaceAll = replaceAll;
15
15
  exports.substituteEnvParams = substituteEnvParams;
16
16
  exports.unSubstituteEnvParams = unSubstituteEnvParams;
17
- var state = _interopRequireWildcard(require("../../shared/State"));
18
- var globalConfig = _interopRequireWildcard(require("../../storage/StaticStorage"));
19
- var _ApiUtils = require("../../api/utils/ApiUtils");
17
+ var state = _interopRequireWildcard(require("../../shared/State.js"));
18
+ var globalConfig = _interopRequireWildcard(require("../../storage/StaticStorage.js"));
19
+ var _ApiUtils = require("../../api/utils/ApiUtils.js");
20
20
  var _promises = require("fs/promises");
21
21
  var _path = require("path");
22
22
  var _replaceall = _interopRequireDefault(require("replaceall"));
@@ -1 +1 @@
1
- {"version":3,"file":"OpsUtils.js","names":["state","_interopRequireWildcard","require","globalConfig","_ApiUtils","_promises","_path","_replaceall","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","escapeRegExp","str","replace","replaceAll","find","RegExp","applyNameCollisionPolicy","name","capturingRegex","found","match","length","concat","parseInt","getRealmManagedUser","realmManagedUser","getDeploymentType","CLOUD_DEPLOYMENT_TYPE_KEY","getCurrentRealmName","isEqualJson","obj1","obj2","ignoreKeys","obj1Keys","keys","filter","includes","obj2Keys","objKey","getRealmName","realm","_getRealmName","readFiles","_x","_readFiles","baseDirectory","childDirectory","targetDirectory","join","directoryItems","readdir","childPaths","map","item","filePathsNested","all","_ref","childPath","path","isDirectory","lstat","content","readFile","_x2","flat","substituteEnvParams","input","reader","each","replaceall","unSubstituteEnvParams","isValidUrl","urlString","Boolean","URL","cloneDeep","JSON","parse","stringify"],"sources":["../../../src/ops/utils/OpsUtils.ts"],"sourcesContent":["import * as state from '../../shared/State';\nimport * as globalConfig from '../../storage/StaticStorage';\nimport {\n getCurrentRealmName,\n getRealmName as _getRealmName,\n} from '../../api/utils/ApiUtils';\nimport { lstat, readdir, readFile } from 'fs/promises';\nimport { join } from 'path';\nimport { Reader } from 'properties-reader';\nimport replaceall from 'replaceall';\n\n// TODO: do we really need this? if yes: document\nexport function escapeRegExp(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n}\n\n// TODO: do we really need this? if yes: document\nexport function replaceAll(str, find, replace) {\n return str.replace(new RegExp(escapeRegExp(find), 'g'), replace);\n}\n\n/**\n * Get new name when names collide\n * @param {String} name to apply policy to\n * @returns {String} new name according to policy\n */\nexport function applyNameCollisionPolicy(name) {\n const capturingRegex = /(.* - imported) \\(([0-9]+)\\)/;\n const found = name.match(capturingRegex);\n if (found && found.length > 0 && found.length === 3) {\n // already renamed one or more times\n // return the next number\n return `${found[1]} (${parseInt(found[2], 10) + 1})`;\n }\n // first time\n return `${name} - imported (1)`;\n}\n\n/**\n * Get the name of the managed user object for the current realm\n * @returns {String} the name of the managed user object for the current realm\n */\nexport function getRealmManagedUser() {\n let realmManagedUser = 'user';\n if (state.getDeploymentType() === globalConfig.CLOUD_DEPLOYMENT_TYPE_KEY) {\n realmManagedUser = `${getCurrentRealmName()}_user`;\n }\n return realmManagedUser;\n}\n\n/**\n * Compare two json objects\n * @param {Object} obj1 object 1\n * @param {Object} obj2 object 2\n * @param {[String]} ignoreKeys array of keys to ignore in comparison\n * @returns {boolean} true if the two json objects have the same length and all the properties have the same value\n */\nexport function isEqualJson(obj1, obj2, ignoreKeys: string[] = []) {\n const obj1Keys = Object.keys(obj1).filter((key) => !ignoreKeys.includes(key));\n const obj2Keys = Object.keys(obj2).filter((key) => !ignoreKeys.includes(key));\n\n if (obj1Keys.length !== obj2Keys.length) {\n return false;\n }\n\n for (const objKey of obj1Keys) {\n if (obj1[objKey] !== obj2[objKey]) {\n if (\n typeof obj1[objKey] === 'object' &&\n typeof obj2[objKey] === 'object'\n ) {\n if (!isEqualJson(obj1[objKey], obj2[objKey], ignoreKeys)) {\n return false;\n }\n } else {\n return false;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Get current realm name\n * @param {String} realm realm\n * @returns {String} name of the realm. /alpha -> alpha\n */\nexport function getRealmName(realm) {\n return _getRealmName(realm);\n}\n\n/**\n * find all (nested) files in a directory\n *\n * @param baseDirectory directory to search\n * @param childDirectory subdirectory to search\n * @returns list of files\n */\nexport async function readFiles(\n baseDirectory: string,\n childDirectory = ''\n): Promise<\n {\n path: string;\n content: string;\n }[]\n> {\n const targetDirectory = join(baseDirectory, childDirectory);\n const directoryItems = await readdir(targetDirectory);\n const childPaths = directoryItems.map((item) => join(childDirectory, item));\n\n const filePathsNested = await Promise.all(\n childPaths.map(async (childPath) => {\n const path = join(baseDirectory, childPath);\n const isDirectory = (await lstat(path)).isDirectory();\n\n if (isDirectory) {\n return readFiles(baseDirectory, childPath);\n }\n\n return {\n path: childPath,\n content: await readFile(path, 'utf8'),\n };\n })\n );\n\n return filePathsNested.flat();\n}\n\nexport function substituteEnvParams(input: string, reader: Reader) {\n reader.each((key, value) => {\n input = replaceall(value, `\\${${key}}`, input);\n });\n return input;\n}\n\nexport function unSubstituteEnvParams(input: string, reader: Reader) {\n reader.each((key, value) => {\n input = replaceall(`\\${${key}}`, value, input);\n });\n return input;\n}\n\n/**\n * Check if a string is a valid URL\n * @param {string} urlString input string to be evaluated\n * @returns {boolean} true if a valid URL, false otherwise\n */\nexport function isValidUrl(urlString: string) {\n try {\n return Boolean(new URL(urlString));\n } catch (error) {\n return false;\n }\n}\n\n/**\n * Deep clone object\n * @param {any} obj object to deep clone\n * @returns {any} new object cloned from obj\n */\nexport function cloneDeep(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"OpsUtils.js","names":["_promises","require","_path","_replaceall","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interopRequireWildcard","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","escapeRegExp","str","replace","replaceAll","find","RegExp","applyNameCollisionPolicy","name","capturingRegex","found","match","length","concat","parseInt","getRealmManagedUser","realmManagedUser","state","getDeploymentType","globalConfig","CLOUD_DEPLOYMENT_TYPE_KEY","getCurrentRealmName","isEqualJson","obj1","obj2","ignoreKeys","obj1Keys","keys","filter","includes","obj2Keys","objKey","getRealmName","realm","_getRealmName","readFiles","_x","_readFiles","baseDirectory","childDirectory","targetDirectory","join","directoryItems","readdir","childPaths","map","item","filePathsNested","all","_ref","childPath","path","isDirectory","lstat","content","readFile","_x2","flat","substituteEnvParams","input","reader","each","replaceall","unSubstituteEnvParams","isValidUrl","urlString","Boolean","URL","cloneDeep","JSON","parse","stringify"],"sources":["../../../src/ops/utils/OpsUtils.ts"],"sourcesContent":["import * as state from '../../shared/State';\nimport * as globalConfig from '../../storage/StaticStorage';\nimport {\n getCurrentRealmName,\n getRealmName as _getRealmName,\n} from '../../api/utils/ApiUtils';\nimport { lstat, readdir, readFile } from 'fs/promises';\nimport { join } from 'path';\nimport { Reader } from 'properties-reader';\nimport replaceall from 'replaceall';\n\n// TODO: do we really need this? if yes: document\nexport function escapeRegExp(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n}\n\n// TODO: do we really need this? if yes: document\nexport function replaceAll(str, find, replace) {\n return str.replace(new RegExp(escapeRegExp(find), 'g'), replace);\n}\n\n/**\n * Get new name when names collide\n * @param {String} name to apply policy to\n * @returns {String} new name according to policy\n */\nexport function applyNameCollisionPolicy(name) {\n const capturingRegex = /(.* - imported) \\(([0-9]+)\\)/;\n const found = name.match(capturingRegex);\n if (found && found.length > 0 && found.length === 3) {\n // already renamed one or more times\n // return the next number\n return `${found[1]} (${parseInt(found[2], 10) + 1})`;\n }\n // first time\n return `${name} - imported (1)`;\n}\n\n/**\n * Get the name of the managed user object for the current realm\n * @returns {String} the name of the managed user object for the current realm\n */\nexport function getRealmManagedUser() {\n let realmManagedUser = 'user';\n if (state.getDeploymentType() === globalConfig.CLOUD_DEPLOYMENT_TYPE_KEY) {\n realmManagedUser = `${getCurrentRealmName()}_user`;\n }\n return realmManagedUser;\n}\n\n/**\n * Compare two json objects\n * @param {Object} obj1 object 1\n * @param {Object} obj2 object 2\n * @param {[String]} ignoreKeys array of keys to ignore in comparison\n * @returns {boolean} true if the two json objects have the same length and all the properties have the same value\n */\nexport function isEqualJson(obj1, obj2, ignoreKeys: string[] = []) {\n const obj1Keys = Object.keys(obj1).filter((key) => !ignoreKeys.includes(key));\n const obj2Keys = Object.keys(obj2).filter((key) => !ignoreKeys.includes(key));\n\n if (obj1Keys.length !== obj2Keys.length) {\n return false;\n }\n\n for (const objKey of obj1Keys) {\n if (obj1[objKey] !== obj2[objKey]) {\n if (\n typeof obj1[objKey] === 'object' &&\n typeof obj2[objKey] === 'object'\n ) {\n if (!isEqualJson(obj1[objKey], obj2[objKey], ignoreKeys)) {\n return false;\n }\n } else {\n return false;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Get current realm name\n * @param {String} realm realm\n * @returns {String} name of the realm. /alpha -> alpha\n */\nexport function getRealmName(realm) {\n return _getRealmName(realm);\n}\n\n/**\n * find all (nested) files in a directory\n *\n * @param baseDirectory directory to search\n * @param childDirectory subdirectory to search\n * @returns list of files\n */\nexport async function readFiles(\n baseDirectory: string,\n childDirectory = ''\n): Promise<\n {\n path: string;\n content: string;\n }[]\n> {\n const targetDirectory = join(baseDirectory, childDirectory);\n const directoryItems = await readdir(targetDirectory);\n const childPaths = directoryItems.map((item) => join(childDirectory, item));\n\n const filePathsNested = await Promise.all(\n childPaths.map(async (childPath) => {\n const path = join(baseDirectory, childPath);\n const isDirectory = (await lstat(path)).isDirectory();\n\n if (isDirectory) {\n return readFiles(baseDirectory, childPath);\n }\n\n return {\n path: childPath,\n content: await readFile(path, 'utf8'),\n };\n })\n );\n\n return filePathsNested.flat();\n}\n\nexport function substituteEnvParams(input: string, reader: Reader) {\n reader.each((key, value) => {\n input = replaceall(value, `\\${${key}}`, input);\n });\n return input;\n}\n\nexport function unSubstituteEnvParams(input: string, reader: Reader) {\n reader.each((key, value) => {\n input = replaceall(`\\${${key}}`, value, input);\n });\n return input;\n}\n\n/**\n * Check if a string is a valid URL\n * @param {string} urlString input string to be evaluated\n * @returns {boolean} true if a valid URL, false otherwise\n */\nexport function isValidUrl(urlString: string) {\n try {\n return Boolean(new URL(urlString));\n } catch (error) {\n return false;\n }\n}\n\n/**\n * Deep clone object\n * @param {any} obj object to deep clone\n * @returns {any} new object cloned from obj\n */\nexport function cloneDeep(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
- var OpsUtils = _interopRequireWildcard(require("./OpsUtils"));
4
- var state = _interopRequireWildcard(require("../../shared/State"));
5
- var _StaticStorage = require("../../storage/StaticStorage");
3
+ var OpsUtils = _interopRequireWildcard(require("./OpsUtils.js"));
4
+ var state = _interopRequireWildcard(require("../../shared/State.js"));
5
+ var _StaticStorage = require("../../storage/StaticStorage.js");
6
6
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
7
7
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
8
8
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
@@ -1 +1 @@
1
- {"version":3,"file":"OpsUtils.test.js","names":["OpsUtils","_interopRequireWildcard","require","state","_StaticStorage","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","describe","test","expect","getRealmManagedUser","toBeDefined","REALM","DEPLOYMENT_TYPE","CLOUD_DEPLOYMENT_TYPE_KEY","setRealm","setDeploymentType","testString","toBe","FORGEOPS_DEPLOYMENT_TYPE_KEY","CLASSIC_DEPLOYMENT_TYPE_KEY","isEqualJson","obj1","obj2","toBeTruthy","toBeFalsy","key1","key2","key3","key4","key5"],"sources":["../../../src/ops/utils/OpsUtils.test.ts"],"sourcesContent":["import * as OpsUtils from './OpsUtils';\nimport * as state from '../../shared/State';\nimport {\n CLOUD_DEPLOYMENT_TYPE_KEY,\n FORGEOPS_DEPLOYMENT_TYPE_KEY,\n CLASSIC_DEPLOYMENT_TYPE_KEY,\n} from '../../storage/StaticStorage';\n\ndescribe('OpsUtils - getRealmManagedUser()', () => {\n test('getRealmManagedUser() 0: Method is implemented', async () => {\n expect(OpsUtils.getRealmManagedUser).toBeDefined();\n });\n\n test('getRealmManagedUser() 1: should prepend realm to managed user type in identity cloud', () => {\n // Arrange\n const REALM = 'alpha';\n const DEPLOYMENT_TYPE = CLOUD_DEPLOYMENT_TYPE_KEY;\n state.setRealm(REALM);\n state.setDeploymentType(DEPLOYMENT_TYPE);\n // Act\n const testString = OpsUtils.getRealmManagedUser();\n // Assert\n expect(testString).toBe('alpha_user');\n });\n\n test('getRealmManagedUser() 2: should prepend realm without leading slash to managed user type in identity cloud', () => {\n // Arrange\n const REALM = '/alpha';\n const DEPLOYMENT_TYPE = CLOUD_DEPLOYMENT_TYPE_KEY;\n state.setRealm(REALM);\n state.setDeploymentType(DEPLOYMENT_TYPE);\n // Act\n const testString = OpsUtils.getRealmManagedUser();\n // Assert\n expect(testString).toBe('alpha_user');\n });\n\n test('getRealmManagedUser() 3: should not prepend realm to managed user type in forgeops deployments', () => {\n // Arrange\n const REALM = 'alpha';\n const DEPLOYMENT_TYPE = FORGEOPS_DEPLOYMENT_TYPE_KEY;\n state.setRealm(REALM);\n state.setDeploymentType(DEPLOYMENT_TYPE);\n // Act\n const testString = OpsUtils.getRealmManagedUser();\n // Assert\n expect(testString).toBe('user');\n });\n\n test('getRealmManagedUser() 4: should not prepend realm to managed user type in classic deployments', () => {\n // Arrange\n const REALM = 'alpha';\n const DEPLOYMENT_TYPE = CLASSIC_DEPLOYMENT_TYPE_KEY;\n state.setRealm(REALM);\n state.setDeploymentType(DEPLOYMENT_TYPE);\n // Act\n const testString = OpsUtils.getRealmManagedUser();\n // Assert\n expect(testString).toBe('user');\n });\n});\n\ndescribe('OpsUtils - isEqualJson()', () => {\n test('isEqualJson() 0: Method is implemented', async () => {\n expect(OpsUtils.isEqualJson).toBeDefined();\n });\n\n test('isEqualJson() 1: two empty objects should be equal', () => {\n const obj1 = {};\n const obj2 = {};\n expect(OpsUtils.isEqualJson(obj1, obj2)).toBeTruthy();\n });\n\n test('isEqualJson() 2: two objects with single and equal entry should be equal', () => {\n const obj1 = { key: 'value' };\n const obj2 = { key: 'value' };\n expect(OpsUtils.isEqualJson(obj1, obj2)).toBeTruthy();\n });\n\n test('isEqualJson() 3: two objects with equal key but different value should not be equal', () => {\n const obj1 = { key: 'value1' };\n const obj2 = { key: 'value2' };\n expect(OpsUtils.isEqualJson(obj1, obj2)).toBeFalsy();\n });\n\n test('isEqualJson() 4: two objects with differing keys but equal values should not be equal', () => {\n const obj1 = { key1: 'value' };\n const obj2 = { key2: 'value' };\n expect(OpsUtils.isEqualJson(obj1, obj2)).toBeFalsy();\n });\n\n test('isEqualJson() 5: two objects with unequal amounts of entries should not be equal', () => {\n const obj1 = { key1: 'value' };\n const obj2 = { key1: 'value', key2: 'value2' };\n expect(OpsUtils.isEqualJson(obj1, obj2)).toBeFalsy();\n });\n\n test('isEqualJson() 6: two objects with equal but nested keys should be equal', () => {\n const obj1 = { key1: 'value1', key2: { key3: 'value3' } };\n const obj2 = { key1: 'value1', key2: { key3: 'value3' } };\n expect(OpsUtils.isEqualJson(obj1, obj2)).toBeTruthy();\n });\n\n test('isEqualJson() 7: two objects with equal but multi-nested keys should be equal', () => {\n const obj1 = {\n key1: 'value1',\n key2: {\n key3: 'value3',\n key4: {\n key5: 'value5',\n },\n },\n };\n const obj2 = {\n key1: 'value1',\n key2: {\n key3: 'value3',\n key4: {\n key5: 'value5',\n },\n },\n };\n expect(OpsUtils.isEqualJson(obj1, obj2)).toBeTruthy();\n });\n\n test('isEqualJson() 8: two objects with equal multi-nested keys but unequal values should not be equal', () => {\n const obj1 = {\n key1: 'value1',\n key2: {\n key3: 'value3',\n key4: {\n key5: 'value5',\n },\n },\n };\n const obj2 = {\n key1: 'value1',\n key2: {\n key3: 'value3',\n key4: {\n key5: 'value',\n },\n },\n };\n expect(OpsUtils.isEqualJson(obj1, obj2)).toBeFalsy();\n });\n\n test('isEqualJson() 9: two objects with equal multi-nested keys but unequal values with the offending key excluded should be equal', () => {\n const obj1 = {\n key1: 'value1',\n key2: {\n key3: 'value3',\n key4: {\n key5: 'value5',\n },\n },\n };\n const obj2 = {\n key1: 'value1',\n key2: {\n key3: 'value3',\n key4: {\n key5: 'value',\n },\n },\n };\n expect(OpsUtils.isEqualJson(obj1, obj2, ['key5'])).toBeTruthy();\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"OpsUtils.test.js","names":["describe","test","_asyncToGenerator","expect","OpsUtils","getRealmManagedUser","toBeDefined","REALM","DEPLOYMENT_TYPE","CLOUD_DEPLOYMENT_TYPE_KEY","state","setRealm","setDeploymentType","testString","toBe","FORGEOPS_DEPLOYMENT_TYPE_KEY","CLASSIC_DEPLOYMENT_TYPE_KEY","isEqualJson","obj1","obj2","toBeTruthy","key","toBeFalsy","key1","key2","key3","key4","key5"],"sources":["../../../src/ops/utils/OpsUtils.test.ts"],"sourcesContent":["import * as OpsUtils from './OpsUtils';\nimport * as state from '../../shared/State';\nimport {\n CLOUD_DEPLOYMENT_TYPE_KEY,\n FORGEOPS_DEPLOYMENT_TYPE_KEY,\n CLASSIC_DEPLOYMENT_TYPE_KEY,\n} from '../../storage/StaticStorage';\n\ndescribe('OpsUtils - getRealmManagedUser()', () => {\n test('getRealmManagedUser() 0: Method is implemented', async () => {\n expect(OpsUtils.getRealmManagedUser).toBeDefined();\n });\n\n test('getRealmManagedUser() 1: should prepend realm to managed user type in identity cloud', () => {\n // Arrange\n const REALM = 'alpha';\n const DEPLOYMENT_TYPE = CLOUD_DEPLOYMENT_TYPE_KEY;\n state.setRealm(REALM);\n state.setDeploymentType(DEPLOYMENT_TYPE);\n // Act\n const testString = OpsUtils.getRealmManagedUser();\n // Assert\n expect(testString).toBe('alpha_user');\n });\n\n test('getRealmManagedUser() 2: should prepend realm without leading slash to managed user type in identity cloud', () => {\n // Arrange\n const REALM = '/alpha';\n const DEPLOYMENT_TYPE = CLOUD_DEPLOYMENT_TYPE_KEY;\n state.setRealm(REALM);\n state.setDeploymentType(DEPLOYMENT_TYPE);\n // Act\n const testString = OpsUtils.getRealmManagedUser();\n // Assert\n expect(testString).toBe('alpha_user');\n });\n\n test('getRealmManagedUser() 3: should not prepend realm to managed user type in forgeops deployments', () => {\n // Arrange\n const REALM = 'alpha';\n const DEPLOYMENT_TYPE = FORGEOPS_DEPLOYMENT_TYPE_KEY;\n state.setRealm(REALM);\n state.setDeploymentType(DEPLOYMENT_TYPE);\n // Act\n const testString = OpsUtils.getRealmManagedUser();\n // Assert\n expect(testString).toBe('user');\n });\n\n test('getRealmManagedUser() 4: should not prepend realm to managed user type in classic deployments', () => {\n // Arrange\n const REALM = 'alpha';\n const DEPLOYMENT_TYPE = CLASSIC_DEPLOYMENT_TYPE_KEY;\n state.setRealm(REALM);\n state.setDeploymentType(DEPLOYMENT_TYPE);\n // Act\n const testString = OpsUtils.getRealmManagedUser();\n // Assert\n expect(testString).toBe('user');\n });\n});\n\ndescribe('OpsUtils - isEqualJson()', () => {\n test('isEqualJson() 0: Method is implemented', async () => {\n expect(OpsUtils.isEqualJson).toBeDefined();\n });\n\n test('isEqualJson() 1: two empty objects should be equal', () => {\n const obj1 = {};\n const obj2 = {};\n expect(OpsUtils.isEqualJson(obj1, obj2)).toBeTruthy();\n });\n\n test('isEqualJson() 2: two objects with single and equal entry should be equal', () => {\n const obj1 = { key: 'value' };\n const obj2 = { key: 'value' };\n expect(OpsUtils.isEqualJson(obj1, obj2)).toBeTruthy();\n });\n\n test('isEqualJson() 3: two objects with equal key but different value should not be equal', () => {\n const obj1 = { key: 'value1' };\n const obj2 = { key: 'value2' };\n expect(OpsUtils.isEqualJson(obj1, obj2)).toBeFalsy();\n });\n\n test('isEqualJson() 4: two objects with differing keys but equal values should not be equal', () => {\n const obj1 = { key1: 'value' };\n const obj2 = { key2: 'value' };\n expect(OpsUtils.isEqualJson(obj1, obj2)).toBeFalsy();\n });\n\n test('isEqualJson() 5: two objects with unequal amounts of entries should not be equal', () => {\n const obj1 = { key1: 'value' };\n const obj2 = { key1: 'value', key2: 'value2' };\n expect(OpsUtils.isEqualJson(obj1, obj2)).toBeFalsy();\n });\n\n test('isEqualJson() 6: two objects with equal but nested keys should be equal', () => {\n const obj1 = { key1: 'value1', key2: { key3: 'value3' } };\n const obj2 = { key1: 'value1', key2: { key3: 'value3' } };\n expect(OpsUtils.isEqualJson(obj1, obj2)).toBeTruthy();\n });\n\n test('isEqualJson() 7: two objects with equal but multi-nested keys should be equal', () => {\n const obj1 = {\n key1: 'value1',\n key2: {\n key3: 'value3',\n key4: {\n key5: 'value5',\n },\n },\n };\n const obj2 = {\n key1: 'value1',\n key2: {\n key3: 'value3',\n key4: {\n key5: 'value5',\n },\n },\n };\n expect(OpsUtils.isEqualJson(obj1, obj2)).toBeTruthy();\n });\n\n test('isEqualJson() 8: two objects with equal multi-nested keys but unequal values should not be equal', () => {\n const obj1 = {\n key1: 'value1',\n key2: {\n key3: 'value3',\n key4: {\n key5: 'value5',\n },\n },\n };\n const obj2 = {\n key1: 'value1',\n key2: {\n key3: 'value3',\n key4: {\n key5: 'value',\n },\n },\n };\n expect(OpsUtils.isEqualJson(obj1, obj2)).toBeFalsy();\n });\n\n test('isEqualJson() 9: two objects with equal multi-nested keys but unequal values with the offending key excluded should be equal', () => {\n const obj1 = {\n key1: 'value1',\n key2: {\n key3: 'value3',\n key4: {\n key5: 'value5',\n },\n },\n };\n const obj2 = {\n key1: 'value1',\n key2: {\n key3: 'value3',\n key4: {\n key5: 'value',\n },\n },\n };\n expect(OpsUtils.isEqualJson(obj1, obj2, ['key5'])).toBeTruthy();\n });\n});\n"],"mappings":"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"}
@@ -8,8 +8,8 @@ exports.validateScript = validateScript;
8
8
  exports.validateScriptDecoded = validateScriptDecoded;
9
9
  exports.validateScriptHooks = validateScriptHooks;
10
10
  var _esprima = require("esprima");
11
- var _Base = require("../../api/utils/Base64");
12
- var _Console = require("./Console");
11
+ var _Base = require("../../api/utils/Base64.js");
12
+ var _Console = require("./Console.js");
13
13
  function validateScriptHooks(jsonData) {
14
14
  var scriptHooks = findAllScriptHooks(jsonData);
15
15
  for (var scriptHook of scriptHooks) {
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationUtils.js","names":["_esprima","require","_Base","_Console","validateScriptHooks","jsonData","scriptHooks","findAllScriptHooks","scriptHook","isValidJs","source","scriptHooksArray","arguments","length","undefined","key","item","type","push","validateScript","script","scriptRaw","decode","language","validateScriptDecoded","scriptSkeleton","Array","isArray","join","javascriptSource","parseScript","e","printMessage","concat","message"],"sources":["../../../src/ops/utils/ValidationUtils.ts"],"sourcesContent":["import { parseScript } from 'esprima';\nimport { ScriptSkeleton } from '../../api/ApiTypes';\nimport { decode } from '../../api/utils/Base64';\nimport { printMessage } from './Console';\n\ninterface ScriptHook {\n type: 'text/javascript';\n source?: string;\n}\n\nexport function validateScriptHooks(jsonData: object): boolean {\n const scriptHooks = findAllScriptHooks(jsonData);\n\n for (const scriptHook of scriptHooks) {\n if (!('source' in scriptHook)) {\n continue;\n }\n\n if (!isValidJs(scriptHook.source)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction findAllScriptHooks(\n jsonData: unknown,\n scriptHooksArray: ScriptHook[] = []\n): ScriptHook[] {\n if (typeof jsonData !== 'object' || jsonData === null) {\n return scriptHooksArray;\n }\n\n for (const key in jsonData) {\n const item = jsonData[key];\n if (typeof item !== 'object' || item === null) {\n continue;\n }\n\n if ('type' in item && item.type === 'text/javascript') {\n scriptHooksArray.push(item);\n } else {\n findAllScriptHooks(item, scriptHooksArray);\n }\n }\n\n return scriptHooksArray;\n}\n\nexport function validateScript(script: ScriptSkeleton): boolean {\n const scriptRaw = decode(script.script);\n\n if (script.language === 'JAVASCRIPT') {\n return isValidJs(scriptRaw);\n }\n return true;\n}\n\nexport function validateScriptDecoded(scriptSkeleton: ScriptSkeleton): boolean {\n if (!Array.isArray(scriptSkeleton.script)) {\n return false;\n }\n if (scriptSkeleton.language === 'JAVASCRIPT') {\n const script = scriptSkeleton.script.join('\\n');\n return isValidJs(script);\n }\n return true;\n}\n\nexport function isValidJs(javascriptSource: string) {\n try {\n parseScript(javascriptSource);\n return true;\n } catch (e) {\n printMessage(`Invalid JavaScript: ${e.message}`, 'error');\n\n return false;\n }\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAOO,SAASG,mBAAmBA,CAACC,QAAgB,EAAW;EAC7D,IAAMC,WAAW,GAAGC,kBAAkB,CAACF,QAAQ,CAAC;EAEhD,KAAK,IAAMG,UAAU,IAAIF,WAAW,EAAE;IACpC,IAAI,EAAE,QAAQ,IAAIE,UAAU,CAAC,EAAE;MAC7B;IACF;IAEA,IAAI,CAACC,SAAS,CAACD,UAAU,CAACE,MAAM,CAAC,EAAE;MACjC,OAAO,KAAK;IACd;EACF;EAEA,OAAO,IAAI;AACb;AAEA,SAASH,kBAAkBA,CACzBF,QAAiB,EAEH;EAAA,IADdM,gBAA8B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAEnC,IAAI,OAAOP,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,KAAK,IAAI,EAAE;IACrD,OAAOM,gBAAgB;EACzB;EAEA,KAAK,IAAMI,GAAG,IAAIV,QAAQ,EAAE;IAC1B,IAAMW,IAAI,GAAGX,QAAQ,CAACU,GAAG,CAAC;IAC1B,IAAI,OAAOC,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,IAAI,EAAE;MAC7C;IACF;IAEA,IAAI,MAAM,IAAIA,IAAI,IAAIA,IAAI,CAACC,IAAI,KAAK,iBAAiB,EAAE;MACrDN,gBAAgB,CAACO,IAAI,CAACF,IAAI,CAAC;IAC7B,CAAC,MAAM;MACLT,kBAAkB,CAACS,IAAI,EAAEL,gBAAgB,CAAC;IAC5C;EACF;EAEA,OAAOA,gBAAgB;AACzB;AAEO,SAASQ,cAAcA,CAACC,MAAsB,EAAW;EAC9D,IAAMC,SAAS,GAAG,IAAAC,YAAM,EAACF,MAAM,CAACA,MAAM,CAAC;EAEvC,IAAIA,MAAM,CAACG,QAAQ,KAAK,YAAY,EAAE;IACpC,OAAOd,SAAS,CAACY,SAAS,CAAC;EAC7B;EACA,OAAO,IAAI;AACb;AAEO,SAASG,qBAAqBA,CAACC,cAA8B,EAAW;EAC7E,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,cAAc,CAACL,MAAM,CAAC,EAAE;IACzC,OAAO,KAAK;EACd;EACA,IAAIK,cAAc,CAACF,QAAQ,KAAK,YAAY,EAAE;IAC5C,IAAMH,MAAM,GAAGK,cAAc,CAACL,MAAM,CAACQ,IAAI,CAAC,IAAI,CAAC;IAC/C,OAAOnB,SAAS,CAACW,MAAM,CAAC;EAC1B;EACA,OAAO,IAAI;AACb;AAEO,SAASX,SAASA,CAACoB,gBAAwB,EAAE;EAClD,IAAI;IACF,IAAAC,oBAAW,EAACD,gBAAgB,CAAC;IAC7B,OAAO,IAAI;EACb,CAAC,CAAC,OAAOE,CAAC,EAAE;IACV,IAAAC,qBAAY,yBAAAC,MAAA,CAAwBF,CAAC,CAACG,OAAO,GAAI,OAAO,CAAC;IAEzD,OAAO,KAAK;EACd;AACF"}
1
+ {"version":3,"file":"ValidationUtils.js","names":["_esprima","require","_Base","_Console","validateScriptHooks","jsonData","scriptHooks","findAllScriptHooks","scriptHook","isValidJs","source","scriptHooksArray","arguments","length","undefined","key","item","type","push","validateScript","script","scriptRaw","decode","language","validateScriptDecoded","scriptSkeleton","Array","isArray","join","javascriptSource","parseScript","e","printMessage","concat","message"],"sources":["../../../src/ops/utils/ValidationUtils.ts"],"sourcesContent":["import { parseScript } from 'esprima';\nimport { ScriptSkeleton } from '../../api/ApiTypes';\nimport { decode } from '../../api/utils/Base64';\nimport { printMessage } from './Console';\n\ninterface ScriptHook {\n type: 'text/javascript';\n source?: string;\n}\n\nexport function validateScriptHooks(jsonData: object): boolean {\n const scriptHooks = findAllScriptHooks(jsonData);\n\n for (const scriptHook of scriptHooks) {\n if (!('source' in scriptHook)) {\n continue;\n }\n\n if (!isValidJs(scriptHook.source)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction findAllScriptHooks(\n jsonData: unknown,\n scriptHooksArray: ScriptHook[] = []\n): ScriptHook[] {\n if (typeof jsonData !== 'object' || jsonData === null) {\n return scriptHooksArray;\n }\n\n for (const key in jsonData) {\n const item = jsonData[key];\n if (typeof item !== 'object' || item === null) {\n continue;\n }\n\n if ('type' in item && item.type === 'text/javascript') {\n scriptHooksArray.push(item);\n } else {\n findAllScriptHooks(item, scriptHooksArray);\n }\n }\n\n return scriptHooksArray;\n}\n\nexport function validateScript(script: ScriptSkeleton): boolean {\n const scriptRaw = decode(script.script);\n\n if (script.language === 'JAVASCRIPT') {\n return isValidJs(scriptRaw);\n }\n return true;\n}\n\nexport function validateScriptDecoded(scriptSkeleton: ScriptSkeleton): boolean {\n if (!Array.isArray(scriptSkeleton.script)) {\n return false;\n }\n if (scriptSkeleton.language === 'JAVASCRIPT') {\n const script = scriptSkeleton.script.join('\\n');\n return isValidJs(script);\n }\n return true;\n}\n\nexport function isValidJs(javascriptSource: string) {\n try {\n parseScript(javascriptSource);\n return true;\n } catch (e) {\n printMessage(`Invalid JavaScript: ${e.message}`, 'error');\n\n return false;\n }\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAAsC,IAAAC,KAAA,GAAAD,OAAA;AAAA,IAAAE,QAAA,GAAAF,OAAA;AAU/B,SAASG,mBAAmBA,CAACC,QAAgB,EAAW;EAC7D,IAAMC,WAAW,GAAGC,kBAAkB,CAACF,QAAQ,CAAC;EAEhD,KAAK,IAAMG,UAAU,IAAIF,WAAW,EAAE;IACpC,IAAI,EAAE,QAAQ,IAAIE,UAAU,CAAC,EAAE;MAC7B;IACF;IAEA,IAAI,CAACC,SAAS,CAACD,UAAU,CAACE,MAAM,CAAC,EAAE;MACjC,OAAO,KAAK;IACd;EACF;EAEA,OAAO,IAAI;AACb;AAEA,SAASH,kBAAkBA,CACzBF,QAAiB,EAEH;EAAA,IADdM,gBAA8B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAEnC,IAAI,OAAOP,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,KAAK,IAAI,EAAE;IACrD,OAAOM,gBAAgB;EACzB;EAEA,KAAK,IAAMI,GAAG,IAAIV,QAAQ,EAAE;IAC1B,IAAMW,IAAI,GAAGX,QAAQ,CAACU,GAAG,CAAC;IAC1B,IAAI,OAAOC,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,IAAI,EAAE;MAC7C;IACF;IAEA,IAAI,MAAM,IAAIA,IAAI,IAAIA,IAAI,CAACC,IAAI,KAAK,iBAAiB,EAAE;MACrDN,gBAAgB,CAACO,IAAI,CAACF,IAAI,CAAC;IAC7B,CAAC,MAAM;MACLT,kBAAkB,CAACS,IAAI,EAAEL,gBAAgB,CAAC;IAC5C;EACF;EAEA,OAAOA,gBAAgB;AACzB;AAEO,SAASQ,cAAcA,CAACC,MAAsB,EAAW;EAC9D,IAAMC,SAAS,GAAG,IAAAC,YAAM,EAACF,MAAM,CAACA,MAAM,CAAC;EAEvC,IAAIA,MAAM,CAACG,QAAQ,KAAK,YAAY,EAAE;IACpC,OAAOd,SAAS,CAACY,SAAS,CAAC;EAC7B;EACA,OAAO,IAAI;AACb;AAEO,SAASG,qBAAqBA,CAACC,cAA8B,EAAW;EAC7E,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,cAAc,CAACL,MAAM,CAAC,EAAE;IACzC,OAAO,KAAK;EACd;EACA,IAAIK,cAAc,CAACF,QAAQ,KAAK,YAAY,EAAE;IAC5C,IAAMH,MAAM,GAAGK,cAAc,CAACL,MAAM,CAACQ,IAAI,CAAC,IAAI,CAAC;IAC/C,OAAOnB,SAAS,CAACW,MAAM,CAAC;EAC1B;EACA,OAAO,IAAI;AACb;AAEO,SAASX,SAASA,CAACoB,gBAAwB,EAAE;EAClD,IAAI;IACF,IAAAC,oBAAW,EAACD,gBAAgB,CAAC;IAC7B,OAAO,IAAI;EACb,CAAC,CAAC,OAAOE,CAAC,EAAE;IACV,IAAAC,qBAAY,yBAAAC,MAAA,CAAwBF,CAAC,CAACG,OAAO,GAAI,OAAO,CAAC;IAEzD,OAAO,KAAK;EACd;AACF"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _ValidationUtils = require("./ValidationUtils");
3
+ var _ValidationUtils = require("./ValidationUtils.js");
4
4
  describe('validateScriptHooks', () => {
5
5
  it('should return false when there is an invalid script', () => {
6
6
  var jsonData = {
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationUtils.test.js","names":["_ValidationUtils","require","describe","it","jsonData","script","type","source","expect","validateScriptHooks","toBe"],"sources":["../../../src/ops/utils/ValidationUtils.test.ts"],"sourcesContent":["import { validateScriptHooks } from './ValidationUtils';\n\ndescribe('validateScriptHooks', () => {\n it('should return false when there is an invalid script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n source: 'invalid javascript',\n },\n };\n expect(validateScriptHooks(jsonData)).toBe(false);\n });\n\n it('should return true when there is a valid script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n source: 'console.log(\"Hello World\");',\n },\n };\n expect(validateScriptHooks(jsonData)).toBe(true);\n });\n\n it('should return true when there is no script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n },\n };\n expect(validateScriptHooks(jsonData)).toBe(true);\n });\n});\n"],"mappings":";;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,qBAAqB,EAAE,MAAM;EACpCC,EAAE,CAAC,qDAAqD,EAAE,MAAM;IAC9D,IAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE,iBAAiB;QACvBC,MAAM,EAAE;MACV;IACF,CAAC;IACDC,MAAM,CAAC,IAAAC,oCAAmB,EAACL,QAAQ,CAAC,CAAC,CAACM,IAAI,CAAC,KAAK,CAAC;EACnD,CAAC,CAAC;EAEFP,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAC1D,IAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE,iBAAiB;QACvBC,MAAM,EAAE;MACV;IACF,CAAC;IACDC,MAAM,CAAC,IAAAC,oCAAmB,EAACL,QAAQ,CAAC,CAAC,CAACM,IAAI,CAAC,IAAI,CAAC;EAClD,CAAC,CAAC;EAEFP,EAAE,CAAC,4CAA4C,EAAE,MAAM;IACrD,IAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE;MACR;IACF,CAAC;IACDE,MAAM,CAAC,IAAAC,oCAAmB,EAACL,QAAQ,CAAC,CAAC,CAACM,IAAI,CAAC,IAAI,CAAC;EAClD,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ValidationUtils.test.js","names":["describe","it","jsonData","script","type","source","expect","validateScriptHooks","toBe"],"sources":["../../../src/ops/utils/ValidationUtils.test.ts"],"sourcesContent":["import { validateScriptHooks } from './ValidationUtils';\n\ndescribe('validateScriptHooks', () => {\n it('should return false when there is an invalid script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n source: 'invalid javascript',\n },\n };\n expect(validateScriptHooks(jsonData)).toBe(false);\n });\n\n it('should return true when there is a valid script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n source: 'console.log(\"Hello World\");',\n },\n };\n expect(validateScriptHooks(jsonData)).toBe(true);\n });\n\n it('should return true when there is no script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n },\n };\n expect(validateScriptHooks(jsonData)).toBe(true);\n });\n});\n"],"mappings":";;;AAEAA,QAAQ,CAAC,qBAAqB,EAAE,MAAM;EACpCC,EAAE,CAAC,qDAAqD,EAAE,MAAM;IAC9D,IAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE,iBAAiB;QACvBC,MAAM,EAAE;MACV;IACF,CAAC;IACDC,MAAM,CAAC,IAAAC,oCAAmB,EAACL,QAAQ,CAAC,CAAC,CAACM,IAAI,CAAC,KAAK,CAAC;EACnD,CAAC,CAAC;EAEFP,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAC1D,IAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE,iBAAiB;QACvBC,MAAM,EAAE;MACV;IACF,CAAC;IACDC,MAAM,CAAC,IAAAC,oCAAmB,EAACL,QAAQ,CAAC,CAAC,CAACM,IAAI,CAAC,IAAI,CAAC;EAClD,CAAC,CAAC;EAEFP,EAAE,CAAC,4CAA4C,EAAE,MAAM;IACrD,IAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE;MACR;IACF,CAAC;IACDE,MAAM,CAAC,IAAAC,oCAAmB,EAACL,QAAQ,CAAC,CAAC,CAACM,IAAI,CAAC,IAAI,CAAC;EAClD,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -7,7 +7,7 @@ exports.getAllVersions = getAllVersions;
7
7
  exports.getVersion = getVersion;
8
8
  var _fs = _interopRequireDefault(require("fs"));
9
9
  var _path = _interopRequireDefault(require("path"));
10
- var _BaseApi = require("../../api/BaseApi");
10
+ var _BaseApi = require("../../api/BaseApi.js");
11
11
  var _url = require("url");
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }