@open-mercato/core 0.4.8-develop-6b37dabfa2 → 0.4.8-develop-84f3678a58

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 (330) hide show
  1. package/agentic/standalone-guide.md +235 -0
  2. package/dist/generated/entities/customer_role/index.js +27 -0
  3. package/dist/generated/entities/customer_role/index.js.map +7 -0
  4. package/dist/generated/entities/customer_role_acl/index.js +19 -0
  5. package/dist/generated/entities/customer_role_acl/index.js.map +7 -0
  6. package/dist/generated/entities/customer_user/index.js +37 -0
  7. package/dist/generated/entities/customer_user/index.js.map +7 -0
  8. package/dist/generated/entities/customer_user_acl/index.js +19 -0
  9. package/dist/generated/entities/customer_user_acl/index.js.map +7 -0
  10. package/dist/generated/entities/customer_user_email_verification/index.js +17 -0
  11. package/dist/generated/entities/customer_user_email_verification/index.js.map +7 -0
  12. package/dist/generated/entities/customer_user_invitation/index.js +33 -0
  13. package/dist/generated/entities/customer_user_invitation/index.js.map +7 -0
  14. package/dist/generated/entities/customer_user_password_reset/index.js +15 -0
  15. package/dist/generated/entities/customer_user_password_reset/index.js.map +7 -0
  16. package/dist/generated/entities/customer_user_role/index.js +13 -0
  17. package/dist/generated/entities/customer_user_role/index.js.map +7 -0
  18. package/dist/generated/entities/customer_user_session/index.js +21 -0
  19. package/dist/generated/entities/customer_user_session/index.js.map +7 -0
  20. package/dist/generated/entities/organization/index.js +2 -0
  21. package/dist/generated/entities/organization/index.js.map +2 -2
  22. package/dist/generated/entities.ids.generated.js +14 -1
  23. package/dist/generated/entities.ids.generated.js.map +2 -2
  24. package/dist/generated/entity-fields-registry.js +18 -0
  25. package/dist/generated/entity-fields-registry.js.map +2 -2
  26. package/dist/modules/auth/services/rbacService.js +3 -9
  27. package/dist/modules/auth/services/rbacService.js.map +2 -2
  28. package/dist/modules/customer_accounts/acl.js +12 -0
  29. package/dist/modules/customer_accounts/acl.js.map +7 -0
  30. package/dist/modules/customer_accounts/api/admin/roles/[id]/acl.js +87 -0
  31. package/dist/modules/customer_accounts/api/admin/roles/[id]/acl.js.map +7 -0
  32. package/dist/modules/customer_accounts/api/admin/roles/[id].js +216 -0
  33. package/dist/modules/customer_accounts/api/admin/roles/[id].js.map +7 -0
  34. package/dist/modules/customer_accounts/api/admin/roles.js +189 -0
  35. package/dist/modules/customer_accounts/api/admin/roles.js.map +7 -0
  36. package/dist/modules/customer_accounts/api/admin/users/[id]/reset-password.js +69 -0
  37. package/dist/modules/customer_accounts/api/admin/users/[id]/reset-password.js.map +7 -0
  38. package/dist/modules/customer_accounts/api/admin/users/[id]/verify-email.js +64 -0
  39. package/dist/modules/customer_accounts/api/admin/users/[id]/verify-email.js.map +7 -0
  40. package/dist/modules/customer_accounts/api/admin/users/[id].js +253 -0
  41. package/dist/modules/customer_accounts/api/admin/users/[id].js.map +7 -0
  42. package/dist/modules/customer_accounts/api/admin/users-invite.js +78 -0
  43. package/dist/modules/customer_accounts/api/admin/users-invite.js.map +7 -0
  44. package/dist/modules/customer_accounts/api/admin/users.js +251 -0
  45. package/dist/modules/customer_accounts/api/admin/users.js.map +7 -0
  46. package/dist/modules/customer_accounts/api/email/verify.js +59 -0
  47. package/dist/modules/customer_accounts/api/email/verify.js.map +7 -0
  48. package/dist/modules/customer_accounts/api/interceptors.js +5 -0
  49. package/dist/modules/customer_accounts/api/interceptors.js.map +7 -0
  50. package/dist/modules/customer_accounts/api/invitations/accept.js +114 -0
  51. package/dist/modules/customer_accounts/api/invitations/accept.js.map +7 -0
  52. package/dist/modules/customer_accounts/api/login.js +143 -0
  53. package/dist/modules/customer_accounts/api/login.js.map +7 -0
  54. package/dist/modules/customer_accounts/api/magic-link/request.js +78 -0
  55. package/dist/modules/customer_accounts/api/magic-link/request.js.map +7 -0
  56. package/dist/modules/customer_accounts/api/magic-link/verify.js +114 -0
  57. package/dist/modules/customer_accounts/api/magic-link/verify.js.map +7 -0
  58. package/dist/modules/customer_accounts/api/password/reset-confirm.js +59 -0
  59. package/dist/modules/customer_accounts/api/password/reset-confirm.js.map +7 -0
  60. package/dist/modules/customer_accounts/api/password/reset-request.js +77 -0
  61. package/dist/modules/customer_accounts/api/password/reset-request.js.map +7 -0
  62. package/dist/modules/customer_accounts/api/portal/events/stream.js +163 -0
  63. package/dist/modules/customer_accounts/api/portal/events/stream.js.map +7 -0
  64. package/dist/modules/customer_accounts/api/portal/feature-check.js +57 -0
  65. package/dist/modules/customer_accounts/api/portal/feature-check.js.map +7 -0
  66. package/dist/modules/customer_accounts/api/portal/logout.js +64 -0
  67. package/dist/modules/customer_accounts/api/portal/logout.js.map +7 -0
  68. package/dist/modules/customer_accounts/api/portal/notifications/[id]/dismiss.js +49 -0
  69. package/dist/modules/customer_accounts/api/portal/notifications/[id]/dismiss.js.map +7 -0
  70. package/dist/modules/customer_accounts/api/portal/notifications/[id]/read.js +49 -0
  71. package/dist/modules/customer_accounts/api/portal/notifications/[id]/read.js.map +7 -0
  72. package/dist/modules/customer_accounts/api/portal/notifications/mark-all-read.js +46 -0
  73. package/dist/modules/customer_accounts/api/portal/notifications/mark-all-read.js.map +7 -0
  74. package/dist/modules/customer_accounts/api/portal/notifications/unread-count.js +42 -0
  75. package/dist/modules/customer_accounts/api/portal/notifications/unread-count.js.map +7 -0
  76. package/dist/modules/customer_accounts/api/portal/notifications.js +105 -0
  77. package/dist/modules/customer_accounts/api/portal/notifications.js.map +7 -0
  78. package/dist/modules/customer_accounts/api/portal/password-change.js +57 -0
  79. package/dist/modules/customer_accounts/api/portal/password-change.js.map +7 -0
  80. package/dist/modules/customer_accounts/api/portal/profile.js +135 -0
  81. package/dist/modules/customer_accounts/api/portal/profile.js.map +7 -0
  82. package/dist/modules/customer_accounts/api/portal/sessions/[id].js +62 -0
  83. package/dist/modules/customer_accounts/api/portal/sessions/[id].js.map +7 -0
  84. package/dist/modules/customer_accounts/api/portal/sessions-refresh.js +75 -0
  85. package/dist/modules/customer_accounts/api/portal/sessions-refresh.js.map +7 -0
  86. package/dist/modules/customer_accounts/api/portal/sessions.js +77 -0
  87. package/dist/modules/customer_accounts/api/portal/sessions.js.map +7 -0
  88. package/dist/modules/customer_accounts/api/portal/users/[id]/roles.js +90 -0
  89. package/dist/modules/customer_accounts/api/portal/users/[id]/roles.js.map +7 -0
  90. package/dist/modules/customer_accounts/api/portal/users/[id].js +71 -0
  91. package/dist/modules/customer_accounts/api/portal/users/[id].js.map +7 -0
  92. package/dist/modules/customer_accounts/api/portal/users-invite.js +92 -0
  93. package/dist/modules/customer_accounts/api/portal/users-invite.js.map +7 -0
  94. package/dist/modules/customer_accounts/api/portal/users.js +79 -0
  95. package/dist/modules/customer_accounts/api/portal/users.js.map +7 -0
  96. package/dist/modules/customer_accounts/api/signup.js +121 -0
  97. package/dist/modules/customer_accounts/api/signup.js.map +7 -0
  98. package/dist/modules/customer_accounts/backend/customer_accounts/[id]/page.js +491 -0
  99. package/dist/modules/customer_accounts/backend/customer_accounts/[id]/page.js.map +7 -0
  100. package/dist/modules/customer_accounts/backend/customer_accounts/[id]/page.meta.js +15 -0
  101. package/dist/modules/customer_accounts/backend/customer_accounts/[id]/page.meta.js.map +7 -0
  102. package/dist/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.js +343 -0
  103. package/dist/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.js.map +7 -0
  104. package/dist/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.meta.js +16 -0
  105. package/dist/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.meta.js.map +7 -0
  106. package/dist/modules/customer_accounts/backend/customer_accounts/roles/create/page.js +180 -0
  107. package/dist/modules/customer_accounts/backend/customer_accounts/roles/create/page.js.map +7 -0
  108. package/dist/modules/customer_accounts/backend/customer_accounts/roles/create/page.meta.js +16 -0
  109. package/dist/modules/customer_accounts/backend/customer_accounts/roles/create/page.meta.js.map +7 -0
  110. package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js +176 -0
  111. package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js.map +7 -0
  112. package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.meta.js +33 -0
  113. package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.meta.js.map +7 -0
  114. package/dist/modules/customer_accounts/backend/page.js +466 -0
  115. package/dist/modules/customer_accounts/backend/page.js.map +7 -0
  116. package/dist/modules/customer_accounts/backend/page.meta.js +35 -0
  117. package/dist/modules/customer_accounts/backend/page.meta.js.map +7 -0
  118. package/dist/modules/customer_accounts/ce.js +26 -0
  119. package/dist/modules/customer_accounts/ce.js.map +7 -0
  120. package/dist/modules/customer_accounts/data/enrichers.js +85 -0
  121. package/dist/modules/customer_accounts/data/enrichers.js.map +7 -0
  122. package/dist/modules/customer_accounts/data/entities.js +377 -0
  123. package/dist/modules/customer_accounts/data/entities.js.map +7 -0
  124. package/dist/modules/customer_accounts/data/extensions.js +8 -0
  125. package/dist/modules/customer_accounts/data/extensions.js.map +7 -0
  126. package/dist/modules/customer_accounts/data/validators.js +111 -0
  127. package/dist/modules/customer_accounts/data/validators.js.map +7 -0
  128. package/dist/modules/customer_accounts/di.js +17 -0
  129. package/dist/modules/customer_accounts/di.js.map +7 -0
  130. package/dist/modules/customer_accounts/events.js +28 -0
  131. package/dist/modules/customer_accounts/events.js.map +7 -0
  132. package/dist/modules/customer_accounts/index.js +15 -0
  133. package/dist/modules/customer_accounts/index.js.map +7 -0
  134. package/dist/modules/customer_accounts/lib/customerAuth.js +71 -0
  135. package/dist/modules/customer_accounts/lib/customerAuth.js.map +7 -0
  136. package/dist/modules/customer_accounts/lib/customerAuthServer.js +29 -0
  137. package/dist/modules/customer_accounts/lib/customerAuthServer.js.map +7 -0
  138. package/dist/modules/customer_accounts/lib/rateLimiter.js +63 -0
  139. package/dist/modules/customer_accounts/lib/rateLimiter.js.map +7 -0
  140. package/dist/modules/customer_accounts/lib/tokenGenerator.js +12 -0
  141. package/dist/modules/customer_accounts/lib/tokenGenerator.js.map +7 -0
  142. package/dist/modules/customer_accounts/migrations/Migration20260313222043.js +49 -0
  143. package/dist/modules/customer_accounts/migrations/Migration20260313222043.js.map +7 -0
  144. package/dist/modules/customer_accounts/notifications.client.js +47 -0
  145. package/dist/modules/customer_accounts/notifications.client.js.map +7 -0
  146. package/dist/modules/customer_accounts/notifications.js +46 -0
  147. package/dist/modules/customer_accounts/notifications.js.map +7 -0
  148. package/dist/modules/customer_accounts/search.js +120 -0
  149. package/dist/modules/customer_accounts/search.js.map +7 -0
  150. package/dist/modules/customer_accounts/services/customerInvitationService.js +87 -0
  151. package/dist/modules/customer_accounts/services/customerInvitationService.js.map +7 -0
  152. package/dist/modules/customer_accounts/services/customerRbacService.js +109 -0
  153. package/dist/modules/customer_accounts/services/customerRbacService.js.map +7 -0
  154. package/dist/modules/customer_accounts/services/customerSessionService.js +75 -0
  155. package/dist/modules/customer_accounts/services/customerSessionService.js.map +7 -0
  156. package/dist/modules/customer_accounts/services/customerTokenService.js +91 -0
  157. package/dist/modules/customer_accounts/services/customerTokenService.js.map +7 -0
  158. package/dist/modules/customer_accounts/services/customerUserService.js +92 -0
  159. package/dist/modules/customer_accounts/services/customerUserService.js.map +7 -0
  160. package/dist/modules/customer_accounts/setup.js +179 -0
  161. package/dist/modules/customer_accounts/setup.js.map +7 -0
  162. package/dist/modules/customer_accounts/subscribers/autoLinkCrm.js +54 -0
  163. package/dist/modules/customer_accounts/subscribers/autoLinkCrm.js.map +7 -0
  164. package/dist/modules/customer_accounts/subscribers/autoLinkCrmReverse.js +68 -0
  165. package/dist/modules/customer_accounts/subscribers/autoLinkCrmReverse.js.map +7 -0
  166. package/dist/modules/customer_accounts/subscribers/notifyStaffOnSignup.js +29 -0
  167. package/dist/modules/customer_accounts/subscribers/notifyStaffOnSignup.js.map +7 -0
  168. package/dist/modules/customer_accounts/translations.js +9 -0
  169. package/dist/modules/customer_accounts/translations.js.map +7 -0
  170. package/dist/modules/customer_accounts/widgets/injection/account-status/widget.client.js +63 -0
  171. package/dist/modules/customer_accounts/widgets/injection/account-status/widget.client.js.map +7 -0
  172. package/dist/modules/customer_accounts/widgets/injection/account-status/widget.js +17 -0
  173. package/dist/modules/customer_accounts/widgets/injection/account-status/widget.js.map +7 -0
  174. package/dist/modules/customer_accounts/widgets/injection/company-users/widget.client.js +55 -0
  175. package/dist/modules/customer_accounts/widgets/injection/company-users/widget.client.js.map +7 -0
  176. package/dist/modules/customer_accounts/widgets/injection/company-users/widget.js +17 -0
  177. package/dist/modules/customer_accounts/widgets/injection/company-users/widget.js.map +7 -0
  178. package/dist/modules/customer_accounts/widgets/injection-table.js +26 -0
  179. package/dist/modules/customer_accounts/widgets/injection-table.js.map +7 -0
  180. package/dist/modules/customer_accounts/workers/cleanupExpiredSessions.js +23 -0
  181. package/dist/modules/customer_accounts/workers/cleanupExpiredSessions.js.map +7 -0
  182. package/dist/modules/customer_accounts/workers/cleanupExpiredTokens.js +38 -0
  183. package/dist/modules/customer_accounts/workers/cleanupExpiredTokens.js.map +7 -0
  184. package/dist/modules/directory/api/get/organizations/lookup.js +83 -0
  185. package/dist/modules/directory/api/get/organizations/lookup.js.map +7 -0
  186. package/dist/modules/directory/commands/organizations.js +32 -1
  187. package/dist/modules/directory/commands/organizations.js.map +2 -2
  188. package/dist/modules/directory/data/entities.js +6 -2
  189. package/dist/modules/directory/data/entities.js.map +2 -2
  190. package/dist/modules/directory/data/validators.js +3 -0
  191. package/dist/modules/directory/data/validators.js.map +2 -2
  192. package/dist/modules/directory/migrations/Migration20260314143323.js +15 -0
  193. package/dist/modules/directory/migrations/Migration20260314143323.js.map +7 -0
  194. package/dist/modules/directory/setup.js +36 -0
  195. package/dist/modules/directory/setup.js.map +2 -2
  196. package/dist/modules/payment_gateways/migrations/Migration20260313222043.js +15 -0
  197. package/dist/modules/payment_gateways/migrations/Migration20260313222043.js.map +7 -0
  198. package/dist/modules/portal/frontend/[orgSlug]/portal/dashboard/page.js +131 -0
  199. package/dist/modules/portal/frontend/[orgSlug]/portal/dashboard/page.js.map +7 -0
  200. package/dist/modules/portal/frontend/[orgSlug]/portal/login/page.js +96 -0
  201. package/dist/modules/portal/frontend/[orgSlug]/portal/login/page.js.map +7 -0
  202. package/dist/modules/portal/frontend/[orgSlug]/portal/page.js +94 -0
  203. package/dist/modules/portal/frontend/[orgSlug]/portal/page.js.map +7 -0
  204. package/dist/modules/portal/frontend/[orgSlug]/portal/profile/page.js +89 -0
  205. package/dist/modules/portal/frontend/[orgSlug]/portal/profile/page.js.map +7 -0
  206. package/dist/modules/portal/frontend/[orgSlug]/portal/signup/page.js +104 -0
  207. package/dist/modules/portal/frontend/[orgSlug]/portal/signup/page.js.map +7 -0
  208. package/dist/modules/portal/index.js +11 -0
  209. package/dist/modules/portal/index.js.map +7 -0
  210. package/dist/modules/portal/setup.js +23 -0
  211. package/dist/modules/portal/setup.js.map +7 -0
  212. package/generated/entities/customer_role/index.ts +12 -0
  213. package/generated/entities/customer_role_acl/index.ts +8 -0
  214. package/generated/entities/customer_user/index.ts +17 -0
  215. package/generated/entities/customer_user_acl/index.ts +8 -0
  216. package/generated/entities/customer_user_email_verification/index.ts +7 -0
  217. package/generated/entities/customer_user_invitation/index.ts +15 -0
  218. package/generated/entities/customer_user_password_reset/index.ts +6 -0
  219. package/generated/entities/customer_user_role/index.ts +5 -0
  220. package/generated/entities/customer_user_session/index.ts +9 -0
  221. package/generated/entities/organization/index.ts +1 -0
  222. package/generated/entities.ids.generated.ts +14 -1
  223. package/generated/entity-fields-registry.ts +18 -0
  224. package/package.json +3 -3
  225. package/src/modules/auth/services/rbacService.ts +3 -9
  226. package/src/modules/customer_accounts/AGENTS.md +377 -0
  227. package/src/modules/customer_accounts/acl.ts +8 -0
  228. package/src/modules/customer_accounts/api/admin/roles/[id]/acl.ts +98 -0
  229. package/src/modules/customer_accounts/api/admin/roles/[id].ts +246 -0
  230. package/src/modules/customer_accounts/api/admin/roles.ts +212 -0
  231. package/src/modules/customer_accounts/api/admin/users/[id]/reset-password.ts +78 -0
  232. package/src/modules/customer_accounts/api/admin/users/[id]/verify-email.ts +72 -0
  233. package/src/modules/customer_accounts/api/admin/users/[id].ts +289 -0
  234. package/src/modules/customer_accounts/api/admin/users-invite.ts +86 -0
  235. package/src/modules/customer_accounts/api/admin/users.ts +280 -0
  236. package/src/modules/customer_accounts/api/email/verify.ts +66 -0
  237. package/src/modules/customer_accounts/api/interceptors.ts +3 -0
  238. package/src/modules/customer_accounts/api/invitations/accept.ts +128 -0
  239. package/src/modules/customer_accounts/api/login.ts +163 -0
  240. package/src/modules/customer_accounts/api/magic-link/request.ts +87 -0
  241. package/src/modules/customer_accounts/api/magic-link/verify.ts +132 -0
  242. package/src/modules/customer_accounts/api/password/reset-confirm.ts +69 -0
  243. package/src/modules/customer_accounts/api/password/reset-request.ts +87 -0
  244. package/src/modules/customer_accounts/api/portal/events/stream.ts +209 -0
  245. package/src/modules/customer_accounts/api/portal/feature-check.ts +60 -0
  246. package/src/modules/customer_accounts/api/portal/logout.ts +71 -0
  247. package/src/modules/customer_accounts/api/portal/notifications/[id]/dismiss.ts +54 -0
  248. package/src/modules/customer_accounts/api/portal/notifications/[id]/read.ts +54 -0
  249. package/src/modules/customer_accounts/api/portal/notifications/mark-all-read.ts +49 -0
  250. package/src/modules/customer_accounts/api/portal/notifications/unread-count.ts +45 -0
  251. package/src/modules/customer_accounts/api/portal/notifications.ts +115 -0
  252. package/src/modules/customer_accounts/api/portal/password-change.ts +65 -0
  253. package/src/modules/customer_accounts/api/portal/profile.ts +151 -0
  254. package/src/modules/customer_accounts/api/portal/sessions/[id].ts +70 -0
  255. package/src/modules/customer_accounts/api/portal/sessions-refresh.ts +87 -0
  256. package/src/modules/customer_accounts/api/portal/sessions.ts +84 -0
  257. package/src/modules/customer_accounts/api/portal/users/[id]/roles.ts +106 -0
  258. package/src/modules/customer_accounts/api/portal/users/[id].ts +81 -0
  259. package/src/modules/customer_accounts/api/portal/users-invite.ts +103 -0
  260. package/src/modules/customer_accounts/api/portal/users.ts +86 -0
  261. package/src/modules/customer_accounts/api/signup.ts +136 -0
  262. package/src/modules/customer_accounts/backend/customer_accounts/[id]/page.meta.ts +11 -0
  263. package/src/modules/customer_accounts/backend/customer_accounts/[id]/page.tsx +607 -0
  264. package/src/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.meta.ts +12 -0
  265. package/src/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.tsx +385 -0
  266. package/src/modules/customer_accounts/backend/customer_accounts/roles/create/page.meta.ts +12 -0
  267. package/src/modules/customer_accounts/backend/customer_accounts/roles/create/page.tsx +203 -0
  268. package/src/modules/customer_accounts/backend/customer_accounts/roles/page.meta.ts +31 -0
  269. package/src/modules/customer_accounts/backend/customer_accounts/roles/page.tsx +217 -0
  270. package/src/modules/customer_accounts/backend/page.meta.ts +33 -0
  271. package/src/modules/customer_accounts/backend/page.tsx +535 -0
  272. package/src/modules/customer_accounts/ce.ts +22 -0
  273. package/src/modules/customer_accounts/data/enrichers.ts +117 -0
  274. package/src/modules/customer_accounts/data/entities.ts +302 -0
  275. package/src/modules/customer_accounts/data/extensions.ts +4 -0
  276. package/src/modules/customer_accounts/data/validators.ts +128 -0
  277. package/src/modules/customer_accounts/di.ts +15 -0
  278. package/src/modules/customer_accounts/events.ts +28 -0
  279. package/src/modules/customer_accounts/i18n/de.json +176 -0
  280. package/src/modules/customer_accounts/i18n/en.json +176 -0
  281. package/src/modules/customer_accounts/i18n/es.json +176 -0
  282. package/src/modules/customer_accounts/i18n/pl.json +176 -0
  283. package/src/modules/customer_accounts/index.ts +13 -0
  284. package/src/modules/customer_accounts/lib/customerAuth.ts +85 -0
  285. package/src/modules/customer_accounts/lib/customerAuthServer.ts +54 -0
  286. package/src/modules/customer_accounts/lib/rateLimiter.ts +36 -0
  287. package/src/modules/customer_accounts/lib/tokenGenerator.ts +9 -0
  288. package/src/modules/customer_accounts/migrations/.snapshot-open-mercato.json +1255 -0
  289. package/src/modules/customer_accounts/migrations/Migration20260313222043.ts +62 -0
  290. package/src/modules/customer_accounts/notifications.client.ts +46 -0
  291. package/src/modules/customer_accounts/notifications.ts +44 -0
  292. package/src/modules/customer_accounts/search.ts +134 -0
  293. package/src/modules/customer_accounts/services/customerInvitationService.ts +109 -0
  294. package/src/modules/customer_accounts/services/customerRbacService.ts +144 -0
  295. package/src/modules/customer_accounts/services/customerSessionService.ts +90 -0
  296. package/src/modules/customer_accounts/services/customerTokenService.ts +98 -0
  297. package/src/modules/customer_accounts/services/customerUserService.ts +105 -0
  298. package/src/modules/customer_accounts/setup.ts +212 -0
  299. package/src/modules/customer_accounts/subscribers/autoLinkCrm.ts +65 -0
  300. package/src/modules/customer_accounts/subscribers/autoLinkCrmReverse.ts +78 -0
  301. package/src/modules/customer_accounts/subscribers/notifyStaffOnSignup.ts +32 -0
  302. package/src/modules/customer_accounts/translations.ts +5 -0
  303. package/src/modules/customer_accounts/widgets/injection/account-status/widget.client.tsx +89 -0
  304. package/src/modules/customer_accounts/widgets/injection/account-status/widget.ts +16 -0
  305. package/src/modules/customer_accounts/widgets/injection/company-users/widget.client.tsx +78 -0
  306. package/src/modules/customer_accounts/widgets/injection/company-users/widget.ts +16 -0
  307. package/src/modules/customer_accounts/widgets/injection-table.ts +24 -0
  308. package/src/modules/customer_accounts/workers/cleanupExpiredSessions.ts +33 -0
  309. package/src/modules/customer_accounts/workers/cleanupExpiredTokens.ts +51 -0
  310. package/src/modules/directory/api/get/organizations/lookup.ts +92 -0
  311. package/src/modules/directory/commands/organizations.ts +34 -1
  312. package/src/modules/directory/data/entities.ts +5 -1
  313. package/src/modules/directory/data/validators.ts +4 -0
  314. package/src/modules/directory/migrations/.snapshot-open-mercato.json +20 -1
  315. package/src/modules/directory/migrations/Migration20260314143323.ts +15 -0
  316. package/src/modules/directory/setup.ts +41 -0
  317. package/src/modules/payment_gateways/migrations/.snapshot-open-mercato.json +4 -1
  318. package/src/modules/payment_gateways/migrations/Migration20260313222043.ts +17 -0
  319. package/src/modules/portal/frontend/[orgSlug]/portal/dashboard/page.tsx +158 -0
  320. package/src/modules/portal/frontend/[orgSlug]/portal/login/page.tsx +120 -0
  321. package/src/modules/portal/frontend/[orgSlug]/portal/page.tsx +118 -0
  322. package/src/modules/portal/frontend/[orgSlug]/portal/profile/page.tsx +112 -0
  323. package/src/modules/portal/frontend/[orgSlug]/portal/signup/page.tsx +138 -0
  324. package/src/modules/portal/i18n/de.json +93 -0
  325. package/src/modules/portal/i18n/en.json +93 -0
  326. package/src/modules/portal/i18n/es.json +93 -0
  327. package/src/modules/portal/i18n/pl.json +93 -0
  328. package/src/modules/portal/index.ts +9 -0
  329. package/src/modules/portal/setup.ts +23 -0
  330. package/src/modules/shipping_carriers/migrations/.snapshot-open-mercato.json +226 -0
