@proconnect-gouv/proconnect.identite 1.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 (252) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/dist/data/organization/domains-whitelist.d.ts +2 -0
  3. package/dist/data/organization/domains-whitelist.d.ts.map +1 -0
  4. package/dist/data/organization/domains-whitelist.js +7 -0
  5. package/dist/data/organization/index.d.ts +2 -0
  6. package/dist/data/organization/index.d.ts.map +1 -0
  7. package/dist/data/organization/index.js +2 -0
  8. package/dist/errors/index.d.ts +22 -0
  9. package/dist/errors/index.d.ts.map +1 -0
  10. package/dist/errors/index.js +43 -0
  11. package/dist/managers/certification/distance.d.ts +4 -0
  12. package/dist/managers/certification/distance.d.ts.map +1 -0
  13. package/dist/managers/certification/distance.js +16 -0
  14. package/dist/managers/certification/index.d.ts +3 -0
  15. package/dist/managers/certification/index.d.ts.map +1 -0
  16. package/dist/managers/certification/index.js +3 -0
  17. package/dist/managers/certification/is-organization-dirigeant.d.ts +15 -0
  18. package/dist/managers/certification/is-organization-dirigeant.d.ts.map +1 -0
  19. package/dist/managers/certification/is-organization-dirigeant.js +60 -0
  20. package/dist/managers/franceconnect/index.d.ts +2 -0
  21. package/dist/managers/franceconnect/index.d.ts.map +1 -0
  22. package/dist/managers/franceconnect/index.js +2 -0
  23. package/dist/managers/franceconnect/openid-client.d.ts +37 -0
  24. package/dist/managers/franceconnect/openid-client.d.ts.map +1 -0
  25. package/dist/managers/franceconnect/openid-client.js +54 -0
  26. package/dist/managers/organization/force-join-organization.d.ts +29 -0
  27. package/dist/managers/organization/force-join-organization.d.ts.map +1 -0
  28. package/dist/managers/organization/force-join-organization.js +33 -0
  29. package/dist/managers/organization/get-organization-info.d.ts +5 -0
  30. package/dist/managers/organization/get-organization-info.d.ts.map +1 -0
  31. package/dist/managers/organization/get-organization-info.js +33 -0
  32. package/dist/managers/organization/index.d.ts +4 -0
  33. package/dist/managers/organization/index.d.ts.map +1 -0
  34. package/dist/managers/organization/index.js +4 -0
  35. package/dist/managers/organization/mark-domain-as-verified.d.ts +20 -0
  36. package/dist/managers/organization/mark-domain-as-verified.d.ts.map +1 -0
  37. package/dist/managers/organization/mark-domain-as-verified.js +63 -0
  38. package/dist/managers/user/assign-user-verification-type-to-domain.d.ts +10 -0
  39. package/dist/managers/user/assign-user-verification-type-to-domain.d.ts.map +1 -0
  40. package/dist/managers/user/assign-user-verification-type-to-domain.js +21 -0
  41. package/dist/managers/user/index.d.ts +2 -0
  42. package/dist/managers/user/index.d.ts.map +1 -0
  43. package/dist/managers/user/index.js +1 -0
  44. package/dist/mappers/certification/index.d.ts +4 -0
  45. package/dist/mappers/certification/index.d.ts.map +1 -0
  46. package/dist/mappers/certification/index.js +11 -0
  47. package/dist/mappers/index.d.ts +2 -0
  48. package/dist/mappers/index.d.ts.map +1 -0
  49. package/dist/mappers/index.js +2 -0
  50. package/dist/mappers/organization/from-siret.d.ts +5 -0
  51. package/dist/mappers/organization/from-siret.d.ts.map +1 -0
  52. package/dist/mappers/organization/from-siret.js +51 -0
  53. package/dist/mappers/organization/index.d.ts +2 -0
  54. package/dist/mappers/organization/index.d.ts.map +1 -0
  55. package/dist/mappers/organization/index.js +2 -0
  56. package/dist/repositories/email-domain/add-domain.d.ts +8 -0
  57. package/dist/repositories/email-domain/add-domain.d.ts.map +1 -0
  58. package/dist/repositories/email-domain/add-domain.js +25 -0
  59. package/dist/repositories/email-domain/delete-email-domains-by-verification-types.d.ts +8 -0
  60. package/dist/repositories/email-domain/delete-email-domains-by-verification-types.d.ts.map +1 -0
  61. package/dist/repositories/email-domain/delete-email-domains-by-verification-types.js +21 -0
  62. package/dist/repositories/email-domain/find-email-domains-by-organization-id.d.ts +4 -0
  63. package/dist/repositories/email-domain/find-email-domains-by-organization-id.d.ts.map +1 -0
  64. package/dist/repositories/email-domain/find-email-domains-by-organization-id.js +11 -0
  65. package/dist/repositories/email-domain/index.d.ts +12 -0
  66. package/dist/repositories/email-domain/index.d.ts.map +1 -0
  67. package/dist/repositories/email-domain/index.js +3 -0
  68. package/dist/repositories/organization/find-by-id.d.ts +4 -0
  69. package/dist/repositories/organization/find-by-id.d.ts.map +1 -0
  70. package/dist/repositories/organization/find-by-id.js +11 -0
  71. package/dist/repositories/organization/find-by-user-id.d.ts +12 -0
  72. package/dist/repositories/organization/find-by-user-id.d.ts.map +1 -0
  73. package/dist/repositories/organization/find-by-user-id.js +22 -0
  74. package/dist/repositories/organization/get-by-id.d.ts +4 -0
  75. package/dist/repositories/organization/get-by-id.d.ts.map +1 -0
  76. package/dist/repositories/organization/get-by-id.js +15 -0
  77. package/dist/repositories/organization/get-users-by-organization.d.ts +12 -0
  78. package/dist/repositories/organization/get-users-by-organization.d.ts.map +1 -0
  79. package/dist/repositories/organization/get-users-by-organization.js +23 -0
  80. package/dist/repositories/organization/index.d.ts +7 -0
  81. package/dist/repositories/organization/index.d.ts.map +1 -0
  82. package/dist/repositories/organization/index.js +7 -0
  83. package/dist/repositories/organization/link-user-to-organization.d.ts +16 -0
  84. package/dist/repositories/organization/link-user-to-organization.d.ts.map +1 -0
  85. package/dist/repositories/organization/link-user-to-organization.js +22 -0
  86. package/dist/repositories/organization/upsert.d.ts +7 -0
  87. package/dist/repositories/organization/upsert.d.ts.map +1 -0
  88. package/dist/repositories/organization/upsert.js +103 -0
  89. package/dist/repositories/user/create.d.ts +7 -0
  90. package/dist/repositories/user/create.d.ts.map +1 -0
  91. package/dist/repositories/user/create.js +25 -0
  92. package/dist/repositories/user/find-by-email.d.ts +4 -0
  93. package/dist/repositories/user/find-by-email.d.ts.map +1 -0
  94. package/dist/repositories/user/find-by-email.js +12 -0
  95. package/dist/repositories/user/find-by-id.d.ts +4 -0
  96. package/dist/repositories/user/find-by-id.d.ts.map +1 -0
  97. package/dist/repositories/user/find-by-id.js +13 -0
  98. package/dist/repositories/user/get-by-id.d.ts +4 -0
  99. package/dist/repositories/user/get-by-id.d.ts.map +1 -0
  100. package/dist/repositories/user/get-by-id.js +15 -0
  101. package/dist/repositories/user/get-franceconnect-user-info.d.ts +15 -0
  102. package/dist/repositories/user/get-franceconnect-user-info.d.ts.map +1 -0
  103. package/dist/repositories/user/get-franceconnect-user-info.js +13 -0
  104. package/dist/repositories/user/index.d.ts +9 -0
  105. package/dist/repositories/user/index.d.ts.map +1 -0
  106. package/dist/repositories/user/index.js +9 -0
  107. package/dist/repositories/user/update-user-organization-link.d.ts +16 -0
  108. package/dist/repositories/user/update-user-organization-link.d.ts.map +1 -0
  109. package/dist/repositories/user/update-user-organization-link.js +20 -0
  110. package/dist/repositories/user/update.d.ts +4 -0
  111. package/dist/repositories/user/update.d.ts.map +1 -0
  112. package/dist/repositories/user/update.js +19 -0
  113. package/dist/repositories/user/upsert-franceconnect-userinfo.d.ts +15 -0
  114. package/dist/repositories/user/upsert-franceconnect-userinfo.d.ts.map +1 -0
  115. package/dist/repositories/user/upsert-franceconnect-userinfo.js +23 -0
  116. package/dist/services/organization/index.d.ts +3 -0
  117. package/dist/services/organization/index.d.ts.map +1 -0
  118. package/dist/services/organization/index.js +3 -0
  119. package/dist/services/organization/is-domain-allowed-for-organization.d.ts +2 -0
  120. package/dist/services/organization/is-domain-allowed-for-organization.d.ts.map +1 -0
  121. package/dist/services/organization/is-domain-allowed-for-organization.js +8 -0
  122. package/dist/services/organization/is-entreprise-unipersonnelle.d.ts +9 -0
  123. package/dist/services/organization/is-entreprise-unipersonnelle.d.ts.map +1 -0
  124. package/dist/services/organization/is-entreprise-unipersonnelle.js +18 -0
  125. package/dist/services/postgres/hash-to-postgres-params.d.ts +6 -0
  126. package/dist/services/postgres/hash-to-postgres-params.d.ts.map +1 -0
  127. package/dist/services/postgres/hash-to-postgres-params.js +21 -0
  128. package/dist/services/postgres/index.d.ts +2 -0
  129. package/dist/services/postgres/index.d.ts.map +1 -0
  130. package/dist/services/postgres/index.js +2 -0
  131. package/dist/types/claims.d.ts +16 -0
  132. package/dist/types/claims.d.ts.map +1 -0
  133. package/dist/types/claims.js +16 -0
  134. package/dist/types/contexts.d.ts +5 -0
  135. package/dist/types/contexts.d.ts.map +1 -0
  136. package/dist/types/contexts.js +2 -0
  137. package/dist/types/dirigeant.d.ts +9 -0
  138. package/dist/types/dirigeant.d.ts.map +1 -0
  139. package/dist/types/dirigeant.js +9 -0
  140. package/dist/types/email-domain.d.ts +25 -0
  141. package/dist/types/email-domain.d.ts.map +1 -0
  142. package/dist/types/email-domain.js +14 -0
  143. package/dist/types/franceconnect.d.ts +28 -0
  144. package/dist/types/franceconnect.d.ts.map +1 -0
  145. package/dist/types/franceconnect.js +22 -0
  146. package/dist/types/index.d.ts +10 -0
  147. package/dist/types/index.d.ts.map +1 -0
  148. package/dist/types/index.js +10 -0
  149. package/dist/types/organization-info.d.ts +27 -0
  150. package/dist/types/organization-info.d.ts.map +1 -0
  151. package/dist/types/organization-info.js +26 -0
  152. package/dist/types/organization.d.ts +26 -0
  153. package/dist/types/organization.d.ts.map +1 -0
  154. package/dist/types/organization.js +2 -0
  155. package/dist/types/user-organization-link.d.ts +92 -0
  156. package/dist/types/user-organization-link.d.ts.map +1 -0
  157. package/dist/types/user-organization-link.js +44 -0
  158. package/dist/types/user.d.ts +28 -0
  159. package/dist/types/user.d.ts.map +1 -0
  160. package/dist/types/user.js +2 -0
  161. package/package.json +68 -0
  162. package/src/data/organization/domains-whitelist.ts +8 -0
  163. package/src/data/organization/index.ts +3 -0
  164. package/src/errors/index.ts +50 -0
  165. package/src/managers/certification/distance.test.ts +109 -0
  166. package/src/managers/certification/distance.ts +41 -0
  167. package/src/managers/certification/index.ts +4 -0
  168. package/src/managers/certification/is-organization-dirigeant.test.ts +125 -0
  169. package/src/managers/certification/is-organization-dirigeant.ts +136 -0
  170. package/src/managers/franceconnect/index.ts +3 -0
  171. package/src/managers/franceconnect/openid-client.ts +131 -0
  172. package/src/managers/organization/force-join-organization.test.ts +94 -0
  173. package/src/managers/organization/force-join-organization.ts +90 -0
  174. package/src/managers/organization/get-organization-info.test.ts +47 -0
  175. package/src/managers/organization/get-organization-info.test.ts.snapshot +68 -0
  176. package/src/managers/organization/get-organization-info.ts +58 -0
  177. package/src/managers/organization/index.ts +5 -0
  178. package/src/managers/organization/mark-domain-as-verified.test.ts +90 -0
  179. package/src/managers/organization/mark-domain-as-verified.test.ts.snapshot +52 -0
  180. package/src/managers/organization/mark-domain-as-verified.ts +140 -0
  181. package/src/managers/user/assign-user-verification-type-to-domain.ts +50 -0
  182. package/src/managers/user/index.ts +1 -0
  183. package/src/mappers/certification/index.ts +18 -0
  184. package/src/mappers/index.ts +3 -0
  185. package/src/mappers/organization/from-siret.test.ts +26 -0
  186. package/src/mappers/organization/from-siret.test.ts.snapshot +68 -0
  187. package/src/mappers/organization/from-siret.ts +75 -0
  188. package/src/mappers/organization/index.ts +3 -0
  189. package/src/repositories/email-domain/add-domain.test.ts +43 -0
  190. package/src/repositories/email-domain/add-domain.ts +48 -0
  191. package/src/repositories/email-domain/delete-email-domains-by-verification-types.test.ts +49 -0
  192. package/src/repositories/email-domain/delete-email-domains-by-verification-types.ts +45 -0
  193. package/src/repositories/email-domain/find-email-domains-by-organization-id.test.ts +55 -0
  194. package/src/repositories/email-domain/find-email-domains-by-organization-id.ts +28 -0
  195. package/src/repositories/email-domain/index.ts +13 -0
  196. package/src/repositories/organization/find-by-id.test.ts +51 -0
  197. package/src/repositories/organization/find-by-id.ts +22 -0
  198. package/src/repositories/organization/find-by-user-id.test.ts +70 -0
  199. package/src/repositories/organization/find-by-user-id.test.ts.snapshot +102 -0
  200. package/src/repositories/organization/find-by-user-id.ts +38 -0
  201. package/src/repositories/organization/get-by-id.test.ts +60 -0
  202. package/src/repositories/organization/get-by-id.ts +21 -0
  203. package/src/repositories/organization/get-users-by-organization.test.ts +50 -0
  204. package/src/repositories/organization/get-users-by-organization.test.ts.snapshot +38 -0
  205. package/src/repositories/organization/get-users-by-organization.ts +46 -0
  206. package/src/repositories/organization/index.ts +8 -0
  207. package/src/repositories/organization/link-user-to-organization.test.ts +65 -0
  208. package/src/repositories/organization/link-user-to-organization.test.ts.snapshot +31 -0
  209. package/src/repositories/organization/link-user-to-organization.ts +45 -0
  210. package/src/repositories/organization/upsert.ts +142 -0
  211. package/src/repositories/organization/upset.test.ts +95 -0
  212. package/src/repositories/user/create.test.ts +49 -0
  213. package/src/repositories/user/create.ts +44 -0
  214. package/src/repositories/user/find-by-email.test.ts +62 -0
  215. package/src/repositories/user/find-by-email.ts +22 -0
  216. package/src/repositories/user/find-by-id.test.ts +64 -0
  217. package/src/repositories/user/find-by-id.ts +23 -0
  218. package/src/repositories/user/get-by-id.test.ts +63 -0
  219. package/src/repositories/user/get-by-id.ts +21 -0
  220. package/src/repositories/user/get-franceconnect-user-info.test.ts +58 -0
  221. package/src/repositories/user/get-franceconnect-user-info.ts +25 -0
  222. package/src/repositories/user/index.ts +10 -0
  223. package/src/repositories/user/update-user-organization-link.test.ts +46 -0
  224. package/src/repositories/user/update-user-organization-link.ts +42 -0
  225. package/src/repositories/user/update.test.ts +26 -0
  226. package/src/repositories/user/update.ts +34 -0
  227. package/src/repositories/user/upsert-franceconnect-userinfo.test.ts +100 -0
  228. package/src/repositories/user/upsert-franceconnect-userinfo.ts +41 -0
  229. package/src/services/organization/index.ts +4 -0
  230. package/src/services/organization/is-domain-allowed-for-organization.ts +10 -0
  231. package/src/services/organization/is-entreprise-unipersonnelle.test.ts +32 -0
  232. package/src/services/organization/is-entreprise-unipersonnelle.ts +31 -0
  233. package/src/services/postgres/hash-to-postgres-params.ts +34 -0
  234. package/src/services/postgres/index.ts +3 -0
  235. package/src/types/claims.ts +21 -0
  236. package/src/types/contexts.ts +9 -0
  237. package/src/types/dirigeant.ts +13 -0
  238. package/src/types/email-domain.ts +48 -0
  239. package/src/types/franceconnect.ts +37 -0
  240. package/src/types/index.ts +11 -0
  241. package/src/types/organization-info.ts +32 -0
  242. package/src/types/organization.ts +30 -0
  243. package/src/types/user-organization-link.ts +71 -0
  244. package/src/types/user.ts +29 -0
  245. package/testing/index.ts +31 -0
  246. package/testing/seed/franceconnect/index.ts +40 -0
  247. package/testing/seed/insee/index.ts +22 -0
  248. package/testing/seed/mandataires/index.ts +32 -0
  249. package/testing/seed/organizations/index.ts +41 -0
  250. package/tsconfig.json +17 -0
  251. package/tsconfig.lib.json +9 -0
  252. package/tsconfig.lib.tsbuildinfo +1 -0
