@edumalin/identity 3.0.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 (322) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +3 -0
  3. package/dist/cjs/client/index.d.ts +1 -0
  4. package/dist/cjs/client/index.js +2 -0
  5. package/dist/cjs/error/invalid-identity-external-id-error-properties.d.ts +3 -0
  6. package/dist/cjs/error/invalid-identity-external-id-error-properties.js +2 -0
  7. package/dist/cjs/error/invalid-identity-id-error-properties.d.ts +3 -0
  8. package/dist/cjs/error/invalid-identity-id-error-properties.js +2 -0
  9. package/dist/cjs/error/invalid-identity-provider-id-error-properties.d.ts +3 -0
  10. package/dist/cjs/error/invalid-identity-provider-id-error-properties.js +2 -0
  11. package/dist/cjs/error/invalid-identity-provider-type-code-error-properties.d.ts +3 -0
  12. package/dist/cjs/error/invalid-identity-provider-type-code-error-properties.js +2 -0
  13. package/dist/cjs/identity/external-id/as-identity-external-id.d.ts +2 -0
  14. package/dist/cjs/identity/external-id/as-identity-external-id.js +8 -0
  15. package/dist/cjs/identity/external-id/identity-external-id.d.ts +3 -0
  16. package/dist/cjs/identity/external-id/identity-external-id.js +2 -0
  17. package/dist/cjs/identity/external-id/is-identity-external-id.d.ts +2 -0
  18. package/dist/cjs/identity/external-id/is-identity-external-id.js +6 -0
  19. package/dist/cjs/identity/external-id/validate-identity-external-id.d.ts +2 -0
  20. package/dist/cjs/identity/external-id/validate-identity-external-id.js +10 -0
  21. package/dist/cjs/identity/id/as-identity-id.d.ts +2 -0
  22. package/dist/cjs/identity/id/as-identity-id.js +8 -0
  23. package/dist/cjs/identity/id/generate-identity-id.d.ts +2 -0
  24. package/dist/cjs/identity/id/generate-identity-id.js +9 -0
  25. package/dist/cjs/identity/id/identity-id.d.ts +4 -0
  26. package/dist/cjs/identity/id/identity-id.js +2 -0
  27. package/dist/cjs/identity/id/is-identity-id.d.ts +2 -0
  28. package/dist/cjs/identity/id/is-identity-id.js +7 -0
  29. package/dist/cjs/identity/id/validate-identity-id.d.ts +2 -0
  30. package/dist/cjs/identity/id/validate-identity-id.js +10 -0
  31. package/dist/cjs/identity/identity.d.ts +11 -0
  32. package/dist/cjs/identity/identity.js +2 -0
  33. package/dist/cjs/identity-provider/base-identity-provider.d.ts +12 -0
  34. package/dist/cjs/identity-provider/base-identity-provider.js +2 -0
  35. package/dist/cjs/identity-provider/cas-identity-provider.d.ts +12 -0
  36. package/dist/cjs/identity-provider/cas-identity-provider.js +2 -0
  37. package/dist/cjs/identity-provider/id/as-identity-provider-id.d.ts +2 -0
  38. package/dist/cjs/identity-provider/id/as-identity-provider-id.js +8 -0
  39. package/dist/cjs/identity-provider/id/generate-identity-provider-id.d.ts +2 -0
  40. package/dist/cjs/identity-provider/id/generate-identity-provider-id.js +9 -0
  41. package/dist/cjs/identity-provider/id/identity-provider-id.d.ts +4 -0
  42. package/dist/cjs/identity-provider/id/identity-provider-id.js +2 -0
  43. package/dist/cjs/identity-provider/id/is-identity-provider-id.d.ts +2 -0
  44. package/dist/cjs/identity-provider/id/is-identity-provider-id.js +7 -0
  45. package/dist/cjs/identity-provider/id/validate-identity-provider-id.d.ts +2 -0
  46. package/dist/cjs/identity-provider/id/validate-identity-provider-id.js +10 -0
  47. package/dist/cjs/identity-provider/identity-provider-attribute-map-mapping.d.ts +9 -0
  48. package/dist/cjs/identity-provider/identity-provider-attribute-map-mapping.js +2 -0
  49. package/dist/cjs/identity-provider/identity-provider-attribute-map.d.ts +16 -0
  50. package/dist/cjs/identity-provider/identity-provider-attribute-map.js +2 -0
  51. package/dist/cjs/identity-provider/identity-provider.d.ts +5 -0
  52. package/dist/cjs/identity-provider/identity-provider.js +2 -0
  53. package/dist/cjs/identity-provider/oidc-identity-provider.d.ts +11 -0
  54. package/dist/cjs/identity-provider/oidc-identity-provider.js +2 -0
  55. package/dist/cjs/identity-provider/platform-identity-provider.d.ts +7 -0
  56. package/dist/cjs/identity-provider/platform-identity-provider.js +2 -0
  57. package/dist/cjs/identity-provider/saml-identity-provider.d.ts +7 -0
  58. package/dist/cjs/identity-provider/saml-identity-provider.js +2 -0
  59. package/dist/cjs/identity-provider-type/code/as-identity-provider-type-code.d.ts +2 -0
  60. package/dist/cjs/identity-provider-type/code/as-identity-provider-type-code.js +8 -0
  61. package/dist/cjs/identity-provider-type/code/identity-provider-type-code.d.ts +2 -0
  62. package/dist/cjs/identity-provider-type/code/identity-provider-type-code.js +2 -0
  63. package/dist/cjs/identity-provider-type/code/identity-provider-type-codes.d.ts +1 -0
  64. package/dist/cjs/identity-provider-type/code/identity-provider-type-codes.js +4 -0
  65. package/dist/cjs/identity-provider-type/code/is-identity-provider-type-code.d.ts +2 -0
  66. package/dist/cjs/identity-provider-type/code/is-identity-provider-type-code.js +8 -0
  67. package/dist/cjs/identity-provider-type/code/validate-identity-provider-type-code.d.ts +2 -0
  68. package/dist/cjs/identity-provider-type/code/validate-identity-provider-type-code.js +10 -0
  69. package/dist/cjs/identity-provider-type/identity-provider-type.d.ts +6 -0
  70. package/dist/cjs/identity-provider-type/identity-provider-type.js +2 -0
  71. package/dist/cjs/identity.domain.d.ts +1 -0
  72. package/dist/cjs/identity.domain.js +5 -0
  73. package/dist/cjs/identity.error.d.ts +1 -0
  74. package/dist/cjs/identity.error.js +6 -0
  75. package/dist/cjs/index.d.ts +12 -0
  76. package/dist/cjs/index.js +7 -0
  77. package/dist/cjs/testing/create-test-base-identity-provider.d.ts +3 -0
  78. package/dist/cjs/testing/create-test-base-identity-provider.js +21 -0
  79. package/dist/cjs/testing/create-test-cas-identity-provider.d.ts +3 -0
  80. package/dist/cjs/testing/create-test-cas-identity-provider.js +22 -0
  81. package/dist/cjs/testing/create-test-identity-provider-attribute-map-mapping.d.ts +3 -0
  82. package/dist/cjs/testing/create-test-identity-provider-attribute-map-mapping.js +8 -0
  83. package/dist/cjs/testing/create-test-identity-provider-attribute-map.d.ts +3 -0
  84. package/dist/cjs/testing/create-test-identity-provider-attribute-map.js +30 -0
  85. package/dist/cjs/testing/create-test-identity-provider-type.d.ts +3 -0
  86. package/dist/cjs/testing/create-test-identity-provider-type.js +16 -0
  87. package/dist/cjs/testing/create-test-identity-provider.d.ts +3 -0
  88. package/dist/cjs/testing/create-test-identity-provider.js +24 -0
  89. package/dist/cjs/testing/create-test-identity.d.ts +3 -0
  90. package/dist/cjs/testing/create-test-identity.js +20 -0
  91. package/dist/cjs/testing/create-test-oidc-identity-provider.d.ts +3 -0
  92. package/dist/cjs/testing/create-test-oidc-identity-provider.js +23 -0
  93. package/dist/cjs/testing/create-test-platform-identity-provider.d.ts +3 -0
  94. package/dist/cjs/testing/create-test-platform-identity-provider.js +15 -0
  95. package/dist/cjs/testing/create-test-saml-identity-provider.d.ts +3 -0
  96. package/dist/cjs/testing/create-test-saml-identity-provider.js +15 -0
  97. package/dist/cjs/testing/index.d.ts +10 -0
  98. package/dist/cjs/testing/index.js +23 -0
  99. package/dist/esm/client/index.d.ts +1 -0
  100. package/dist/esm/client/index.js +1 -0
  101. package/dist/esm/error/invalid-identity-external-id-error-properties.d.ts +3 -0
  102. package/dist/esm/error/invalid-identity-external-id-error-properties.js +1 -0
  103. package/dist/esm/error/invalid-identity-id-error-properties.d.ts +3 -0
  104. package/dist/esm/error/invalid-identity-id-error-properties.js +1 -0
  105. package/dist/esm/error/invalid-identity-provider-id-error-properties.d.ts +3 -0
  106. package/dist/esm/error/invalid-identity-provider-id-error-properties.js +1 -0
  107. package/dist/esm/error/invalid-identity-provider-type-code-error-properties.d.ts +3 -0
  108. package/dist/esm/error/invalid-identity-provider-type-code-error-properties.js +1 -0
  109. package/dist/esm/identity/external-id/as-identity-external-id.d.ts +2 -0
  110. package/dist/esm/identity/external-id/as-identity-external-id.js +5 -0
  111. package/dist/esm/identity/external-id/identity-external-id.d.ts +3 -0
  112. package/dist/esm/identity/external-id/identity-external-id.js +1 -0
  113. package/dist/esm/identity/external-id/is-identity-external-id.d.ts +2 -0
  114. package/dist/esm/identity/external-id/is-identity-external-id.js +3 -0
  115. package/dist/esm/identity/external-id/validate-identity-external-id.d.ts +2 -0
  116. package/dist/esm/identity/external-id/validate-identity-external-id.js +7 -0
  117. package/dist/esm/identity/id/as-identity-id.d.ts +2 -0
  118. package/dist/esm/identity/id/as-identity-id.js +5 -0
  119. package/dist/esm/identity/id/generate-identity-id.d.ts +2 -0
  120. package/dist/esm/identity/id/generate-identity-id.js +6 -0
  121. package/dist/esm/identity/id/identity-id.d.ts +4 -0
  122. package/dist/esm/identity/id/identity-id.js +1 -0
  123. package/dist/esm/identity/id/is-identity-id.d.ts +2 -0
  124. package/dist/esm/identity/id/is-identity-id.js +4 -0
  125. package/dist/esm/identity/id/validate-identity-id.d.ts +2 -0
  126. package/dist/esm/identity/id/validate-identity-id.js +7 -0
  127. package/dist/esm/identity/identity.d.ts +11 -0
  128. package/dist/esm/identity/identity.js +1 -0
  129. package/dist/esm/identity-provider/base-identity-provider.d.ts +12 -0
  130. package/dist/esm/identity-provider/base-identity-provider.js +1 -0
  131. package/dist/esm/identity-provider/cas-identity-provider.d.ts +12 -0
  132. package/dist/esm/identity-provider/cas-identity-provider.js +1 -0
  133. package/dist/esm/identity-provider/id/as-identity-provider-id.d.ts +2 -0
  134. package/dist/esm/identity-provider/id/as-identity-provider-id.js +5 -0
  135. package/dist/esm/identity-provider/id/generate-identity-provider-id.d.ts +2 -0
  136. package/dist/esm/identity-provider/id/generate-identity-provider-id.js +6 -0
  137. package/dist/esm/identity-provider/id/identity-provider-id.d.ts +4 -0
  138. package/dist/esm/identity-provider/id/identity-provider-id.js +1 -0
  139. package/dist/esm/identity-provider/id/is-identity-provider-id.d.ts +2 -0
  140. package/dist/esm/identity-provider/id/is-identity-provider-id.js +4 -0
  141. package/dist/esm/identity-provider/id/validate-identity-provider-id.d.ts +2 -0
  142. package/dist/esm/identity-provider/id/validate-identity-provider-id.js +7 -0
  143. package/dist/esm/identity-provider/identity-provider-attribute-map-mapping.d.ts +9 -0
  144. package/dist/esm/identity-provider/identity-provider-attribute-map-mapping.js +1 -0
  145. package/dist/esm/identity-provider/identity-provider-attribute-map.d.ts +16 -0
  146. package/dist/esm/identity-provider/identity-provider-attribute-map.js +1 -0
  147. package/dist/esm/identity-provider/identity-provider.d.ts +5 -0
  148. package/dist/esm/identity-provider/identity-provider.js +1 -0
  149. package/dist/esm/identity-provider/oidc-identity-provider.d.ts +11 -0
  150. package/dist/esm/identity-provider/oidc-identity-provider.js +1 -0
  151. package/dist/esm/identity-provider/platform-identity-provider.d.ts +7 -0
  152. package/dist/esm/identity-provider/platform-identity-provider.js +1 -0
  153. package/dist/esm/identity-provider/saml-identity-provider.d.ts +7 -0
  154. package/dist/esm/identity-provider/saml-identity-provider.js +1 -0
  155. package/dist/esm/identity-provider-type/code/as-identity-provider-type-code.d.ts +2 -0
  156. package/dist/esm/identity-provider-type/code/as-identity-provider-type-code.js +5 -0
  157. package/dist/esm/identity-provider-type/code/identity-provider-type-code.d.ts +2 -0
  158. package/dist/esm/identity-provider-type/code/identity-provider-type-code.js +1 -0
  159. package/dist/esm/identity-provider-type/code/identity-provider-type-codes.d.ts +1 -0
  160. package/dist/esm/identity-provider-type/code/identity-provider-type-codes.js +1 -0
  161. package/dist/esm/identity-provider-type/code/is-identity-provider-type-code.d.ts +2 -0
  162. package/dist/esm/identity-provider-type/code/is-identity-provider-type-code.js +5 -0
  163. package/dist/esm/identity-provider-type/code/validate-identity-provider-type-code.d.ts +2 -0
  164. package/dist/esm/identity-provider-type/code/validate-identity-provider-type-code.js +7 -0
  165. package/dist/esm/identity-provider-type/identity-provider-type.d.ts +6 -0
  166. package/dist/esm/identity-provider-type/identity-provider-type.js +1 -0
  167. package/dist/esm/identity.domain.d.ts +1 -0
  168. package/dist/esm/identity.domain.js +2 -0
  169. package/dist/esm/identity.error.d.ts +1 -0
  170. package/dist/esm/identity.error.js +3 -0
  171. package/dist/esm/index.d.ts +12 -0
  172. package/dist/esm/index.js +2 -0
  173. package/dist/esm/testing/create-test-base-identity-provider.d.ts +3 -0
  174. package/dist/esm/testing/create-test-base-identity-provider.js +18 -0
  175. package/dist/esm/testing/create-test-cas-identity-provider.d.ts +3 -0
  176. package/dist/esm/testing/create-test-cas-identity-provider.js +19 -0
  177. package/dist/esm/testing/create-test-identity-provider-attribute-map-mapping.d.ts +3 -0
  178. package/dist/esm/testing/create-test-identity-provider-attribute-map-mapping.js +5 -0
  179. package/dist/esm/testing/create-test-identity-provider-attribute-map.d.ts +3 -0
  180. package/dist/esm/testing/create-test-identity-provider-attribute-map.js +27 -0
  181. package/dist/esm/testing/create-test-identity-provider-type.d.ts +3 -0
  182. package/dist/esm/testing/create-test-identity-provider-type.js +13 -0
  183. package/dist/esm/testing/create-test-identity-provider.d.ts +3 -0
  184. package/dist/esm/testing/create-test-identity-provider.js +21 -0
  185. package/dist/esm/testing/create-test-identity.d.ts +3 -0
  186. package/dist/esm/testing/create-test-identity.js +17 -0
  187. package/dist/esm/testing/create-test-oidc-identity-provider.d.ts +3 -0
  188. package/dist/esm/testing/create-test-oidc-identity-provider.js +20 -0
  189. package/dist/esm/testing/create-test-platform-identity-provider.d.ts +3 -0
  190. package/dist/esm/testing/create-test-platform-identity-provider.js +12 -0
  191. package/dist/esm/testing/create-test-saml-identity-provider.d.ts +3 -0
  192. package/dist/esm/testing/create-test-saml-identity-provider.js +12 -0
  193. package/dist/esm/testing/index.d.ts +10 -0
  194. package/dist/esm/testing/index.js +10 -0
  195. package/dist/types/client/index.d.ts +2 -0
  196. package/dist/types/client/index.d.ts.map +1 -0
  197. package/dist/types/error/invalid-identity-external-id-error-properties.d.ts +7 -0
  198. package/dist/types/error/invalid-identity-external-id-error-properties.d.ts.map +1 -0
  199. package/dist/types/error/invalid-identity-id-error-properties.d.ts +10 -0
  200. package/dist/types/error/invalid-identity-id-error-properties.d.ts.map +1 -0
  201. package/dist/types/error/invalid-identity-provider-id-error-properties.d.ts +10 -0
  202. package/dist/types/error/invalid-identity-provider-id-error-properties.d.ts.map +1 -0
  203. package/dist/types/error/invalid-identity-provider-type-code-error-properties.d.ts +10 -0
  204. package/dist/types/error/invalid-identity-provider-type-code-error-properties.d.ts.map +1 -0
  205. package/dist/types/identity/external-id/as-identity-external-id.d.ts +9 -0
  206. package/dist/types/identity/external-id/as-identity-external-id.d.ts.map +1 -0
  207. package/dist/types/identity/external-id/identity-external-id.d.ts +7 -0
  208. package/dist/types/identity/external-id/identity-external-id.d.ts.map +1 -0
  209. package/dist/types/identity/external-id/is-identity-external-id.d.ts +9 -0
  210. package/dist/types/identity/external-id/is-identity-external-id.d.ts.map +1 -0
  211. package/dist/types/identity/external-id/validate-identity-external-id.d.ts +8 -0
  212. package/dist/types/identity/external-id/validate-identity-external-id.d.ts.map +1 -0
  213. package/dist/types/identity/id/as-identity-id.d.ts +9 -0
  214. package/dist/types/identity/id/as-identity-id.d.ts.map +1 -0
  215. package/dist/types/identity/id/generate-identity-id.d.ts +8 -0
  216. package/dist/types/identity/id/generate-identity-id.d.ts.map +1 -0
  217. package/dist/types/identity/id/identity-id.d.ts +8 -0
  218. package/dist/types/identity/id/identity-id.d.ts.map +1 -0
  219. package/dist/types/identity/id/is-identity-id.d.ts +9 -0
  220. package/dist/types/identity/id/is-identity-id.d.ts.map +1 -0
  221. package/dist/types/identity/id/validate-identity-id.d.ts +8 -0
  222. package/dist/types/identity/id/validate-identity-id.d.ts.map +1 -0
  223. package/dist/types/identity/identity.d.ts +36 -0
  224. package/dist/types/identity/identity.d.ts.map +1 -0
  225. package/dist/types/identity-provider/base-identity-provider.d.ts +31 -0
  226. package/dist/types/identity-provider/base-identity-provider.d.ts.map +1 -0
  227. package/dist/types/identity-provider/cas-identity-provider.d.ts +31 -0
  228. package/dist/types/identity-provider/cas-identity-provider.d.ts.map +1 -0
  229. package/dist/types/identity-provider/id/as-identity-provider-id.d.ts +9 -0
  230. package/dist/types/identity-provider/id/as-identity-provider-id.d.ts.map +1 -0
  231. package/dist/types/identity-provider/id/generate-identity-provider-id.d.ts +8 -0
  232. package/dist/types/identity-provider/id/generate-identity-provider-id.d.ts.map +1 -0
  233. package/dist/types/identity-provider/id/identity-provider-id.d.ts +8 -0
  234. package/dist/types/identity-provider/id/identity-provider-id.d.ts.map +1 -0
  235. package/dist/types/identity-provider/id/is-identity-provider-id.d.ts +9 -0
  236. package/dist/types/identity-provider/id/is-identity-provider-id.d.ts.map +1 -0
  237. package/dist/types/identity-provider/id/validate-identity-provider-id.d.ts +8 -0
  238. package/dist/types/identity-provider/id/validate-identity-provider-id.d.ts.map +1 -0
  239. package/dist/types/identity-provider/identity-provider-attribute-map-mapping.d.ts +28 -0
  240. package/dist/types/identity-provider/identity-provider-attribute-map-mapping.d.ts.map +1 -0
  241. package/dist/types/identity-provider/identity-provider-attribute-map.d.ts +61 -0
  242. package/dist/types/identity-provider/identity-provider-attribute-map.d.ts.map +1 -0
  243. package/dist/types/identity-provider/identity-provider.d.ts +9 -0
  244. package/dist/types/identity-provider/identity-provider.d.ts.map +1 -0
  245. package/dist/types/identity-provider/oidc-identity-provider.d.ts +30 -0
  246. package/dist/types/identity-provider/oidc-identity-provider.d.ts.map +1 -0
  247. package/dist/types/identity-provider/platform-identity-provider.d.ts +14 -0
  248. package/dist/types/identity-provider/platform-identity-provider.d.ts.map +1 -0
  249. package/dist/types/identity-provider/saml-identity-provider.d.ts +14 -0
  250. package/dist/types/identity-provider/saml-identity-provider.d.ts.map +1 -0
  251. package/dist/types/identity-provider-type/code/as-identity-provider-type-code.d.ts +9 -0
  252. package/dist/types/identity-provider-type/code/as-identity-provider-type-code.d.ts.map +1 -0
  253. package/dist/types/identity-provider-type/code/identity-provider-type-code.d.ts +6 -0
  254. package/dist/types/identity-provider-type/code/identity-provider-type-code.d.ts.map +1 -0
  255. package/dist/types/identity-provider-type/code/identity-provider-type-codes.d.ts +5 -0
  256. package/dist/types/identity-provider-type/code/identity-provider-type-codes.d.ts.map +1 -0
  257. package/dist/types/identity-provider-type/code/is-identity-provider-type-code.d.ts +9 -0
  258. package/dist/types/identity-provider-type/code/is-identity-provider-type-code.d.ts.map +1 -0
  259. package/dist/types/identity-provider-type/code/validate-identity-provider-type-code.d.ts +8 -0
  260. package/dist/types/identity-provider-type/code/validate-identity-provider-type-code.d.ts.map +1 -0
  261. package/dist/types/identity-provider-type/identity-provider-type.d.ts +16 -0
  262. package/dist/types/identity-provider-type/identity-provider-type.d.ts.map +1 -0
  263. package/dist/types/identity.domain.d.ts +5 -0
  264. package/dist/types/identity.domain.d.ts.map +1 -0
  265. package/dist/types/identity.error.d.ts +5 -0
  266. package/dist/types/identity.error.d.ts.map +1 -0
  267. package/dist/types/index.d.ts +13 -0
  268. package/dist/types/index.d.ts.map +1 -0
  269. package/dist/types/testing/create-test-base-identity-provider.d.ts +10 -0
  270. package/dist/types/testing/create-test-base-identity-provider.d.ts.map +1 -0
  271. package/dist/types/testing/create-test-cas-identity-provider.d.ts +10 -0
  272. package/dist/types/testing/create-test-cas-identity-provider.d.ts.map +1 -0
  273. package/dist/types/testing/create-test-identity-provider-attribute-map-mapping.d.ts +10 -0
  274. package/dist/types/testing/create-test-identity-provider-attribute-map-mapping.d.ts.map +1 -0
  275. package/dist/types/testing/create-test-identity-provider-attribute-map.d.ts +10 -0
  276. package/dist/types/testing/create-test-identity-provider-attribute-map.d.ts.map +1 -0
  277. package/dist/types/testing/create-test-identity-provider-type.d.ts +10 -0
  278. package/dist/types/testing/create-test-identity-provider-type.d.ts.map +1 -0
  279. package/dist/types/testing/create-test-identity-provider.d.ts +10 -0
  280. package/dist/types/testing/create-test-identity-provider.d.ts.map +1 -0
  281. package/dist/types/testing/create-test-identity.d.ts +10 -0
  282. package/dist/types/testing/create-test-identity.d.ts.map +1 -0
  283. package/dist/types/testing/create-test-oidc-identity-provider.d.ts +10 -0
  284. package/dist/types/testing/create-test-oidc-identity-provider.d.ts.map +1 -0
  285. package/dist/types/testing/create-test-platform-identity-provider.d.ts +10 -0
  286. package/dist/types/testing/create-test-platform-identity-provider.d.ts.map +1 -0
  287. package/dist/types/testing/create-test-saml-identity-provider.d.ts +10 -0
  288. package/dist/types/testing/create-test-saml-identity-provider.d.ts.map +1 -0
  289. package/dist/types/testing/index.d.ts +11 -0
  290. package/dist/types/testing/index.d.ts.map +1 -0
  291. package/package.json +82 -0
  292. package/src/client/index.ts +1 -0
  293. package/src/identity/identity.ts +36 -0
  294. package/src/identity-provider/base-identity-provider.ts +32 -0
  295. package/src/identity-provider/cas-identity-provider.ts +30 -0
  296. package/src/identity-provider/identity-provider-attribute-map-mapping.ts +30 -0
  297. package/src/identity-provider/identity-provider-attribute-map.ts +61 -0
  298. package/src/identity-provider/identity-provider.ts +13 -0
  299. package/src/identity-provider/oidc-identity-provider.ts +28 -0
  300. package/src/identity-provider/platform-identity-provider.ts +12 -0
  301. package/src/identity-provider/saml-identity-provider.ts +12 -0
  302. package/src/identity-provider-type/identity-provider-type.ts +16 -0
  303. package/src/identity.domain.ts +6 -0
  304. package/src/identity.error.ts +8 -0
  305. package/src/index.ts +12 -0
  306. package/src/testing/create-test-base-identity-provider.ts +32 -0
  307. package/src/testing/create-test-cas-identity-provider.ts +33 -0
  308. package/src/testing/create-test-identity-provider-attribute-map-mapping.ts +18 -0
  309. package/src/testing/create-test-identity-provider-attribute-map.ts +40 -0
  310. package/src/testing/create-test-identity-provider-type.ts +25 -0
  311. package/src/testing/create-test-identity-provider.ts +38 -0
  312. package/src/testing/create-test-identity.ts +30 -0
  313. package/src/testing/create-test-oidc-identity-provider.ts +33 -0
  314. package/src/testing/create-test-platform-identity-provider.ts +25 -0
  315. package/src/testing/create-test-saml-identity-provider.ts +25 -0
  316. package/src/testing/index.ts +10 -0
  317. package/src/tsconfig.base.json +15 -0
  318. package/src/tsconfig.cjs.json +8 -0
  319. package/src/tsconfig.esm.json +8 -0
  320. package/src/tsconfig.spec.json +9 -0
  321. package/src/tsconfig.types.json +13 -0
  322. package/tsconfig.json +37 -0