@@ -249,3 +249,238 @@ import { registerCommand } from '@open-mercato/shared/lib/commands'
249
249
  ```
250
250
 
251
251
  Include `indexer: { entityType, cacheAliases }` in `emitCrudSideEffects` for query index refresh.
252
+
253
+ ## Customer Accounts
254
+
255
+ The `customer_accounts` module provides customer-facing authentication, sessions, RBAC, and account management. App modules build on top of it to add portal features.
256
+
257
+ ### Auth APIs
258
+
259
+ | Endpoint | Purpose |
260
+ |----------|---------|
261
+ | `POST /api/customer_accounts/login` | Email + password login, returns JWT + session cookies |
262
+ | `POST /api/customer_accounts/signup` | Self-registration |
263
+ | `POST /api/customer_accounts/magic-link/request` | Request passwordless login link |
264
+ | `POST /api/customer_accounts/magic-link/verify` | Verify magic link token |
265
+ | `POST /api/customer_accounts/password/reset-request` | Request password reset email |
266
+ | `POST /api/customer_accounts/password/reset-confirm` | Confirm password reset with token |
267
+ | `POST /api/customer_accounts/email/verify` | Verify email address |
268
+ | `POST /api/customer_accounts/invitations/accept` | Accept an invitation token |
269
+ | `POST /api/customer_accounts/portal/logout` | Clear customer session |
270
+ | `POST /api/customer_accounts/portal/sessions-refresh` | Refresh JWT from session token |
271
+ | `POST /api/customer_accounts/portal/password-change` | Change password (authenticated) |
272
+
273
+ ### Server-Side Auth Check
274
+
275
+ Use `getCustomerAuthFromCookies` in server components and catch-all routes:
276
+
277
+ ```typescript
278
+ import { getCustomerAuthFromCookies } from '@open-mercato/core/modules/customer_accounts/lib/customerAuthServer'
279
+
280
+ const auth = await getCustomerAuthFromCookies()
281
+ if (!auth) redirect(`/${orgSlug}/portal/login`)
282
+ // auth.sub, auth.email, auth.displayName, auth.resolvedFeatures, auth.customerEntityId
283
+ ```
284
+
285
+ ### Client-Side Auth
286
+
287
+ Use `useCustomerAuth` in portal client components:
288
+
289
+ ```typescript
290
+ import { useCustomerAuth } from '@open-mercato/ui/portal/hooks/useCustomerAuth'
291
+
292
+ const { user, roles, resolvedFeatures, isPortalAdmin, loading, logout } = useCustomerAuth(orgSlug)
293
+ ```
294
+
295
+ ### Customer RBAC
296
+
297
+ Declare `defaultCustomerRoleFeatures` in your module's `setup.ts` to auto-merge features into customer roles during tenant setup:
298
+
299
+ ```typescript
300
+ import type { ModuleSetupConfig } from '@open-mercato/shared/modules/setup'
301
+
302
+ export const setup: ModuleSetupConfig = {
303
+ defaultCustomerRoleFeatures: {
304
+ buyer: ['portal.my_module.view', 'portal.my_module.create'],
305
+ viewer: ['portal.my_module.view'],
306
+ },
307
+ }
308
+ ```
309
+
310
+ Built-in customer roles: `portal_admin` (full access), `buyer` (order/quote/catalog), `viewer` (read-only). Features merge additively on `seedDefaults`.
311
+
312
+ ### Portal Page Auth Metadata
313
+
314
+ Guard portal pages declaratively via page metadata:
315
+
316
+ ```typescript
317
+ // frontend/[orgSlug]/portal/my-feature/page.meta.ts
318
+ export const metadata = {
319
+ requireCustomerAuth: true,
320
+ requireCustomerFeatures: ['portal.my_module.view'],
321
+ navHidden: true,
322
+ }
323
+ ```
324
+
325
+ ### Events
326
+
327
+ Subscribe to customer account lifecycle events:
328
+
329
+ | Event ID | Category | Broadcast |
330
+ |----------|----------|-----------|
331
+ | `customer_accounts.user.created` | crud | `clientBroadcast` |
332
+ | `customer_accounts.user.updated` | crud | |
333
+ | `customer_accounts.user.deleted` | crud | |
334
+ | `customer_accounts.user.locked` | lifecycle | |
335
+ | `customer_accounts.user.unlocked` | lifecycle | |
336
+ | `customer_accounts.login.success` | lifecycle | |
337
+ | `customer_accounts.login.failed` | lifecycle | |
338
+ | `customer_accounts.email.verified` | lifecycle | |
339
+ | `customer_accounts.password.reset` | lifecycle | |
340
+ | `customer_accounts.invitation.accepted` | lifecycle | `clientBroadcast` |
341
+ | `customer_accounts.role.created` | crud | |
342
+ | `customer_accounts.role.updated` | crud | |
343
+ | `customer_accounts.role.deleted` | crud | |
344
+
345
+ ```typescript
346
+ // subscribers/on-customer-signup.ts
347
+ export const metadata = { event: 'customer_accounts.user.created', persistent: true, id: 'my-mod-on-customer-signup' }
348
+ export default async function handler(payload, ctx) { /* welcome email, CRM sync, etc. */ }
349
+ ```
350
+
351
+ ### Extending Customer Data
352
+
353
+ Link your module's entities to `CustomerUser` via `data/extensions.ts`:
354
+
355
+ ```typescript
356
+ import { defineLink, entityId, linkable } from '@open-mercato/shared/modules/dsl'
357
+ export const extensions = [
358
+ defineLink({ source: entityId('my_module:preference'), target: linkable('customer_accounts:user') }),
359
+ ]
360
+ ```
361
+
362
+ Key entities: `CustomerUser` (customer_users), `CustomerRole` (customer_roles), `CustomerRoleAcl`, `CustomerUserRole`, `CustomerUserSession`, `CustomerUserInvitation`.
363
+
364
+ ### Admin RBAC Features
365
+
366
+ Staff-side features for managing customer accounts:
367
+
368
+ | Feature | Purpose |
369
+ |---------|---------|
370
+ | `customer_accounts.view` | View customer accounts |
371
+ | `customer_accounts.manage` | Manage customer accounts |
372
+ | `customer_accounts.roles.manage` | Manage customer roles |
373
+ | `customer_accounts.invite` | Invite customer users |
374
+
375
+ ## Portal Extension
376
+
377
+ Build customer-facing portal pages that integrate with the shared portal shell, navigation, and event bridge.
378
+
379
+ ### Portal Feature Toggle
380
+
381
+ The portal is gated by the `portal_enabled` feature toggle (seeded by the `portal` module). When disabled, all portal routes show a "Portal not available" message.
382
+
383
+ ### Portal Page Structure
384
+
385
+ Portal pages live at `frontend/[orgSlug]/portal/<feature>/page.tsx` and use the portal shell:
386
+
387
+ ```typescript
388
+ 'use client'
389
+ import { useT } from '@open-mercato/shared/lib/i18n/context'
390
+ import { usePortalContext } from '@open-mercato/ui/portal/PortalContext'
391
+ import { PortalPageHeader } from '@open-mercato/ui/portal/components/PortalPageHeader'
392
+ import { PortalCard, PortalCardHeader } from '@open-mercato/ui/portal/components/PortalCard'
393
+
394
+ export default function MyPortalPage({ params }: { params: { orgSlug: string } }) {
395
+ const t = useT()
396
+ const { auth } = usePortalContext()
397
+ const { user, loading } = auth
398
+
399
+ if (loading) return <Spinner />
400
+ if (!user) return null
401
+
402
+ return (
403
+ <div className="flex flex-col gap-8">
404
+ <PortalPageHeader label={t('my_mod.portal.label')} title={t('my_mod.portal.title')} />
405
+ <PortalCard>
406
+ <PortalCardHeader label="Section" title="Content" />
407
+ {/* page content */}
408
+ </PortalCard>
409
+ </div>
410
+ )
411
+ }
412
+ ```
413
+
414
+ ### Portal Menu Injection
415
+
416
+ Inject navigation items into portal chrome surfaces:
417
+
418
+ | Spot ID | Purpose |
419
+ |---------|---------|
420
+ | `menu:portal:sidebar:main` | Main portal navigation |
421
+ | `menu:portal:sidebar:account` | Account/settings section |
422
+ | `menu:portal:header:actions` | Header action buttons |
423
+ | `menu:portal:user-dropdown` | User dropdown items |
424
+
425
+ ```typescript
426
+ // widgets/injection/PortalNavItem/widget.ts
427
+ import { InjectionPosition } from '@open-mercato/shared/modules/widgets/injection-position'
428
+
429
+ export const menuItems = [{
430
+ id: 'my-mod-portal-nav',
431
+ labelKey: 'my_mod.portal.menu.label',
432
+ icon: 'lucide:package',
433
+ href: '/portal/my-feature',
434
+ placement: { position: InjectionPosition.After, relativeTo: 'portal-dashboard' },
435
+ }]
436
+ ```
437
+
438
+ Map in `widgets/injection-table.ts`:
439
+ ```typescript
440
+ export default { 'menu:portal:sidebar:main': { widgetId: 'my_mod.injection.portal-nav', priority: 10 } }
441
+ ```
442
+
443
+ ### Portal Widget Injection Spots
444
+
445
+ Inject content into portal dashboard and pages:
446
+
447
+ | Spot ID | Purpose |
448
+ |---------|---------|
449
+ | `portal:dashboard:sections` | Dashboard section cards |
450
+ | `portal:dashboard:profile` | Dashboard profile area |
451
+ | `portal:dashboard:sidebar` | Dashboard sidebar |
452
+ | `portal:<pageId>:before` | Before any portal page content |
453
+ | `portal:<pageId>:after` | After any portal page content |
454
+
455
+ ### Portal Event Bridge
456
+
457
+ Events with `portalBroadcast: true` stream to authenticated portal users via SSE at `/api/customer_accounts/portal/events/stream`.
458
+
459
+ Declare portal-broadcast events:
460
+ ```typescript
461
+ // events.ts
462
+ const events = [
463
+ { id: 'my_mod.item.status_changed', label: 'Item Status Changed', portalBroadcast: true },
464
+ ] as const
465
+ ```
466
+
467
+ Listen in portal components:
468
+ ```typescript
469
+ import { usePortalAppEvent } from '@open-mercato/ui/portal/hooks/usePortalAppEvent'
470
+
471
+ usePortalAppEvent('my_mod.item.status_changed', (event) => { refetch() })
472
+ ```
473
+
474
+ Enable the bridge in PortalShell with `enableEventBridge` prop.
475
+
476
+ ### Portal Component Replacement
477
+
478
+ Override portal shell sections via component replacement handles:
479
+
480
+ | Handle | Purpose |
481
+ |--------|---------|
482
+ | `page:portal:layout` | Entire portal shell |
483
+ | `section:portal:header` | Header bar |
484
+ | `section:portal:footer` | Footer |
485
+ | `section:portal:sidebar` | Navigation sidebar |
486
+ | `section:portal:user-menu` | User dropdown |
@@ -0,0 +1,27 @@
1
+ const id = "id";
2
+ const tenant_id = "tenant_id";
3
+ const organization_id = "organization_id";
4
+ const name = "name";
5
+ const slug = "slug";
6
+ const description = "description";
7
+ const is_default = "is_default";
8
+ const is_system = "is_system";
9
+ const customer_assignable = "customer_assignable";
10
+ const created_at = "created_at";
11
+ const updated_at = "updated_at";
12
+ const deleted_at = "deleted_at";
13
+ export {
14
+ created_at,
15
+ customer_assignable,
16
+ deleted_at,
17
+ description,
18
+ id,
19
+ is_default,
20
+ is_system,
21
+ name,
22
+ organization_id,
23
+ slug,
24
+ tenant_id,
25
+ updated_at
26
+ };
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../generated/entities/customer_role/index.ts"],
4
+ "sourcesContent": ["export const id = 'id'\nexport const tenant_id = 'tenant_id'\nexport const organization_id = 'organization_id'\nexport const name = 'name'\nexport const slug = 'slug'\nexport const description = 'description'\nexport const is_default = 'is_default'\nexport const is_system = 'is_system'\nexport const customer_assignable = 'customer_assignable'\nexport const created_at = 'created_at'\nexport const updated_at = 'updated_at'\nexport const deleted_at = 'deleted_at'\n"],
5
+ "mappings": "AAAO,MAAM,KAAK;AACX,MAAM,YAAY;AAClB,MAAM,kBAAkB;AACxB,MAAM,OAAO;AACb,MAAM,OAAO;AACb,MAAM,cAAc;AACpB,MAAM,aAAa;AACnB,MAAM,YAAY;AAClB,MAAM,sBAAsB;AAC5B,MAAM,aAAa;AACnB,MAAM,aAAa;AACnB,MAAM,aAAa;",
6
+ "names": []
7
+ }
@@ -0,0 +1,19 @@
1
+ const id = "id";
2
+ const role = "role";
3
+ const tenant_id = "tenant_id";
4
+ const features_json = "features_json";
5
+ const is_portal_admin = "is_portal_admin";
6
+ const created_at = "created_at";
7
+ const updated_at = "updated_at";
8
+ const deleted_at = "deleted_at";
9
+ export {
10
+ created_at,
11
+ deleted_at,
12
+ features_json,
13
+ id,
14
+ is_portal_admin,
15
+ role,
16
+ tenant_id,
17
+ updated_at
18
+ };
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../generated/entities/customer_role_acl/index.ts"],
4
+ "sourcesContent": ["export const id = 'id'\nexport const role = 'role'\nexport const tenant_id = 'tenant_id'\nexport const features_json = 'features_json'\nexport const is_portal_admin = 'is_portal_admin'\nexport const created_at = 'created_at'\nexport const updated_at = 'updated_at'\nexport const deleted_at = 'deleted_at'\n"],
5
+ "mappings": "AAAO,MAAM,KAAK;AACX,MAAM,OAAO;AACb,MAAM,YAAY;AAClB,MAAM,gBAAgB;AACtB,MAAM,kBAAkB;AACxB,MAAM,aAAa;AACnB,MAAM,aAAa;AACnB,MAAM,aAAa;",
6
+ "names": []
7
+ }
@@ -0,0 +1,37 @@
1
+ const id = "id";
2
+ const tenant_id = "tenant_id";
3
+ const organization_id = "organization_id";
4
+ const email = "email";
5
+ const email_hash = "email_hash";
6
+ const password_hash = "password_hash";
7
+ const display_name = "display_name";
8
+ const email_verified_at = "email_verified_at";
9
+ const failed_login_attempts = "failed_login_attempts";
10
+ const locked_until = "locked_until";
11
+ const last_login_at = "last_login_at";
12
+ const person_entity_id = "person_entity_id";
13
+ const customer_entity_id = "customer_entity_id";
14
+ const is_active = "is_active";
15
+ const created_at = "created_at";
16
+ const updated_at = "updated_at";
17
+ const deleted_at = "deleted_at";
18
+ export {
19
+ created_at,
20
+ customer_entity_id,
21
+ deleted_at,
22
+ display_name,
23
+ email,
24
+ email_hash,
25
+ email_verified_at,
26
+ failed_login_attempts,
27
+ id,
28
+ is_active,
29
+ last_login_at,
30
+ locked_until,
31
+ organization_id,
32
+ password_hash,
33
+ person_entity_id,
34
+ tenant_id,
35
+ updated_at
36
+ };
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../generated/entities/customer_user/index.ts"],
4
+ "sourcesContent": ["export const id = 'id'\nexport const tenant_id = 'tenant_id'\nexport const organization_id = 'organization_id'\nexport const email = 'email'\nexport const email_hash = 'email_hash'\nexport const password_hash = 'password_hash'\nexport const display_name = 'display_name'\nexport const email_verified_at = 'email_verified_at'\nexport const failed_login_attempts = 'failed_login_attempts'\nexport const locked_until = 'locked_until'\nexport const last_login_at = 'last_login_at'\nexport const person_entity_id = 'person_entity_id'\nexport const customer_entity_id = 'customer_entity_id'\nexport const is_active = 'is_active'\nexport const created_at = 'created_at'\nexport const updated_at = 'updated_at'\nexport const deleted_at = 'deleted_at'\n"],
5
+ "mappings": "AAAO,MAAM,KAAK;AACX,MAAM,YAAY;AAClB,MAAM,kBAAkB;AACxB,MAAM,QAAQ;AACd,MAAM,aAAa;AACnB,MAAM,gBAAgB;AACtB,MAAM,eAAe;AACrB,MAAM,oBAAoB;AAC1B,MAAM,wBAAwB;AAC9B,MAAM,eAAe;AACrB,MAAM,gBAAgB;AACtB,MAAM,mBAAmB;AACzB,MAAM,qBAAqB;AAC3B,MAAM,YAAY;AAClB,MAAM,aAAa;AACnB,MAAM,aAAa;AACnB,MAAM,aAAa;",
6
+ "names": []
7
+ }
@@ -0,0 +1,19 @@
1
+ const id = "id";
2
+ const user = "user";
3
+ const tenant_id = "tenant_id";
4
+ const features_json = "features_json";
5
+ const is_portal_admin = "is_portal_admin";
6
+ const created_at = "created_at";
7
+ const updated_at = "updated_at";
8
+ const deleted_at = "deleted_at";
9
+ export {
10
+ created_at,
11
+ deleted_at,
12
+ features_json,
13
+ id,
14
+ is_portal_admin,
15
+ tenant_id,
16
+ updated_at,
17
+ user
18
+ };
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../generated/entities/customer_user_acl/index.ts"],
4
+ "sourcesContent": ["export const id = 'id'\nexport const user = 'user'\nexport const tenant_id = 'tenant_id'\nexport const features_json = 'features_json'\nexport const is_portal_admin = 'is_portal_admin'\nexport const created_at = 'created_at'\nexport const updated_at = 'updated_at'\nexport const deleted_at = 'deleted_at'\n"],
5
+ "mappings": "AAAO,MAAM,KAAK;AACX,MAAM,OAAO;AACb,MAAM,YAAY;AAClB,MAAM,gBAAgB;AACtB,MAAM,kBAAkB;AACxB,MAAM,aAAa;AACnB,MAAM,aAAa;AACnB,MAAM,aAAa;",
6
+ "names": []
7
+ }
@@ -0,0 +1,17 @@
1
+ const id = "id";
2
+ const user = "user";
3
+ const token = "token";
4
+ const purpose = "purpose";
5
+ const expires_at = "expires_at";
6
+ const used_at = "used_at";
7
+ const created_at = "created_at";
8
+ export {
9
+ created_at,
10
+ expires_at,
11
+ id,
12
+ purpose,
13
+ token,
14
+ used_at,
15
+ user
16
+ };
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../generated/entities/customer_user_email_verification/index.ts"],
4
+ "sourcesContent": ["export const id = 'id'\nexport const user = 'user'\nexport const token = 'token'\nexport const purpose = 'purpose'\nexport const expires_at = 'expires_at'\nexport const used_at = 'used_at'\nexport const created_at = 'created_at'\n"],
5
+ "mappings": "AAAO,MAAM,KAAK;AACX,MAAM,OAAO;AACb,MAAM,QAAQ;AACd,MAAM,UAAU;AAChB,MAAM,aAAa;AACnB,MAAM,UAAU;AAChB,MAAM,aAAa;",
6
+ "names": []
7
+ }
@@ -0,0 +1,33 @@
1
+ const id = "id";
2
+ const tenant_id = "tenant_id";
3
+ const organization_id = "organization_id";
4
+ const email = "email";
5
+ const email_hash = "email_hash";
6
+ const token = "token";
7
+ const customer_entity_id = "customer_entity_id";
8
+ const role_ids_json = "role_ids_json";
9
+ const invited_by_user_id = "invited_by_user_id";
10
+ const invited_by_customer_user_id = "invited_by_customer_user_id";
11
+ const display_name = "display_name";
12
+ const expires_at = "expires_at";
13
+ const accepted_at = "accepted_at";
14
+ const cancelled_at = "cancelled_at";
15
+ const created_at = "created_at";
16
+ export {
17
+ accepted_at,
18
+ cancelled_at,
19
+ created_at,
20
+ customer_entity_id,
21
+ display_name,
22
+ email,
23
+ email_hash,
24
+ expires_at,
25
+ id,
26
+ invited_by_customer_user_id,
27
+ invited_by_user_id,
28
+ organization_id,
29
+ role_ids_json,
30
+ tenant_id,
31
+ token
32
+ };
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../generated/entities/customer_user_invitation/index.ts"],
4
+ "sourcesContent": ["export const id = 'id'\nexport const tenant_id = 'tenant_id'\nexport const organization_id = 'organization_id'\nexport const email = 'email'\nexport const email_hash = 'email_hash'\nexport const token = 'token'\nexport const customer_entity_id = 'customer_entity_id'\nexport const role_ids_json = 'role_ids_json'\nexport const invited_by_user_id = 'invited_by_user_id'\nexport const invited_by_customer_user_id = 'invited_by_customer_user_id'\nexport const display_name = 'display_name'\nexport const expires_at = 'expires_at'\nexport const accepted_at = 'accepted_at'\nexport const cancelled_at = 'cancelled_at'\nexport const created_at = 'created_at'\n"],
5
+ "mappings": "AAAO,MAAM,KAAK;AACX,MAAM,YAAY;AAClB,MAAM,kBAAkB;AACxB,MAAM,QAAQ;AACd,MAAM,aAAa;AACnB,MAAM,QAAQ;AACd,MAAM,qBAAqB;AAC3B,MAAM,gBAAgB;AACtB,MAAM,qBAAqB;AAC3B,MAAM,8BAA8B;AACpC,MAAM,eAAe;AACrB,MAAM,aAAa;AACnB,MAAM,cAAc;AACpB,MAAM,eAAe;AACrB,MAAM,aAAa;",
6
+ "names": []
7
+ }
@@ -0,0 +1,15 @@
1
+ const id = "id";
2
+ const user = "user";
3
+ const token = "token";
4
+ const expires_at = "expires_at";
5
+ const used_at = "used_at";
6
+ const created_at = "created_at";
7
+ export {
8
+ created_at,
9
+ expires_at,
10
+ id,
11
+ token,
12
+ used_at,
13
+ user
14
+ };
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../generated/entities/customer_user_password_reset/index.ts"],
4
+ "sourcesContent": ["export const id = 'id'\nexport const user = 'user'\nexport const token = 'token'\nexport const expires_at = 'expires_at'\nexport const used_at = 'used_at'\nexport const created_at = 'created_at'\n"],
5
+ "mappings": "AAAO,MAAM,KAAK;AACX,MAAM,OAAO;AACb,MAAM,QAAQ;AACd,MAAM,aAAa;AACnB,MAAM,UAAU;AAChB,MAAM,aAAa;",
6
+ "names": []
7
+ }
@@ -0,0 +1,13 @@
1
+ const id = "id";
2
+ const user = "user";
3
+ const role = "role";
4
+ const created_at = "created_at";
5
+ const deleted_at = "deleted_at";
6
+ export {
7
+ created_at,
8
+ deleted_at,
9
+ id,
10
+ role,
11
+ user
12
+ };
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../generated/entities/customer_user_role/index.ts"],
4
+ "sourcesContent": ["export const id = 'id'\nexport const user = 'user'\nexport const role = 'role'\nexport const created_at = 'created_at'\nexport const deleted_at = 'deleted_at'\n"],
5
+ "mappings": "AAAO,MAAM,KAAK;AACX,MAAM,OAAO;AACb,MAAM,OAAO;AACb,MAAM,aAAa;AACnB,MAAM,aAAa;",
6
+ "names": []
7
+ }
@@ -0,0 +1,21 @@
1
+ const id = "id";
2
+ const user = "user";
3
+ const token_hash = "token_hash";
4
+ const ip_address = "ip_address";
5
+ const user_agent = "user_agent";
6
+ const expires_at = "expires_at";
7
+ const last_used_at = "last_used_at";
8
+ const created_at = "created_at";
9
+ const deleted_at = "deleted_at";
10
+ export {
11
+ created_at,
12
+ deleted_at,
13
+ expires_at,
14
+ id,
15
+ ip_address,
16
+ last_used_at,
17
+ token_hash,
18
+ user,
19
+ user_agent
20
+ };
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../generated/entities/customer_user_session/index.ts"],
4
+ "sourcesContent": ["export const id = 'id'\nexport const user = 'user'\nexport const token_hash = 'token_hash'\nexport const ip_address = 'ip_address'\nexport const user_agent = 'user_agent'\nexport const expires_at = 'expires_at'\nexport const last_used_at = 'last_used_at'\nexport const created_at = 'created_at'\nexport const deleted_at = 'deleted_at'\n"],
5
+ "mappings": "AAAO,MAAM,KAAK;AACX,MAAM,OAAO;AACb,MAAM,aAAa;AACnB,MAAM,aAAa;AACnB,MAAM,aAAa;AACnB,MAAM,aAAa;AACnB,MAAM,eAAe;AACrB,MAAM,aAAa;AACnB,MAAM,aAAa;",
6
+ "names": []
7
+ }
@@ -1,6 +1,7 @@
1
1
  const id = "id";
2
2
  const tenant = "tenant";
3
3
  const name = "name";
4
+ const slug = "slug";
4
5
  const is_active = "is_active";
5
6
  const parent_id = "parent_id";
6
7
  const root_id = "root_id";
@@ -24,6 +25,7 @@ export {
24
25
  name,
25
26
  parent_id,
26
27
  root_id,
28
+ slug,
27
29
  tenant,
28
30
  tree_path,
29
31
  updated_at
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../generated/entities/organization/index.ts"],
4
- "sourcesContent": ["export const id = 'id'\nexport const tenant = 'tenant'\nexport const name = 'name'\nexport const is_active = 'is_active'\nexport const parent_id = 'parent_id'\nexport const root_id = 'root_id'\nexport const tree_path = 'tree_path'\nexport const depth = 'depth'\nexport const ancestor_ids = 'ancestor_ids'\nexport const child_ids = 'child_ids'\nexport const descendant_ids = 'descendant_ids'\nexport const created_at = 'created_at'\nexport const updated_at = 'updated_at'\nexport const deleted_at = 'deleted_at'\n"],
5
- "mappings": "AAAO,MAAM,KAAK;AACX,MAAM,SAAS;AACf,MAAM,OAAO;AACb,MAAM,YAAY;AAClB,MAAM,YAAY;AAClB,MAAM,UAAU;AAChB,MAAM,YAAY;AAClB,MAAM,QAAQ;AACd,MAAM,eAAe;AACrB,MAAM,YAAY;AAClB,MAAM,iBAAiB;AACvB,MAAM,aAAa;AACnB,MAAM,aAAa;AACnB,MAAM,aAAa;",
4
+ "sourcesContent": ["export const id = 'id'\nexport const tenant = 'tenant'\nexport const name = 'name'\nexport const slug = 'slug'\nexport const is_active = 'is_active'\nexport const parent_id = 'parent_id'\nexport const root_id = 'root_id'\nexport const tree_path = 'tree_path'\nexport const depth = 'depth'\nexport const ancestor_ids = 'ancestor_ids'\nexport const child_ids = 'child_ids'\nexport const descendant_ids = 'descendant_ids'\nexport const created_at = 'created_at'\nexport const updated_at = 'updated_at'\nexport const deleted_at = 'deleted_at'\n"],
5
+ "mappings": "AAAO,MAAM,KAAK;AACX,MAAM,SAAS;AACf,MAAM,OAAO;AACb,MAAM,OAAO;AACb,MAAM,YAAY;AAClB,MAAM,YAAY;AAClB,MAAM,UAAU;AAChB,MAAM,YAAY;AAClB,MAAM,QAAQ;AACd,MAAM,eAAe;AACrB,MAAM,YAAY;AAClB,MAAM,iBAAiB;AACvB,MAAM,aAAa;AACnB,MAAM,aAAa;AACnB,MAAM,aAAa;",
6
6
  "names": []
7
7
  }
@@ -29,7 +29,9 @@ const M = {
29
29
  "translations": "translations",
30
30
  "inbox_ops": "inbox_ops",
31
31
  "payment_gateways": "payment_gateways",
32
- "shipping_carriers": "shipping_carriers"
32
+ "shipping_carriers": "shipping_carriers",
33
+ "customer_accounts": "customer_accounts",
34
+ "portal": "portal"
33
35
  };
34
36
  const E = {
35
37
  "dashboards": {
@@ -236,6 +238,17 @@ const E = {
236
238
  },
237
239
  "shipping_carriers": {
238
240
  "carrier_shipment": "shipping_carriers:carrier_shipment"
241
+ },
242
+ "customer_accounts": {
243
+ "customer_user": "customer_accounts:customer_user",
244
+ "customer_role": "customer_accounts:customer_role",
245
+ "customer_role_acl": "customer_accounts:customer_role_acl",
246
+ "customer_user_role": "customer_accounts:customer_user_role",
247
+ "customer_user_acl": "customer_accounts:customer_user_acl",
248
+ "customer_user_session": "customer_accounts:customer_user_session",
249
+ "customer_user_email_verification": "customer_accounts:customer_user_email_verification",
250
+ "customer_user_password_reset": "customer_accounts:customer_user_password_reset",
251
+ "customer_user_invitation": "customer_accounts:customer_user_invitation"
239
252
  }
240
253
  };
241
254
  export {