@@ -0,0 +1,103 @@
1
+ //
2
+ //
3
+ export function upsertFactory({ pg }) {
4
+ return async function upsert({ siret, organizationInfo: { libelle: cached_libelle, nomComplet: cached_nom_complet, enseigne: cached_enseigne, trancheEffectifs: cached_tranche_effectifs, trancheEffectifsUniteLegale: cached_tranche_effectifs_unite_legale, libelleTrancheEffectif: cached_libelle_tranche_effectif, etatAdministratif: cached_etat_administratif, estActive: cached_est_active, statutDiffusion: cached_statut_diffusion, estDiffusible: cached_est_diffusible, adresse: cached_adresse, codePostal: cached_code_postal, codeOfficielGeographique: cached_code_officiel_geographique, activitePrincipale: cached_activite_principale, libelleActivitePrincipale: cached_libelle_activite_principale, categorieJuridique: cached_categorie_juridique, libelleCategorieJuridique: cached_libelle_categorie_juridique, }, }) {
5
+ const { rows } = await pg.query(`
6
+ INSERT INTO organizations
7
+ (
8
+ siret,
9
+ cached_libelle,
10
+ cached_nom_complet,
11
+ cached_enseigne,
12
+ cached_tranche_effectifs,
13
+ cached_tranche_effectifs_unite_legale,
14
+ cached_libelle_tranche_effectif,
15
+ cached_etat_administratif,
16
+ cached_est_active,
17
+ cached_statut_diffusion,
18
+ cached_est_diffusible,
19
+ cached_adresse,
20
+ cached_code_postal,
21
+ cached_code_officiel_geographique,
22
+ cached_activite_principale,
23
+ cached_libelle_activite_principale,
24
+ cached_categorie_juridique,
25
+ cached_libelle_categorie_juridique,
26
+ organization_info_fetched_at,
27
+ updated_at,
28
+ created_at
29
+ )
30
+ VALUES
31
+ ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21)
32
+ ON CONFLICT (siret)
33
+ DO UPDATE
34
+ SET (
35
+ siret,
36
+ cached_libelle,
37
+ cached_nom_complet,
38
+ cached_enseigne,
39
+ cached_tranche_effectifs,
40
+ cached_tranche_effectifs_unite_legale,
41
+ cached_libelle_tranche_effectif,
42
+ cached_etat_administratif,
43
+ cached_est_active,
44
+ cached_statut_diffusion,
45
+ cached_est_diffusible,
46
+ cached_adresse,
47
+ cached_code_postal,
48
+ cached_code_officiel_geographique,
49
+ cached_activite_principale,
50
+ cached_libelle_activite_principale,
51
+ cached_categorie_juridique,
52
+ cached_libelle_categorie_juridique,
53
+ organization_info_fetched_at,
54
+ updated_at
55
+ ) = (
56
+ EXCLUDED.siret,
57
+ EXCLUDED.cached_libelle,
58
+ EXCLUDED.cached_nom_complet,
59
+ EXCLUDED.cached_enseigne,
60
+ EXCLUDED.cached_tranche_effectifs,
61
+ EXCLUDED.cached_tranche_effectifs_unite_legale,
62
+ EXCLUDED.cached_libelle_tranche_effectif,
63
+ EXCLUDED.cached_etat_administratif,
64
+ EXCLUDED.cached_est_active,
65
+ EXCLUDED.cached_statut_diffusion,
66
+ EXCLUDED.cached_est_diffusible,
67
+ EXCLUDED.cached_adresse,
68
+ EXCLUDED.cached_code_postal,
69
+ EXCLUDED.cached_code_officiel_geographique,
70
+ EXCLUDED.cached_activite_principale,
71
+ EXCLUDED.cached_libelle_activite_principale,
72
+ EXCLUDED.cached_categorie_juridique,
73
+ EXCLUDED.cached_libelle_categorie_juridique,
74
+ EXCLUDED.organization_info_fetched_at,
75
+ EXCLUDED.updated_at
76
+ )
77
+ RETURNING *
78
+ `, [
79
+ siret,
80
+ cached_libelle,
81
+ cached_nom_complet,
82
+ cached_enseigne,
83
+ cached_tranche_effectifs,
84
+ cached_tranche_effectifs_unite_legale,
85
+ cached_libelle_tranche_effectif,
86
+ cached_etat_administratif,
87
+ cached_est_active,
88
+ cached_statut_diffusion,
89
+ cached_est_diffusible,
90
+ cached_adresse,
91
+ cached_code_postal,
92
+ cached_code_officiel_geographique,
93
+ cached_activite_principale,
94
+ cached_libelle_activite_principale,
95
+ cached_categorie_juridique,
96
+ cached_libelle_categorie_juridique,
97
+ new Date(),
98
+ new Date(),
99
+ new Date(),
100
+ ]);
101
+ return rows.shift();
102
+ };
103
+ }
@@ -0,0 +1,7 @@
1
+ import type { DatabaseContext, User } from "#src/types";
2
+ export declare function createUserFactory({ pg }: DatabaseContext): ({ email, encrypted_password, }: {
3
+ email: string;
4
+ encrypted_password?: string | null;
5
+ }) => Promise<User>;
6
+ export type CreateUserHandler = ReturnType<typeof createUserFactory>;
7
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/repositories/user/create.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAKxD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,eAAe,IACtB,gCAG9B;IACD,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,mBA0BF;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ //
2
+ import { hashToPostgresParams } from "#src/services/postgres";
3
+ //
4
+ export function createUserFactory({ pg }) {
5
+ return async function createUser({ email, encrypted_password = null, }) {
6
+ const userWithTimestamps = {
7
+ email,
8
+ email_verified: false,
9
+ verify_email_token: null,
10
+ verify_email_sent_at: null,
11
+ encrypted_password,
12
+ magic_link_token: null,
13
+ magic_link_sent_at: null,
14
+ reset_password_token: null,
15
+ reset_password_sent_at: null,
16
+ sign_in_count: 0,
17
+ last_sign_in_at: null,
18
+ created_at: new Date(),
19
+ updated_at: new Date(),
20
+ };
21
+ const { paramsString, valuesString, values } = hashToPostgresParams(userWithTimestamps);
22
+ const { rows } = await pg.query(`INSERT INTO users ${paramsString} VALUES ${valuesString} RETURNING *;`, values);
23
+ return rows.shift();
24
+ };
25
+ }
@@ -0,0 +1,4 @@
1
+ import type { DatabaseContext, User } from "#src/types";
2
+ export declare function findByEmailFactory({ pg }: DatabaseContext): (email: string) => Promise<User | undefined>;
3
+ export type FindByEmailHandler = ReturnType<typeof findByEmailFactory>;
4
+ //# sourceMappingURL=find-by-email.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-by-email.d.ts","sourceRoot":"","sources":["../../../src/repositories/user/find-by-email.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAKxD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,eAAe,IACtB,OAAO,MAAM,+BAWhD;AAED,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ //
2
+ import {} from "pg";
3
+ //
4
+ export function findByEmailFactory({ pg }) {
5
+ return async function findByEmail(email) {
6
+ const { rows } = await pg.query(`
7
+ SELECT *
8
+ FROM users WHERE email = $1
9
+ `, [email]);
10
+ return rows.shift();
11
+ };
12
+ }
@@ -0,0 +1,4 @@
1
+ import type { DatabaseContext, User } from "#src/types";
2
+ export declare function findByIdFactory({ pg }: DatabaseContext): (id: number) => Promise<User | undefined>;
3
+ export type FindByIdHandler = ReturnType<typeof findByIdFactory>;
4
+ //# sourceMappingURL=find-by-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-by-id.d.ts","sourceRoot":"","sources":["../../../src/repositories/user/find-by-id.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAKxD,wBAAgB,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,eAAe,IACtB,IAAI,MAAM,+BAY1C;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ //
2
+ import {} from "pg";
3
+ //
4
+ export function findByIdFactory({ pg }) {
5
+ return async function findById(id) {
6
+ const { rows } = await pg.query(`
7
+ SELECT *
8
+ FROM users
9
+ WHERE id = $1
10
+ `, [id]);
11
+ return rows.shift();
12
+ };
13
+ }
@@ -0,0 +1,4 @@
1
+ import type { DatabaseContext } from "#src/types";
2
+ export declare function getByIdFactory({ pg }: DatabaseContext): (id: number) => Promise<import("#src/types").User>;
3
+ export type GetByIdHandler = ReturnType<typeof getByIdFactory>;
4
+ //# sourceMappingURL=get-by-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-by-id.d.ts","sourceRoot":"","sources":["../../../src/repositories/user/get-by-id.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAMlD,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,eAAe,IAEtB,IAAI,MAAM,wCAOzC;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ //
2
+ import { UserNotFoundError } from "#src/errors";
3
+ import { isEmpty } from "lodash-es";
4
+ import { findByIdFactory } from "./find-by-id.js";
5
+ //
6
+ export function getByIdFactory({ pg }) {
7
+ const findById = findByIdFactory({ pg });
8
+ return async function getById(id) {
9
+ const user = await findById(id);
10
+ if (isEmpty(user)) {
11
+ throw new UserNotFoundError("User not found");
12
+ }
13
+ return user;
14
+ };
15
+ }
@@ -0,0 +1,15 @@
1
+ import type { DatabaseContext } from "#src/types";
2
+ export declare function getFranceConnectUserInfoFactory({ pg }: DatabaseContext): (user_id: number) => Promise<{
3
+ birthdate: Date;
4
+ birthplace: string;
5
+ family_name: string;
6
+ gender: string;
7
+ given_name: string;
8
+ sub: string;
9
+ created_at: Date;
10
+ updated_at: Date;
11
+ user_id: number;
12
+ preferred_username?: string | undefined;
13
+ } | undefined>;
14
+ export type GetFranceConnectUserInfoHandler = ReturnType<typeof getFranceConnectUserInfoFactory>;
15
+ //# sourceMappingURL=get-franceconnect-user-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-franceconnect-user-info.d.ts","sourceRoot":"","sources":["../../../src/repositories/user/get-franceconnect-user-info.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,YAAY,CAAC;AAKzE,wBAAgB,+BAA+B,CAAC,EAAE,EAAE,EAAE,EAAE,eAAe,IACtB,SAAS,MAAM;;;;;;;;;;;eAY/D;AAED,MAAM,MAAM,+BAA+B,GAAG,UAAU,CACtD,OAAO,+BAA+B,CACvC,CAAC"}
@@ -0,0 +1,13 @@
1
+ //
2
+ import {} from "pg";
3
+ //
4
+ export function getFranceConnectUserInfoFactory({ pg }) {
5
+ return async function getFranceConnectUserInfo(user_id) {
6
+ const { rows } = await pg.query(`
7
+ SELECT *
8
+ FROM franceconnect_userinfo
9
+ WHERE user_id = $1
10
+ `, [user_id]);
11
+ return rows.shift();
12
+ };
13
+ }
@@ -0,0 +1,9 @@
1
+ export * from "./create.js";
2
+ export * from "./find-by-email.js";
3
+ export * from "./find-by-id.js";
4
+ export * from "./get-by-id.js";
5
+ export * from "./get-franceconnect-user-info.js";
6
+ export * from "./update-user-organization-link.js";
7
+ export * from "./update.js";
8
+ export * from "./upsert-franceconnect-userinfo.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/repositories/user/index.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,aAAa,CAAC;AAC5B,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,9 @@
1
+ //
2
+ export * from "./create.js";
3
+ export * from "./find-by-email.js";
4
+ export * from "./find-by-id.js";
5
+ export * from "./get-by-id.js";
6
+ export * from "./get-franceconnect-user-info.js";
7
+ export * from "./update-user-organization-link.js";
8
+ export * from "./update.js";
9
+ export * from "./upsert-franceconnect-userinfo.js";
@@ -0,0 +1,16 @@
1
+ import type { DatabaseContext, UserOrganizationLink } from "#src/types";
2
+ export declare function updateUserOrganizationLinkFactory({ pg }: DatabaseContext): (organization_id: number, user_id: number, fieldsToUpdate: Partial<UserOrganizationLink>) => Promise<{
3
+ is_external: boolean;
4
+ verification_type: "code_sent_to_official_contact_email" | "domain" | "imported_from_coop_mediation_numerique" | "imported_from_inclusion_connect" | "in_liste_dirigeants_rna" | "in_liste_dirigeants_rne" | "no_validation_means_available" | "no_verification_means_for_entreprise_unipersonnelle" | "no_verification_means_for_small_association" | "official_contact_email" | "organization_dirigeant" | "proof_received" | "bypassed" | null;
5
+ verified_at: Date | null;
6
+ has_been_greeted: boolean;
7
+ needs_official_contact_email_verification: boolean;
8
+ official_contact_email_verification_token: string | null;
9
+ official_contact_email_verification_sent_at: Date | null;
10
+ user_id: number;
11
+ organization_id: number;
12
+ created_at: Date;
13
+ updated_at: Date;
14
+ }>;
15
+ export type UpdateUserOrganizationLinkHandler = ReturnType<typeof updateUserOrganizationLinkFactory>;
16
+ //# sourceMappingURL=update-user-organization-link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-user-organization-link.d.ts","sourceRoot":"","sources":["../../../src/repositories/user/update-user-organization-link.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAQ,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAK9E,wBAAgB,iCAAiC,CAAC,EAAE,EAAE,EAAE,EAAE,eAAe,IAErE,iBAAiB,MAAM,EACvB,SAAS,MAAM,EACf,gBAAgB,OAAO,CAAC,oBAAoB,CAAC;;;;;;;;;;;;GAyBhD;AAED,MAAM,MAAM,iCAAiC,GAAG,UAAU,CACxD,OAAO,iCAAiC,CACzC,CAAC"}
@@ -0,0 +1,20 @@
1
+ //
2
+ import { hashToPostgresParams } from "#src/services/postgres";
3
+ //
4
+ export function updateUserOrganizationLinkFactory({ pg }) {
5
+ return async function updateUserOrganizationLink(organization_id, user_id, fieldsToUpdate) {
6
+ const connection = pg;
7
+ const fieldsToUpdateWithTimestamps = {
8
+ ...fieldsToUpdate,
9
+ updated_at: new Date(),
10
+ };
11
+ const { paramsString, valuesString, values } = hashToPostgresParams(fieldsToUpdateWithTimestamps);
12
+ const { rows } = await connection.query(`
13
+ UPDATE users_organizations SET ${paramsString} = ${valuesString}
14
+ WHERE organization_id = $${values.length + 1}
15
+ AND user_id = $${values.length + 2}
16
+ RETURNING *
17
+ `, [...values, organization_id, user_id]);
18
+ return rows.shift();
19
+ };
20
+ }
@@ -0,0 +1,4 @@
1
+ import type { DatabaseContext, User } from "#src/types";
2
+ export declare function updateUserFactory({ pg }: DatabaseContext): (id: number, fieldsToUpdate: Partial<User>) => Promise<User>;
3
+ export type UpdateUserHandler = ReturnType<typeof updateUserFactory>;
4
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/repositories/user/update.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAKxD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,eAAe,IACtB,IAAI,MAAM,EAAE,gBAAgB,OAAO,CAAC,IAAI,CAAC,mBAsB3E;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ //
2
+ import { hashToPostgresParams } from "#src/services/postgres";
3
+ //
4
+ export function updateUserFactory({ pg }) {
5
+ return async function updateUser(id, fieldsToUpdate) {
6
+ const fieldsToUpdateWithTimestamps = {
7
+ ...fieldsToUpdate,
8
+ updated_at: new Date(),
9
+ };
10
+ const { paramsString, valuesString, values } = hashToPostgresParams(fieldsToUpdateWithTimestamps);
11
+ const { rows } = await pg.query(`
12
+ UPDATE users
13
+ SET ${paramsString} = ${valuesString}
14
+ WHERE id = $${values.length + 1}
15
+ RETURNING *
16
+ `, [...values, id]);
17
+ return rows.shift();
18
+ };
19
+ }
@@ -0,0 +1,15 @@
1
+ import type { DatabaseContext, FranceConnectUserInfo } from "#src/types";
2
+ export declare function upsertFranceconnectUserinfoFactory({ pg }: DatabaseContext): (value: Pick<FranceConnectUserInfo, "user_id"> & Partial<FranceConnectUserInfo>) => Promise<{
3
+ birthdate: Date;
4
+ birthplace: string;
5
+ family_name: string;
6
+ gender: string;
7
+ given_name: string;
8
+ sub: string;
9
+ created_at: Date;
10
+ updated_at: Date;
11
+ user_id: number;
12
+ preferred_username?: string | undefined;
13
+ }>;
14
+ export type UpsetFranceconnectUserinfoHandler = ReturnType<typeof upsertFranceconnectUserinfoFactory>;
15
+ //# sourceMappingURL=upsert-franceconnect-userinfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upsert-franceconnect-userinfo.d.ts","sourceRoot":"","sources":["../../../src/repositories/user/upsert-franceconnect-userinfo.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAIzE,wBAAgB,kCAAkC,CAAC,EAAE,EAAE,EAAE,EAAE,eAAe,IAEtE,OAAO,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC,GAC3C,OAAO,CAAC,qBAAqB,CAAC;;;;;;;;;;;GA0BnC;AAED,MAAM,MAAM,iCAAiC,GAAG,UAAU,CACxD,OAAO,kCAAkC,CAC1C,CAAC"}
@@ -0,0 +1,23 @@
1
+ //
2
+ import { hashToPostgresParams } from "#src/services/postgres";
3
+ //
4
+ export function upsertFranceconnectUserinfoFactory({ pg }) {
5
+ return async function upsertFranceconnectUserinfo(value) {
6
+ const fieldsWithTimestamps = {
7
+ ...value,
8
+ updated_at: new Date(),
9
+ };
10
+ const { paramsString, valuesString, values } = hashToPostgresParams(fieldsWithTimestamps);
11
+ const { rows } = await pg.query(`
12
+ INSERT INTO franceconnect_userinfo
13
+ ${paramsString}
14
+ VALUES
15
+ ${valuesString}
16
+ ON CONFLICT (user_id)
17
+ DO UPDATE
18
+ SET ${paramsString} = ${valuesString}
19
+ RETURNING *
20
+ `, [...values]);
21
+ return rows.shift();
22
+ };
23
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./is-domain-allowed-for-organization.js";
2
+ export * from "./is-entreprise-unipersonnelle.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/organization/index.ts"],"names":[],"mappings":"AAEA,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,3 @@
1
+ //
2
+ export * from "./is-domain-allowed-for-organization.js";
3
+ export * from "./is-entreprise-unipersonnelle.js";
@@ -0,0 +1,2 @@
1
+ export declare function isDomainAllowedForOrganization(siret: string, domain: string): boolean;
2
+ //# sourceMappingURL=is-domain-allowed-for-organization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-domain-allowed-for-organization.d.ts","sourceRoot":"","sources":["../../../src/services/organization/is-domain-allowed-for-organization.ts"],"names":[],"mappings":"AAEA,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,WAO3E"}
@@ -0,0 +1,8 @@
1
+ import { DOMAINS_WHITELIST } from "@proconnect-gouv/proconnect.identite/data/organization";
2
+ export function isDomainAllowedForOrganization(siret, domain) {
3
+ const whitelist = DOMAINS_WHITELIST.get(siret);
4
+ // Allow unknown siret to ignore whitelisting
5
+ if (!whitelist)
6
+ return true;
7
+ return whitelist.includes(domain);
8
+ }
@@ -0,0 +1,9 @@
1
+ import type { Organization } from "#src/types";
2
+ /**
3
+ * These fonctions return approximate results. As the data tranche effectifs is
4
+ * two years old. Consequently, an organization that growths quickly within the
5
+ * first two years of his existence can be miss-identified as unipersonnelle by
6
+ * this fonction.
7
+ */
8
+ export declare function isEntrepriseUnipersonnelle({ cached_libelle_categorie_juridique, cached_tranche_effectifs, }: Pick<Organization, "cached_libelle_categorie_juridique" | "cached_tranche_effectifs">): boolean;
9
+ //# sourceMappingURL=is-entreprise-unipersonnelle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-entreprise-unipersonnelle.d.ts","sourceRoot":"","sources":["../../../src/services/organization/is-entreprise-unipersonnelle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,kCAAkC,EAClC,wBAAwB,GACzB,EAAE,IAAI,CACL,YAAY,EACZ,oCAAoC,GAAG,0BAA0B,CAClE,GAAG,OAAO,CAcV"}
@@ -0,0 +1,18 @@
1
+ //
2
+ /**
3
+ * These fonctions return approximate results. As the data tranche effectifs is
4
+ * two years old. Consequently, an organization that growths quickly within the
5
+ * first two years of his existence can be miss-identified as unipersonnelle by
6
+ * this fonction.
7
+ */
8
+ export function isEntrepriseUnipersonnelle({ cached_libelle_categorie_juridique, cached_tranche_effectifs, }) {
9
+ // check that the organization has the right catégorie juridique
10
+ const cat_jur_ok = [
11
+ "Entrepreneur individuel",
12
+ "Société à responsabilité limitée (sans autre indication)",
13
+ "SAS, société par actions simplifiée",
14
+ ].includes(cached_libelle_categorie_juridique || "");
15
+ // check that the organization has the right tranche effectifs
16
+ const tra_eff_ok = [null, "NN", "00", "01"].includes(cached_tranche_effectifs);
17
+ return cat_jur_ok && tra_eff_ok;
18
+ }
@@ -0,0 +1,6 @@
1
+ export declare function hashToPostgresParams<T>(fieldsToUpdate: Partial<T>): {
2
+ paramsString: string;
3
+ valuesString: string;
4
+ values: any[];
5
+ };
6
+ //# sourceMappingURL=hash-to-postgres-params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash-to-postgres-params.d.ts","sourceRoot":"","sources":["../../../src/services/postgres/hash-to-postgres-params.ts"],"names":[],"mappings":"AAMA,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG;IAEnE,YAAY,EAAE,MAAM,CAAC;IAErB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,GAAG,EAAE,CAAC;CACf,CAqBA"}
@@ -0,0 +1,21 @@
1
+ //
2
+ import { chain } from "lodash-es";
3
+ //
4
+ export function hashToPostgresParams(fieldsToUpdate) {
5
+ const paramsString = "(" + Object.keys(fieldsToUpdate).join(", ") + ")";
6
+ // 'email, encrypted_password'
7
+ const valuesString = "(" +
8
+ chain(fieldsToUpdate)
9
+ // { email: 'email@xy.z', encrypted_password: 'hash' }
10
+ .toPairs()
11
+ // [[ 'email', 'email@xy.z'], ['encrypted_password', 'hash' ]]
12
+ .map((_value, index) => `$${index + 1}`)
13
+ // [ '$1', '$2' ]
14
+ .join(", ")
15
+ // '$1, $2'
16
+ .value() +
17
+ ")";
18
+ const values = Object.values(fieldsToUpdate);
19
+ // [ 'email@xy.z', 'hash' ]
20
+ return { paramsString, valuesString, values };
21
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./hash-to-postgres-params.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/postgres/index.ts"],"names":[],"mappings":"AAEA,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1,2 @@
1
+ //
2
+ export * from "./hash-to-postgres-params.js";
@@ -0,0 +1,16 @@
1
+ import { z } from "zod";
2
+ export declare const UserClaimsSchema: z.ZodObject<{
3
+ email_verified: z.ZodBoolean;
4
+ email: z.ZodString;
5
+ family_name: z.ZodOptional<z.ZodString>;
6
+ given_name: z.ZodOptional<z.ZodString>;
7
+ job: z.ZodOptional<z.ZodString>;
8
+ phone_number_verified: z.ZodBoolean;
9
+ phone_number: z.ZodOptional<z.ZodString>;
10
+ sub: z.ZodString;
11
+ uid: z.ZodString;
12
+ updated_at: z.ZodDate;
13
+ usual_name: z.ZodOptional<z.ZodString>;
14
+ }, z.core.$strip>;
15
+ export type UserClaims = z.output<typeof UserClaimsSchema>;
16
+ //# sourceMappingURL=claims.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claims.d.ts","sourceRoot":"","sources":["../../src/types/claims.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;iBAY3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ //
2
+ import { z } from "zod";
3
+ //
4
+ export const UserClaimsSchema = z.object({
5
+ email_verified: z.boolean(),
6
+ email: z.string(),
7
+ family_name: z.string().optional(),
8
+ given_name: z.string().optional(),
9
+ job: z.string().optional(),
10
+ phone_number_verified: z.boolean(),
11
+ phone_number: z.string().optional(),
12
+ sub: z.string(),
13
+ uid: z.string(),
14
+ updated_at: z.date(),
15
+ usual_name: z.string().optional(),
16
+ });
@@ -0,0 +1,5 @@
1
+ import Pg from "pg";
2
+ export type DatabaseContext = {
3
+ pg: Pg.Pool;
4
+ };
5
+ //# sourceMappingURL=contexts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contexts.d.ts","sourceRoot":"","sources":["../../src/types/contexts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,CAAC;AAIpB,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;CACb,CAAC"}
@@ -0,0 +1,2 @@
1
+ //
2
+ import Pg from "pg";
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+ export declare const IdentityVectorSchema: z.ZodObject<{
3
+ birthdate: z.ZodNullable<z.ZodDate>;
4
+ birthplace: z.ZodNullable<z.ZodString>;
5
+ family_name: z.ZodNullable<z.ZodString>;
6
+ given_name: z.ZodNullable<z.ZodString>;
7
+ }, z.core.$strip>;
8
+ export type IdentityVector = z.output<typeof IdentityVectorSchema>;
9
+ //# sourceMappingURL=dirigeant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dirigeant.d.ts","sourceRoot":"","sources":["../../src/types/dirigeant.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,oBAAoB;;;;;iBAK/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ //
2
+ import { z } from "zod";
3
+ //
4
+ export const IdentityVectorSchema = z.object({
5
+ birthdate: z.date().nullable(),
6
+ birthplace: z.string().nullable(),
7
+ family_name: z.string().nullable(),
8
+ given_name: z.string().nullable(),
9
+ });
@@ -0,0 +1,25 @@
1
+ import { z } from "zod";
2
+ export declare const EMAIL_DOMAIN_APPROVED_VERIFICATION_TYPES: z.ZodEnum<{
3
+ official_contact: "official_contact";
4
+ trackdechets_postal_mail: "trackdechets_postal_mail";
5
+ verified: "verified";
6
+ }>;
7
+ export type EmailDomainApprovedVerificationType = z.output<typeof EMAIL_DOMAIN_APPROVED_VERIFICATION_TYPES>;
8
+ export declare const EMAIL_DOMAIN_REJECTED_VERIFICATION_TYPES: z.ZodEnum<{
9
+ blacklisted: "blacklisted";
10
+ external: "external";
11
+ refused: "refused";
12
+ }>;
13
+ export type EmailDomainRejectedVerificationType = z.output<typeof EMAIL_DOMAIN_REJECTED_VERIFICATION_TYPES>;
14
+ export type EmailDomainVerificationType = EmailDomainApprovedVerificationType | EmailDomainRejectedVerificationType | null;
15
+ export interface EmailDomain {
16
+ id: number;
17
+ organization_id: number;
18
+ domain: string;
19
+ verification_type: EmailDomainVerificationType;
20
+ can_be_suggested: boolean;
21
+ verified_at: Date | null;
22
+ created_at: Date;
23
+ updated_at: Date;
24
+ }
25
+ //# sourceMappingURL=email-domain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-domain.d.ts","sourceRoot":"","sources":["../../src/types/email-domain.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,wCAAwC;;;;EAInD,CAAC;AAEH,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,MAAM,CACxD,OAAO,wCAAwC,CAChD,CAAC;AAIF,eAAO,MAAM,wCAAwC;;;;EAInD,CAAC;AAEH,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,MAAM,CACxD,OAAO,wCAAwC,CAChD,CAAC;AAIF,MAAM,MAAM,2BAA2B,GACnC,mCAAmC,GACnC,mCAAmC,GACnC,IAAI,CAAC;AAET,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,2BAA2B,CAAC;IAE/C,gBAAgB,EAAE,OAAO,CAAC;IAG1B,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;CAClB"}