package/package.json ADDED
@@ -0,0 +1,82 @@
1
+ {
2
+ "name": "@edumalin/identity",
3
+ "version": "3.0.0",
4
+ "description": "Types and client for the Edumalin identity API",
5
+ "keywords": [
6
+ "Edumalin",
7
+ "api",
8
+ "identity"
9
+ ],
10
+ "author": "Edumalin <dev@edumalin.com>",
11
+ "contributors": [],
12
+ "homepage": "https://developer.edumalin.com",
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "https://github.com/edumalin/edumalin.git",
16
+ "directory": "node/modules/identity"
17
+ },
18
+ "bugs": {
19
+ "url": "https://github.com/edumalin/edumalin/issues"
20
+ },
21
+ "main": "./dist/cjs/index.js",
22
+ "module": "./dist/esm/index.js",
23
+ "types": "./dist/types/index.d.ts",
24
+ "exports": {
25
+ ".": {
26
+ "types": "./dist/types/index.d.ts",
27
+ "node": "./dist/cjs/index.js",
28
+ "require": "./dist/cjs/index.js",
29
+ "default": "./dist/esm/index.js"
30
+ },
31
+ "./client": {
32
+ "types": "./dist/types/client/index.d.ts",
33
+ "node": "./dist/cjs/client/index.js",
34
+ "require": "./dist/cjs/client/index.js",
35
+ "default": "./dist/esm/client/index.js"
36
+ },
37
+ "./testing": {
38
+ "types": "./dist/types/testing/index.d.ts",
39
+ "node": "./dist/cjs/testing/index.js",
40
+ "require": "./dist/cjs/testing/index.js",
41
+ "default": "./dist/esm/testing/index.js"
42
+ },
43
+ "./package.json": "./package.json"
44
+ },
45
+ "typesVersions": {
46
+ "*": {
47
+ "client": [
48
+ "dist/types/client/index.d.ts"
49
+ ],
50
+ "testing": [
51
+ "dist/types/testing/index.d.ts"
52
+ ]
53
+ }
54
+ },
55
+ "files": [
56
+ "dist/cjs/**/!(*.tsbuildinfo)",
57
+ "dist/esm/**/!(*.tsbuildinfo)",
58
+ "dist/types/**/!(*.tsbuildinfo)",
59
+ "src",
60
+ "LICENSE.md",
61
+ "package.json",
62
+ "README.md",
63
+ "tsconfig.json"
64
+ ],
65
+ "sideEffects": false,
66
+ "dependencies": {
67
+ "@edumalin/id": "3.0.0",
68
+ "@edumalin/platform": "3.0.0"
69
+ },
70
+ "devDependencies": {},
71
+ "peerDependencies": {
72
+ "rxjs": "^7.8.2",
73
+ "temporal-polyfill": "^0.3.0"
74
+ },
75
+ "optionalDependencies": {},
76
+ "scripts": {
77
+ "compile": "tsc -b ./src/tsconfig.cjs.json ./src/tsconfig.esm.json ./src/tsconfig.types.json",
78
+ "lint": "oxlint .",
79
+ "test": "vitest run",
80
+ "test:serve": "vitest"
81
+ }
82
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,36 @@
1
+ import { type IdentityId } from '@edumalin/id';
2
+ import { type UrlString } from '@edumalin/platform/url';
3
+
4
+ /**
5
+ * Identity
6
+ */
7
+ export interface Identity {
8
+ /**
9
+ * Email address
10
+ */
11
+ readonly email?: string;
12
+ /**
13
+ * Gender
14
+ */
15
+ readonly gender?: 'M' | 'F';
16
+ /**
17
+ * Given name
18
+ */
19
+ readonly givenName: string;
20
+ /**
21
+ * Identity identifier
22
+ */
23
+ readonly identityId: IdentityId;
24
+ /**
25
+ * Profile picture URL
26
+ */
27
+ readonly profilePictureUrl?: UrlString;
28
+ /**
29
+ * true when the identity information is redacted
30
+ */
31
+ readonly redacted?: true;
32
+ /**
33
+ * Surname
34
+ */
35
+ readonly surname: string;
36
+ }
@@ -0,0 +1,32 @@
1
+ import { type IdentityProviderId } from '@edumalin/id';
2
+ import { type I18nString } from '@edumalin/platform/i18n';
3
+ import { type UrlString } from '@edumalin/platform/url';
4
+
5
+ import { type IdentityProviderType } from '../identity-provider-type/identity-provider-type.js';
6
+ import { type IdentityProviderAttributeMap } from './identity-provider-attribute-map.js';
7
+
8
+ /**
9
+ * Base identity provider
10
+ */
11
+ export interface BaseIdentityProvider {
12
+ /**
13
+ * Attribute map
14
+ */
15
+ readonly attributeMap?: IdentityProviderAttributeMap;
16
+ /**
17
+ * Identity provider identifier
18
+ */
19
+ readonly identityProviderId: IdentityProviderId;
20
+ /**
21
+ * Identity provider name
22
+ */
23
+ readonly identityProviderName?: I18nString;
24
+ /**
25
+ * Identity provider type
26
+ */
27
+ readonly identityProviderType?: IdentityProviderType;
28
+ /**
29
+ * Service URL
30
+ */
31
+ readonly serviceUrl?: UrlString;
32
+ }
@@ -0,0 +1,30 @@
1
+ import { type UrlString } from '@edumalin/platform/url';
2
+
3
+ import { type IdentityProviderType } from '../identity-provider-type/identity-provider-type.js';
4
+ import { type BaseIdentityProvider } from './base-identity-provider.js';
5
+
6
+ /**
7
+ * CAS identity provider
8
+ */
9
+ export interface CasIdentityProvider extends BaseIdentityProvider {
10
+ /**
11
+ * Attribute map expression prefix
12
+ */
13
+ readonly attributeMapExpressionPrefix?: string;
14
+ /**
15
+ * Authorization URL
16
+ */
17
+ readonly authorizationUrl?: UrlString;
18
+ /**
19
+ * Identity provider type
20
+ */
21
+ readonly identityProviderType: IdentityProviderType & { readonly identityProviderTypeCode: 'cas' };
22
+ /**
23
+ * Protocol version
24
+ */
25
+ readonly protocolVersion: '2.0' | '3.0';
26
+ /**
27
+ * Validation service URL
28
+ */
29
+ readonly validationServiceUrl?: UrlString;
30
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Identity provider attribute map mapping
3
+ */
4
+ export type IdentityProviderAttributeMapMapping =
5
+ | {
6
+ /**
7
+ * Constant
8
+ */
9
+ readonly constant: string;
10
+ /**
11
+ * Mapping type
12
+ */
13
+ readonly mappingType: 'constant';
14
+ }
15
+ | {
16
+ /**
17
+ * mapping type
18
+ */
19
+ readonly mappingType: 'disabled';
20
+ }
21
+ | {
22
+ /**
23
+ * Mapping type
24
+ */
25
+ readonly mappingType: 'path';
26
+ /**
27
+ * Path
28
+ */
29
+ readonly path: string;
30
+ };
@@ -0,0 +1,61 @@
1
+ import { type IdentityProviderAttributeMapMapping } from './identity-provider-attribute-map-mapping.js';
2
+
3
+ /**
4
+ * Identity provider attribute map
5
+ *
6
+ * Provides a mapping mechanism for each identity attribute
7
+ */
8
+ export interface IdentityProviderAttributeMap {
9
+ /**
10
+ * Class names
11
+ */
12
+ readonly classNames?: IdentityProviderAttributeMapMapping;
13
+ /**
14
+ * Email address
15
+ */
16
+ readonly email?: IdentityProviderAttributeMapMapping;
17
+ /**
18
+ * Establishment code
19
+ */
20
+ readonly establishmentCode?: IdentityProviderAttributeMapMapping;
21
+ /**
22
+ * Establishment identifier
23
+ */
24
+ readonly establishmentId?: IdentityProviderAttributeMapMapping;
25
+ /**
26
+ * External user identifier
27
+ */
28
+ readonly externalUserId?: IdentityProviderAttributeMapMapping;
29
+ /**
30
+ * Given name
31
+ */
32
+ readonly givenName?: IdentityProviderAttributeMapMapping;
33
+ /**
34
+ * Group names
35
+ */
36
+ readonly groupNames?: IdentityProviderAttributeMapMapping;
37
+ /**
38
+ * Identity name (given name and surname as a single value)
39
+ */
40
+ readonly identityName?: IdentityProviderAttributeMapMapping;
41
+ /**
42
+ * Whether the user is a headmaster
43
+ */
44
+ readonly isHeadmaster?: IdentityProviderAttributeMapMapping;
45
+ /**
46
+ * Whether the user is a parent
47
+ */
48
+ readonly isParent?: IdentityProviderAttributeMapMapping;
49
+ /**
50
+ * Whether the user is a student
51
+ */
52
+ readonly isStudent?: IdentityProviderAttributeMapMapping;
53
+ /**
54
+ * Whether the user is a teacher
55
+ */
56
+ readonly isTeacher?: IdentityProviderAttributeMapMapping;
57
+ /**
58
+ * Surname
59
+ */
60
+ readonly surname?: IdentityProviderAttributeMapMapping;
61
+ }
@@ -0,0 +1,13 @@
1
+ import { type CasIdentityProvider } from './cas-identity-provider.js';
2
+ import { type OidcIdentityProvider } from './oidc-identity-provider.js';
3
+ import { type PlatformIdentityProvider } from './platform-identity-provider.js';
4
+ import { type SamlIdentityProvider } from './saml-identity-provider.js';
5
+
6
+ /**
7
+ * Identity provider
8
+ */
9
+ export type IdentityProvider =
10
+ | CasIdentityProvider
11
+ | OidcIdentityProvider
12
+ | PlatformIdentityProvider
13
+ | SamlIdentityProvider;
@@ -0,0 +1,28 @@
1
+ import { type IdentityProviderType } from '../identity-provider-type/identity-provider-type.js';
2
+ import { type BaseIdentityProvider } from './base-identity-provider.js';
3
+
4
+ /**
5
+ * OpenID Connect identity provider
6
+ */
7
+ export interface OidcIdentityProvider extends BaseIdentityProvider {
8
+ /**
9
+ * Challenge algorithm
10
+ */
11
+ readonly challengeAlgorithm: 'SHA-256';
12
+ /**
13
+ * Challenge method
14
+ */
15
+ readonly challengeMethod: 'S256';
16
+ /**
17
+ * Client identifier
18
+ */
19
+ readonly clientId: string;
20
+ /**
21
+ * Client secret
22
+ */
23
+ readonly clientSecret: string;
24
+ /**
25
+ * Identity provider type
26
+ */
27
+ readonly identityProviderType: IdentityProviderType & { readonly identityProviderTypeCode: 'oidc' };
28
+ }
@@ -0,0 +1,12 @@
1
+ import { type IdentityProviderType } from '../identity-provider-type/identity-provider-type.js';
2
+ import { type BaseIdentityProvider } from './base-identity-provider.js';
3
+
4
+ /**
5
+ * Platform identity provider
6
+ */
7
+ export interface PlatformIdentityProvider extends BaseIdentityProvider {
8
+ /**
9
+ * Identity provider type
10
+ */
11
+ readonly identityProviderType: IdentityProviderType & { readonly identityProviderTypeCode: 'platform' };
12
+ }
@@ -0,0 +1,12 @@
1
+ import { type IdentityProviderType } from '../identity-provider-type/identity-provider-type.js';
2
+ import { type BaseIdentityProvider } from './base-identity-provider.js';
3
+
4
+ /**
5
+ * SAML identity provider
6
+ */
7
+ export interface SamlIdentityProvider extends BaseIdentityProvider {
8
+ /**
9
+ * Identity provider type
10
+ */
11
+ readonly identityProviderType: IdentityProviderType & { readonly identityProviderTypeCode: 'saml' };
12
+ }
@@ -0,0 +1,16 @@
1
+ import { type IdentityProviderTypeCode } from '@edumalin/id';
2
+ import { type I18nString } from '@edumalin/platform/i18n';
3
+
4
+ /**
5
+ * Identity provider type
6
+ */
7
+ export interface IdentityProviderType {
8
+ /**
9
+ * Identity provider type code
10
+ */
11
+ readonly identityProviderTypeCode: IdentityProviderTypeCode;
12
+ /**
13
+ * Identity provider type name
14
+ */
15
+ readonly identityProviderTypeName?: I18nString;
16
+ }
@@ -0,0 +1,6 @@
1
+ import { createDomain } from '@edumalin/platform/domain';
2
+
3
+ /**
4
+ * Identity domain
5
+ */
6
+ export const identityDomain = createDomain('@edumalin/identity');
@@ -0,0 +1,8 @@
1
+ import { createErrorType } from '@edumalin/platform/error';
2
+
3
+ import { identityDomain } from './identity.domain.js';
4
+
5
+ /**
6
+ * Identity error
7
+ */
8
+ export const identityError = createErrorType(identityDomain, {});
package/src/index.ts ADDED
@@ -0,0 +1,12 @@
1
+ export { type BaseIdentityProvider } from './identity-provider/base-identity-provider.js';
2
+ export { type CasIdentityProvider } from './identity-provider/cas-identity-provider.js';
3
+ export { type Identity } from './identity/identity.js';
4
+ export { identityDomain } from './identity.domain.js';
5
+ export { identityError } from './identity.error.js';
6
+ export { type IdentityProvider } from './identity-provider/identity-provider.js';
7
+ export { type IdentityProviderAttributeMap } from './identity-provider/identity-provider-attribute-map.js';
8
+ export { type IdentityProviderAttributeMapMapping } from './identity-provider/identity-provider-attribute-map-mapping.js';
9
+ export { type IdentityProviderType } from './identity-provider-type/identity-provider-type.js';
10
+ export { type OidcIdentityProvider } from './identity-provider/oidc-identity-provider.js';
11
+ export { type PlatformIdentityProvider } from './identity-provider/platform-identity-provider.js';
12
+ export { type SamlIdentityProvider } from './identity-provider/saml-identity-provider.js';
@@ -0,0 +1,32 @@
1
+ import { generateIdentityProviderId } from '@edumalin/id';
2
+ import { type BaseIdentityProvider } from '@edumalin/identity';
3
+ import { type DeepPartial } from '@edumalin/platform/typescript';
4
+ import { asUrlString } from '@edumalin/platform/url';
5
+
6
+ import { createTestIdentityProviderAttributeMap } from './create-test-identity-provider-attribute-map.js';
7
+
8
+ /**
9
+ * Creates a test base identity provider
10
+ *
11
+ * @param identityProvider Base base identity provider properties
12
+ * @returns Test base identity provider
13
+ */
14
+ export function createTestBaseIdentityProvider(
15
+ identityProvider?: DeepPartial<BaseIdentityProvider>
16
+ ): BaseIdentityProvider {
17
+ const attributeMap = createTestIdentityProviderAttributeMap(identityProvider?.attributeMap);
18
+ const identityProviderId = identityProvider?.identityProviderId ?? generateIdentityProviderId();
19
+ const identityProviderName = identityProvider?.identityProviderName ?? {
20
+ 'en-US': 'Test identity provider',
21
+ 'fr-FR': "Fournisseur d'identité de test",
22
+ };
23
+ const serviceUrl =
24
+ identityProvider?.serviceUrl ?? asUrlString('https://developer.edumalin.com/test/identity/provider');
25
+
26
+ return {
27
+ attributeMap,
28
+ identityProviderId,
29
+ identityProviderName,
30
+ serviceUrl,
31
+ };
32
+ }
@@ -0,0 +1,33 @@
1
+ import { type CasIdentityProvider } from '@edumalin/identity';
2
+ import { type DeepPartial } from '@edumalin/platform/typescript';
3
+ import { asUrlString } from '@edumalin/platform/url';
4
+
5
+ import { createTestBaseIdentityProvider } from './create-test-base-identity-provider.js';
6
+ import { createTestIdentityProviderType } from './create-test-identity-provider-type.js';
7
+
8
+ /**
9
+ * Creates a test CAS identity provider
10
+ *
11
+ * @param identityProvider Base CAS identity provider properties
12
+ * @returns Test CAS identity provider
13
+ */
14
+ export function createTestCasIdentityProvider(
15
+ identityProvider?: DeepPartial<CasIdentityProvider>
16
+ ): CasIdentityProvider {
17
+ const attributeMapExpressionPrefix = '/cas:serviceResponse/cas:authenticationSuccess/';
18
+ const identityProviderType = {
19
+ ...createTestIdentityProviderType(identityProvider?.identityProviderType),
20
+ identityProviderTypeCode: 'cas' as const,
21
+ };
22
+ const protocolVersion = identityProvider?.protocolVersion ?? '3.0';
23
+ const validationServiceUrl =
24
+ identityProvider?.validationServiceUrl ?? asUrlString('https://developer.edumalin.com/cas/validationService');
25
+
26
+ return {
27
+ ...createTestBaseIdentityProvider(identityProvider as never),
28
+ attributeMapExpressionPrefix,
29
+ identityProviderType,
30
+ protocolVersion,
31
+ validationServiceUrl,
32
+ };
33
+ }
@@ -0,0 +1,18 @@
1
+ import { type IdentityProviderAttributeMapMapping } from '@edumalin/identity';
2
+ import { type DeepPartial } from '@edumalin/platform/typescript';
3
+
4
+ /**
5
+ * Creates a test identity provider attribute map mapping
6
+ *
7
+ * @param attributeMapMapping Base identity provider attribute map mapping properties
8
+ * @returns Test identity provider attribute map mapping
9
+ */
10
+ export function createTestIdentityProviderAttributeMapMapping(
11
+ _attributeMapMapping?: DeepPartial<IdentityProviderAttributeMapMapping>
12
+ ): IdentityProviderAttributeMapMapping {
13
+ // TODO
14
+
15
+ return {
16
+ mappingType: 'disabled',
17
+ };
18
+ }
@@ -0,0 +1,40 @@
1
+ import { type IdentityProviderAttributeMap } from '@edumalin/identity';
2
+ import { type DeepPartial } from '@edumalin/platform/typescript';
3
+
4
+ import { createTestIdentityProviderAttributeMapMapping } from './create-test-identity-provider-attribute-map-mapping';
5
+
6
+ /**
7
+ * Creates a test identity provider attribute map
8
+ *
9
+ * @param attributeMap Base identity provider attribute map properties
10
+ * @returns Test identity provider attribute map
11
+ */
12
+ export function createTestIdentityProviderAttributeMap(
13
+ attributeMap?: DeepPartial<IdentityProviderAttributeMap>
14
+ ): IdentityProviderAttributeMap {
15
+ const classNames = createTestIdentityProviderAttributeMapMapping(attributeMap?.classNames);
16
+ const establishmentCode = createTestIdentityProviderAttributeMapMapping(attributeMap?.establishmentCode);
17
+ const externalUserId = createTestIdentityProviderAttributeMapMapping(attributeMap?.externalUserId);
18
+ const givenName = createTestIdentityProviderAttributeMapMapping(attributeMap?.givenName);
19
+ const groupNames = createTestIdentityProviderAttributeMapMapping(attributeMap?.groupNames);
20
+ const identityName = createTestIdentityProviderAttributeMapMapping(attributeMap?.identityName);
21
+ const isHeadmaster = createTestIdentityProviderAttributeMapMapping(attributeMap?.isHeadmaster);
22
+ const isParent = createTestIdentityProviderAttributeMapMapping(attributeMap?.isParent);
23
+ const isStudent = createTestIdentityProviderAttributeMapMapping(attributeMap?.isStudent);
24
+ const isTeacher = createTestIdentityProviderAttributeMapMapping(attributeMap?.isTeacher);
25
+ const surname = createTestIdentityProviderAttributeMapMapping(attributeMap?.surname);
26
+
27
+ return {
28
+ classNames,
29
+ establishmentCode,
30
+ externalUserId,
31
+ givenName,
32
+ groupNames,
33
+ identityName,
34
+ isHeadmaster,
35
+ isParent,
36
+ isStudent,
37
+ isTeacher,
38
+ surname,
39
+ };
40
+ }
@@ -0,0 +1,25 @@
1
+ import { identityProviderTypeCodes } from '@edumalin/id';
2
+ import { type IdentityProviderType } from '@edumalin/identity';
3
+ import { getRandomArrayValue } from '@edumalin/platform/random';
4
+ import { type DeepPartial } from '@edumalin/platform/typescript';
5
+
6
+ /**
7
+ * Creates a test identity provider type
8
+ *
9
+ * @param identityProviderType Base identity provider type properties
10
+ * @returns Test identity provider type
11
+ */
12
+ export function createTestIdentityProviderType(
13
+ identityProviderType?: DeepPartial<IdentityProviderType>
14
+ ): IdentityProviderType {
15
+ const identityProviderTypeCode = getRandomArrayValue(identityProviderTypeCodes);
16
+ const identityProviderTypeName = identityProviderType?.identityProviderTypeName ?? {
17
+ 'en-US': `${identityProviderTypeCode} test identity provider type`,
18
+ 'fr-FR': `Type de fournisseur d'identité de test ${identityProviderTypeCode}`,
19
+ };
20
+
21
+ return {
22
+ identityProviderTypeCode,
23
+ identityProviderTypeName,
24
+ };
25
+ }
@@ -0,0 +1,38 @@
1
+ import {
2
+ type CasIdentityProvider,
3
+ type IdentityProvider,
4
+ type OidcIdentityProvider,
5
+ type PlatformIdentityProvider,
6
+ type SamlIdentityProvider,
7
+ } from '@edumalin/identity';
8
+ import { getRandomArrayValue } from '@edumalin/platform/random';
9
+ import { type DeepPartial } from '@edumalin/platform/typescript';
10
+
11
+ import { createTestCasIdentityProvider } from './create-test-cas-identity-provider.js';
12
+ import { createTestPlatformIdentityProvider } from './create-test-platform-identity-provider.js';
13
+ import { createTestOidcIdentityProvider } from './create-test-oidc-identity-provider.js';
14
+ import { createTestSamlIdentityProvider } from './create-test-saml-identity-provider.js';
15
+
16
+ /**
17
+ * Creates a test identity provider
18
+ *
19
+ * @param identityProvider Base identity provider properties
20
+ * @returns Identity provider
21
+ */
22
+ export function createTestIdentityProvider(identityProvider?: DeepPartial<IdentityProvider>): IdentityProvider {
23
+ const identityProviderType =
24
+ identityProvider?.identityProviderType?.identityProviderTypeCode ??
25
+ getRandomArrayValue(['cas', 'platform', 'oidc', 'saml']);
26
+ switch (identityProviderType) {
27
+ case 'cas':
28
+ return createTestCasIdentityProvider(identityProvider as DeepPartial<CasIdentityProvider> | undefined);
29
+ case 'oidc':
30
+ return createTestOidcIdentityProvider(identityProvider as DeepPartial<OidcIdentityProvider> | undefined);
31
+ case 'platform':
32
+ return createTestPlatformIdentityProvider(identityProvider as DeepPartial<PlatformIdentityProvider> | undefined);
33
+ case 'saml':
34
+ return createTestSamlIdentityProvider(identityProvider as DeepPartial<SamlIdentityProvider> | undefined);
35
+ default:
36
+ throw new Error(`unknown identity provider type`);
37
+ }
38
+ }
@@ -0,0 +1,30 @@
1
+ import { generateIdentityId } from '@edumalin/id';
2
+ import { type Identity } from '@edumalin/identity';
3
+ import { type DeepPartial } from '@edumalin/platform/typescript';
4
+ import { asUrlString } from '@edumalin/platform/url';
5
+
6
+ /**
7
+ * Creates a test identity
8
+ *
9
+ * @param identity Base identity properties
10
+ * @returns Test identity
11
+ */
12
+ export function createTestIdentity(identity?: DeepPartial<Identity>): Identity {
13
+ const email = identity?.email;
14
+ const givenName = identity?.givenName ?? 'Camille';
15
+ const identityId = identity?.identityId ?? generateIdentityId();
16
+ const profilePictureUrl =
17
+ identity?.profilePictureUrl ??
18
+ asUrlString(
19
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAAlC+aJAAAA2UlEQVR4nOzRoWpCcRiG8W38+2CXsA22Wxi7iKWlExcHYzcxBoZj0AsQu9Gs6Vi8AY1iMwgaDKJ4DW96PPD88vuFh6/MX0Y3ifv3KtpPZ9/RfrN9jvZ30foKGUAzgGYAzQCaATQDaAbQyno3jg7OvSbad1/70X5w+oz2rf+AATQDaAbQDKAZQDOAZgCt/D0uo4PbziLaV/Ux2v/8PkT71n/AAJoBNANoBtAMoBlAM4BWnj6G0cGq+Y/29ds+2n9NDtG+9R8wgGYAzQCaATQDaAbQDKBdAgAA//+JQhusQ+q2ywAAAABJRU5ErkJggg'
20
+ );
21
+ const surname = identity?.surname ?? 'Dupont';
22
+
23
+ return {
24
+ ...(email ? { email } : {}),
25
+ givenName,
26
+ identityId,
27
+ ...(profilePictureUrl ? { profilePictureUrl } : {}),
28
+ surname,
29
+ };
30
+ }
@@ -0,0 +1,33 @@
1
+ import { type OidcIdentityProvider } from '@edumalin/identity';
2
+ import { type DeepPartial } from '@edumalin/platform/typescript';
3
+
4
+ import { createTestBaseIdentityProvider } from './create-test-base-identity-provider.js';
5
+ import { createTestIdentityProviderType } from './create-test-identity-provider-type.js';
6
+
7
+ /**
8
+ * Creates a test OpenID Connect identity provider
9
+ *
10
+ * @param identityProvider Base OpenID Connect identity provider properties
11
+ * @returns Test OpenID Connect identity provider
12
+ */
13
+ export function createTestOidcIdentityProvider(
14
+ identityProvider?: DeepPartial<OidcIdentityProvider>
15
+ ): OidcIdentityProvider {
16
+ const challengeAlgorithm = identityProvider?.challengeAlgorithm ?? 'SHA-256';
17
+ const challengeMethod = identityProvider?.challengeMethod ?? 'S256';
18
+ const clientId = identityProvider?.clientId ?? 'test-client-id';
19
+ const clientSecret = identityProvider?.clientSecret ?? 'test-client-secret';
20
+ const identityProviderType = {
21
+ ...createTestIdentityProviderType(identityProvider?.identityProviderType),
22
+ identityProviderTypeCode: 'oidc' as const,
23
+ };
24
+
25
+ return {
26
+ ...createTestBaseIdentityProvider(identityProvider as never),
27
+ challengeAlgorithm,
28
+ challengeMethod,
29
+ clientId,
30
+ clientSecret,
31
+ identityProviderType,
32
+ };
33
+ }