@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":"IdpOps.test.js","names":["_index","require","_AutoSetupPolly","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","autoSetupPolly","stageIdp","_x","_stageIdp","idp","create","length","Idp","getSocialProvider","id","deleteSocialProvider","putProviderByTypeAndId","type","data","describe","idp1","clientId","pkceMethod","jwtEncryptionMethod","authorizationEndpoint","jwtEncryptionAlgorithm","clientSecret","issuerComparisonCheckType","scopeDelimiter","scopes","enabled","authenticationIdKey","uiConfig","buttonClass","buttonCustomStyle","buttonCustomStyleHover","buttonDisplayName","buttonImage","iconBackground","iconClass","iconFontColor","privateKeyJwtExpTime","revocationCheckOptions","transform","userInfoEndpoint","jwtSigningAlgorithm","redirectURI","clientAuthenticationMethod","responseMode","useCustomTrustStore","tokenEndpoint","_id","_type","name","collection","idp2","wellKnownEndpoint","encryptJwtRequestParameter","issuer","userInfoResponseType","acrValues","encryptedIdTokens","jwtRequestParameterOption","enableNativeNonce","idp3","idp4","idp5","idp6","idp7","idp8","import1","meta","origin","originAmVersion","exportedBy","exportDate","exportTool","exportToolVersion","script","description","default","language","context","createdBy","creationDate","lastModifiedBy","lastModifiedDate","FrodoTestIdp4","jwksUriEndpoint","importData1","FrodoTestIdp5","FrodoTestIdp6","redirectAfterFormPostURI","requestNativeAppForUserInfo","importData2","FrodoTestIdp7","FrodoTestIdp8","beforeAll","process","env","FRODO_POLLY_MODE","afterAll","test","expect","exportSocialProvider","toBeDefined","concat","response","toMatchSnapshot","any","Object","exportSocialProviders","getSocialIdentityProviders","importSocialProvider","assertions","outcome","toBeTruthy","importFirstSocialProvider","importSocialProviders"],"sources":["../../src/ops/IdpOps.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses & update ESM snapshots\n *\n * To record and update ESM snapshots, you must call the test:record\n * script and override all the connection state variables required\n * to connect to the env to record from:\n *\n * FRODO_DEBUG=1 FRODO_HOST=frodo-dev npm run test:record IdpOps\n *\n * The above command assumes that you have a connection profile for\n * 'frodo-dev' on your development machine.\n *\n * 2. Update CJS snapshots\n *\n * After recording, the ESM snapshots will already be updated as that happens\n * in one go, but you musty manually update the CJS snapshots by running:\n *\n * FRODO_DEBUG=1 npm run test:update IdpOps\n *\n * 3. Test your changes\n *\n * If 1 and 2 didn't produce any errors, you are ready to run the tests in\n * replay mode and make sure they all succeed as well:\n *\n * npm run test:only IdpOps\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport { Idp } from '../index';\nimport { autoSetupPolly } from '../utils/AutoSetupPolly';\n\nautoSetupPolly();\n\nasync function stageIdp(\n idp: { id: string; type: string; data: object },\n create = true\n) {\n // delete if exists, then create\n try {\n await Idp.getSocialProvider(idp.id);\n await Idp.deleteSocialProvider(idp.id);\n } catch (error) {\n // ignore\n } finally {\n if (create) {\n await Idp.putProviderByTypeAndId(idp.type, idp.id, idp.data);\n }\n }\n}\n\ndescribe('IdpOps', () => {\n const idp1 = {\n id: 'FrodoTestIdp1',\n type: 'oauth2Config',\n data: {\n clientId: '123741718342521',\n pkceMethod: 'S256',\n jwtEncryptionMethod: 'NONE',\n authorizationEndpoint: 'https://www.facebook.com/dialog/oauth',\n jwtEncryptionAlgorithm: 'NONE',\n clientSecret: '5up3r53cr3t!',\n issuerComparisonCheckType: 'EXACT',\n scopeDelimiter: ' ',\n scopes: ['email'],\n enabled: true,\n authenticationIdKey: 'id',\n uiConfig: {\n buttonClass: 'fa-facebook-official',\n buttonCustomStyle:\n 'background-color: #3b5998; border-color: #3b5998; color: white;',\n buttonCustomStyleHover:\n 'background-color: #334b7d; border-color: #334b7d; color: white;',\n buttonDisplayName: 'Facebook',\n buttonImage: '',\n iconBackground: '#3b5998',\n iconClass: 'fa-facebook',\n iconFontColor: 'white',\n },\n privateKeyJwtExpTime: 3600,\n revocationCheckOptions: [],\n transform: 'bae1d54a-e97d-4997-aa5d-c027f21af82c',\n userInfoEndpoint:\n 'https://graph.facebook.com/me?fields=id,name,picture,email,first_name,last_name,locale',\n jwtSigningAlgorithm: 'NONE',\n redirectURI: 'https://idc.scheuber.io/am/XUI/?realm=%2Falpha',\n clientAuthenticationMethod: 'CLIENT_SECRET_POST',\n responseMode: 'DEFAULT',\n useCustomTrustStore: false,\n tokenEndpoint: 'https://graph.facebook.com/v2.7/oauth/access_token',\n _id: 'FrodoTestIdp1',\n _type: {\n _id: 'oauth2Config',\n name: 'Client configuration for providers that implement the OAuth2 specification.',\n collection: true,\n },\n },\n };\n const idp2 = {\n id: 'FrodoTestIdp2',\n type: 'googleConfig',\n data: {\n clientId:\n '297318173925-mho17cgnm550s2gre7h27feb6sbs2msd.apps.googleusercontent.com',\n pkceMethod: 'S256',\n wellKnownEndpoint:\n 'https://accounts.google.com/.well-known/openid-configuration',\n jwtEncryptionMethod: 'NONE',\n authorizationEndpoint: 'https://accounts.google.com/o/oauth2/v2/auth',\n jwtEncryptionAlgorithm: 'NONE',\n clientSecret: null,\n issuerComparisonCheckType: 'EXACT',\n encryptJwtRequestParameter: false,\n scopeDelimiter: ' ',\n scopes: ['openid', 'profile', 'email'],\n issuer: 'https://accounts.google.com',\n userInfoResponseType: 'JSON',\n acrValues: [],\n encryptedIdTokens: false,\n enabled: true,\n jwtRequestParameterOption: 'NONE',\n authenticationIdKey: 'sub',\n uiConfig: {\n buttonClass: '',\n buttonCustomStyle:\n 'background-color: #fff; color: #757575; border-color: #ddd;',\n buttonCustomStyleHover:\n 'color: #6d6d6d; background-color: #eee; border-color: #ccc;',\n buttonDisplayName: 'Google',\n buttonImage: 'images/g-logo.png',\n iconBackground: '#4184f3',\n iconClass: 'fa-google',\n iconFontColor: 'white',\n },\n privateKeyJwtExpTime: 600,\n revocationCheckOptions: [],\n enableNativeNonce: true,\n transform: '58d29080-4563-480b-89bb-1e7719776a21',\n userInfoEndpoint: 'https://www.googleapis.com/oauth2/v3/userinfo',\n jwtSigningAlgorithm: 'NONE',\n redirectURI: 'https://idc.scheuber.io/login',\n clientAuthenticationMethod: 'CLIENT_SECRET_POST',\n responseMode: 'DEFAULT',\n useCustomTrustStore: false,\n tokenEndpoint: 'https://www.googleapis.com/oauth2/v4/token',\n _id: 'FrodoTestIdp2',\n _type: {\n _id: 'googleConfig',\n name: 'Client configuration for Google.',\n collection: true,\n },\n },\n };\n const idp3 = {\n id: 'FrodoTestIdp3',\n type: 'oidcConfig',\n data: {\n clientId: '0oa13r2cp29Rynmyw697',\n pkceMethod: 'S256',\n wellKnownEndpoint:\n 'https://trial-1234567.okta.com/.well-known/openid-configuration',\n jwtEncryptionMethod: 'NONE',\n authorizationEndpoint:\n 'https://trial-1234567.okta.com/oauth2/v1/authorize',\n jwtEncryptionAlgorithm: 'NONE',\n clientSecret: null,\n issuerComparisonCheckType: 'EXACT',\n encryptJwtRequestParameter: false,\n scopeDelimiter: ' ',\n scopes: ['openid', 'profile', 'email'],\n issuer: 'https://trial-1234567.okta.com',\n userInfoResponseType: 'JSON',\n acrValues: [],\n encryptedIdTokens: false,\n enabled: true,\n jwtRequestParameterOption: 'NONE',\n authenticationIdKey: 'id',\n uiConfig: {\n buttonDisplayName: 'Okta',\n },\n privateKeyJwtExpTime: 600,\n revocationCheckOptions: [],\n enableNativeNonce: true,\n transform: '6325cf19-a49b-471e-8d26-7e4df76df0e2',\n userInfoEndpoint: 'https://trial-1234567.okta.com/oauth2/v1/userinfo',\n jwtSigningAlgorithm: 'NONE',\n redirectURI: 'https://idc.scheuber.io/login',\n clientAuthenticationMethod: 'CLIENT_SECRET_POST',\n responseMode: 'DEFAULT',\n useCustomTrustStore: false,\n tokenEndpoint: 'https://trial-1234567.okta.com/oauth2/v1/token',\n _id: 'FrodoTestIdp3',\n _type: {\n _id: 'oidcConfig',\n name: 'Client configuration for providers that implement the OpenID Connect specification.',\n collection: true,\n },\n },\n };\n const idp4 = {\n id: 'FrodoTestIdp4',\n type: 'none',\n data: {},\n };\n const idp5 = {\n id: 'FrodoTestIdp5',\n type: 'none',\n data: {},\n };\n const idp6 = {\n id: 'FrodoTestIdp6',\n type: 'none',\n data: {},\n };\n const idp7 = {\n id: 'FrodoTestIdp7',\n type: 'none',\n data: {},\n };\n const idp8 = {\n id: 'FrodoTestIdp8',\n type: 'none',\n data: {},\n };\n const import1: { id: string; data: Idp.SocialProviderExportInterface } = {\n id: 'FrodoTestIdp4',\n data: {\n meta: {\n origin: 'https://openam-volker-dev.forgeblocks.com/am',\n originAmVersion: '7.3.0',\n exportedBy: 'volker.scheuber@forgerock.com',\n exportDate: '2022-12-28T19:02:10.599Z',\n exportTool: 'frodo',\n exportToolVersion: 'v0.17.2-0 [v18.7.0]',\n },\n script: {\n 'dbe0bf9a-72aa-49d5-8483-9db147985a47': {\n _id: 'dbe0bf9a-72aa-49d5-8483-9db147985a47',\n name: 'ADFS Profile Normalization (JS)',\n description: 'Normalizes raw profile data from ADFS',\n script: [\n '/*',\n ' * Copyright 2022 ForgeRock AS. All Rights Reserved',\n ' *',\n ' * Use of this code requires a commercial software license with ForgeRock AS',\n ' * or with one of its affiliates. All use shall be exclusively subject',\n ' * to such license between the licensee and ForgeRock AS.',\n ' */',\n '',\n '/*',\n ' * This script returns the social identity profile information for the authenticating user',\n ' * in a standard form expected by the Social Provider Handler Node.',\n ' *',\n ' * Defined variables:',\n ' * rawProfile - The social identity provider profile information for the authenticating user.',\n ' * JsonValue (1).',\n ' * logger - The debug logger instance:',\n ' * https://backstage.forgerock.com/docs/am/7/scripting-guide/scripting-api-global-logger.html#scripting-api-global-logger.',\n ' * realm - String (primitive).',\n ' * The name of the realm the user is authenticating to.',\n ' * requestHeaders - TreeMap (2).',\n ' * The object that provides methods for accessing headers in the login request:',\n ' * https://backstage.forgerock.com/docs/am/7/authentication-guide/scripting-api-node.html#scripting-api-node-requestHeaders.',\n ' * requestParameters - TreeMap (2).',\n ' * The object that contains the authentication request parameters.',\n ' * selectedIdp - String (primitive).',\n ' * The social identity provider name. For example: google.',\n ' * sharedState - LinkedHashMap (3).',\n ' * The object that holds the state of the authentication tree and allows data exchange between the stateless nodes:',\n ' * https://backstage.forgerock.com/docs/am/7/auth-nodes/core-action.html#accessing-tree-state.',\n ' * transientState - LinkedHashMap (3).',\n ' * The object for storing sensitive information that must not leave the server unencrypted,',\n ' * and that may not need to persist between authentication requests during the authentication session:',\n ' * https://backstage.forgerock.com/docs/am/7/auth-nodes/core-action.html#accessing-tree-state.',\n ' *',\n ' * Return - a JsonValue (1).',\n ' * The result of the last statement in the script is returned to the server.',\n ' * Currently, the Immediately Invoked Function Expression (also known as Self-Executing Anonymous Function)',\n ' * is the last (and only) statement in this script, and its return value will become the script result.',\n ' * Do not use \"return variable\" statement outside of a function definition.',\n ' *',\n \" * This script's last statement should result in a JsonValue (1) with the following keys:\",\n ' * {',\n ' * {\"displayName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"email\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"familyName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"givenName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"id\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"locale\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"photoUrl\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"username\": \"corresponding-social-identity-provider-value\"}',\n ' * }',\n ' *',\n ' * The consumer of this data defines which keys are required and which are optional.',\n ' * For example, the script associated with the Social Provider Handler Node and,',\n ' * ultimately, the managed object created/updated with this data',\n ' * will expect certain keys to be populated.',\n ' * In some common default configurations, the following keys are required to be not empty:',\n ' * username, givenName, familyName, email.',\n ' *',\n ' * From RFC4517: A value of the Directory String syntax is a string of one or more',\n ' * arbitrary characters from the Universal Character Set (UCS).',\n ' * A zero-length character string is not permitted.',\n ' *',\n ' * (1) JsonValue - https://backstage.forgerock.com/docs/am/7/apidocs/org/forgerock/json/JsonValue.html.',\n ' * (2) TreeMap - https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/TreeMap.html.',\n ' * (3) LinkedHashMap - https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/LinkedHashMap.html.',\n ' */',\n '',\n '(function () {',\n ' var frJava = JavaImporter(',\n ' org.forgerock.json.JsonValue',\n ' );',\n '',\n ' var normalizedProfileData = frJava.JsonValue.json(frJava.JsonValue.object());',\n ' ',\n \" //logger.message('Seguin rawProfile: '+rawProfile);\",\n '',\n \" normalizedProfileData.put('id', rawProfile.get('sub').asString());\",\n \" normalizedProfileData.put('displayName', rawProfile.get('givenName').asString() + ' ' + rawProfile.get('sn').asString());\",\n \" normalizedProfileData.put('email', rawProfile.get('mail').asString());\",\n \" normalizedProfileData.put('givenName', rawProfile.get('givenName').asString());\",\n \" normalizedProfileData.put('familyName', rawProfile.get('sn').asString());\",\n \" normalizedProfileData.put('username', rawProfile.get('upn').asString());\",\n \" normalizedProfileData.put('roles', rawProfile.get('roles').asString());\",\n ' ',\n \" //logger.message('Seguin normalizedProfileData: '+normalizedProfileData);\",\n '',\n ' return normalizedProfileData;',\n '}());',\n ],\n default: false,\n language: 'JAVASCRIPT',\n context: 'SOCIAL_IDP_PROFILE_TRANSFORMATION',\n createdBy: 'null',\n creationDate: 0,\n lastModifiedBy: 'null',\n lastModifiedDate: 0,\n },\n },\n idp: {\n FrodoTestIdp4: {\n clientId: 'aa9a179e-cdba-4db8-8477-3d1069d5ec04',\n pkceMethod: 'S256',\n wellKnownEndpoint:\n 'https://adfs.mytestrun.com/adfs/.well-known/openid-configuration',\n jwtEncryptionMethod: 'NONE',\n authorizationEndpoint:\n 'https://adfs.mytestrun.com/adfs/oauth2/authorize',\n jwtEncryptionAlgorithm: 'NONE',\n clientSecret: null,\n issuerComparisonCheckType: 'EXACT',\n encryptJwtRequestParameter: false,\n scopeDelimiter: ' ',\n scopes: ['openid', 'profile', 'email'],\n issuer: 'https://adfs.mytestrun.com/adfs',\n userInfoResponseType: 'JSON',\n acrValues: [],\n jwksUriEndpoint: 'https://adfs.mytestrun.com/adfs/discovery/keys',\n encryptedIdTokens: false,\n enabled: true,\n jwtRequestParameterOption: 'NONE',\n authenticationIdKey: 'sub',\n uiConfig: {\n buttonClass: '',\n buttonCustomStyle:\n 'background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;',\n buttonCustomStyleHover:\n 'background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;',\n buttonDisplayName: 'Microsoft ADFS',\n buttonImage: '/login/images/microsoft-logo.png',\n iconBackground: '#0078d7',\n iconClass: 'fa-windows',\n iconFontColor: 'white',\n },\n privateKeyJwtExpTime: 600,\n revocationCheckOptions: [],\n enableNativeNonce: true,\n transform: 'dbe0bf9a-72aa-49d5-8483-9db147985a47',\n jwtSigningAlgorithm: 'RS256',\n redirectURI: 'https://idc.scheuber.io/login',\n clientAuthenticationMethod: 'CLIENT_SECRET_POST',\n responseMode: 'DEFAULT',\n useCustomTrustStore: false,\n tokenEndpoint: 'https://adfs.mytestrun.com/adfs/oauth2/token',\n _id: 'FrodoTestIdp4',\n _type: {\n _id: 'oidcConfig',\n name: 'Client configuration for providers that implement the OpenID Connect specification.',\n collection: true,\n },\n },\n },\n },\n };\n const importData1: Idp.SocialProviderExportInterface = {\n meta: {\n origin: 'https://openam-volker-dev.forgeblocks.com/am',\n originAmVersion: '7.3.0',\n exportedBy: 'volker.scheuber@forgerock.com',\n exportDate: '2022-12-28T19:02:10.599Z',\n exportTool: 'frodo',\n exportToolVersion: 'v0.17.2-0 [v18.7.0]',\n },\n script: {\n 'dbe0bf9a-72aa-49d5-8483-9db147985a47': {\n _id: 'dbe0bf9a-72aa-49d5-8483-9db147985a47',\n name: 'ADFS Profile Normalization (JS)',\n description: 'Normalizes raw profile data from ADFS',\n script: [\n '/*',\n ' * Copyright 2022 ForgeRock AS. All Rights Reserved',\n ' *',\n ' * Use of this code requires a commercial software license with ForgeRock AS',\n ' * or with one of its affiliates. All use shall be exclusively subject',\n ' * to such license between the licensee and ForgeRock AS.',\n ' */',\n '',\n '/*',\n ' * This script returns the social identity profile information for the authenticating user',\n ' * in a standard form expected by the Social Provider Handler Node.',\n ' *',\n ' * Defined variables:',\n ' * rawProfile - The social identity provider profile information for the authenticating user.',\n ' * JsonValue (1).',\n ' * logger - The debug logger instance:',\n ' * https://backstage.forgerock.com/docs/am/7/scripting-guide/scripting-api-global-logger.html#scripting-api-global-logger.',\n ' * realm - String (primitive).',\n ' * The name of the realm the user is authenticating to.',\n ' * requestHeaders - TreeMap (2).',\n ' * The object that provides methods for accessing headers in the login request:',\n ' * https://backstage.forgerock.com/docs/am/7/authentication-guide/scripting-api-node.html#scripting-api-node-requestHeaders.',\n ' * requestParameters - TreeMap (2).',\n ' * The object that contains the authentication request parameters.',\n ' * selectedIdp - String (primitive).',\n ' * The social identity provider name. For example: google.',\n ' * sharedState - LinkedHashMap (3).',\n ' * The object that holds the state of the authentication tree and allows data exchange between the stateless nodes:',\n ' * https://backstage.forgerock.com/docs/am/7/auth-nodes/core-action.html#accessing-tree-state.',\n ' * transientState - LinkedHashMap (3).',\n ' * The object for storing sensitive information that must not leave the server unencrypted,',\n ' * and that may not need to persist between authentication requests during the authentication session:',\n ' * https://backstage.forgerock.com/docs/am/7/auth-nodes/core-action.html#accessing-tree-state.',\n ' *',\n ' * Return - a JsonValue (1).',\n ' * The result of the last statement in the script is returned to the server.',\n ' * Currently, the Immediately Invoked Function Expression (also known as Self-Executing Anonymous Function)',\n ' * is the last (and only) statement in this script, and its return value will become the script result.',\n ' * Do not use \"return variable\" statement outside of a function definition.',\n ' *',\n \" * This script's last statement should result in a JsonValue (1) with the following keys:\",\n ' * {',\n ' * {\"displayName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"email\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"familyName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"givenName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"id\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"locale\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"photoUrl\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"username\": \"corresponding-social-identity-provider-value\"}',\n ' * }',\n ' *',\n ' * The consumer of this data defines which keys are required and which are optional.',\n ' * For example, the script associated with the Social Provider Handler Node and,',\n ' * ultimately, the managed object created/updated with this data',\n ' * will expect certain keys to be populated.',\n ' * In some common default configurations, the following keys are required to be not empty:',\n ' * username, givenName, familyName, email.',\n ' *',\n ' * From RFC4517: A value of the Directory String syntax is a string of one or more',\n ' * arbitrary characters from the Universal Character Set (UCS).',\n ' * A zero-length character string is not permitted.',\n ' *',\n ' * (1) JsonValue - https://backstage.forgerock.com/docs/am/7/apidocs/org/forgerock/json/JsonValue.html.',\n ' * (2) TreeMap - https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/TreeMap.html.',\n ' * (3) LinkedHashMap - https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/LinkedHashMap.html.',\n ' */',\n '',\n '(function () {',\n ' var frJava = JavaImporter(',\n ' org.forgerock.json.JsonValue',\n ' );',\n '',\n ' var normalizedProfileData = frJava.JsonValue.json(frJava.JsonValue.object());',\n ' ',\n \" //logger.message('Seguin rawProfile: '+rawProfile);\",\n '',\n \" normalizedProfileData.put('id', rawProfile.get('sub').asString());\",\n \" normalizedProfileData.put('displayName', rawProfile.get('givenName').asString() + ' ' + rawProfile.get('sn').asString());\",\n \" normalizedProfileData.put('email', rawProfile.get('mail').asString());\",\n \" normalizedProfileData.put('givenName', rawProfile.get('givenName').asString());\",\n \" normalizedProfileData.put('familyName', rawProfile.get('sn').asString());\",\n \" normalizedProfileData.put('username', rawProfile.get('upn').asString());\",\n \" normalizedProfileData.put('roles', rawProfile.get('roles').asString());\",\n ' ',\n \" //logger.message('Seguin normalizedProfileData: '+normalizedProfileData);\",\n '',\n ' return normalizedProfileData;',\n '}());',\n ],\n default: false,\n language: 'JAVASCRIPT',\n context: 'SOCIAL_IDP_PROFILE_TRANSFORMATION',\n createdBy: 'null',\n creationDate: 0,\n lastModifiedBy: 'null',\n lastModifiedDate: 0,\n },\n '484e6246-dbc6-4288-97e6-54e55431402e': {\n _id: '484e6246-dbc6-4288-97e6-54e55431402e',\n name: 'Apple Profile Normalization',\n description: 'Normalizes raw profile data from Apple',\n script: [\n '/*',\n ' * Copyright 2021-2022 ForgeRock AS. All Rights Reserved',\n ' *',\n ' * Use of this code requires a commercial software license with ForgeRock AS.',\n ' * or with one of its affiliates. All use shall be exclusively subject',\n ' * to such license between the licensee and ForgeRock AS.',\n ' *',\n ' * In some common default configurations, the following keys are required to be not empty:',\n ' * username, givenName, familyName, email.',\n ' *',\n ' * From RFC4517: A value of the Directory String syntax is a string of one or more',\n ' * arbitrary characters from the Universal Character Set (UCS).',\n ' * A zero-length character string is not permitted.',\n ' */',\n '',\n 'import static org.forgerock.json.JsonValue.field',\n 'import static org.forgerock.json.JsonValue.json',\n 'import static org.forgerock.json.JsonValue.object',\n '',\n 'String email = \"change@me.com\"',\n 'String subjectId = rawProfile.sub',\n 'String firstName = \" \"',\n 'String lastName = \" \"',\n 'String username = subjectId',\n 'String name',\n '',\n 'if (rawProfile.isDefined(\"email\") && rawProfile.email.isNotNull()){ // User can elect to not share their email',\n ' email = rawProfile.email.asString()',\n ' username = email',\n '}',\n 'if (rawProfile.isDefined(\"name\") && rawProfile.name.isNotNull()) {',\n ' if (rawProfile.name.isDefined(\"firstName\") && rawProfile.name.firstName.isNotNull()) {',\n ' firstName = rawProfile.name.firstName.asString()',\n ' }',\n ' if (rawProfile.name.isDefined(\"lastName\") && rawProfile.name.lastName.isNotNull()) {',\n ' lastName = rawProfile.name.lastName.asString()',\n ' }',\n '}',\n '',\n 'name = (firstName?.trim() ? firstName : \"\") + (lastName?.trim() ? ((firstName?.trim() ? \" \" : \"\") + lastName) : \"\")',\n 'name = (!name?.trim()) ? \" \" : name',\n '',\n 'return json(object(',\n ' field(\"id\", subjectId),',\n ' field(\"displayName\", name),',\n ' field(\"email\", email),',\n ' field(\"givenName\", firstName),',\n ' field(\"familyName\", lastName),',\n ' field(\"username\", username)))',\n ],\n default: true,\n language: 'GROOVY',\n context: 'SOCIAL_IDP_PROFILE_TRANSFORMATION',\n createdBy: 'null',\n creationDate: 0,\n lastModifiedBy: 'null',\n lastModifiedDate: 0,\n },\n },\n idp: {\n FrodoTestIdp5: {\n clientId: 'aa9a179e-cdba-4db8-8477-3d1069d5ec04',\n pkceMethod: 'S256',\n wellKnownEndpoint:\n 'https://adfs.mytestrun.com/adfs/.well-known/openid-configuration',\n jwtEncryptionMethod: 'NONE',\n authorizationEndpoint:\n 'https://adfs.mytestrun.com/adfs/oauth2/authorize',\n jwtEncryptionAlgorithm: 'NONE',\n clientSecret: null,\n issuerComparisonCheckType: 'EXACT',\n encryptJwtRequestParameter: false,\n scopeDelimiter: ' ',\n scopes: ['openid', 'profile', 'email'],\n issuer: 'https://adfs.mytestrun.com/adfs',\n userInfoResponseType: 'JSON',\n acrValues: [],\n jwksUriEndpoint: 'https://adfs.mytestrun.com/adfs/discovery/keys',\n encryptedIdTokens: false,\n enabled: true,\n jwtRequestParameterOption: 'NONE',\n authenticationIdKey: 'sub',\n uiConfig: {\n buttonClass: '',\n buttonCustomStyle:\n 'background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;',\n buttonCustomStyleHover:\n 'background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;',\n buttonDisplayName: 'Microsoft ADFS',\n buttonImage: '/login/images/microsoft-logo.png',\n iconBackground: '#0078d7',\n iconClass: 'fa-windows',\n iconFontColor: 'white',\n },\n privateKeyJwtExpTime: 600,\n revocationCheckOptions: [],\n enableNativeNonce: true,\n transform: 'dbe0bf9a-72aa-49d5-8483-9db147985a47',\n jwtSigningAlgorithm: 'RS256',\n redirectURI: 'https://idc.scheuber.io/login',\n clientAuthenticationMethod: 'CLIENT_SECRET_POST',\n responseMode: 'DEFAULT',\n useCustomTrustStore: false,\n tokenEndpoint: 'https://adfs.mytestrun.com/adfs/oauth2/token',\n _id: 'FrodoTestIdp5',\n _type: {\n _id: 'oidcConfig',\n name: 'Client configuration for providers that implement the OpenID Connect specification.',\n collection: true,\n },\n },\n FrodoTestIdp6: {\n clientId: 'io.scheuber.idc.signinWithApple.service',\n pkceMethod: 'S256',\n wellKnownEndpoint:\n 'https://appleid.apple.com/.well-known/openid-configuration',\n jwtEncryptionMethod: 'NONE',\n authorizationEndpoint: 'https://appleid.apple.com/auth/authorize',\n jwtEncryptionAlgorithm: 'NONE',\n clientSecret: null,\n issuerComparisonCheckType: 'EXACT',\n encryptJwtRequestParameter: false,\n scopeDelimiter: ' ',\n scopes: ['name', 'email'],\n issuer: 'https://appleid.apple.com',\n redirectAfterFormPostURI: 'https://idc.scheuber.io/login',\n userInfoResponseType: 'JSON',\n acrValues: [],\n jwksUriEndpoint: 'https://appleid.apple.com/auth/keys',\n encryptedIdTokens: false,\n requestNativeAppForUserInfo: false,\n enabled: true,\n jwtRequestParameterOption: 'NONE',\n authenticationIdKey: 'sub',\n uiConfig: {\n buttonClass: '',\n buttonCustomStyle:\n 'background-color: #000000; color: #ffffff; border-color: #000000;',\n buttonCustomStyleHover:\n 'background-color: #000000; color: #ffffff; border-color: #000000;',\n buttonDisplayName: 'Apple',\n buttonImage: '/login/images/apple-logo.png',\n iconBackground: '#000000',\n iconClass: 'fa-apple',\n iconFontColor: 'white',\n },\n privateKeyJwtExpTime: 600,\n revocationCheckOptions: [],\n enableNativeNonce: true,\n transform: '484e6246-dbc6-4288-97e6-54e55431402e',\n jwtSigningAlgorithm: 'NONE',\n redirectURI:\n 'https://idc.scheuber.io/am/oauth2/client/form_post/apple_web',\n clientAuthenticationMethod: 'CLIENT_SECRET_POST',\n responseMode: 'FORM_POST',\n useCustomTrustStore: false,\n tokenEndpoint: 'https://appleid.apple.com/auth/token',\n _id: 'FrodoTestIdp6',\n _type: {\n _id: 'appleConfig',\n name: 'Client configuration for Apple.',\n collection: true,\n },\n },\n },\n };\n const importData2: Idp.SocialProviderExportInterface = {\n meta: {\n origin: 'https://openam-volker-dev.forgeblocks.com/am',\n originAmVersion: '7.3.0',\n exportedBy: 'volker.scheuber@forgerock.com',\n exportDate: '2022-12-28T19:02:10.599Z',\n exportTool: 'frodo',\n exportToolVersion: 'v0.17.2-0 [v18.7.0]',\n },\n script: {\n 'dbe0bf9a-72aa-49d5-8483-9db147985a47': {\n _id: 'dbe0bf9a-72aa-49d5-8483-9db147985a47',\n name: 'ADFS Profile Normalization (JS)',\n description: 'Normalizes raw profile data from ADFS',\n script: [\n '/*',\n ' * Copyright 2022 ForgeRock AS. All Rights Reserved',\n ' *',\n ' * Use of this code requires a commercial software license with ForgeRock AS',\n ' * or with one of its affiliates. All use shall be exclusively subject',\n ' * to such license between the licensee and ForgeRock AS.',\n ' */',\n '',\n '/*',\n ' * This script returns the social identity profile information for the authenticating user',\n ' * in a standard form expected by the Social Provider Handler Node.',\n ' *',\n ' * Defined variables:',\n ' * rawProfile - The social identity provider profile information for the authenticating user.',\n ' * JsonValue (1).',\n ' * logger - The debug logger instance:',\n ' * https://backstage.forgerock.com/docs/am/7/scripting-guide/scripting-api-global-logger.html#scripting-api-global-logger.',\n ' * realm - String (primitive).',\n ' * The name of the realm the user is authenticating to.',\n ' * requestHeaders - TreeMap (2).',\n ' * The object that provides methods for accessing headers in the login request:',\n ' * https://backstage.forgerock.com/docs/am/7/authentication-guide/scripting-api-node.html#scripting-api-node-requestHeaders.',\n ' * requestParameters - TreeMap (2).',\n ' * The object that contains the authentication request parameters.',\n ' * selectedIdp - String (primitive).',\n ' * The social identity provider name. For example: google.',\n ' * sharedState - LinkedHashMap (3).',\n ' * The object that holds the state of the authentication tree and allows data exchange between the stateless nodes:',\n ' * https://backstage.forgerock.com/docs/am/7/auth-nodes/core-action.html#accessing-tree-state.',\n ' * transientState - LinkedHashMap (3).',\n ' * The object for storing sensitive information that must not leave the server unencrypted,',\n ' * and that may not need to persist between authentication requests during the authentication session:',\n ' * https://backstage.forgerock.com/docs/am/7/auth-nodes/core-action.html#accessing-tree-state.',\n ' *',\n ' * Return - a JsonValue (1).',\n ' * The result of the last statement in the script is returned to the server.',\n ' * Currently, the Immediately Invoked Function Expression (also known as Self-Executing Anonymous Function)',\n ' * is the last (and only) statement in this script, and its return value will become the script result.',\n ' * Do not use \"return variable\" statement outside of a function definition.',\n ' *',\n \" * This script's last statement should result in a JsonValue (1) with the following keys:\",\n ' * {',\n ' * {\"displayName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"email\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"familyName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"givenName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"id\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"locale\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"photoUrl\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"username\": \"corresponding-social-identity-provider-value\"}',\n ' * }',\n ' *',\n ' * The consumer of this data defines which keys are required and which are optional.',\n ' * For example, the script associated with the Social Provider Handler Node and,',\n ' * ultimately, the managed object created/updated with this data',\n ' * will expect certain keys to be populated.',\n ' * In some common default configurations, the following keys are required to be not empty:',\n ' * username, givenName, familyName, email.',\n ' *',\n ' * From RFC4517: A value of the Directory String syntax is a string of one or more',\n ' * arbitrary characters from the Universal Character Set (UCS).',\n ' * A zero-length character string is not permitted.',\n ' *',\n ' * (1) JsonValue - https://backstage.forgerock.com/docs/am/7/apidocs/org/forgerock/json/JsonValue.html.',\n ' * (2) TreeMap - https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/TreeMap.html.',\n ' * (3) LinkedHashMap - https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/LinkedHashMap.html.',\n ' */',\n '',\n '(function () {',\n ' var frJava = JavaImporter(',\n ' org.forgerock.json.JsonValue',\n ' );',\n '',\n ' var normalizedProfileData = frJava.JsonValue.json(frJava.JsonValue.object());',\n ' ',\n \" //logger.message('Seguin rawProfile: '+rawProfile);\",\n '',\n \" normalizedProfileData.put('id', rawProfile.get('sub').asString());\",\n \" normalizedProfileData.put('displayName', rawProfile.get('givenName').asString() + ' ' + rawProfile.get('sn').asString());\",\n \" normalizedProfileData.put('email', rawProfile.get('mail').asString());\",\n \" normalizedProfileData.put('givenName', rawProfile.get('givenName').asString());\",\n \" normalizedProfileData.put('familyName', rawProfile.get('sn').asString());\",\n \" normalizedProfileData.put('username', rawProfile.get('upn').asString());\",\n \" normalizedProfileData.put('roles', rawProfile.get('roles').asString());\",\n ' ',\n \" //logger.message('Seguin normalizedProfileData: '+normalizedProfileData);\",\n '',\n ' return normalizedProfileData;',\n '}());',\n ],\n default: false,\n language: 'JAVASCRIPT',\n context: 'SOCIAL_IDP_PROFILE_TRANSFORMATION',\n createdBy: 'null',\n creationDate: 0,\n lastModifiedBy: 'null',\n lastModifiedDate: 0,\n },\n '484e6246-dbc6-4288-97e6-54e55431402e': {\n _id: '484e6246-dbc6-4288-97e6-54e55431402e',\n name: 'Apple Profile Normalization',\n description: 'Normalizes raw profile data from Apple',\n script: [\n '/*',\n ' * Copyright 2021-2022 ForgeRock AS. All Rights Reserved',\n ' *',\n ' * Use of this code requires a commercial software license with ForgeRock AS.',\n ' * or with one of its affiliates. All use shall be exclusively subject',\n ' * to such license between the licensee and ForgeRock AS.',\n ' *',\n ' * In some common default configurations, the following keys are required to be not empty:',\n ' * username, givenName, familyName, email.',\n ' *',\n ' * From RFC4517: A value of the Directory String syntax is a string of one or more',\n ' * arbitrary characters from the Universal Character Set (UCS).',\n ' * A zero-length character string is not permitted.',\n ' */',\n '',\n 'import static org.forgerock.json.JsonValue.field',\n 'import static org.forgerock.json.JsonValue.json',\n 'import static org.forgerock.json.JsonValue.object',\n '',\n 'String email = \"change@me.com\"',\n 'String subjectId = rawProfile.sub',\n 'String firstName = \" \"',\n 'String lastName = \" \"',\n 'String username = subjectId',\n 'String name',\n '',\n 'if (rawProfile.isDefined(\"email\") && rawProfile.email.isNotNull()){ // User can elect to not share their email',\n ' email = rawProfile.email.asString()',\n ' username = email',\n '}',\n 'if (rawProfile.isDefined(\"name\") && rawProfile.name.isNotNull()) {',\n ' if (rawProfile.name.isDefined(\"firstName\") && rawProfile.name.firstName.isNotNull()) {',\n ' firstName = rawProfile.name.firstName.asString()',\n ' }',\n ' if (rawProfile.name.isDefined(\"lastName\") && rawProfile.name.lastName.isNotNull()) {',\n ' lastName = rawProfile.name.lastName.asString()',\n ' }',\n '}',\n '',\n 'name = (firstName?.trim() ? firstName : \"\") + (lastName?.trim() ? ((firstName?.trim() ? \" \" : \"\") + lastName) : \"\")',\n 'name = (!name?.trim()) ? \" \" : name',\n '',\n 'return json(object(',\n ' field(\"id\", subjectId),',\n ' field(\"displayName\", name),',\n ' field(\"email\", email),',\n ' field(\"givenName\", firstName),',\n ' field(\"familyName\", lastName),',\n ' field(\"username\", username)))',\n ],\n default: true,\n language: 'GROOVY',\n context: 'SOCIAL_IDP_PROFILE_TRANSFORMATION',\n createdBy: 'null',\n creationDate: 0,\n lastModifiedBy: 'null',\n lastModifiedDate: 0,\n },\n },\n idp: {\n FrodoTestIdp7: {\n clientId: 'aa9a179e-cdba-4db8-8477-3d1069d5ec04',\n pkceMethod: 'S256',\n wellKnownEndpoint:\n 'https://adfs.mytestrun.com/adfs/.well-known/openid-configuration',\n jwtEncryptionMethod: 'NONE',\n authorizationEndpoint:\n 'https://adfs.mytestrun.com/adfs/oauth2/authorize',\n jwtEncryptionAlgorithm: 'NONE',\n clientSecret: null,\n issuerComparisonCheckType: 'EXACT',\n encryptJwtRequestParameter: false,\n scopeDelimiter: ' ',\n scopes: ['openid', 'profile', 'email'],\n issuer: 'https://adfs.mytestrun.com/adfs',\n userInfoResponseType: 'JSON',\n acrValues: [],\n jwksUriEndpoint: 'https://adfs.mytestrun.com/adfs/discovery/keys',\n encryptedIdTokens: false,\n enabled: true,\n jwtRequestParameterOption: 'NONE',\n authenticationIdKey: 'sub',\n uiConfig: {\n buttonClass: '',\n buttonCustomStyle:\n 'background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;',\n buttonCustomStyleHover:\n 'background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;',\n buttonDisplayName: 'Microsoft ADFS',\n buttonImage: '/login/images/microsoft-logo.png',\n iconBackground: '#0078d7',\n iconClass: 'fa-windows',\n iconFontColor: 'white',\n },\n privateKeyJwtExpTime: 600,\n revocationCheckOptions: [],\n enableNativeNonce: true,\n transform: 'dbe0bf9a-72aa-49d5-8483-9db147985a47',\n jwtSigningAlgorithm: 'RS256',\n redirectURI: 'https://idc.scheuber.io/login',\n clientAuthenticationMethod: 'CLIENT_SECRET_POST',\n responseMode: 'DEFAULT',\n useCustomTrustStore: false,\n tokenEndpoint: 'https://adfs.mytestrun.com/adfs/oauth2/token',\n _id: 'FrodoTestIdp7',\n _type: {\n _id: 'oidcConfig',\n name: 'Client configuration for providers that implement the OpenID Connect specification.',\n collection: true,\n },\n },\n FrodoTestIdp8: {\n clientId: 'io.scheuber.idc.signinWithApple.service',\n pkceMethod: 'S256',\n wellKnownEndpoint:\n 'https://appleid.apple.com/.well-known/openid-configuration',\n jwtEncryptionMethod: 'NONE',\n authorizationEndpoint: 'https://appleid.apple.com/auth/authorize',\n jwtEncryptionAlgorithm: 'NONE',\n clientSecret: null,\n issuerComparisonCheckType: 'EXACT',\n encryptJwtRequestParameter: false,\n scopeDelimiter: ' ',\n scopes: ['name', 'email'],\n issuer: 'https://appleid.apple.com',\n redirectAfterFormPostURI: 'https://idc.scheuber.io/login',\n userInfoResponseType: 'JSON',\n acrValues: [],\n jwksUriEndpoint: 'https://appleid.apple.com/auth/keys',\n encryptedIdTokens: false,\n requestNativeAppForUserInfo: false,\n enabled: true,\n jwtRequestParameterOption: 'NONE',\n authenticationIdKey: 'sub',\n uiConfig: {\n buttonClass: '',\n buttonCustomStyle:\n 'background-color: #000000; color: #ffffff; border-color: #000000;',\n buttonCustomStyleHover:\n 'background-color: #000000; color: #ffffff; border-color: #000000;',\n buttonDisplayName: 'Apple',\n buttonImage: '/login/images/apple-logo.png',\n iconBackground: '#000000',\n iconClass: 'fa-apple',\n iconFontColor: 'white',\n },\n privateKeyJwtExpTime: 600,\n revocationCheckOptions: [],\n enableNativeNonce: true,\n transform: '484e6246-dbc6-4288-97e6-54e55431402e',\n jwtSigningAlgorithm: 'NONE',\n redirectURI:\n 'https://idc.scheuber.io/am/oauth2/client/form_post/apple_web',\n clientAuthenticationMethod: 'CLIENT_SECRET_POST',\n responseMode: 'FORM_POST',\n useCustomTrustStore: false,\n tokenEndpoint: 'https://appleid.apple.com/auth/token',\n _id: 'FrodoTestIdp8',\n _type: {\n _id: 'appleConfig',\n name: 'Client configuration for Apple.',\n collection: true,\n },\n },\n },\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageIdp(idp1);\n await stageIdp(idp2);\n await stageIdp(idp3, false);\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageIdp(idp1, false);\n await stageIdp(idp2, false);\n await stageIdp(idp3, false);\n await stageIdp(idp4, false);\n await stageIdp(idp5, false);\n await stageIdp(idp6, false);\n await stageIdp(idp7, false);\n await stageIdp(idp8, false);\n }\n });\n\n describe('exportSocialProvider()', () => {\n test('0: Method is implemented', async () => {\n expect(Idp.exportSocialProvider).toBeDefined();\n });\n\n test(`1: Export social provider ${idp1.id}`, async () => {\n const response = await Idp.exportSocialProvider(idp1.id);\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportSocialProviders()', () => {\n test('0: Method is implemented', async () => {\n expect(Idp.exportSocialProviders).toBeDefined();\n });\n\n test('1: Export all social providers', async () => {\n const response = await Idp.exportSocialProviders();\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('getSocialProviders()', () => {\n test('0: Method is implemented', async () => {\n expect(Idp.getSocialIdentityProviders).toBeDefined();\n });\n\n test(`1: Get social providers`, async () => {\n const response = await Idp.getSocialIdentityProviders();\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getSocialProvider()', () => {\n test('0: Method is implemented', async () => {\n expect(Idp.getSocialProvider).toBeDefined();\n });\n\n test(`1: Get social provider ${idp1.id}`, async () => {\n const response = await Idp.getSocialProvider(idp1.id);\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('putProviderByTypeAndId()', () => {\n test('0: Method is implemented', async () => {\n expect(Idp.putProviderByTypeAndId).toBeDefined();\n });\n\n test(`1: Put social provider ${idp3.id}`, async () => {\n const response = await Idp.putProviderByTypeAndId(\n idp3.type,\n idp3.id,\n idp3.data\n );\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('importSocialProvider()', () => {\n test('0: Method is implemented', async () => {\n expect(Idp.importSocialProvider).toBeDefined();\n });\n\n test(`1: Import social provider ${import1.id}`, async () => {\n expect.assertions(1);\n const outcome = await Idp.importSocialProvider(import1.id, import1.data);\n expect(outcome).toBeTruthy();\n });\n });\n\n describe('importFirstSocialProvider()', () => {\n test('0: Method is implemented', async () => {\n expect(Idp.importFirstSocialProvider).toBeDefined();\n });\n\n test(`1: Import first social provider`, async () => {\n expect.assertions(1);\n const outcome = await Idp.importFirstSocialProvider(importData1);\n expect(outcome).toBeTruthy();\n });\n });\n\n describe('importSocialProviders()', () => {\n test('0: Method is implemented', async () => {\n expect(Idp.importSocialProviders).toBeDefined();\n });\n });\n\n test(`1: Import all social providers`, async () => {\n expect.assertions(1);\n const outcome = await Idp.importSocialProviders(importData2);\n expect(outcome).toBeTruthy();\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"IdpOps.test.js","names":["autoSetupPolly","stageIdp","_x","_stageIdp","apply","arguments","_asyncToGenerator","idp","create","length","undefined","Idp","getSocialProvider","id","deleteSocialProvider","error","putProviderByTypeAndId","type","data","describe","idp1","clientId","pkceMethod","jwtEncryptionMethod","authorizationEndpoint","jwtEncryptionAlgorithm","clientSecret","issuerComparisonCheckType","scopeDelimiter","scopes","enabled","authenticationIdKey","uiConfig","buttonClass","buttonCustomStyle","buttonCustomStyleHover","buttonDisplayName","buttonImage","iconBackground","iconClass","iconFontColor","privateKeyJwtExpTime","revocationCheckOptions","transform","userInfoEndpoint","jwtSigningAlgorithm","redirectURI","clientAuthenticationMethod","responseMode","useCustomTrustStore","tokenEndpoint","_id","_type","name","collection","idp2","wellKnownEndpoint","encryptJwtRequestParameter","issuer","userInfoResponseType","acrValues","encryptedIdTokens","jwtRequestParameterOption","enableNativeNonce","idp3","idp4","idp5","idp6","idp7","idp8","import1","meta","origin","originAmVersion","exportedBy","exportDate","exportTool","exportToolVersion","script","description","default","language","context","createdBy","creationDate","lastModifiedBy","lastModifiedDate","FrodoTestIdp4","jwksUriEndpoint","importData1","FrodoTestIdp5","FrodoTestIdp6","redirectAfterFormPostURI","requestNativeAppForUserInfo","importData2","FrodoTestIdp7","FrodoTestIdp8","beforeAll","process","env","FRODO_POLLY_MODE","afterAll","test","expect","exportSocialProvider","toBeDefined","concat","response","toMatchSnapshot","any","Object","exportSocialProviders","getSocialIdentityProviders","importSocialProvider","assertions","outcome","toBeTruthy","importFirstSocialProvider","importSocialProviders"],"sources":["../../src/ops/IdpOps.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses & update ESM snapshots\n *\n * To record and update ESM snapshots, you must call the test:record\n * script and override all the connection state variables required\n * to connect to the env to record from:\n *\n * FRODO_DEBUG=1 FRODO_HOST=frodo-dev npm run test:record IdpOps\n *\n * The above command assumes that you have a connection profile for\n * 'frodo-dev' on your development machine.\n *\n * 2. Update CJS snapshots\n *\n * After recording, the ESM snapshots will already be updated as that happens\n * in one go, but you musty manually update the CJS snapshots by running:\n *\n * FRODO_DEBUG=1 npm run test:update IdpOps\n *\n * 3. Test your changes\n *\n * If 1 and 2 didn't produce any errors, you are ready to run the tests in\n * replay mode and make sure they all succeed as well:\n *\n * npm run test:only IdpOps\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport { Idp } from '../index';\nimport { autoSetupPolly } from '../utils/AutoSetupPolly';\n\nautoSetupPolly();\n\nasync function stageIdp(\n idp: { id: string; type: string; data: object },\n create = true\n) {\n // delete if exists, then create\n try {\n await Idp.getSocialProvider(idp.id);\n await Idp.deleteSocialProvider(idp.id);\n } catch (error) {\n // ignore\n } finally {\n if (create) {\n await Idp.putProviderByTypeAndId(idp.type, idp.id, idp.data);\n }\n }\n}\n\ndescribe('IdpOps', () => {\n const idp1 = {\n id: 'FrodoTestIdp1',\n type: 'oauth2Config',\n data: {\n clientId: '123741718342521',\n pkceMethod: 'S256',\n jwtEncryptionMethod: 'NONE',\n authorizationEndpoint: 'https://www.facebook.com/dialog/oauth',\n jwtEncryptionAlgorithm: 'NONE',\n clientSecret: '5up3r53cr3t!',\n issuerComparisonCheckType: 'EXACT',\n scopeDelimiter: ' ',\n scopes: ['email'],\n enabled: true,\n authenticationIdKey: 'id',\n uiConfig: {\n buttonClass: 'fa-facebook-official',\n buttonCustomStyle:\n 'background-color: #3b5998; border-color: #3b5998; color: white;',\n buttonCustomStyleHover:\n 'background-color: #334b7d; border-color: #334b7d; color: white;',\n buttonDisplayName: 'Facebook',\n buttonImage: '',\n iconBackground: '#3b5998',\n iconClass: 'fa-facebook',\n iconFontColor: 'white',\n },\n privateKeyJwtExpTime: 3600,\n revocationCheckOptions: [],\n transform: 'bae1d54a-e97d-4997-aa5d-c027f21af82c',\n userInfoEndpoint:\n 'https://graph.facebook.com/me?fields=id,name,picture,email,first_name,last_name,locale',\n jwtSigningAlgorithm: 'NONE',\n redirectURI: 'https://idc.scheuber.io/am/XUI/?realm=%2Falpha',\n clientAuthenticationMethod: 'CLIENT_SECRET_POST',\n responseMode: 'DEFAULT',\n useCustomTrustStore: false,\n tokenEndpoint: 'https://graph.facebook.com/v2.7/oauth/access_token',\n _id: 'FrodoTestIdp1',\n _type: {\n _id: 'oauth2Config',\n name: 'Client configuration for providers that implement the OAuth2 specification.',\n collection: true,\n },\n },\n };\n const idp2 = {\n id: 'FrodoTestIdp2',\n type: 'googleConfig',\n data: {\n clientId:\n '297318173925-mho17cgnm550s2gre7h27feb6sbs2msd.apps.googleusercontent.com',\n pkceMethod: 'S256',\n wellKnownEndpoint:\n 'https://accounts.google.com/.well-known/openid-configuration',\n jwtEncryptionMethod: 'NONE',\n authorizationEndpoint: 'https://accounts.google.com/o/oauth2/v2/auth',\n jwtEncryptionAlgorithm: 'NONE',\n clientSecret: null,\n issuerComparisonCheckType: 'EXACT',\n encryptJwtRequestParameter: false,\n scopeDelimiter: ' ',\n scopes: ['openid', 'profile', 'email'],\n issuer: 'https://accounts.google.com',\n userInfoResponseType: 'JSON',\n acrValues: [],\n encryptedIdTokens: false,\n enabled: true,\n jwtRequestParameterOption: 'NONE',\n authenticationIdKey: 'sub',\n uiConfig: {\n buttonClass: '',\n buttonCustomStyle:\n 'background-color: #fff; color: #757575; border-color: #ddd;',\n buttonCustomStyleHover:\n 'color: #6d6d6d; background-color: #eee; border-color: #ccc;',\n buttonDisplayName: 'Google',\n buttonImage: 'images/g-logo.png',\n iconBackground: '#4184f3',\n iconClass: 'fa-google',\n iconFontColor: 'white',\n },\n privateKeyJwtExpTime: 600,\n revocationCheckOptions: [],\n enableNativeNonce: true,\n transform: '58d29080-4563-480b-89bb-1e7719776a21',\n userInfoEndpoint: 'https://www.googleapis.com/oauth2/v3/userinfo',\n jwtSigningAlgorithm: 'NONE',\n redirectURI: 'https://idc.scheuber.io/login',\n clientAuthenticationMethod: 'CLIENT_SECRET_POST',\n responseMode: 'DEFAULT',\n useCustomTrustStore: false,\n tokenEndpoint: 'https://www.googleapis.com/oauth2/v4/token',\n _id: 'FrodoTestIdp2',\n _type: {\n _id: 'googleConfig',\n name: 'Client configuration for Google.',\n collection: true,\n },\n },\n };\n const idp3 = {\n id: 'FrodoTestIdp3',\n type: 'oidcConfig',\n data: {\n clientId: '0oa13r2cp29Rynmyw697',\n pkceMethod: 'S256',\n wellKnownEndpoint:\n 'https://trial-1234567.okta.com/.well-known/openid-configuration',\n jwtEncryptionMethod: 'NONE',\n authorizationEndpoint:\n 'https://trial-1234567.okta.com/oauth2/v1/authorize',\n jwtEncryptionAlgorithm: 'NONE',\n clientSecret: null,\n issuerComparisonCheckType: 'EXACT',\n encryptJwtRequestParameter: false,\n scopeDelimiter: ' ',\n scopes: ['openid', 'profile', 'email'],\n issuer: 'https://trial-1234567.okta.com',\n userInfoResponseType: 'JSON',\n acrValues: [],\n encryptedIdTokens: false,\n enabled: true,\n jwtRequestParameterOption: 'NONE',\n authenticationIdKey: 'id',\n uiConfig: {\n buttonDisplayName: 'Okta',\n },\n privateKeyJwtExpTime: 600,\n revocationCheckOptions: [],\n enableNativeNonce: true,\n transform: '6325cf19-a49b-471e-8d26-7e4df76df0e2',\n userInfoEndpoint: 'https://trial-1234567.okta.com/oauth2/v1/userinfo',\n jwtSigningAlgorithm: 'NONE',\n redirectURI: 'https://idc.scheuber.io/login',\n clientAuthenticationMethod: 'CLIENT_SECRET_POST',\n responseMode: 'DEFAULT',\n useCustomTrustStore: false,\n tokenEndpoint: 'https://trial-1234567.okta.com/oauth2/v1/token',\n _id: 'FrodoTestIdp3',\n _type: {\n _id: 'oidcConfig',\n name: 'Client configuration for providers that implement the OpenID Connect specification.',\n collection: true,\n },\n },\n };\n const idp4 = {\n id: 'FrodoTestIdp4',\n type: 'none',\n data: {},\n };\n const idp5 = {\n id: 'FrodoTestIdp5',\n type: 'none',\n data: {},\n };\n const idp6 = {\n id: 'FrodoTestIdp6',\n type: 'none',\n data: {},\n };\n const idp7 = {\n id: 'FrodoTestIdp7',\n type: 'none',\n data: {},\n };\n const idp8 = {\n id: 'FrodoTestIdp8',\n type: 'none',\n data: {},\n };\n const import1: { id: string; data: Idp.SocialProviderExportInterface } = {\n id: 'FrodoTestIdp4',\n data: {\n meta: {\n origin: 'https://openam-volker-dev.forgeblocks.com/am',\n originAmVersion: '7.3.0',\n exportedBy: 'volker.scheuber@forgerock.com',\n exportDate: '2022-12-28T19:02:10.599Z',\n exportTool: 'frodo',\n exportToolVersion: 'v0.17.2-0 [v18.7.0]',\n },\n script: {\n 'dbe0bf9a-72aa-49d5-8483-9db147985a47': {\n _id: 'dbe0bf9a-72aa-49d5-8483-9db147985a47',\n name: 'ADFS Profile Normalization (JS)',\n description: 'Normalizes raw profile data from ADFS',\n script: [\n '/*',\n ' * Copyright 2022 ForgeRock AS. All Rights Reserved',\n ' *',\n ' * Use of this code requires a commercial software license with ForgeRock AS',\n ' * or with one of its affiliates. All use shall be exclusively subject',\n ' * to such license between the licensee and ForgeRock AS.',\n ' */',\n '',\n '/*',\n ' * This script returns the social identity profile information for the authenticating user',\n ' * in a standard form expected by the Social Provider Handler Node.',\n ' *',\n ' * Defined variables:',\n ' * rawProfile - The social identity provider profile information for the authenticating user.',\n ' * JsonValue (1).',\n ' * logger - The debug logger instance:',\n ' * https://backstage.forgerock.com/docs/am/7/scripting-guide/scripting-api-global-logger.html#scripting-api-global-logger.',\n ' * realm - String (primitive).',\n ' * The name of the realm the user is authenticating to.',\n ' * requestHeaders - TreeMap (2).',\n ' * The object that provides methods for accessing headers in the login request:',\n ' * https://backstage.forgerock.com/docs/am/7/authentication-guide/scripting-api-node.html#scripting-api-node-requestHeaders.',\n ' * requestParameters - TreeMap (2).',\n ' * The object that contains the authentication request parameters.',\n ' * selectedIdp - String (primitive).',\n ' * The social identity provider name. For example: google.',\n ' * sharedState - LinkedHashMap (3).',\n ' * The object that holds the state of the authentication tree and allows data exchange between the stateless nodes:',\n ' * https://backstage.forgerock.com/docs/am/7/auth-nodes/core-action.html#accessing-tree-state.',\n ' * transientState - LinkedHashMap (3).',\n ' * The object for storing sensitive information that must not leave the server unencrypted,',\n ' * and that may not need to persist between authentication requests during the authentication session:',\n ' * https://backstage.forgerock.com/docs/am/7/auth-nodes/core-action.html#accessing-tree-state.',\n ' *',\n ' * Return - a JsonValue (1).',\n ' * The result of the last statement in the script is returned to the server.',\n ' * Currently, the Immediately Invoked Function Expression (also known as Self-Executing Anonymous Function)',\n ' * is the last (and only) statement in this script, and its return value will become the script result.',\n ' * Do not use \"return variable\" statement outside of a function definition.',\n ' *',\n \" * This script's last statement should result in a JsonValue (1) with the following keys:\",\n ' * {',\n ' * {\"displayName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"email\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"familyName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"givenName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"id\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"locale\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"photoUrl\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"username\": \"corresponding-social-identity-provider-value\"}',\n ' * }',\n ' *',\n ' * The consumer of this data defines which keys are required and which are optional.',\n ' * For example, the script associated with the Social Provider Handler Node and,',\n ' * ultimately, the managed object created/updated with this data',\n ' * will expect certain keys to be populated.',\n ' * In some common default configurations, the following keys are required to be not empty:',\n ' * username, givenName, familyName, email.',\n ' *',\n ' * From RFC4517: A value of the Directory String syntax is a string of one or more',\n ' * arbitrary characters from the Universal Character Set (UCS).',\n ' * A zero-length character string is not permitted.',\n ' *',\n ' * (1) JsonValue - https://backstage.forgerock.com/docs/am/7/apidocs/org/forgerock/json/JsonValue.html.',\n ' * (2) TreeMap - https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/TreeMap.html.',\n ' * (3) LinkedHashMap - https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/LinkedHashMap.html.',\n ' */',\n '',\n '(function () {',\n ' var frJava = JavaImporter(',\n ' org.forgerock.json.JsonValue',\n ' );',\n '',\n ' var normalizedProfileData = frJava.JsonValue.json(frJava.JsonValue.object());',\n ' ',\n \" //logger.message('Seguin rawProfile: '+rawProfile);\",\n '',\n \" normalizedProfileData.put('id', rawProfile.get('sub').asString());\",\n \" normalizedProfileData.put('displayName', rawProfile.get('givenName').asString() + ' ' + rawProfile.get('sn').asString());\",\n \" normalizedProfileData.put('email', rawProfile.get('mail').asString());\",\n \" normalizedProfileData.put('givenName', rawProfile.get('givenName').asString());\",\n \" normalizedProfileData.put('familyName', rawProfile.get('sn').asString());\",\n \" normalizedProfileData.put('username', rawProfile.get('upn').asString());\",\n \" normalizedProfileData.put('roles', rawProfile.get('roles').asString());\",\n ' ',\n \" //logger.message('Seguin normalizedProfileData: '+normalizedProfileData);\",\n '',\n ' return normalizedProfileData;',\n '}());',\n ],\n default: false,\n language: 'JAVASCRIPT',\n context: 'SOCIAL_IDP_PROFILE_TRANSFORMATION',\n createdBy: 'null',\n creationDate: 0,\n lastModifiedBy: 'null',\n lastModifiedDate: 0,\n },\n },\n idp: {\n FrodoTestIdp4: {\n clientId: 'aa9a179e-cdba-4db8-8477-3d1069d5ec04',\n pkceMethod: 'S256',\n wellKnownEndpoint:\n 'https://adfs.mytestrun.com/adfs/.well-known/openid-configuration',\n jwtEncryptionMethod: 'NONE',\n authorizationEndpoint:\n 'https://adfs.mytestrun.com/adfs/oauth2/authorize',\n jwtEncryptionAlgorithm: 'NONE',\n clientSecret: null,\n issuerComparisonCheckType: 'EXACT',\n encryptJwtRequestParameter: false,\n scopeDelimiter: ' ',\n scopes: ['openid', 'profile', 'email'],\n issuer: 'https://adfs.mytestrun.com/adfs',\n userInfoResponseType: 'JSON',\n acrValues: [],\n jwksUriEndpoint: 'https://adfs.mytestrun.com/adfs/discovery/keys',\n encryptedIdTokens: false,\n enabled: true,\n jwtRequestParameterOption: 'NONE',\n authenticationIdKey: 'sub',\n uiConfig: {\n buttonClass: '',\n buttonCustomStyle:\n 'background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;',\n buttonCustomStyleHover:\n 'background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;',\n buttonDisplayName: 'Microsoft ADFS',\n buttonImage: '/login/images/microsoft-logo.png',\n iconBackground: '#0078d7',\n iconClass: 'fa-windows',\n iconFontColor: 'white',\n },\n privateKeyJwtExpTime: 600,\n revocationCheckOptions: [],\n enableNativeNonce: true,\n transform: 'dbe0bf9a-72aa-49d5-8483-9db147985a47',\n jwtSigningAlgorithm: 'RS256',\n redirectURI: 'https://idc.scheuber.io/login',\n clientAuthenticationMethod: 'CLIENT_SECRET_POST',\n responseMode: 'DEFAULT',\n useCustomTrustStore: false,\n tokenEndpoint: 'https://adfs.mytestrun.com/adfs/oauth2/token',\n _id: 'FrodoTestIdp4',\n _type: {\n _id: 'oidcConfig',\n name: 'Client configuration for providers that implement the OpenID Connect specification.',\n collection: true,\n },\n },\n },\n },\n };\n const importData1: Idp.SocialProviderExportInterface = {\n meta: {\n origin: 'https://openam-volker-dev.forgeblocks.com/am',\n originAmVersion: '7.3.0',\n exportedBy: 'volker.scheuber@forgerock.com',\n exportDate: '2022-12-28T19:02:10.599Z',\n exportTool: 'frodo',\n exportToolVersion: 'v0.17.2-0 [v18.7.0]',\n },\n script: {\n 'dbe0bf9a-72aa-49d5-8483-9db147985a47': {\n _id: 'dbe0bf9a-72aa-49d5-8483-9db147985a47',\n name: 'ADFS Profile Normalization (JS)',\n description: 'Normalizes raw profile data from ADFS',\n script: [\n '/*',\n ' * Copyright 2022 ForgeRock AS. All Rights Reserved',\n ' *',\n ' * Use of this code requires a commercial software license with ForgeRock AS',\n ' * or with one of its affiliates. All use shall be exclusively subject',\n ' * to such license between the licensee and ForgeRock AS.',\n ' */',\n '',\n '/*',\n ' * This script returns the social identity profile information for the authenticating user',\n ' * in a standard form expected by the Social Provider Handler Node.',\n ' *',\n ' * Defined variables:',\n ' * rawProfile - The social identity provider profile information for the authenticating user.',\n ' * JsonValue (1).',\n ' * logger - The debug logger instance:',\n ' * https://backstage.forgerock.com/docs/am/7/scripting-guide/scripting-api-global-logger.html#scripting-api-global-logger.',\n ' * realm - String (primitive).',\n ' * The name of the realm the user is authenticating to.',\n ' * requestHeaders - TreeMap (2).',\n ' * The object that provides methods for accessing headers in the login request:',\n ' * https://backstage.forgerock.com/docs/am/7/authentication-guide/scripting-api-node.html#scripting-api-node-requestHeaders.',\n ' * requestParameters - TreeMap (2).',\n ' * The object that contains the authentication request parameters.',\n ' * selectedIdp - String (primitive).',\n ' * The social identity provider name. For example: google.',\n ' * sharedState - LinkedHashMap (3).',\n ' * The object that holds the state of the authentication tree and allows data exchange between the stateless nodes:',\n ' * https://backstage.forgerock.com/docs/am/7/auth-nodes/core-action.html#accessing-tree-state.',\n ' * transientState - LinkedHashMap (3).',\n ' * The object for storing sensitive information that must not leave the server unencrypted,',\n ' * and that may not need to persist between authentication requests during the authentication session:',\n ' * https://backstage.forgerock.com/docs/am/7/auth-nodes/core-action.html#accessing-tree-state.',\n ' *',\n ' * Return - a JsonValue (1).',\n ' * The result of the last statement in the script is returned to the server.',\n ' * Currently, the Immediately Invoked Function Expression (also known as Self-Executing Anonymous Function)',\n ' * is the last (and only) statement in this script, and its return value will become the script result.',\n ' * Do not use \"return variable\" statement outside of a function definition.',\n ' *',\n \" * This script's last statement should result in a JsonValue (1) with the following keys:\",\n ' * {',\n ' * {\"displayName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"email\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"familyName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"givenName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"id\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"locale\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"photoUrl\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"username\": \"corresponding-social-identity-provider-value\"}',\n ' * }',\n ' *',\n ' * The consumer of this data defines which keys are required and which are optional.',\n ' * For example, the script associated with the Social Provider Handler Node and,',\n ' * ultimately, the managed object created/updated with this data',\n ' * will expect certain keys to be populated.',\n ' * In some common default configurations, the following keys are required to be not empty:',\n ' * username, givenName, familyName, email.',\n ' *',\n ' * From RFC4517: A value of the Directory String syntax is a string of one or more',\n ' * arbitrary characters from the Universal Character Set (UCS).',\n ' * A zero-length character string is not permitted.',\n ' *',\n ' * (1) JsonValue - https://backstage.forgerock.com/docs/am/7/apidocs/org/forgerock/json/JsonValue.html.',\n ' * (2) TreeMap - https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/TreeMap.html.',\n ' * (3) LinkedHashMap - https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/LinkedHashMap.html.',\n ' */',\n '',\n '(function () {',\n ' var frJava = JavaImporter(',\n ' org.forgerock.json.JsonValue',\n ' );',\n '',\n ' var normalizedProfileData = frJava.JsonValue.json(frJava.JsonValue.object());',\n ' ',\n \" //logger.message('Seguin rawProfile: '+rawProfile);\",\n '',\n \" normalizedProfileData.put('id', rawProfile.get('sub').asString());\",\n \" normalizedProfileData.put('displayName', rawProfile.get('givenName').asString() + ' ' + rawProfile.get('sn').asString());\",\n \" normalizedProfileData.put('email', rawProfile.get('mail').asString());\",\n \" normalizedProfileData.put('givenName', rawProfile.get('givenName').asString());\",\n \" normalizedProfileData.put('familyName', rawProfile.get('sn').asString());\",\n \" normalizedProfileData.put('username', rawProfile.get('upn').asString());\",\n \" normalizedProfileData.put('roles', rawProfile.get('roles').asString());\",\n ' ',\n \" //logger.message('Seguin normalizedProfileData: '+normalizedProfileData);\",\n '',\n ' return normalizedProfileData;',\n '}());',\n ],\n default: false,\n language: 'JAVASCRIPT',\n context: 'SOCIAL_IDP_PROFILE_TRANSFORMATION',\n createdBy: 'null',\n creationDate: 0,\n lastModifiedBy: 'null',\n lastModifiedDate: 0,\n },\n '484e6246-dbc6-4288-97e6-54e55431402e': {\n _id: '484e6246-dbc6-4288-97e6-54e55431402e',\n name: 'Apple Profile Normalization',\n description: 'Normalizes raw profile data from Apple',\n script: [\n '/*',\n ' * Copyright 2021-2022 ForgeRock AS. All Rights Reserved',\n ' *',\n ' * Use of this code requires a commercial software license with ForgeRock AS.',\n ' * or with one of its affiliates. All use shall be exclusively subject',\n ' * to such license between the licensee and ForgeRock AS.',\n ' *',\n ' * In some common default configurations, the following keys are required to be not empty:',\n ' * username, givenName, familyName, email.',\n ' *',\n ' * From RFC4517: A value of the Directory String syntax is a string of one or more',\n ' * arbitrary characters from the Universal Character Set (UCS).',\n ' * A zero-length character string is not permitted.',\n ' */',\n '',\n 'import static org.forgerock.json.JsonValue.field',\n 'import static org.forgerock.json.JsonValue.json',\n 'import static org.forgerock.json.JsonValue.object',\n '',\n 'String email = \"change@me.com\"',\n 'String subjectId = rawProfile.sub',\n 'String firstName = \" \"',\n 'String lastName = \" \"',\n 'String username = subjectId',\n 'String name',\n '',\n 'if (rawProfile.isDefined(\"email\") && rawProfile.email.isNotNull()){ // User can elect to not share their email',\n ' email = rawProfile.email.asString()',\n ' username = email',\n '}',\n 'if (rawProfile.isDefined(\"name\") && rawProfile.name.isNotNull()) {',\n ' if (rawProfile.name.isDefined(\"firstName\") && rawProfile.name.firstName.isNotNull()) {',\n ' firstName = rawProfile.name.firstName.asString()',\n ' }',\n ' if (rawProfile.name.isDefined(\"lastName\") && rawProfile.name.lastName.isNotNull()) {',\n ' lastName = rawProfile.name.lastName.asString()',\n ' }',\n '}',\n '',\n 'name = (firstName?.trim() ? firstName : \"\") + (lastName?.trim() ? ((firstName?.trim() ? \" \" : \"\") + lastName) : \"\")',\n 'name = (!name?.trim()) ? \" \" : name',\n '',\n 'return json(object(',\n ' field(\"id\", subjectId),',\n ' field(\"displayName\", name),',\n ' field(\"email\", email),',\n ' field(\"givenName\", firstName),',\n ' field(\"familyName\", lastName),',\n ' field(\"username\", username)))',\n ],\n default: true,\n language: 'GROOVY',\n context: 'SOCIAL_IDP_PROFILE_TRANSFORMATION',\n createdBy: 'null',\n creationDate: 0,\n lastModifiedBy: 'null',\n lastModifiedDate: 0,\n },\n },\n idp: {\n FrodoTestIdp5: {\n clientId: 'aa9a179e-cdba-4db8-8477-3d1069d5ec04',\n pkceMethod: 'S256',\n wellKnownEndpoint:\n 'https://adfs.mytestrun.com/adfs/.well-known/openid-configuration',\n jwtEncryptionMethod: 'NONE',\n authorizationEndpoint:\n 'https://adfs.mytestrun.com/adfs/oauth2/authorize',\n jwtEncryptionAlgorithm: 'NONE',\n clientSecret: null,\n issuerComparisonCheckType: 'EXACT',\n encryptJwtRequestParameter: false,\n scopeDelimiter: ' ',\n scopes: ['openid', 'profile', 'email'],\n issuer: 'https://adfs.mytestrun.com/adfs',\n userInfoResponseType: 'JSON',\n acrValues: [],\n jwksUriEndpoint: 'https://adfs.mytestrun.com/adfs/discovery/keys',\n encryptedIdTokens: false,\n enabled: true,\n jwtRequestParameterOption: 'NONE',\n authenticationIdKey: 'sub',\n uiConfig: {\n buttonClass: '',\n buttonCustomStyle:\n 'background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;',\n buttonCustomStyleHover:\n 'background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;',\n buttonDisplayName: 'Microsoft ADFS',\n buttonImage: '/login/images/microsoft-logo.png',\n iconBackground: '#0078d7',\n iconClass: 'fa-windows',\n iconFontColor: 'white',\n },\n privateKeyJwtExpTime: 600,\n revocationCheckOptions: [],\n enableNativeNonce: true,\n transform: 'dbe0bf9a-72aa-49d5-8483-9db147985a47',\n jwtSigningAlgorithm: 'RS256',\n redirectURI: 'https://idc.scheuber.io/login',\n clientAuthenticationMethod: 'CLIENT_SECRET_POST',\n responseMode: 'DEFAULT',\n useCustomTrustStore: false,\n tokenEndpoint: 'https://adfs.mytestrun.com/adfs/oauth2/token',\n _id: 'FrodoTestIdp5',\n _type: {\n _id: 'oidcConfig',\n name: 'Client configuration for providers that implement the OpenID Connect specification.',\n collection: true,\n },\n },\n FrodoTestIdp6: {\n clientId: 'io.scheuber.idc.signinWithApple.service',\n pkceMethod: 'S256',\n wellKnownEndpoint:\n 'https://appleid.apple.com/.well-known/openid-configuration',\n jwtEncryptionMethod: 'NONE',\n authorizationEndpoint: 'https://appleid.apple.com/auth/authorize',\n jwtEncryptionAlgorithm: 'NONE',\n clientSecret: null,\n issuerComparisonCheckType: 'EXACT',\n encryptJwtRequestParameter: false,\n scopeDelimiter: ' ',\n scopes: ['name', 'email'],\n issuer: 'https://appleid.apple.com',\n redirectAfterFormPostURI: 'https://idc.scheuber.io/login',\n userInfoResponseType: 'JSON',\n acrValues: [],\n jwksUriEndpoint: 'https://appleid.apple.com/auth/keys',\n encryptedIdTokens: false,\n requestNativeAppForUserInfo: false,\n enabled: true,\n jwtRequestParameterOption: 'NONE',\n authenticationIdKey: 'sub',\n uiConfig: {\n buttonClass: '',\n buttonCustomStyle:\n 'background-color: #000000; color: #ffffff; border-color: #000000;',\n buttonCustomStyleHover:\n 'background-color: #000000; color: #ffffff; border-color: #000000;',\n buttonDisplayName: 'Apple',\n buttonImage: '/login/images/apple-logo.png',\n iconBackground: '#000000',\n iconClass: 'fa-apple',\n iconFontColor: 'white',\n },\n privateKeyJwtExpTime: 600,\n revocationCheckOptions: [],\n enableNativeNonce: true,\n transform: '484e6246-dbc6-4288-97e6-54e55431402e',\n jwtSigningAlgorithm: 'NONE',\n redirectURI:\n 'https://idc.scheuber.io/am/oauth2/client/form_post/apple_web',\n clientAuthenticationMethod: 'CLIENT_SECRET_POST',\n responseMode: 'FORM_POST',\n useCustomTrustStore: false,\n tokenEndpoint: 'https://appleid.apple.com/auth/token',\n _id: 'FrodoTestIdp6',\n _type: {\n _id: 'appleConfig',\n name: 'Client configuration for Apple.',\n collection: true,\n },\n },\n },\n };\n const importData2: Idp.SocialProviderExportInterface = {\n meta: {\n origin: 'https://openam-volker-dev.forgeblocks.com/am',\n originAmVersion: '7.3.0',\n exportedBy: 'volker.scheuber@forgerock.com',\n exportDate: '2022-12-28T19:02:10.599Z',\n exportTool: 'frodo',\n exportToolVersion: 'v0.17.2-0 [v18.7.0]',\n },\n script: {\n 'dbe0bf9a-72aa-49d5-8483-9db147985a47': {\n _id: 'dbe0bf9a-72aa-49d5-8483-9db147985a47',\n name: 'ADFS Profile Normalization (JS)',\n description: 'Normalizes raw profile data from ADFS',\n script: [\n '/*',\n ' * Copyright 2022 ForgeRock AS. All Rights Reserved',\n ' *',\n ' * Use of this code requires a commercial software license with ForgeRock AS',\n ' * or with one of its affiliates. All use shall be exclusively subject',\n ' * to such license between the licensee and ForgeRock AS.',\n ' */',\n '',\n '/*',\n ' * This script returns the social identity profile information for the authenticating user',\n ' * in a standard form expected by the Social Provider Handler Node.',\n ' *',\n ' * Defined variables:',\n ' * rawProfile - The social identity provider profile information for the authenticating user.',\n ' * JsonValue (1).',\n ' * logger - The debug logger instance:',\n ' * https://backstage.forgerock.com/docs/am/7/scripting-guide/scripting-api-global-logger.html#scripting-api-global-logger.',\n ' * realm - String (primitive).',\n ' * The name of the realm the user is authenticating to.',\n ' * requestHeaders - TreeMap (2).',\n ' * The object that provides methods for accessing headers in the login request:',\n ' * https://backstage.forgerock.com/docs/am/7/authentication-guide/scripting-api-node.html#scripting-api-node-requestHeaders.',\n ' * requestParameters - TreeMap (2).',\n ' * The object that contains the authentication request parameters.',\n ' * selectedIdp - String (primitive).',\n ' * The social identity provider name. For example: google.',\n ' * sharedState - LinkedHashMap (3).',\n ' * The object that holds the state of the authentication tree and allows data exchange between the stateless nodes:',\n ' * https://backstage.forgerock.com/docs/am/7/auth-nodes/core-action.html#accessing-tree-state.',\n ' * transientState - LinkedHashMap (3).',\n ' * The object for storing sensitive information that must not leave the server unencrypted,',\n ' * and that may not need to persist between authentication requests during the authentication session:',\n ' * https://backstage.forgerock.com/docs/am/7/auth-nodes/core-action.html#accessing-tree-state.',\n ' *',\n ' * Return - a JsonValue (1).',\n ' * The result of the last statement in the script is returned to the server.',\n ' * Currently, the Immediately Invoked Function Expression (also known as Self-Executing Anonymous Function)',\n ' * is the last (and only) statement in this script, and its return value will become the script result.',\n ' * Do not use \"return variable\" statement outside of a function definition.',\n ' *',\n \" * This script's last statement should result in a JsonValue (1) with the following keys:\",\n ' * {',\n ' * {\"displayName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"email\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"familyName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"givenName\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"id\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"locale\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"photoUrl\": \"corresponding-social-identity-provider-value\"},',\n ' * {\"username\": \"corresponding-social-identity-provider-value\"}',\n ' * }',\n ' *',\n ' * The consumer of this data defines which keys are required and which are optional.',\n ' * For example, the script associated with the Social Provider Handler Node and,',\n ' * ultimately, the managed object created/updated with this data',\n ' * will expect certain keys to be populated.',\n ' * In some common default configurations, the following keys are required to be not empty:',\n ' * username, givenName, familyName, email.',\n ' *',\n ' * From RFC4517: A value of the Directory String syntax is a string of one or more',\n ' * arbitrary characters from the Universal Character Set (UCS).',\n ' * A zero-length character string is not permitted.',\n ' *',\n ' * (1) JsonValue - https://backstage.forgerock.com/docs/am/7/apidocs/org/forgerock/json/JsonValue.html.',\n ' * (2) TreeMap - https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/TreeMap.html.',\n ' * (3) LinkedHashMap - https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/LinkedHashMap.html.',\n ' */',\n '',\n '(function () {',\n ' var frJava = JavaImporter(',\n ' org.forgerock.json.JsonValue',\n ' );',\n '',\n ' var normalizedProfileData = frJava.JsonValue.json(frJava.JsonValue.object());',\n ' ',\n \" //logger.message('Seguin rawProfile: '+rawProfile);\",\n '',\n \" normalizedProfileData.put('id', rawProfile.get('sub').asString());\",\n \" normalizedProfileData.put('displayName', rawProfile.get('givenName').asString() + ' ' + rawProfile.get('sn').asString());\",\n \" normalizedProfileData.put('email', rawProfile.get('mail').asString());\",\n \" normalizedProfileData.put('givenName', rawProfile.get('givenName').asString());\",\n \" normalizedProfileData.put('familyName', rawProfile.get('sn').asString());\",\n \" normalizedProfileData.put('username', rawProfile.get('upn').asString());\",\n \" normalizedProfileData.put('roles', rawProfile.get('roles').asString());\",\n ' ',\n \" //logger.message('Seguin normalizedProfileData: '+normalizedProfileData);\",\n '',\n ' return normalizedProfileData;',\n '}());',\n ],\n default: false,\n language: 'JAVASCRIPT',\n context: 'SOCIAL_IDP_PROFILE_TRANSFORMATION',\n createdBy: 'null',\n creationDate: 0,\n lastModifiedBy: 'null',\n lastModifiedDate: 0,\n },\n '484e6246-dbc6-4288-97e6-54e55431402e': {\n _id: '484e6246-dbc6-4288-97e6-54e55431402e',\n name: 'Apple Profile Normalization',\n description: 'Normalizes raw profile data from Apple',\n script: [\n '/*',\n ' * Copyright 2021-2022 ForgeRock AS. All Rights Reserved',\n ' *',\n ' * Use of this code requires a commercial software license with ForgeRock AS.',\n ' * or with one of its affiliates. All use shall be exclusively subject',\n ' * to such license between the licensee and ForgeRock AS.',\n ' *',\n ' * In some common default configurations, the following keys are required to be not empty:',\n ' * username, givenName, familyName, email.',\n ' *',\n ' * From RFC4517: A value of the Directory String syntax is a string of one or more',\n ' * arbitrary characters from the Universal Character Set (UCS).',\n ' * A zero-length character string is not permitted.',\n ' */',\n '',\n 'import static org.forgerock.json.JsonValue.field',\n 'import static org.forgerock.json.JsonValue.json',\n 'import static org.forgerock.json.JsonValue.object',\n '',\n 'String email = \"change@me.com\"',\n 'String subjectId = rawProfile.sub',\n 'String firstName = \" \"',\n 'String lastName = \" \"',\n 'String username = subjectId',\n 'String name',\n '',\n 'if (rawProfile.isDefined(\"email\") && rawProfile.email.isNotNull()){ // User can elect to not share their email',\n ' email = rawProfile.email.asString()',\n ' username = email',\n '}',\n 'if (rawProfile.isDefined(\"name\") && rawProfile.name.isNotNull()) {',\n ' if (rawProfile.name.isDefined(\"firstName\") && rawProfile.name.firstName.isNotNull()) {',\n ' firstName = rawProfile.name.firstName.asString()',\n ' }',\n ' if (rawProfile.name.isDefined(\"lastName\") && rawProfile.name.lastName.isNotNull()) {',\n ' lastName = rawProfile.name.lastName.asString()',\n ' }',\n '}',\n '',\n 'name = (firstName?.trim() ? firstName : \"\") + (lastName?.trim() ? ((firstName?.trim() ? \" \" : \"\") + lastName) : \"\")',\n 'name = (!name?.trim()) ? \" \" : name',\n '',\n 'return json(object(',\n ' field(\"id\", subjectId),',\n ' field(\"displayName\", name),',\n ' field(\"email\", email),',\n ' field(\"givenName\", firstName),',\n ' field(\"familyName\", lastName),',\n ' field(\"username\", username)))',\n ],\n default: true,\n language: 'GROOVY',\n context: 'SOCIAL_IDP_PROFILE_TRANSFORMATION',\n createdBy: 'null',\n creationDate: 0,\n lastModifiedBy: 'null',\n lastModifiedDate: 0,\n },\n },\n idp: {\n FrodoTestIdp7: {\n clientId: 'aa9a179e-cdba-4db8-8477-3d1069d5ec04',\n pkceMethod: 'S256',\n wellKnownEndpoint:\n 'https://adfs.mytestrun.com/adfs/.well-known/openid-configuration',\n jwtEncryptionMethod: 'NONE',\n authorizationEndpoint:\n 'https://adfs.mytestrun.com/adfs/oauth2/authorize',\n jwtEncryptionAlgorithm: 'NONE',\n clientSecret: null,\n issuerComparisonCheckType: 'EXACT',\n encryptJwtRequestParameter: false,\n scopeDelimiter: ' ',\n scopes: ['openid', 'profile', 'email'],\n issuer: 'https://adfs.mytestrun.com/adfs',\n userInfoResponseType: 'JSON',\n acrValues: [],\n jwksUriEndpoint: 'https://adfs.mytestrun.com/adfs/discovery/keys',\n encryptedIdTokens: false,\n enabled: true,\n jwtRequestParameterOption: 'NONE',\n authenticationIdKey: 'sub',\n uiConfig: {\n buttonClass: '',\n buttonCustomStyle:\n 'background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;',\n buttonCustomStyleHover:\n 'background-color: #fff; border-color: #8b8b8b; color: #8b8b8b;',\n buttonDisplayName: 'Microsoft ADFS',\n buttonImage: '/login/images/microsoft-logo.png',\n iconBackground: '#0078d7',\n iconClass: 'fa-windows',\n iconFontColor: 'white',\n },\n privateKeyJwtExpTime: 600,\n revocationCheckOptions: [],\n enableNativeNonce: true,\n transform: 'dbe0bf9a-72aa-49d5-8483-9db147985a47',\n jwtSigningAlgorithm: 'RS256',\n redirectURI: 'https://idc.scheuber.io/login',\n clientAuthenticationMethod: 'CLIENT_SECRET_POST',\n responseMode: 'DEFAULT',\n useCustomTrustStore: false,\n tokenEndpoint: 'https://adfs.mytestrun.com/adfs/oauth2/token',\n _id: 'FrodoTestIdp7',\n _type: {\n _id: 'oidcConfig',\n name: 'Client configuration for providers that implement the OpenID Connect specification.',\n collection: true,\n },\n },\n FrodoTestIdp8: {\n clientId: 'io.scheuber.idc.signinWithApple.service',\n pkceMethod: 'S256',\n wellKnownEndpoint:\n 'https://appleid.apple.com/.well-known/openid-configuration',\n jwtEncryptionMethod: 'NONE',\n authorizationEndpoint: 'https://appleid.apple.com/auth/authorize',\n jwtEncryptionAlgorithm: 'NONE',\n clientSecret: null,\n issuerComparisonCheckType: 'EXACT',\n encryptJwtRequestParameter: false,\n scopeDelimiter: ' ',\n scopes: ['name', 'email'],\n issuer: 'https://appleid.apple.com',\n redirectAfterFormPostURI: 'https://idc.scheuber.io/login',\n userInfoResponseType: 'JSON',\n acrValues: [],\n jwksUriEndpoint: 'https://appleid.apple.com/auth/keys',\n encryptedIdTokens: false,\n requestNativeAppForUserInfo: false,\n enabled: true,\n jwtRequestParameterOption: 'NONE',\n authenticationIdKey: 'sub',\n uiConfig: {\n buttonClass: '',\n buttonCustomStyle:\n 'background-color: #000000; color: #ffffff; border-color: #000000;',\n buttonCustomStyleHover:\n 'background-color: #000000; color: #ffffff; border-color: #000000;',\n buttonDisplayName: 'Apple',\n buttonImage: '/login/images/apple-logo.png',\n iconBackground: '#000000',\n iconClass: 'fa-apple',\n iconFontColor: 'white',\n },\n privateKeyJwtExpTime: 600,\n revocationCheckOptions: [],\n enableNativeNonce: true,\n transform: '484e6246-dbc6-4288-97e6-54e55431402e',\n jwtSigningAlgorithm: 'NONE',\n redirectURI:\n 'https://idc.scheuber.io/am/oauth2/client/form_post/apple_web',\n clientAuthenticationMethod: 'CLIENT_SECRET_POST',\n responseMode: 'FORM_POST',\n useCustomTrustStore: false,\n tokenEndpoint: 'https://appleid.apple.com/auth/token',\n _id: 'FrodoTestIdp8',\n _type: {\n _id: 'appleConfig',\n name: 'Client configuration for Apple.',\n collection: true,\n },\n },\n },\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageIdp(idp1);\n await stageIdp(idp2);\n await stageIdp(idp3, false);\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageIdp(idp1, false);\n await stageIdp(idp2, false);\n await stageIdp(idp3, false);\n await stageIdp(idp4, false);\n await stageIdp(idp5, false);\n await stageIdp(idp6, false);\n await stageIdp(idp7, false);\n await stageIdp(idp8, false);\n }\n });\n\n describe('exportSocialProvider()', () => {\n test('0: Method is implemented', async () => {\n expect(Idp.exportSocialProvider).toBeDefined();\n });\n\n test(`1: Export social provider ${idp1.id}`, async () => {\n const response = await Idp.exportSocialProvider(idp1.id);\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportSocialProviders()', () => {\n test('0: Method is implemented', async () => {\n expect(Idp.exportSocialProviders).toBeDefined();\n });\n\n test('1: Export all social providers', async () => {\n const response = await Idp.exportSocialProviders();\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('getSocialProviders()', () => {\n test('0: Method is implemented', async () => {\n expect(Idp.getSocialIdentityProviders).toBeDefined();\n });\n\n test(`1: Get social providers`, async () => {\n const response = await Idp.getSocialIdentityProviders();\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getSocialProvider()', () => {\n test('0: Method is implemented', async () => {\n expect(Idp.getSocialProvider).toBeDefined();\n });\n\n test(`1: Get social provider ${idp1.id}`, async () => {\n const response = await Idp.getSocialProvider(idp1.id);\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('putProviderByTypeAndId()', () => {\n test('0: Method is implemented', async () => {\n expect(Idp.putProviderByTypeAndId).toBeDefined();\n });\n\n test(`1: Put social provider ${idp3.id}`, async () => {\n const response = await Idp.putProviderByTypeAndId(\n idp3.type,\n idp3.id,\n idp3.data\n );\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('importSocialProvider()', () => {\n test('0: Method is implemented', async () => {\n expect(Idp.importSocialProvider).toBeDefined();\n });\n\n test(`1: Import social provider ${import1.id}`, async () => {\n expect.assertions(1);\n const outcome = await Idp.importSocialProvider(import1.id, import1.data);\n expect(outcome).toBeTruthy();\n });\n });\n\n describe('importFirstSocialProvider()', () => {\n test('0: Method is implemented', async () => {\n expect(Idp.importFirstSocialProvider).toBeDefined();\n });\n\n test(`1: Import first social provider`, async () => {\n expect.assertions(1);\n const outcome = await Idp.importFirstSocialProvider(importData1);\n expect(outcome).toBeTruthy();\n });\n });\n\n describe('importSocialProviders()', () => {\n test('0: Method is implemented', async () => {\n expect(Idp.importSocialProviders).toBeDefined();\n });\n });\n\n test(`1: Import all social providers`, async () => {\n expect.assertions(1);\n const outcome = await Idp.importSocialProviders(importData2);\n expect(outcome).toBeTruthy();\n });\n});\n"],"mappings":"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"}
@@ -4,12 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getInfo = getInfo;
7
- var _EnvInfoApi = require("../api/cloud/EnvInfoApi");
8
- var state = _interopRequireWildcard(require("../shared/State"));
9
- var globalConfig = _interopRequireWildcard(require("../storage/StaticStorage"));
10
- var _ServerInfoApi = require("../api/ServerInfoApi");
11
- var _Console = require("./utils/Console");
12
- var _ServiceAccountOps = require("./cloud/ServiceAccountOps");
7
+ var _EnvInfoApi = require("../api/cloud/EnvInfoApi.js");
8
+ var state = _interopRequireWildcard(require("../shared/State.js"));
9
+ var globalConfig = _interopRequireWildcard(require("../storage/StaticStorage.js"));
10
+ var _ServerInfoApi = require("../api/ServerInfoApi.js");
11
+ var _Console = require("./utils/Console.js");
12
+ var _ServiceAccountOps = require("./cloud/ServiceAccountOps.js");
13
13
  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); }
