@endora-commerce/mod-organizations 0.100.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 (288) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +62 -0
  3. package/dist/admin/components/OrganizationSalesRepsTab.d.ts +27 -0
  4. package/dist/admin/components/OrganizationSalesRepsTab.d.ts.map +1 -0
  5. package/dist/admin/components/OrganizationSalesRepsTab.js +170 -0
  6. package/dist/admin/components/OrganizationSalesRepsTab.js.map +1 -0
  7. package/dist/admin/index.d.ts +30 -0
  8. package/dist/admin/index.d.ts.map +1 -0
  9. package/dist/admin/index.js +59 -0
  10. package/dist/admin/index.js.map +1 -0
  11. package/dist/admin/pages/OrganizationDetail.d.ts +9 -0
  12. package/dist/admin/pages/OrganizationDetail.d.ts.map +1 -0
  13. package/dist/admin/pages/OrganizationDetail.js +247 -0
  14. package/dist/admin/pages/OrganizationDetail.js.map +1 -0
  15. package/dist/admin/pages/OrganizationsList.d.ts +9 -0
  16. package/dist/admin/pages/OrganizationsList.d.ts.map +1 -0
  17. package/dist/admin/pages/OrganizationsList.js +73 -0
  18. package/dist/admin/pages/OrganizationsList.js.map +1 -0
  19. package/dist/admin/panels/ApplicablePriceListsPanel.d.ts +12 -0
  20. package/dist/admin/panels/ApplicablePriceListsPanel.d.ts.map +1 -0
  21. package/dist/admin/panels/ApplicablePriceListsPanel.js +49 -0
  22. package/dist/admin/panels/ApplicablePriceListsPanel.js.map +1 -0
  23. package/dist/admin/panels/FulfilmentStrategyPanel.d.ts +16 -0
  24. package/dist/admin/panels/FulfilmentStrategyPanel.d.ts.map +1 -0
  25. package/dist/admin/panels/FulfilmentStrategyPanel.js +29 -0
  26. package/dist/admin/panels/FulfilmentStrategyPanel.js.map +1 -0
  27. package/dist/admin/panels/HierarchyPanel.d.ts +15 -0
  28. package/dist/admin/panels/HierarchyPanel.d.ts.map +1 -0
  29. package/dist/admin/panels/HierarchyPanel.js +65 -0
  30. package/dist/admin/panels/HierarchyPanel.js.map +1 -0
  31. package/dist/admin/panels/ModerationActionsPanel.d.ts +28 -0
  32. package/dist/admin/panels/ModerationActionsPanel.d.ts.map +1 -0
  33. package/dist/admin/panels/ModerationActionsPanel.js +111 -0
  34. package/dist/admin/panels/ModerationActionsPanel.js.map +1 -0
  35. package/dist/admin/panels/RestrictionsPanel.d.ts +24 -0
  36. package/dist/admin/panels/RestrictionsPanel.d.ts.map +1 -0
  37. package/dist/admin/panels/RestrictionsPanel.js +121 -0
  38. package/dist/admin/panels/RestrictionsPanel.js.map +1 -0
  39. package/dist/admin/panels/VatValidationPanel.d.ts +28 -0
  40. package/dist/admin/panels/VatValidationPanel.d.ts.map +1 -0
  41. package/dist/admin/panels/VatValidationPanel.js +79 -0
  42. package/dist/admin/panels/VatValidationPanel.js.map +1 -0
  43. package/dist/backend/commands/move.command.d.ts +11 -0
  44. package/dist/backend/commands/move.command.d.ts.map +1 -0
  45. package/dist/backend/commands/move.command.js +11 -0
  46. package/dist/backend/commands/move.command.js.map +1 -0
  47. package/dist/backend/commands/set-cart-approval-policy.command.d.ts +31 -0
  48. package/dist/backend/commands/set-cart-approval-policy.command.d.ts.map +1 -0
  49. package/dist/backend/commands/set-cart-approval-policy.command.js +56 -0
  50. package/dist/backend/commands/set-cart-approval-policy.command.js.map +1 -0
  51. package/dist/backend/commands/set-credit-mode.command.d.ts +16 -0
  52. package/dist/backend/commands/set-credit-mode.command.d.ts.map +1 -0
  53. package/dist/backend/commands/set-credit-mode.command.js +25 -0
  54. package/dist/backend/commands/set-credit-mode.command.js.map +1 -0
  55. package/dist/backend/commands/set-parent.command.d.ts +26 -0
  56. package/dist/backend/commands/set-parent.command.d.ts.map +1 -0
  57. package/dist/backend/commands/set-parent.command.js +51 -0
  58. package/dist/backend/commands/set-parent.command.js.map +1 -0
  59. package/dist/backend/demo/reset.d.ts +20 -0
  60. package/dist/backend/demo/reset.d.ts.map +1 -0
  61. package/dist/backend/demo/reset.js +11 -0
  62. package/dist/backend/demo/reset.js.map +1 -0
  63. package/dist/backend/demo/rows.d.ts +44 -0
  64. package/dist/backend/demo/rows.d.ts.map +1 -0
  65. package/dist/backend/demo/rows.js +44 -0
  66. package/dist/backend/demo/rows.js.map +1 -0
  67. package/dist/backend/demo/seed.d.ts +20 -0
  68. package/dist/backend/demo/seed.d.ts.map +1 -0
  69. package/dist/backend/demo/seed.js +28 -0
  70. package/dist/backend/demo/seed.js.map +1 -0
  71. package/dist/backend/email-templates/invitation.d.ts +23 -0
  72. package/dist/backend/email-templates/invitation.d.ts.map +1 -0
  73. package/dist/backend/email-templates/invitation.js +35 -0
  74. package/dist/backend/email-templates/invitation.js.map +1 -0
  75. package/dist/backend/email-templates/transactional-defaults.d.ts +54 -0
  76. package/dist/backend/email-templates/transactional-defaults.d.ts.map +1 -0
  77. package/dist/backend/email-templates/transactional-defaults.js +242 -0
  78. package/dist/backend/email-templates/transactional-defaults.js.map +1 -0
  79. package/dist/backend/email-templates/verification.d.ts +14 -0
  80. package/dist/backend/email-templates/verification.d.ts.map +1 -0
  81. package/dist/backend/email-templates/verification.js +34 -0
  82. package/dist/backend/email-templates/verification.js.map +1 -0
  83. package/dist/backend/entities/email-verification-token.entity.d.ts +17 -0
  84. package/dist/backend/entities/email-verification-token.entity.d.ts.map +1 -0
  85. package/dist/backend/entities/email-verification-token.entity.js +60 -0
  86. package/dist/backend/entities/email-verification-token.entity.js.map +1 -0
  87. package/dist/backend/entities/organization-delivery-method-link.entity.d.ts +14 -0
  88. package/dist/backend/entities/organization-delivery-method-link.entity.d.ts.map +1 -0
  89. package/dist/backend/entities/organization-delivery-method-link.entity.js +41 -0
  90. package/dist/backend/entities/organization-delivery-method-link.entity.js.map +1 -0
  91. package/dist/backend/entities/organization-invitation.entity.d.ts +21 -0
  92. package/dist/backend/entities/organization-invitation.entity.d.ts.map +1 -0
  93. package/dist/backend/entities/organization-invitation.entity.js +85 -0
  94. package/dist/backend/entities/organization-invitation.entity.js.map +1 -0
  95. package/dist/backend/entities/organization-payment-method-link.entity.d.ts +14 -0
  96. package/dist/backend/entities/organization-payment-method-link.entity.d.ts.map +1 -0
  97. package/dist/backend/entities/organization-payment-method-link.entity.js +41 -0
  98. package/dist/backend/entities/organization-payment-method-link.entity.js.map +1 -0
  99. package/dist/backend/entities/organization-sales-rep-assignment.entity.d.ts +17 -0
  100. package/dist/backend/entities/organization-sales-rep-assignment.entity.d.ts.map +1 -0
  101. package/dist/backend/entities/organization-sales-rep-assignment.entity.js +56 -0
  102. package/dist/backend/entities/organization-sales-rep-assignment.entity.js.map +1 -0
  103. package/dist/backend/entities/organization-tax-id-validation.entity.d.ts +29 -0
  104. package/dist/backend/entities/organization-tax-id-validation.entity.d.ts.map +1 -0
  105. package/dist/backend/entities/organization-tax-id-validation.entity.js +78 -0
  106. package/dist/backend/entities/organization-tax-id-validation.entity.js.map +1 -0
  107. package/dist/backend/entities/organization-warehouse-link.entity.d.ts +15 -0
  108. package/dist/backend/entities/organization-warehouse-link.entity.d.ts.map +1 -0
  109. package/dist/backend/entities/organization-warehouse-link.entity.js +42 -0
  110. package/dist/backend/entities/organization-warehouse-link.entity.js.map +1 -0
  111. package/dist/backend/entities/organization.entity.d.ts +125 -0
  112. package/dist/backend/entities/organization.entity.d.ts.map +1 -0
  113. package/dist/backend/entities/organization.entity.js +282 -0
  114. package/dist/backend/entities/organization.entity.js.map +1 -0
  115. package/dist/backend/index.d.ts +250 -0
  116. package/dist/backend/index.d.ts.map +1 -0
  117. package/dist/backend/index.js +506 -0
  118. package/dist/backend/index.js.map +1 -0
  119. package/dist/backend/integrations/ministerstwo-finansow-client.d.ts +22 -0
  120. package/dist/backend/integrations/ministerstwo-finansow-client.d.ts.map +1 -0
  121. package/dist/backend/integrations/ministerstwo-finansow-client.js +172 -0
  122. package/dist/backend/integrations/ministerstwo-finansow-client.js.map +1 -0
  123. package/dist/backend/integrations/vies-client.d.ts +18 -0
  124. package/dist/backend/integrations/vies-client.d.ts.map +1 -0
  125. package/dist/backend/integrations/vies-client.js +133 -0
  126. package/dist/backend/integrations/vies-client.js.map +1 -0
  127. package/dist/backend/plugin.d.ts +126 -0
  128. package/dist/backend/plugin.d.ts.map +1 -0
  129. package/dist/backend/plugin.js +139 -0
  130. package/dist/backend/plugin.js.map +1 -0
  131. package/dist/backend/routes.admin.d.ts +66 -0
  132. package/dist/backend/routes.admin.d.ts.map +1 -0
  133. package/dist/backend/routes.admin.js +711 -0
  134. package/dist/backend/routes.admin.js.map +1 -0
  135. package/dist/backend/routes.customer.d.ts +33 -0
  136. package/dist/backend/routes.customer.d.ts.map +1 -0
  137. package/dist/backend/routes.customer.js +139 -0
  138. package/dist/backend/routes.customer.js.map +1 -0
  139. package/dist/backend/routes.members.d.ts +31 -0
  140. package/dist/backend/routes.members.d.ts.map +1 -0
  141. package/dist/backend/routes.members.js +109 -0
  142. package/dist/backend/routes.members.js.map +1 -0
  143. package/dist/backend/routes.public.d.ts +49 -0
  144. package/dist/backend/routes.public.d.ts.map +1 -0
  145. package/dist/backend/routes.public.js +220 -0
  146. package/dist/backend/routes.public.js.map +1 -0
  147. package/dist/backend/routes.sales-reps.d.ts +46 -0
  148. package/dist/backend/routes.sales-reps.d.ts.map +1 -0
  149. package/dist/backend/routes.sales-reps.js +114 -0
  150. package/dist/backend/routes.sales-reps.js.map +1 -0
  151. package/dist/backend/routes.storefront.d.ts +25 -0
  152. package/dist/backend/routes.storefront.d.ts.map +1 -0
  153. package/dist/backend/routes.storefront.js +65 -0
  154. package/dist/backend/routes.storefront.js.map +1 -0
  155. package/dist/backend/schemas/organization.d.ts +59 -0
  156. package/dist/backend/schemas/organization.d.ts.map +1 -0
  157. package/dist/backend/schemas/organization.js +55 -0
  158. package/dist/backend/schemas/organization.js.map +1 -0
  159. package/dist/backend/schemas/settings.d.ts +30 -0
  160. package/dist/backend/schemas/settings.d.ts.map +1 -0
  161. package/dist/backend/schemas/settings.js +35 -0
  162. package/dist/backend/schemas/settings.js.map +1 -0
  163. package/dist/backend/services/email-verification-service.d.ts +45 -0
  164. package/dist/backend/services/email-verification-service.d.ts.map +1 -0
  165. package/dist/backend/services/email-verification-service.js +95 -0
  166. package/dist/backend/services/email-verification-service.js.map +1 -0
  167. package/dist/backend/services/invitation-service.d.ts +85 -0
  168. package/dist/backend/services/invitation-service.d.ts.map +1 -0
  169. package/dist/backend/services/invitation-service.js +266 -0
  170. package/dist/backend/services/invitation-service.js.map +1 -0
  171. package/dist/backend/services/normalize-name.d.ts +14 -0
  172. package/dist/backend/services/normalize-name.d.ts.map +1 -0
  173. package/dist/backend/services/normalize-name.js +14 -0
  174. package/dist/backend/services/normalize-name.js.map +1 -0
  175. package/dist/backend/services/org-registration-notifier.d.ts +36 -0
  176. package/dist/backend/services/org-registration-notifier.d.ts.map +1 -0
  177. package/dist/backend/services/org-registration-notifier.js +109 -0
  178. package/dist/backend/services/org-registration-notifier.js.map +1 -0
  179. package/dist/backend/services/org-template-email.d.ts +18 -0
  180. package/dist/backend/services/org-template-email.d.ts.map +1 -0
  181. package/dist/backend/services/org-template-email.js +16 -0
  182. package/dist/backend/services/org-template-email.js.map +1 -0
  183. package/dist/backend/services/organization-context-service.d.ts +52 -0
  184. package/dist/backend/services/organization-context-service.d.ts.map +1 -0
  185. package/dist/backend/services/organization-context-service.js +70 -0
  186. package/dist/backend/services/organization-context-service.js.map +1 -0
  187. package/dist/backend/services/organization-country-reference.d.ts +11 -0
  188. package/dist/backend/services/organization-country-reference.d.ts.map +1 -0
  189. package/dist/backend/services/organization-country-reference.js +24 -0
  190. package/dist/backend/services/organization-country-reference.js.map +1 -0
  191. package/dist/backend/services/organization-details-port.d.ts +33 -0
  192. package/dist/backend/services/organization-details-port.d.ts.map +1 -0
  193. package/dist/backend/services/organization-details-port.js +95 -0
  194. package/dist/backend/services/organization-details-port.js.map +1 -0
  195. package/dist/backend/services/organization-effective-pricelists-service.d.ts +50 -0
  196. package/dist/backend/services/organization-effective-pricelists-service.d.ts.map +1 -0
  197. package/dist/backend/services/organization-effective-pricelists-service.js +68 -0
  198. package/dist/backend/services/organization-effective-pricelists-service.js.map +1 -0
  199. package/dist/backend/services/organization-inheritance-service.d.ts +73 -0
  200. package/dist/backend/services/organization-inheritance-service.d.ts.map +1 -0
  201. package/dist/backend/services/organization-inheritance-service.js +63 -0
  202. package/dist/backend/services/organization-inheritance-service.js.map +1 -0
  203. package/dist/backend/services/organization-moderation-service.d.ts +124 -0
  204. package/dist/backend/services/organization-moderation-service.d.ts.map +1 -0
  205. package/dist/backend/services/organization-moderation-service.js +337 -0
  206. package/dist/backend/services/organization-moderation-service.js.map +1 -0
  207. package/dist/backend/services/organization-restriction-service.d.ts +70 -0
  208. package/dist/backend/services/organization-restriction-service.d.ts.map +1 -0
  209. package/dist/backend/services/organization-restriction-service.js +210 -0
  210. package/dist/backend/services/organization-restriction-service.js.map +1 -0
  211. package/dist/backend/services/organization-tax-id-validation-service.d.ts +59 -0
  212. package/dist/backend/services/organization-tax-id-validation-service.d.ts.map +1 -0
  213. package/dist/backend/services/organization-tax-id-validation-service.js +115 -0
  214. package/dist/backend/services/organization-tax-id-validation-service.js.map +1 -0
  215. package/dist/backend/services/organization-tree-service.d.ts +102 -0
  216. package/dist/backend/services/organization-tree-service.d.ts.map +1 -0
  217. package/dist/backend/services/organization-tree-service.js +184 -0
  218. package/dist/backend/services/organization-tree-service.js.map +1 -0
  219. package/dist/backend/services/personal-organization-service.d.ts +130 -0
  220. package/dist/backend/services/personal-organization-service.d.ts.map +1 -0
  221. package/dist/backend/services/personal-organization-service.js +207 -0
  222. package/dist/backend/services/personal-organization-service.js.map +1 -0
  223. package/dist/backend/services/registration-service.d.ts +80 -0
  224. package/dist/backend/services/registration-service.d.ts.map +1 -0
  225. package/dist/backend/services/registration-service.js +126 -0
  226. package/dist/backend/services/registration-service.js.map +1 -0
  227. package/dist/backend/services/sales-rep-assignment-service.d.ts +89 -0
  228. package/dist/backend/services/sales-rep-assignment-service.d.ts.map +1 -0
  229. package/dist/backend/services/sales-rep-assignment-service.js +176 -0
  230. package/dist/backend/services/sales-rep-assignment-service.js.map +1 -0
  231. package/dist/backend/services/vat-validator-port.d.ts +20 -0
  232. package/dist/backend/services/vat-validator-port.d.ts.map +1 -0
  233. package/dist/backend/services/vat-validator-port.js +2 -0
  234. package/dist/backend/services/vat-validator-port.js.map +1 -0
  235. package/dist/manifest.d.ts +176 -0
  236. package/dist/manifest.d.ts.map +1 -0
  237. package/dist/manifest.js +503 -0
  238. package/dist/manifest.js.map +1 -0
  239. package/dist/migrations/20260424T205317_organizations_init.d.ts +13 -0
  240. package/dist/migrations/20260424T205317_organizations_init.d.ts.map +1 -0
  241. package/dist/migrations/20260424T205317_organizations_init.js +100 -0
  242. package/dist/migrations/20260424T205317_organizations_init.js.map +1 -0
  243. package/dist/migrations/20260425T051700_organizations_invitations_init.d.ts +13 -0
  244. package/dist/migrations/20260425T051700_organizations_invitations_init.d.ts.map +1 -0
  245. package/dist/migrations/20260425T051700_organizations_invitations_init.js +39 -0
  246. package/dist/migrations/20260425T051700_organizations_invitations_init.js.map +1 -0
  247. package/dist/migrations/20260611T140349_organizations_consolidation.d.ts +35 -0
  248. package/dist/migrations/20260611T140349_organizations_consolidation.d.ts.map +1 -0
  249. package/dist/migrations/20260611T140349_organizations_consolidation.js +180 -0
  250. package/dist/migrations/20260611T140349_organizations_consolidation.js.map +1 -0
  251. package/dist/migrations/20260611T140358_organizations_org_order_confirmation_emails.d.ts +10 -0
  252. package/dist/migrations/20260611T140358_organizations_org_order_confirmation_emails.d.ts.map +1 -0
  253. package/dist/migrations/20260611T140358_organizations_org_order_confirmation_emails.js +14 -0
  254. package/dist/migrations/20260611T140358_organizations_org_order_confirmation_emails.js.map +1 -0
  255. package/dist/migrations/20260611T140402_organizations_org_fulfilment_strategy.d.ts +14 -0
  256. package/dist/migrations/20260611T140402_organizations_org_fulfilment_strategy.d.ts.map +1 -0
  257. package/dist/migrations/20260611T140402_organizations_org_fulfilment_strategy.js +20 -0
  258. package/dist/migrations/20260611T140402_organizations_org_fulfilment_strategy.js.map +1 -0
  259. package/dist/migrations/20260717T151403_organizations_personal_organizations.d.ts +24 -0
  260. package/dist/migrations/20260717T151403_organizations_personal_organizations.d.ts.map +1 -0
  261. package/dist/migrations/20260717T151403_organizations_personal_organizations.js +63 -0
  262. package/dist/migrations/20260717T151403_organizations_personal_organizations.js.map +1 -0
  263. package/dist/migrations/20260718T200340_organizations_organization_custom_field_values.d.ts +12 -0
  264. package/dist/migrations/20260718T200340_organizations_organization_custom_field_values.d.ts.map +1 -0
  265. package/dist/migrations/20260718T200340_organizations_organization_custom_field_values.js +16 -0
  266. package/dist/migrations/20260718T200340_organizations_organization_custom_field_values.js.map +1 -0
  267. package/dist/migrations/20260720T044254_organizations_org_hierarchy.d.ts +23 -0
  268. package/dist/migrations/20260720T044254_organizations_org_hierarchy.d.ts.map +1 -0
  269. package/dist/migrations/20260720T044254_organizations_org_hierarchy.js +37 -0
  270. package/dist/migrations/20260720T044254_organizations_org_hierarchy.js.map +1 -0
  271. package/dist/migrations/20260912T094646_organizations_sales_channel_organizations.d.ts +27 -0
  272. package/dist/migrations/20260912T094646_organizations_sales_channel_organizations.d.ts.map +1 -0
  273. package/dist/migrations/20260912T094646_organizations_sales_channel_organizations.js +44 -0
  274. package/dist/migrations/20260912T094646_organizations_sales_channel_organizations.js.map +1 -0
  275. package/dist/migrations/index.d.ts +35 -0
  276. package/dist/migrations/index.d.ts.map +1 -0
  277. package/dist/migrations/index.js +45 -0
  278. package/dist/migrations/index.js.map +1 -0
  279. package/dist/ports/index.d.ts +53 -0
  280. package/dist/ports/index.d.ts.map +1 -0
  281. package/dist/ports/index.js +2 -0
  282. package/dist/ports/index.js.map +1 -0
  283. package/docs/organization-hierarchy.md +117 -0
  284. package/docs/organizations.md +312 -0
  285. package/i18n/en.json +17 -0
  286. package/i18n/pl.json +17 -0
  287. package/package.json +107 -0
  288. package/tailwind.css +14 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.admin.js","sourceRoot":"","sources":["../../src/backend/routes.admin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { EntityManager } from '@mikro-orm/postgresql';