14
14
  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; }
15
15
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -1 +1 @@
1
- {"version":3,"file":"InfoOps.js","names":["_EnvInfoApi","require","state","_interopRequireWildcard","globalConfig","_ServerInfoApi","_Console","_ServiceAccountOps","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","error","done","Promise","then","_asyncToGenerator","fn","self","args","err","getCloudInfo","_getCloudInfo","getEnvInfo","message_box_html","message_box_title","message_variant","warning_message_html","placeholder_management_migration_date","_error$response","printMessage","response","data","concat","message","getAmVersion","_getAmVersion","versionObj","getServerVersionInfo","amVersion","getAuthenticatedSubject","_getAuthenticatedSubject","subjectString","getUsername","getUseBearerTokenForAmApis","name","getServiceAccount","getServiceAccountId","getInfo","_getInfo","host","getHost","authenticatedSubject","deploymentType","getDeploymentType","cookieName","getCookieName","sessionToken","getCookieValue","getBearerToken","bearerToken","CLOUD_DEPLOYMENT_TYPE_KEY"],"sources":["../../src/ops/InfoOps.ts"],"sourcesContent":["import { getEnvInfo } from '../api/cloud/EnvInfoApi';\nimport * as state from '../shared/State';\nimport { EnvInfoInterface } from '../api/cloud/EnvInfoApi';\nimport * as globalConfig from '../storage/StaticStorage';\nimport { getServerVersionInfo } from '../api/ServerInfoApi';\nimport { printMessage } from './utils/Console';\nimport { getServiceAccount } from './cloud/ServiceAccountOps';\n\nexport interface PlatformInfoInterface {\n host: string;\n authenticatedSubject: string;\n amVersion: string;\n cookieName: string;\n sessionToken: string;\n bearerToken?: string;\n deploymentType: string;\n}\n\nexport type PlatformInfo = PlatformInfoInterface & Partial<EnvInfoInterface>;\n\nasync function getCloudInfo(): Promise<Partial<EnvInfoInterface>> {\n let info: Partial<EnvInfoInterface> = {};\n try {\n info = await getEnvInfo();\n delete info.message_box_html;\n delete info.message_box_title;\n delete info.message_variant;\n delete info.warning_message_html;\n if (!info.placeholder_management_migration_date)\n delete info.placeholder_management_migration_date;\n } catch (error) {\n printMessage(error.response?.data, 'error');\n printMessage(`Error getting env info: ${error.message}`, 'error');\n }\n return info;\n}\n\nasync function getAmVersion(): Promise<string> {\n const versionObj = await getServerVersionInfo();\n const amVersion = `${versionObj['version']} Build ${versionObj['revision']} (${versionObj['date']})`;\n return amVersion;\n}\n\nasync function getAuthenticatedSubject(): Promise<string> {\n let subjectString = `${state.getUsername()} (User)`;\n if (state.getUseBearerTokenForAmApis()) {\n const name = (await getServiceAccount(state.getServiceAccountId())).name;\n subjectString = `${name} [${state.getServiceAccountId()}] (Service Account)`;\n }\n return subjectString;\n}\n\n/**\n * Get info about the platform instance\n * @returns {Promise<PlatformInfo>} a promise that resolves to a json blob with information about the instance and tokens\n */\nexport async function getInfo(): Promise<PlatformInfo> {\n const info: PlatformInfo = {\n host: state.getHost(),\n amVersion: await getAmVersion(),\n authenticatedSubject: await getAuthenticatedSubject(),\n deploymentType: state.getDeploymentType(),\n cookieName: state.getCookieName(),\n sessionToken: state.getCookieValue(),\n // only add bearerToken if we have it\n ...(state.getBearerToken() && { bearerToken: state.getBearerToken() }),\n // only add cloud env info if deployment type is cloud\n ...(state.getDeploymentType() === globalConfig.CLOUD_DEPLOYMENT_TYPE_KEY &&\n (await getCloudInfo())),\n };\n return info;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"InfoOps.js","names":["getCloudInfo","_getCloudInfo","apply","arguments","_asyncToGenerator","info","getEnvInfo","message_box_html","message_box_title","message_variant","warning_message_html","placeholder_management_migration_date","error","_error$response","printMessage","response","data","concat","message","getAmVersion","_getAmVersion","versionObj","getServerVersionInfo","amVersion","getAuthenticatedSubject","_getAuthenticatedSubject","subjectString","state","getUsername","getUseBearerTokenForAmApis","name","getServiceAccount","getServiceAccountId","getInfo","_getInfo","_objectSpread","host","getHost","authenticatedSubject","deploymentType","getDeploymentType","cookieName","getCookieName","sessionToken","getCookieValue","getBearerToken","bearerToken","globalConfig","CLOUD_DEPLOYMENT_TYPE_KEY"],"sources":["../../src/ops/InfoOps.ts"],"sourcesContent":["import { getEnvInfo } from '../api/cloud/EnvInfoApi';\nimport * as state from '../shared/State';\nimport { EnvInfoInterface } from '../api/cloud/EnvInfoApi';\nimport * as globalConfig from '../storage/StaticStorage';\nimport { getServerVersionInfo } from '../api/ServerInfoApi';\nimport { printMessage } from './utils/Console';\nimport { getServiceAccount } from './cloud/ServiceAccountOps';\n\nexport interface PlatformInfoInterface {\n host: string;\n authenticatedSubject: string;\n amVersion: string;\n cookieName: string;\n sessionToken: string;\n bearerToken?: string;\n deploymentType: string;\n}\n\nexport type PlatformInfo = PlatformInfoInterface & Partial<EnvInfoInterface>;\n\nasync function getCloudInfo(): Promise<Partial<EnvInfoInterface>> {\n let info: Partial<EnvInfoInterface> = {};\n try {\n info = await getEnvInfo();\n delete info.message_box_html;\n delete info.message_box_title;\n delete info.message_variant;\n delete info.warning_message_html;\n if (!info.placeholder_management_migration_date)\n delete info.placeholder_management_migration_date;\n } catch (error) {\n printMessage(error.response?.data, 'error');\n printMessage(`Error getting env info: ${error.message}`, 'error');\n }\n return info;\n}\n\nasync function getAmVersion(): Promise<string> {\n const versionObj = await getServerVersionInfo();\n const amVersion = `${versionObj['version']} Build ${versionObj['revision']} (${versionObj['date']})`;\n return amVersion;\n}\n\nasync function getAuthenticatedSubject(): Promise<string> {\n let subjectString = `${state.getUsername()} (User)`;\n if (state.getUseBearerTokenForAmApis()) {\n const name = (await getServiceAccount(state.getServiceAccountId())).name;\n subjectString = `${name} [${state.getServiceAccountId()}] (Service Account)`;\n }\n return subjectString;\n}\n\n/**\n * Get info about the platform instance\n * @returns {Promise<PlatformInfo>} a promise that resolves to a json blob with information about the instance and tokens\n */\nexport async function getInfo(): Promise<PlatformInfo> {\n const info: PlatformInfo = {\n host: state.getHost(),\n amVersion: await getAmVersion(),\n authenticatedSubject: await getAuthenticatedSubject(),\n deploymentType: state.getDeploymentType(),\n cookieName: state.getCookieName(),\n sessionToken: state.getCookieValue(),\n // only add bearerToken if we have it\n ...(state.getBearerToken() && { bearerToken: state.getBearerToken() }),\n // only add cloud env info if deployment type is cloud\n ...(state.getDeploymentType() === globalConfig.CLOUD_DEPLOYMENT_TYPE_KEY &&\n (await getCloudInfo())),\n };\n return info;\n}\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
- var Jose = _interopRequireWildcard(require("./JoseOps"));
4
- var _ApiUtils = require("../api/utils/ApiUtils");
3
+ var Jose = _interopRequireWildcard(require("./JoseOps.js"));
4
+ var _ApiUtils = require("../api/utils/ApiUtils.js");
5
5
  var _uuid = require("uuid");
6
- var _OpsUtils = require("./utils/OpsUtils");
7
- var _Base = require("../api/utils/Base64");
6
+ var _OpsUtils = require("./utils/OpsUtils.js");
7
+ var _Base = require("../api/utils/Base64.js");
8
8
  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); }
9
9
  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; }
10
10
  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":"JoseOps.test.js","names":["Jose","_interopRequireWildcard","require","_ApiUtils","_uuid","_OpsUtils","_Base","_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","createJwkRsa","toBeDefined","jwk","toBeTruthy","kty","toBe","alg","kid","d","dp","dq","e","n","p","q","qi","getJwkRsaPublic","jwkPublic","toBeFalsy","createJwks","jwks","keys","length","jwk1","jwk2","createSignedJwtToken","u","parseUrl","aud","concat","origin","port","protocol","pathname","exp","Math","floor","Date","getTime","jti","v4","iss","sub","payload","jwt","split","isEqualJson","JSON","parse","decode","verifySignedJwtToken","verifyResult","toString"],"sources":["../../src/ops/JoseOps.test.ts"],"sourcesContent":["import * as Jose from './JoseOps';\nimport { parseUrl } from '../api/utils/ApiUtils';\nimport { v4 } from 'uuid';\nimport { isEqualJson } from './utils/OpsUtils';\nimport { decode } from '../api/utils/Base64';\n\ndescribe('JoseOps - createJWK()', () => {\n test('createJWK() 0: Method is implemented', async () => {\n expect(Jose.createJwkRsa).toBeDefined();\n });\n\n test('createJWK() 1: Create JWK with RSA key', async () => {\n const jwk = await Jose.createJwkRsa();\n expect(jwk).toBeTruthy();\n expect(jwk.kty).toBe('RSA');\n expect(jwk.alg).toBe('RS256');\n expect(jwk.kid).toBeTruthy();\n expect(jwk.d).toBeTruthy();\n expect(jwk.dp).toBeTruthy();\n expect(jwk.dq).toBeTruthy();\n expect(jwk.e).toBe('AQAB');\n expect(jwk.n).toBeTruthy();\n expect(jwk.p).toBeTruthy();\n expect(jwk.q).toBeTruthy();\n expect(jwk.qi).toBeTruthy();\n });\n});\n\ndescribe('JoseOps - getJwkRsaPublic()', () => {\n test('getJwkRsaPublic() 0: Method is implemented', async () => {\n expect(Jose.getJwkRsaPublic).toBeDefined();\n });\n\n test('getJwkRsaPublic() 1: Get JWK with RSA public key, only', async () => {\n const jwk = await Jose.createJwkRsa();\n const jwkPublic = await Jose.getJwkRsaPublic(jwk);\n expect(jwkPublic).toBeTruthy();\n expect(jwkPublic.kty).toBe('RSA');\n expect(jwkPublic.alg).toBe('RS256');\n expect(jwkPublic.kid).toBeTruthy();\n expect(jwkPublic['d']).toBeFalsy();\n expect(jwkPublic['dp']).toBeFalsy();\n expect(jwkPublic['dq']).toBeFalsy();\n expect(jwkPublic.e).toBe('AQAB');\n expect(jwkPublic.n).toBeTruthy();\n expect(jwkPublic['p']).toBeFalsy();\n expect(jwkPublic['q']).toBeFalsy();\n expect(jwkPublic['qi']).toBeFalsy();\n });\n});\n\ndescribe('JoseOps - createJwks()', () => {\n test('createJwks() 0: Method is implemented', async () => {\n expect(Jose.createJwks).toBeDefined();\n });\n\n test('createJwks() 1: Create JWKS with 1 key', async () => {\n const jwk = await Jose.createJwkRsa();\n const jwks = await Jose.createJwks(jwk);\n expect(jwks).toBeTruthy();\n expect(jwks.keys).toBeTruthy();\n expect(jwks.keys.length).toBe(1);\n });\n\n test('createJwks() 2: Create JWKS with 2 keys', async () => {\n const jwk1 = await Jose.createJwkRsa();\n const jwk2 = await Jose.createJwkRsa();\n const jwks = await Jose.createJwks(jwk1, jwk2);\n expect(jwks).toBeTruthy();\n expect(jwks.keys).toBeTruthy();\n expect(jwks.keys.length).toBe(2);\n });\n});\n\ndescribe('JoseOps - createSignedJwtToken()', () => {\n test('createSignedJwtToken() 0: Method is implemented', async () => {\n expect(Jose.createSignedJwtToken).toBeDefined();\n });\n\n test('createSignedJwtToken() 1: Create signed JWT', async () => {\n // The audience is the URL of the access token in the realm for client, and must include the port number\n const u = parseUrl('https://openam-svcaccts-final.forgeblocks.com/am');\n const aud = `${u.origin}:${\n u.port ? u.port : u.protocol === 'https' ? '443' : '80'\n }${u.pathname}/oauth2/access_token`;\n\n // Cross platform way of setting JWT expiry time 3 minutes in the future, expressed as number of seconds since EPOCH\n const exp = Math.floor(new Date().getTime() / 1000 + 180);\n\n // A unique ID for the JWT which is required when requesting the openid scope\n const jti = v4();\n\n const iss = '0de8d0d8-e423-41e8-9034-73883af90917';\n const sub = iss;\n\n // Create the payload for our bearer token\n const payload = {\n iss,\n sub,\n aud,\n exp,\n jti,\n };\n const jwk = await Jose.createJwkRsa();\n const jwt = await Jose.createSignedJwtToken(payload, jwk);\n expect(jwt).toBeTruthy();\n expect(jwt.split('.').length).toBe(3);\n expect(\n isEqualJson(JSON.parse(decode(jwt.split('.')[1])), payload)\n ).toBeTruthy();\n });\n});\n\ndescribe('JoseOps - verifySignedJwtToken()', () => {\n test('verifySignedJwtToken() 0: Method is implemented', async () => {\n expect(Jose.verifySignedJwtToken).toBeDefined();\n });\n\n test('verifySignedJwtToken() 1: Verify signed JWT', async () => {\n // The audience is the URL of the access token in the realm for client, and must include the port number\n const u = parseUrl('https://openam-svcaccts-final.forgeblocks.com/am');\n const aud = `${u.origin}:${\n u.port ? u.port : u.protocol === 'https' ? '443' : '80'\n }${u.pathname}/oauth2/access_token`;\n\n // Cross platform way of setting JWT expiry time 3 minutes in the future, expressed as number of seconds since EPOCH\n const exp = Math.floor(new Date().getTime() / 1000 + 180);\n\n // A unique ID for the JWT which is required when requesting the openid scope\n const jti = v4();\n\n const iss = '0de8d0d8-e423-41e8-9034-73883af90917';\n const sub = iss;\n\n // Create the payload for our bearer token\n const payload = {\n iss,\n sub,\n aud,\n exp,\n jti,\n };\n const jwk = await Jose.createJwkRsa();\n const jwt = await Jose.createSignedJwtToken(payload, jwk);\n expect(jwt).toBeTruthy();\n const jwkPublic = await Jose.getJwkRsaPublic(jwk);\n const verifyResult = await Jose.verifySignedJwtToken(jwt, jwkPublic);\n expect(\n isEqualJson(JSON.parse(verifyResult.payload.toString()), payload)\n ).toBeTruthy();\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"JoseOps.test.js","names":["_uuid","require","_OpsUtils","_Base","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interopRequireWildcard","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","Jose","createJwkRsa","toBeDefined","jwk","toBeTruthy","kty","toBe","alg","kid","d","dp","dq","e","n","p","q","qi","getJwkRsaPublic","jwkPublic","toBeFalsy","createJwks","jwks","keys","length","jwk1","jwk2","createSignedJwtToken","u","parseUrl","aud","concat","origin","port","protocol","pathname","exp","Math","floor","Date","getTime","jti","v4","iss","sub","payload","jwt","split","isEqualJson","JSON","parse","decode","verifySignedJwtToken","verifyResult","toString"],"sources":["../../src/ops/JoseOps.test.ts"],"sourcesContent":["import * as Jose from './JoseOps';\nimport { parseUrl } from '../api/utils/ApiUtils';\nimport { v4 } from 'uuid';\nimport { isEqualJson } from './utils/OpsUtils';\nimport { decode } from '../api/utils/Base64';\n\ndescribe('JoseOps - createJWK()', () => {\n test('createJWK() 0: Method is implemented', async () => {\n expect(Jose.createJwkRsa).toBeDefined();\n });\n\n test('createJWK() 1: Create JWK with RSA key', async () => {\n const jwk = await Jose.createJwkRsa();\n expect(jwk).toBeTruthy();\n expect(jwk.kty).toBe('RSA');\n expect(jwk.alg).toBe('RS256');\n expect(jwk.kid).toBeTruthy();\n expect(jwk.d).toBeTruthy();\n expect(jwk.dp).toBeTruthy();\n expect(jwk.dq).toBeTruthy();\n expect(jwk.e).toBe('AQAB');\n expect(jwk.n).toBeTruthy();\n expect(jwk.p).toBeTruthy();\n expect(jwk.q).toBeTruthy();\n expect(jwk.qi).toBeTruthy();\n });\n});\n\ndescribe('JoseOps - getJwkRsaPublic()', () => {\n test('getJwkRsaPublic() 0: Method is implemented', async () => {\n expect(Jose.getJwkRsaPublic).toBeDefined();\n });\n\n test('getJwkRsaPublic() 1: Get JWK with RSA public key, only', async () => {\n const jwk = await Jose.createJwkRsa();\n const jwkPublic = await Jose.getJwkRsaPublic(jwk);\n expect(jwkPublic).toBeTruthy();\n expect(jwkPublic.kty).toBe('RSA');\n expect(jwkPublic.alg).toBe('RS256');\n expect(jwkPublic.kid).toBeTruthy();\n expect(jwkPublic['d']).toBeFalsy();\n expect(jwkPublic['dp']).toBeFalsy();\n expect(jwkPublic['dq']).toBeFalsy();\n expect(jwkPublic.e).toBe('AQAB');\n expect(jwkPublic.n).toBeTruthy();\n expect(jwkPublic['p']).toBeFalsy();\n expect(jwkPublic['q']).toBeFalsy();\n expect(jwkPublic['qi']).toBeFalsy();\n });\n});\n\ndescribe('JoseOps - createJwks()', () => {\n test('createJwks() 0: Method is implemented', async () => {\n expect(Jose.createJwks).toBeDefined();\n });\n\n test('createJwks() 1: Create JWKS with 1 key', async () => {\n const jwk = await Jose.createJwkRsa();\n const jwks = await Jose.createJwks(jwk);\n expect(jwks).toBeTruthy();\n expect(jwks.keys).toBeTruthy();\n expect(jwks.keys.length).toBe(1);\n });\n\n test('createJwks() 2: Create JWKS with 2 keys', async () => {\n const jwk1 = await Jose.createJwkRsa();\n const jwk2 = await Jose.createJwkRsa();\n const jwks = await Jose.createJwks(jwk1, jwk2);\n expect(jwks).toBeTruthy();\n expect(jwks.keys).toBeTruthy();\n expect(jwks.keys.length).toBe(2);\n });\n});\n\ndescribe('JoseOps - createSignedJwtToken()', () => {\n test('createSignedJwtToken() 0: Method is implemented', async () => {\n expect(Jose.createSignedJwtToken).toBeDefined();\n });\n\n test('createSignedJwtToken() 1: Create signed JWT', async () => {\n // The audience is the URL of the access token in the realm for client, and must include the port number\n const u = parseUrl('https://openam-svcaccts-final.forgeblocks.com/am');\n const aud = `${u.origin}:${\n u.port ? u.port : u.protocol === 'https' ? '443' : '80'\n }${u.pathname}/oauth2/access_token`;\n\n // Cross platform way of setting JWT expiry time 3 minutes in the future, expressed as number of seconds since EPOCH\n const exp = Math.floor(new Date().getTime() / 1000 + 180);\n\n // A unique ID for the JWT which is required when requesting the openid scope\n const jti = v4();\n\n const iss = '0de8d0d8-e423-41e8-9034-73883af90917';\n const sub = iss;\n\n // Create the payload for our bearer token\n const payload = {\n iss,\n sub,\n aud,\n exp,\n jti,\n };\n const jwk = await Jose.createJwkRsa();\n const jwt = await Jose.createSignedJwtToken(payload, jwk);\n expect(jwt).toBeTruthy();\n expect(jwt.split('.').length).toBe(3);\n expect(\n isEqualJson(JSON.parse(decode(jwt.split('.')[1])), payload)\n ).toBeTruthy();\n });\n});\n\ndescribe('JoseOps - verifySignedJwtToken()', () => {\n test('verifySignedJwtToken() 0: Method is implemented', async () => {\n expect(Jose.verifySignedJwtToken).toBeDefined();\n });\n\n test('verifySignedJwtToken() 1: Verify signed JWT', async () => {\n // The audience is the URL of the access token in the realm for client, and must include the port number\n const u = parseUrl('https://openam-svcaccts-final.forgeblocks.com/am');\n const aud = `${u.origin}:${\n u.port ? u.port : u.protocol === 'https' ? '443' : '80'\n }${u.pathname}/oauth2/access_token`;\n\n // Cross platform way of setting JWT expiry time 3 minutes in the future, expressed as number of seconds since EPOCH\n const exp = Math.floor(new Date().getTime() / 1000 + 180);\n\n // A unique ID for the JWT which is required when requesting the openid scope\n const jti = v4();\n\n const iss = '0de8d0d8-e423-41e8-9034-73883af90917';\n const sub = iss;\n\n // Create the payload for our bearer token\n const payload = {\n iss,\n sub,\n aud,\n exp,\n jti,\n };\n const jwk = await Jose.createJwkRsa();\n const jwt = await Jose.createSignedJwtToken(payload, jwk);\n expect(jwt).toBeTruthy();\n const jwkPublic = await Jose.getJwkRsaPublic(jwk);\n const verifyResult = await Jose.verifySignedJwtToken(jwt, jwkPublic);\n expect(\n isEqualJson(JSON.parse(verifyResult.payload.toString()), payload)\n ).toBeTruthy();\n });\n});\n"],"mappings":"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"}