2
+ import type { FastifyInstance, FastifyRequest } from 'fastify';
3
+ import { type AddressServicePort, type CustomerAccountReadPort, type CustomerAuthPort } from '@endora-commerce/contracts';
4
+ export interface OrganizationsCustomerDeps {
5
+ customerAuthService: CustomerAuthPort;
6
+ addressService: AddressServicePort;
7
+ /**
8
+ * `customer_accounts`' own read, where `GET /api/v1/me` used to load that
9
+ * module's entity (feature 075, Phase C). With it off the endpoint fails
10
+ * closed — a profile page that cannot identify its caller must refuse, not
11
+ * render an empty one.
12
+ */
13
+ customerAccountRead: CustomerAccountReadPort;
14
+ requireCustomer: (req: FastifyRequest, reply: unknown) => Promise<void>;
15
+ resolveCustomerContext: (req: FastifyRequest) => {
16
+ customerAccountId: string;
17
+ organizationId: string;
18
+ impersonatorAdminUserId?: string | null;
19
+ };
20
+ /**
21
+ * Feature 040 — org-OPTIONAL resolver for GET /me, so standalone (org-less)
22
+ * customers can load their profile (organizationId null) instead of 422.
23
+ */
24
+ resolveCustomerActorOptionalOrg: (req: FastifyRequest) => {
25
+ customerAccountId: string;
26
+ organizationId: string | null;
27
+ impersonatorAdminUserId?: string | null;
28
+ };
29
+ /** Read-only EntityManager factory for the GET /me endpoint. */
30
+ emFactory: () => EntityManager;
31
+ }
32
+ export declare function registerOrganizationsCustomerRoutes(app: FastifyInstance, deps: OrganizationsCustomerDeps): Promise<void>;
33
+ //# sourceMappingURL=routes.customer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.customer.d.ts","sourceRoot":"","sources":["../../src/backend/routes.customer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAKL,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAE5B,KAAK,gBAAgB,EACtB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,WAAW,yBAAyB;IACxC,mBAAmB,EAAE,gBAAgB,CAAC;IACtC,cAAc,EAAE,kBAAkB,CAAC;IACnC;;;;;OAKG;IACH,mBAAmB,EAAE,uBAAuB,CAAC;IAC7C,eAAe,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,sBAAsB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK;QAC/C,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,EAAE,MAAM,CAAC;QACvB,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACzC,CAAC;IACF;;;OAGG;IACH,+BAA+B,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK;QACxD,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACzC,CAAC;IACF,gEAAgE;IAChE,SAAS,EAAE,MAAM,aAAa,CAAC;CAChC;AAED,wBAAsB,mCAAmC,CACvD,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA6Gf"}
@@ -0,0 +1,139 @@
1
+ import { changePasswordRequestSchema, createAddressRequestSchema, updateAddressRequestSchema, ERROR_CODES, } from '@endora-commerce/contracts';
2
+ import { HttpError } from '@endora-commerce/platform/http';
3
+ import { Organization } from './entities/organization.entity.js';
4
+ export async function registerOrganizationsCustomerRoutes(app, deps) {
5
+ const { customerAuthService, addressService, requireCustomer, resolveCustomerContext, } = deps;
6
+ app.get('/api/v1/me', { preHandler: requireCustomer }, async (request) => {
7
+ const ctx = deps.resolveCustomerActorOptionalOrg(request);
8
+ const em = deps.emFactory();
9
+ const customer = await deps.customerAccountRead.findById(ctx.customerAccountId);
10
+ if (!customer) {
11
+ throw new HttpError(401, ERROR_CODES.UNAUTHORIZED, 'Customer session required.');
12
+ }
13
+ // Feature 040 — org-less customers resolve to organization: null.
14
+ const organization = ctx.organizationId
15
+ ? await em.findOne(Organization, { id: ctx.organizationId })
16
+ : null;
17
+ const impersonatorAdminUserId = ctx.impersonatorAdminUserId ?? null;
18
+ return {
19
+ data: {
20
+ customerAccount: serializeCustomer(customer),
21
+ organization: organization ? serializeOrganization(organization) : null,
22
+ impersonation: impersonatorAdminUserId
23
+ ? { impersonatorAdminUserId }
24
+ : null,
25
+ },
26
+ };
27
+ });
28
+ app.post('/api/v1/me/password', { preHandler: requireCustomer, schema: { body: changePasswordRequestSchema } }, async (request, reply) => {
29
+ const body = changePasswordRequestSchema.parse(request.body);
30
+ const ctx = resolveCustomerContext(request);
31
+ await customerAuthService.changePassword(ctx.customerAccountId, body.currentPassword, body.newPassword);
32
+ return reply.status(204).send();
33
+ });
34
+ app.get('/api/v1/organizations/mine/addresses', { preHandler: requireCustomer }, async (request) => {
35
+ const ctx = resolveCustomerContext(request);
36
+ const list = await addressService.list(ctx.organizationId, request.query.kind);
37
+ return { data: list.map(serializeAddress) };
38
+ });
39
+ app.post('/api/v1/organizations/mine/addresses', { preHandler: requireCustomer, schema: { body: createAddressRequestSchema } }, async (request, reply) => {
40
+ const ctx = resolveCustomerContext(request);
41
+ const body = createAddressRequestSchema.parse(request.body);
42
+ const address = await addressService.createAddress(ctx.organizationId, {
43
+ kind: body.kind,
44
+ recipientName: body.recipientName,
45
+ street: body.street,
46
+ city: body.city,
47
+ postalCode: body.postalCode,
48
+ country: body.country,
49
+ ...(body.phone !== undefined ? { phone: body.phone } : {}),
50
+ ...(body.isDefault !== undefined ? { isDefault: body.isDefault } : {}),
51
+ });
52
+ reply.status(201);
53
+ return { data: serializeAddress(address) };
54
+ });
55
+ app.patch('/api/v1/organizations/mine/addresses/:id', { preHandler: requireCustomer, schema: { body: updateAddressRequestSchema } }, async (request) => {
56
+ const ctx = resolveCustomerContext(request);
57
+ const body = updateAddressRequestSchema.parse(request.body);
58
+ const address = await addressService.updateAddress(ctx.organizationId, request.params.id, {
59
+ ...(body.recipientName !== undefined ? { recipientName: body.recipientName } : {}),
60
+ ...(body.street !== undefined ? { street: body.street } : {}),
61
+ ...(body.city !== undefined ? { city: body.city } : {}),
62
+ ...(body.postalCode !== undefined ? { postalCode: body.postalCode } : {}),
63
+ ...(body.country !== undefined ? { country: body.country } : {}),
64
+ ...(body.phone !== undefined ? { phone: body.phone } : {}),
65
+ ...(body.isDefault !== undefined ? { isDefault: body.isDefault } : {}),
66
+ });
67
+ return { data: serializeAddress(address) };
68
+ });
69
+ app.delete('/api/v1/organizations/mine/addresses/:id', { preHandler: requireCustomer }, async (request, reply) => {
70
+ const ctx = resolveCustomerContext(request);
71
+ await addressService.deleteAddress(ctx.organizationId, request.params.id);
72
+ return reply.status(204).send();
73
+ });
74
+ }
75
+ function serializeAddress(a) {
76
+ return {
77
+ id: a.id,
78
+ organizationId: a.organizationId,
79
+ kind: a.kind,
80
+ recipientName: a.recipientName,
81
+ street: a.street,
82
+ city: a.city,
83
+ postalCode: a.postalCode,
84
+ country: a.country,
85
+ phone: a.phone ?? null,
86
+ isDefault: a.isDefault,
87
+ };
88
+ }
89
+ function serializeCustomer(c) {
90
+ return {
91
+ id: c.id,
92
+ organizationId: c.organizationId,
93
+ email: c.email,
94
+ firstName: c.firstName,
95
+ lastName: c.lastName,
96
+ role: c.role,
97
+ emailVerifiedAt: c.emailVerifiedAt?.toISOString() ?? null,
98
+ twoFactorEnabled: c.twoFactorEnabled,
99
+ createdAt: c.createdAt.toISOString(),
100
+ updatedAt: c.updatedAt.toISOString(),
101
+ };
102
+ }
103
+ function serializeOrganization(o) {
104
+ return {
105
+ id: o.id,
106
+ name: o.name,
107
+ legalName: o.legalName ?? null,
108
+ taxId: o.taxId,
109
+ status: o.status,
110
+ vatStatus: o.vatStatus,
111
+ isPersonal: o.isPersonal,
112
+ registeredAddress: o.registeredAddress,
113
+ version: o.version,
114
+ canTransact: o.status === 'active',
115
+ moderationMessage: describeModerationStatus(o.status),
116
+ createdAt: o.createdAt.toISOString(),
117
+ updatedAt: o.updatedAt.toISOString(),
118
+ };
119
+ }
120
+ /**
121
+ * Localized, customer-safe explanation of the current Organization status
122
+ * when ordering is unavailable. Returns `null` for `active` (no message).
123
+ * The storefront uses the non-null value as the disabled-CTA tooltip /
124
+ * cart-banner body. Never contains admin-only details (the admin's
125
+ * `blockedReason` field is intentionally not exposed).
126
+ */
127
+ function describeModerationStatus(status) {
128
+ switch (status) {
129
+ case 'active':
130
+ return null;
131
+ case 'pending_verification':
132
+ return 'Twoja Organizacja oczekuje na weryfikację. Zamówienia i Zapytania Ofertowe będą dostępne po jej zakończeniu.';
133
+ case 'blocked':
134
+ return 'Składanie Zamówień i Zapytań Ofertowych jest obecnie wstrzymane. Prosimy o kontakt z opiekunem konta.';
135
+ case 'rejected':
136
+ return 'Rejestracja Twojej Organizacji została odrzucona. Prosimy o kontakt z administracją platformy.';
137
+ }
138
+ }
139
+ //# sourceMappingURL=routes.customer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.customer.js","sourceRoot":"","sources":["../../src/backend/routes.customer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { FastifyInstance, FastifyRequest } from 'fastify';
2
+ import { type CustomerAccountReadPort, type CustomerRolePort } from '@endora-commerce/contracts';
3
+ import type { InvitationService } from './services/invitation-service.js';
4
+ export interface MembersDeps {
5
+ invitationService: InvitationService;
6
+ roleService: CustomerRolePort;
7
+ /**
8
+ * `customer_accounts`' own read (feature 075, Phase C). The Org-Admin gate
9
+ * below used to `await import(...)` that module's entity inside the guard —
10
+ * a dynamic specifier, which `check:module-boundary` refuses on the same
11
+ * terms as a static one. With the module off the gate fails closed, which is
12
+ * the only safe direction for a permission check.
13
+ */
14
+ customerAccountRead: CustomerAccountReadPort;
15
+ requireCustomer: (req: FastifyRequest, reply: unknown) => Promise<void>;
16
+ resolveCustomerContext: (req: FastifyRequest) => {
17
+ customerAccountId: string;
18
+ organizationId: string;
19
+ };
20
+ /** Test probe — returns the latest unconsumed invitation token. */
21
+ exposeTestProbe?: boolean;
22
+ /**
23
+ * Per-server in-memory cache of the most-recently issued raw invitation
24
+ * token. The contract test reads it via `_test/latest-invitation-token`.
25
+ */
26
+ latestInvitationToken?: {
27
+ value: string | null;
28
+ };
29
+ }
30
+ export declare function registerMembersRoutes(app: FastifyInstance, deps: MembersDeps): Promise<void>;
31
+ //# sourceMappingURL=routes.members.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.members.d.ts","sourceRoot":"","sources":["../../src/backend/routes.members.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EAKL,KAAK,uBAAuB,EAE5B,KAAK,gBAAgB,EACtB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAG1E,MAAM,WAAW,WAAW;IAC1B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,WAAW,EAAE,gBAAgB,CAAC;IAC9B;;;;;;OAMG;IACH,mBAAmB,EAAE,uBAAuB,CAAC;IAC7C,eAAe,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,sBAAsB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK;QAC/C,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,mEAAmE;IACnE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,qBAAqB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAClD;AAID,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA4GlG"}
@@ -0,0 +1,109 @@
1
+ import { z } from 'zod';
2
+ import { acceptInvitationRequestSchema, changeMemberRoleRequestSchema, inviteMemberRequestSchema, ERROR_CODES, } from '@endora-commerce/contracts';
3
+ import { HttpError } from '@endora-commerce/platform/http';
4
+ const memberRoleParamSchema = z.object({ id: z.string().uuid() });
5
+ export async function registerMembersRoutes(app, deps) {
6
+ const { invitationService, roleService, requireCustomer, resolveCustomerContext } = deps;
7
+ app.get('/api/v1/organizations/mine/members', { preHandler: requireCustomer }, async (request) => {
8
+ const ctx = resolveCustomerContext(request);
9
+ // Org Admin only — Regular User attempting a list peek gets 403.
10
+ await assertOrganizationAdmin(deps.customerAccountRead, ctx.customerAccountId);
11
+ const members = await roleService.listMembers(ctx.organizationId);
12
+ return { data: members.map(serializeMember) };
13
+ });
14
+ app.get('/api/v1/organizations/mine/invitations', { preHandler: requireCustomer }, async (request) => {
15
+ const ctx = resolveCustomerContext(request);
16
+ await assertOrganizationAdmin(deps.customerAccountRead, ctx.customerAccountId);
17
+ const rows = await invitationService.listPending({ organizationId: ctx.organizationId });
18
+ return { data: rows.map(serializeInvitation) };
19
+ });
20
+ app.delete('/api/v1/organizations/mine/invitations/:id', { preHandler: requireCustomer }, async (request, reply) => {
21
+ const ctx = resolveCustomerContext(request);
22
+ await assertOrganizationAdmin(deps.customerAccountRead, ctx.customerAccountId);
23
+ await invitationService.revoke({ organizationId: ctx.organizationId }, request.params.id);
24
+ return reply.status(204).send();
25
+ });
26
+ app.post('/api/v1/organizations/mine/invitations', { preHandler: requireCustomer, schema: { body: inviteMemberRequestSchema } }, async (request, reply) => {
27
+ const ctx = resolveCustomerContext(request);
28
+ await assertOrganizationAdmin(deps.customerAccountRead, ctx.customerAccountId);
29
+ const body = inviteMemberRequestSchema.parse(request.body);
30
+ const result = await invitationService.invite(ctx, {
31
+ email: body.email,
32
+ ...(body.role ? { role: body.role } : {}),
33
+ });
34
+ if (deps.latestInvitationToken) {
35
+ deps.latestInvitationToken.value = result.rawToken;
36
+ }
37
+ reply.status(201);
38
+ return {
39
+ data: {
40
+ invitationId: result.invitation.id,
41
+ expiresAt: result.invitation.expiresAt.toISOString(),
42
+ },
43
+ };
44
+ });
45
+ app.post('/api/v1/organizations/invitations/:token/accept', { schema: { body: acceptInvitationRequestSchema } }, async (request) => {
46
+ const body = acceptInvitationRequestSchema.parse(request.body);
47
+ const result = await invitationService.acceptByToken(request.params.token, {
48
+ password: body.password,
49
+ firstName: body.firstName,
50
+ lastName: body.lastName,
51
+ });
52
+ return { data: { customerAccount: serializeMember(result.customerAccount) } };
53
+ });
54
+ app.delete('/api/v1/organizations/mine/members/:id', { preHandler: requireCustomer }, async (request, reply) => {
55
+ const ctx = resolveCustomerContext(request);
56
+ await assertOrganizationAdmin(deps.customerAccountRead, ctx.customerAccountId);
57
+ const params = memberRoleParamSchema.parse(request.params);
58
+ await roleService.removeMember(ctx.organizationId, params.id);
59
+ return reply.status(204).send();
60
+ });
61
+ app.patch('/api/v1/organizations/mine/members/:id/role', { preHandler: requireCustomer, schema: { body: changeMemberRoleRequestSchema } }, async (request) => {
62
+ const ctx = resolveCustomerContext(request);
63
+ await assertOrganizationAdmin(deps.customerAccountRead, ctx.customerAccountId);
64
+ const params = memberRoleParamSchema.parse(request.params);
65
+ const body = changeMemberRoleRequestSchema.parse(request.body);
66
+ const member = await roleService.changeRole(ctx.organizationId, params.id, body.role);
67
+ return { data: serializeMember(member) };
68
+ });
69
+ if (deps.exposeTestProbe && deps.latestInvitationToken) {
70
+ app.get('/api/v1/_test/latest-invitation-token', async () => {
71
+ return { token: deps.latestInvitationToken.value ?? null };
72
+ });
73
+ }
74
+ }
75
+ async function assertOrganizationAdmin(accounts, customerAccountId) {
76
+ const me = await accounts.findById(customerAccountId);
77
+ if (!me || me.role !== 'organization_admin') {
78
+ throw new HttpError(403, ERROR_CODES.FORBIDDEN, 'Organization Admin role required.');
79
+ }
80
+ }
81
+ function serializeInvitation(i) {
82
+ return {
83
+ id: i.id,
84
+ organizationId: i.organizationId,
85
+ email: i.email,
86
+ role: i.role,
87
+ invitedByCustomerAccountId: i.invitedByCustomerAccountId ?? null,
88
+ expiresAt: i.expiresAt.toISOString(),
89
+ createdAt: i.createdAt.toISOString(),
90
+ };
91
+ }
92
+ function serializeMember(m) {
93
+ if ('email' in m && 'firstName' in m) {
94
+ return {
95
+ id: m.id,
96
+ organizationId: m.organizationId,
97
+ email: m.email,
98
+ firstName: m.firstName,
99
+ lastName: m.lastName,
100
+ role: m.role,
101
+ emailVerifiedAt: m.emailVerifiedAt?.toISOString() ?? null,
102
+ twoFactorEnabled: m.twoFactorEnabled,
103
+ createdAt: m.createdAt.toISOString(),
104
+ updatedAt: m.updatedAt.toISOString(),
105
+ };
106
+ }
107
+ return { id: m.id };
108
+ }
109
+ //# sourceMappingURL=routes.members.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.members.js","sourceRoot":"","sources":["../../src/backend/routes.members.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,yBAAyB,EACzB,WAAW,GAIZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AA6B3D,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAElE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAoB,EAAE,IAAiB;IACjF,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,sBAAsB,EAAE,GAAG,IAAI,CAAC;IAEzF,GAAG,CAAC,GAAG,CACL,oCAAoC,EACpC,EAAE,UAAU,EAAE,eAAe,EAAE,EAC/B,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC5C,iEAAiE;QACjE,MAAM,uBAAuB,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAClE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;IAChD,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,wCAAwC,EACxC,EAAE,UAAU,EAAE,eAAe,EAAE,EAC/B,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,uBAAuB,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;QACzF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACjD,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,MAAM,CACR,4CAA4C,EAC5C,EAAE,UAAU,EAAE,eAAe,EAAE,EAC/B,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,uBAAuB,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/E,MAAM,iBAAiB,CAAC,MAAM,CAC5B,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,EACtC,OAAO,CAAC,MAAM,CAAC,EAAE,CAClB,CAAC;QACF,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,wCAAwC,EACxC,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,EAC5E,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,uBAAuB,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,yBAAyB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE;YACjD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,CAAC,qBAAqB,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;QACrD,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO;YACL,IAAI,EAAE;gBACJ,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE;gBAClC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE;aACrD;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,IAAI,CACN,iDAAiD,EACjD,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAAE,EACnD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,IAAI,GAAG,6BAA6B,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE;YACzE,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;IAChF,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,MAAM,CACR,wCAAwC,EACxC,EAAE,UAAU,EAAE,eAAe,EAAE,EAC/B,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,uBAAuB,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,KAAK,CACP,6CAA6C,EAC7C,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAAE,EAChF,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,uBAAuB,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,6BAA6B,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtF,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3C,CAAC,CACF,CAAC;IAEF,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACvD,GAAG,CAAC,GAAG,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YAC1D,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,qBAAsB,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,QAAiC,EACjC,iBAAyB;IAEzB,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACtD,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;QAC5C,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,mCAAmC,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAyB;IACpD,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,0BAA0B,EAAE,CAAC,CAAC,0BAA0B,IAAI,IAAI;QAChE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;QACpC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,CAAiD;IAEjD,IAAI,OAAO,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO;YACL,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,cAAc,EAAE,CAAC,CAAC,cAAc;YAChC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,eAAe,EAAE,CAAC,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,IAAI;YACzD,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;YACpC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;SACrC,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACtB,CAAC"}
@@ -0,0 +1,49 @@
1
+ import type { FastifyInstance } from 'fastify';
2
+ import { type CartMergeOutcome, type CustomerAuthPort, type CustomerPasswordResetPort, type EmailMailerPort } from '@endora-commerce/contracts';
3
+ import type { RegistrationService } from './services/registration-service.js';
4
+ import type { EmailVerificationService } from './services/email-verification-service.js';
5
+ import type { OrgTemplateEmail } from './services/org-template-email.js';
6
+ /**
7
+ * Anonymous endpoints: registration, email verification, customer login /
8
+ * logout. These are the entry points for a new buyer's journey.
9
+ */
10
+ export interface OrganizationsPublicDeps {
11
+ registrationService: RegistrationService;
12
+ verificationService: EmailVerificationService;
13
+ customerAuthService: CustomerAuthPort;
14
+ passwordResetService: CustomerPasswordResetPort;
15
+ /**
16
+ * Exposes the latest raw verification token for the test-only probe endpoint.
17
+ * Not wired outside of test mode — production keeps this undefined so the
18
+ * route is never registered.
19
+ */
20
+ exposeTestProbe?: boolean;
21
+ /**
22
+ * Transport-facing token cache. When a token is issued by the registration
23
+ * service we stash the raw value here keyed by email; the probe endpoint
24
+ * returns the most recent one. Pure in-memory; cleared on process restart.
25
+ */
26
+ latestTokenByEmail?: Map<string, string>;
27
+ /**
28
+ * Optional post-login hook — the commerce module merges anonymous carts
29
+ * (`b2b_cart_anon`) and the comparisons module adopts the anonymous
30
+ * Comparison (`compare_token`) into the authenticated identity.
31
+ */
32
+ onLogin?: (ctx: {
33
+ customerAccountId: string;
34
+ /** Null for no-org Customer accounts (feature 026 US2). */
35
+ organizationId: string | null;
36
+ anonymousCartToken?: string;
37
+ anonymousCompareToken?: string;
38
+ }) => Promise<{
39
+ cartMerge?: CartMergeOutcome;
40
+ }>;
41
+ /** Dispatches verification email after registration. */
42
+ mailer: EmailMailerPort;
43
+ /** Feature 047 — optional admin-editable template path. */
44
+ templateEmail?: OrgTemplateEmail;
45
+ /** Storefront URL for verify link in the email body. */
46
+ storefrontBaseUrl: string;
47
+ }
48
+ export declare function registerOrganizationsPublicRoutes(app: FastifyInstance, deps: OrganizationsPublicDeps): Promise<void>;
49
+ //# sourceMappingURL=routes.public.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.public.d.ts","sourceRoot":"","sources":["../../src/backend/routes.public.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,SAAS,CAAC;AAC7D,OAAO,EAQL,KAAK,gBAAgB,EAGrB,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAEzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE;;;GAGG;AAEH,MAAM,WAAW,uBAAuB;IACtC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,mBAAmB,EAAE,wBAAwB,CAAC;IAC9C,mBAAmB,EAAE,gBAAgB,CAAC;IACtC,oBAAoB,EAAE,yBAAyB,CAAC;IAChD;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE;QACd,iBAAiB,EAAE,MAAM,CAAC;QAC1B,2DAA2D;QAC3D,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,KAAK,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;IAChD,wDAAwD;IACxD,MAAM,EAAE,eAAe,CAAC;IACxB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,wDAAwD;IACxD,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,iCAAiC,CACrD,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAiMf"}