@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,242 @@
1
+ // Default subject + content for organizations transactional emails (feature 047):
2
+ // email_verification, organization_invitation, new_org_registration.
3
+ // Simple layout via shared header/footer embeds + heading / text / CTA.
4
+ import { simpleEmailBodyTree } from '@endora-commerce/email-components/defaults/simple-email-body';
5
+ const LANGS = ['en-US', 'pl-PL'];
6
+ /**
7
+ * Two of this module's three emails may never be switched off (issue #89).
8
+ *
9
+ * The criterion is "required to get into an account", and the reason it bites
10
+ * is `TemplateEmail.trySend`: a deactivated email answers `true`, meaning
11
+ * *handled*, so the caller deliberately skips its legacy in-code builder. An
12
+ * operator who switched `email_verification` off would therefore not degrade
13
+ * registration — they would break it, silently, and the person who could not
14
+ * verify has no way to tell anybody.
15
+ *
16
+ * `new_org_registration` is **not** here: it notifies administrators that
17
+ * somebody registered, and an operator who does not want that notice is making
18
+ * an ordinary business choice with no locked-out customer at the other end.
19
+ */
20
+ const REQUIRED_FOR_ACCOUNT_ACCESS = {
21
+ reason: 'Required to create or regain access to an account — switching it off leaves the ' +
22
+ 'recipient with no way to complete the flow, and no fallback email is sent.',
23
+ };
24
+ export const EMAIL_VERIFICATION_DEFAULT = {
25
+ defaultSubject: {
26
+ 'en-US': 'Verify your email — {{var organizationName}}',
27
+ 'pl-PL': 'Zweryfikuj swój adres e-mail — {{var organizationName}}',
28
+ },
29
+ defaultContent: {
30
+ schema_version: 1,
31
+ languages: {
32
+ 'en-US': simpleEmailBodyTree({
33
+ idPrefix: 'verify',
34
+ heading: 'Verify your email',
35
+ text: [
36
+ 'Welcome to the B2B platform.',
37
+ '',
38
+ 'Organization "{{var organizationName}}" was registered.',
39
+ '',
40
+ 'Click the button below to verify your email address.',
41
+ '',
42
+ 'If you did not register, you can ignore this message.',
43
+ ].join('\n'),
44
+ ctaLabel: 'Verify email',
45
+ ctaHref: '{{var verifyUrl}}',
46
+ }),
47
+ 'pl-PL': simpleEmailBodyTree({
48
+ idPrefix: 'verify',
49
+ heading: 'Zweryfikuj swój e-mail',
50
+ text: [
51
+ 'Witamy na platformie B2B.',
52
+ '',
53
+ 'Organizacja "{{var organizationName}}" została zarejestrowana.',
54
+ '',
55
+ 'Kliknij przycisk poniżej, aby zweryfikować swój adres e-mail.',
56
+ '',
57
+ 'Jeśli to nie Ty dokonałeś rejestracji, zignoruj tę wiadomość.',
58
+ ].join('\n'),
59
+ ctaLabel: 'Zweryfikuj e-mail',
60
+ ctaHref: '{{var verifyUrl}}',
61
+ }),
62
+ },
63
+ },
64
+ languages: LANGS,
65
+ nonDeactivatable: REQUIRED_FOR_ACCOUNT_ACCESS,
66
+ };
67
+ export const ORGANIZATION_INVITATION_DEFAULT = {
68
+ defaultSubject: {
69
+ 'en-US': "You're invited to join {{var organizationName}}",
70
+ 'pl-PL': 'Zaproszenie do organizacji {{var organizationName}}',
71
+ },
72
+ defaultContent: {
73
+ schema_version: 1,
74
+ languages: {
75
+ 'en-US': simpleEmailBodyTree({
76
+ idPrefix: 'invite',
77
+ heading: "You're invited",
78
+ text: [
79
+ 'Hi,',
80
+ '',
81
+ '{{var inviterName}} invited you to join "{{var organizationName}}" on the B2B platform as {{var roleLabel}}.',
82
+ '',
83
+ 'The invitation link expires {{var expiresOn}}.',
84
+ '',
85
+ 'If you did not expect this email, you can safely ignore it.',
86
+ ].join('\n'),
87
+ ctaLabel: 'Accept invitation',
88
+ ctaHref: '{{var acceptUrl}}',
89
+ }),
90
+ 'pl-PL': simpleEmailBodyTree({
91
+ idPrefix: 'invite',
92
+ heading: 'Zaproszenie',
93
+ text: [
94
+ 'Cześć,',
95
+ '',
96
+ '{{var inviterName}} zaprosił(a) Cię do organizacji "{{var organizationName}}" na platformie B2B jako {{var roleLabel}}.',
97
+ '',
98
+ 'Link wygasa {{var expiresOn}}.',
99
+ '',
100
+ 'Jeśli nie spodziewałeś się tej wiadomości, możesz ją zignorować.',
101
+ ].join('\n'),
102
+ ctaLabel: 'Zaakceptuj zaproszenie',
103
+ ctaHref: '{{var acceptUrl}}',
104
+ }),
105
+ },
106
+ },
107
+ languages: LANGS,
108
+ nonDeactivatable: REQUIRED_FOR_ACCOUNT_ACCESS,
109
+ };
110
+ export const NEW_ORG_REGISTRATION_DEFAULT = {
111
+ defaultSubject: {
112
+ 'en-US': 'New organization: {{var organizationName}}',
113
+ 'pl-PL': 'Nowa organizacja: {{var organizationName}}',
114
+ },
115
+ defaultContent: {
116
+ schema_version: 1,
117
+ languages: {
118
+ 'en-US': simpleEmailBodyTree({
119
+ idPrefix: 'new-org',
120
+ heading: 'New organization registered',
121
+ text: [
122
+ 'A new organization registered on the B2B platform.',
123
+ '',
124
+ ' Name: {{var organizationName}}',
125
+ ' Tax ID: {{var taxId}}',
126
+ ' Status: {{var statusLabel}}',
127
+ '',
128
+ 'Open in Admin: {{var linkPath}}',
129
+ ].join('\n'),
130
+ }),
131
+ 'pl-PL': simpleEmailBodyTree({
132
+ idPrefix: 'new-org',
133
+ heading: 'Nowa organizacja',
134
+ text: [
135
+ 'Zarejestrowała się nowa organizacja na platformie B2B.',
136
+ '',
137
+ ' Nazwa: {{var organizationName}}',
138
+ ' NIP/VAT: {{var taxId}}',
139
+ ' Status: {{var statusLabel}}',
140
+ '',
141
+ 'Otwórz w Panelu Administracyjnym: {{var linkPath}}',
142
+ ].join('\n'),
143
+ }),
144
+ },
145
+ },
146
+ languages: LANGS,
147
+ };
148
+ /**
149
+ * The two messages a moderated organisation's administrator receives
150
+ * (`specs/093-backend-delivered-prose/` § Out of scope — the seam-B carve-out).
151
+ *
152
+ * They were finished Polish sentences composed inside
153
+ * `OrganizationModerationService` and handed straight to the transport: no
154
+ * code, no template, no language. A buyer on an English sales channel received
155
+ * Polish unconditionally, and unlike an operator a buyer has no admin panel to
156
+ * go and check the facts in.
157
+ *
158
+ * English is the primary copy and `en-US` is first in {@link LANGS}, which is
159
+ * what `TransactionalEmailService` passes as the content resolver's
160
+ * `fallbackLanguage` — so a language with no content, and a language that could
161
+ * not be resolved at all, both read English (owner ruling, 2026-09-01). The
162
+ * Polish here is the copy these two e-mails already shipped, moved rather than
163
+ * retranslated.
164
+ *
165
+ * Neither is `nonDeactivatable`. The criterion the two above it meet is
166
+ * "required to create or regain access to an account"; a status notice is not
167
+ * that — the organisation's administrator can sign in and read the same status
168
+ * on their own screen — so switching it off stays an ordinary business choice.
169
+ */
170
+ export const ORGANIZATION_APPROVED_DEFAULT = {
171
+ defaultSubject: {
172
+ 'en-US': 'Your organization has been verified',
173
+ 'pl-PL': 'Twoja Organizacja została zweryfikowana',
174
+ },
175
+ defaultContent: {
176
+ schema_version: 1,
177
+ languages: {
178
+ 'en-US': simpleEmailBodyTree({
179
+ idPrefix: 'org-approved',
180
+ heading: 'Your organization has been verified',
181
+ text: [
182
+ 'Hi,',
183
+ '',
184
+ 'Organization "{{var organizationName}}" has been verified successfully and can now place Orders and Requests for Quotation.',
185
+ '',
186
+ 'Thank you.',
187
+ ].join('\n'),
188
+ }),
189
+ 'pl-PL': simpleEmailBodyTree({
190
+ idPrefix: 'org-approved',
191
+ heading: 'Twoja Organizacja została zweryfikowana',
192
+ text: [
193
+ 'Witaj,',
194
+ '',
195
+ 'Organizacja "{{var organizationName}}" została pomyślnie zweryfikowana i może teraz składać Zamówienia oraz Zapytania Ofertowe.',
196
+ '',
197
+ 'Dziękujemy.',
198
+ ].join('\n'),
199
+ }),
200
+ },
201
+ },
202
+ languages: LANGS,
203
+ };
204
+ export const ORGANIZATION_REJECTED_DEFAULT = {
205
+ defaultSubject: {
206
+ 'en-US': 'Organization registration rejected',
207
+ 'pl-PL': 'Rejestracja Organizacji odrzucona',
208
+ },
209
+ defaultContent: {
210
+ schema_version: 1,
211
+ languages: {
212
+ 'en-US': simpleEmailBodyTree({
213
+ idPrefix: 'org-rejected',
214
+ heading: 'Organization registration rejected',
215
+ text: [
216
+ 'Hi,',
217
+ '',
218
+ 'Unfortunately, the registration of organization "{{var organizationName}}" was rejected for the following reason:',
219
+ '',
220
+ '{{var reason}}',
221
+ '',
222
+ 'If you have any questions, please contact the platform administrators.',
223
+ ].join('\n'),
224
+ }),
225
+ 'pl-PL': simpleEmailBodyTree({
226
+ idPrefix: 'org-rejected',
227
+ heading: 'Rejestracja Organizacji odrzucona',
228
+ text: [
229
+ 'Witaj,',
230
+ '',
231
+ 'Niestety, rejestracja Organizacji "{{var organizationName}}" została odrzucona z następującego powodu:',
232
+ '',
233
+ '{{var reason}}',
234
+ '',
235
+ 'W razie pytań prosimy o kontakt z administracją platformy.',
236
+ ].join('\n'),
237
+ }),
238
+ },
239
+ },
240
+ languages: LANGS,
241
+ };
242
+ //# sourceMappingURL=transactional-defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactional-defaults.js","sourceRoot":"","sources":["../../../src/backend/email-templates/transactional-defaults.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,qEAAqE;AACrE,wEAAwE;AAExE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8DAA8D,CAAC;AAEnG,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAEjC;;;;;;;;;;;;;GAaG;AACH,MAAM,2BAA2B,GAAG;IAClC,MAAM,EACJ,kFAAkF;QAClF,4EAA4E;CACtE,CAAC;AAEX,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,cAAc,EAAE;QACd,OAAO,EAAE,8CAA8C;QACvD,OAAO,EAAE,yDAAyD;KACzC;IAC3B,cAAc,EAAE;QACd,cAAc,EAAE,CAAC;QACjB,SAAS,EAAE;YACT,OAAO,EAAE,mBAAmB,CAAC;gBAC3B,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,mBAAmB;gBAC5B,IAAI,EAAE;oBACJ,8BAA8B;oBAC9B,EAAE;oBACF,yDAAyD;oBACzD,EAAE;oBACF,sDAAsD;oBACtD,EAAE;oBACF,uDAAuD;iBACxD,CAAC,IAAI,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,cAAc;gBACxB,OAAO,EAAE,mBAAmB;aAC7B,CAAC;YACF,OAAO,EAAE,mBAAmB,CAAC;gBAC3B,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,wBAAwB;gBACjC,IAAI,EAAE;oBACJ,2BAA2B;oBAC3B,EAAE;oBACF,gEAAgE;oBAChE,EAAE;oBACF,+DAA+D;oBAC/D,EAAE;oBACF,+DAA+D;iBAChE,CAAC,IAAI,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,mBAAmB;gBAC7B,OAAO,EAAE,mBAAmB;aAC7B,CAAC;SACH;KACyB;IAC5B,SAAS,EAAE,KAAK;IAChB,gBAAgB,EAAE,2BAA2B;CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,cAAc,EAAE;QACd,OAAO,EAAE,iDAAiD;QAC1D,OAAO,EAAE,qDAAqD;KACrC;IAC3B,cAAc,EAAE;QACd,cAAc,EAAE,CAAC;QACjB,SAAS,EAAE;YACT,OAAO,EAAE,mBAAmB,CAAC;gBAC3B,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,gBAAgB;gBACzB,IAAI,EAAE;oBACJ,KAAK;oBACL,EAAE;oBACF,8GAA8G;oBAC9G,EAAE;oBACF,gDAAgD;oBAChD,EAAE;oBACF,6DAA6D;iBAC9D,CAAC,IAAI,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,mBAAmB;gBAC7B,OAAO,EAAE,mBAAmB;aAC7B,CAAC;YACF,OAAO,EAAE,mBAAmB,CAAC;gBAC3B,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAE;oBACJ,QAAQ;oBACR,EAAE;oBACF,yHAAyH;oBACzH,EAAE;oBACF,gCAAgC;oBAChC,EAAE;oBACF,kEAAkE;iBACnE,CAAC,IAAI,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,wBAAwB;gBAClC,OAAO,EAAE,mBAAmB;aAC7B,CAAC;SACH;KACyB;IAC5B,SAAS,EAAE,KAAK;IAChB,gBAAgB,EAAE,2BAA2B;CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,cAAc,EAAE;QACd,OAAO,EAAE,4CAA4C;QACrD,OAAO,EAAE,4CAA4C;KAC5B;IAC3B,cAAc,EAAE;QACd,cAAc,EAAE,CAAC;QACjB,SAAS,EAAE;YACT,OAAO,EAAE,mBAAmB,CAAC;gBAC3B,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,6BAA6B;gBACtC,IAAI,EAAE;oBACJ,oDAAoD;oBACpD,EAAE;oBACF,qCAAqC;oBACrC,0BAA0B;oBAC1B,gCAAgC;oBAChC,EAAE;oBACF,iCAAiC;iBAClC,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;YACF,OAAO,EAAE,mBAAmB,CAAC;gBAC3B,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,kBAAkB;gBAC3B,IAAI,EAAE;oBACJ,wDAAwD;oBACxD,EAAE;oBACF,qCAAqC;oBACrC,0BAA0B;oBAC1B,gCAAgC;oBAChC,EAAE;oBACF,oDAAoD;iBACrD,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;SACH;KACyB;IAC5B,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,cAAc,EAAE;QACd,OAAO,EAAE,qCAAqC;QAC9C,OAAO,EAAE,yCAAyC;KACzB;IAC3B,cAAc,EAAE;QACd,cAAc,EAAE,CAAC;QACjB,SAAS,EAAE;YACT,OAAO,EAAE,mBAAmB,CAAC;gBAC3B,QAAQ,EAAE,cAAc;gBACxB,OAAO,EAAE,qCAAqC;gBAC9C,IAAI,EAAE;oBACJ,KAAK;oBACL,EAAE;oBACF,6HAA6H;oBAC7H,EAAE;oBACF,YAAY;iBACb,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;YACF,OAAO,EAAE,mBAAmB,CAAC;gBAC3B,QAAQ,EAAE,cAAc;gBACxB,OAAO,EAAE,yCAAyC;gBAClD,IAAI,EAAE;oBACJ,QAAQ;oBACR,EAAE;oBACF,iIAAiI;oBACjI,EAAE;oBACF,aAAa;iBACd,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;SACH;KACyB;IAC5B,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,cAAc,EAAE;QACd,OAAO,EAAE,oCAAoC;QAC7C,OAAO,EAAE,mCAAmC;KACnB;IAC3B,cAAc,EAAE;QACd,cAAc,EAAE,CAAC;QACjB,SAAS,EAAE;YACT,OAAO,EAAE,mBAAmB,CAAC;gBAC3B,QAAQ,EAAE,cAAc;gBACxB,OAAO,EAAE,oCAAoC;gBAC7C,IAAI,EAAE;oBACJ,KAAK;oBACL,EAAE;oBACF,mHAAmH;oBACnH,EAAE;oBACF,gBAAgB;oBAChB,EAAE;oBACF,wEAAwE;iBACzE,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;YACF,OAAO,EAAE,mBAAmB,CAAC;gBAC3B,QAAQ,EAAE,cAAc;gBACxB,OAAO,EAAE,mCAAmC;gBAC5C,IAAI,EAAE;oBACJ,QAAQ;oBACR,EAAE;oBACF,wGAAwG;oBACxG,EAAE;oBACF,gBAAgB;oBAChB,EAAE;oBACF,4DAA4D;iBAC7D,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;SACH;KACyB;IAC5B,SAAS,EAAE,KAAK;CACjB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { EmailMailerSendInput } from '@endora-commerce/contracts';
2
+ export interface BuildVerificationEmailInput {
3
+ customerAccountId: string;
4
+ rawToken: string;
5
+ recipientEmail: string;
6
+ organizationName: string;
7
+ /** Storefront base URL — verification UI submits token to API. */
8
+ storefrontBaseUrl: string;
9
+ }
10
+ /**
11
+ * Verification email for first-time organization registration (FR-001).
12
+ */
13
+ export declare function buildVerificationEmail(input: BuildVerificationEmailInput): EmailMailerSendInput;
14
+ //# sourceMappingURL=verification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../../src/backend/email-templates/verification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,MAAM,WAAW,2BAA2B;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,oBAAoB,CA2B/F"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Verification email for first-time organization registration (FR-001).
3
+ */
4
+ export function buildVerificationEmail(input) {
5
+ const base = trimSlash(input.storefrontBaseUrl);
6
+ /** Must match storefront `app/(auth)/verify/page.tsx` (path `/verify`). */
7
+ const verifyUrl = `${base}/verify?token=${encodeURIComponent(input.rawToken)}`;
8
+ const text = [
9
+ `Welcome to the B2B platform.`,
10
+ ``,
11
+ `Organization "${input.organizationName}" was registered.`,
12
+ ``,
13
+ `Verify your email address by opening this link:`,
14
+ verifyUrl,
15
+ ``,
16
+ `If you did not register, you can ignore this message.`,
17
+ ].join('\n');
18
+ return {
19
+ messageId: `email_verification:${input.customerAccountId}`,
20
+ to: input.recipientEmail,
21
+ subject: `Verify your email — ${input.organizationName}`,
22
+ text,
23
+ meta: {
24
+ kind: 'email_verification',
25
+ customerAccountId: input.customerAccountId,
26
+ organizationName: input.organizationName,
27
+ verifyUrl,
28
+ },
29
+ };
30
+ }
31
+ function trimSlash(s) {
32
+ return s.endsWith('/') ? s.slice(0, -1) : s;
33
+ }
34
+ //# sourceMappingURL=verification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../../src/backend/email-templates/verification.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAkC;IACvE,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAChD,2EAA2E;IAC3E,MAAM,SAAS,GAAG,GAAG,IAAI,iBAAiB,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC/E,MAAM,IAAI,GAAG;QACX,8BAA8B;QAC9B,EAAE;QACF,iBAAiB,KAAK,CAAC,gBAAgB,mBAAmB;QAC1D,EAAE;QACF,iDAAiD;QACjD,SAAS;QACT,EAAE;QACF,uDAAuD;KACxD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO;QACL,SAAS,EAAE,sBAAsB,KAAK,CAAC,iBAAiB,EAAE;QAC1D,EAAE,EAAE,KAAK,CAAC,cAAc;QACxB,OAAO,EAAE,uBAAuB,KAAK,CAAC,gBAAgB,EAAE;QACxD,IAAI;QACJ,IAAI,EAAE;YACJ,IAAI,EAAE,oBAAoB;YAC1B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,SAAS;SACV;KACF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { OptionalProps } from '@mikro-orm/core';
2
+ /**
3
+ * Email verification token — one-shot token issued on Organization registration
4
+ * or on an email-change confirmation. The raw token is handed to the caller
5
+ * once (in the email body); only the sha256 hash is stored, so leaked DB rows
6
+ * cannot be replayed.
7
+ */
8
+ export declare class EmailVerificationToken {
9
+ [OptionalProps]?: 'id' | 'createdAt' | 'consumedAt';
10
+ id: string;
11
+ customerAccountId: string;
12
+ tokenHash: string;
13
+ expiresAt: Date;
14
+ consumedAt?: Date | null;
15
+ createdAt: Date;
16
+ }
17
+ //# sourceMappingURL=email-verification-token.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-verification-token.entity.d.ts","sourceRoot":"","sources":["../../../src/backend/entities/email-verification-token.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,aAAa,EAAgC,MAAM,iBAAiB,CAAC;AAI7F;;;;;GAKG;AACH,qBAEa,sBAAsB;IACjC,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,YAAY,CAAC;IAGpD,EAAE,EAAE,MAAM,CAAgB;IAI1B,iBAAiB,EAAG,MAAM,CAAC;IAI3B,SAAS,EAAG,MAAM,CAAC;IAInB,SAAS,EAAG,IAAI,CAAC;IAGjB,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAGzB,SAAS,EAAE,IAAI,CAAc;CAC9B"}
@@ -0,0 +1,60 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Entity, Index, OptionalProps, PrimaryKey, Property, Unique } from '@mikro-orm/core';
11
+ import { CustomerScoped } from '@endora-commerce/platform/tenancy';
12
+ import { randomUUID } from 'crypto';
13
+ /**
14
+ * Email verification token — one-shot token issued on Organization registration
15
+ * or on an email-change confirmation. The raw token is handed to the caller
16
+ * once (in the email body); only the sha256 hash is stored, so leaked DB rows
17
+ * cannot be replayed.
18
+ */
19
+ let EmailVerificationToken = class EmailVerificationToken {
20
+ [OptionalProps];
21
+ id = randomUUID();
22
+ customerAccountId;
23
+ tokenHash;
24
+ expiresAt;
25
+ consumedAt;
26
+ createdAt = new Date();
27
+ };
28
+ __decorate([
29
+ PrimaryKey({ type: 'uuid' }),
30
+ __metadata("design:type", String)
31
+ ], EmailVerificationToken.prototype, "id", void 0);
32
+ __decorate([
33
+ Property({ type: 'uuid' }),
34
+ Index(),
35
+ __metadata("design:type", String)
36
+ ], EmailVerificationToken.prototype, "customerAccountId", void 0);
37
+ __decorate([
38
+ Property({ type: 'string', length: 128 }),
39
+ Unique(),
40
+ __metadata("design:type", String)
41
+ ], EmailVerificationToken.prototype, "tokenHash", void 0);
42
+ __decorate([
43
+ Property({ type: 'datetime' }),
44
+ Index(),
45
+ __metadata("design:type", Date)
46
+ ], EmailVerificationToken.prototype, "expiresAt", void 0);
47
+ __decorate([
48
+ Property({ type: 'datetime', nullable: true }),
49
+ __metadata("design:type", Object)
50
+ ], EmailVerificationToken.prototype, "consumedAt", void 0);
51
+ __decorate([
52
+ Property({ type: 'datetime', onCreate: () => new Date() }),
53
+ __metadata("design:type", Date)
54
+ ], EmailVerificationToken.prototype, "createdAt", void 0);
55
+ EmailVerificationToken = __decorate([
56
+ CustomerScoped(),
57
+ Entity({ tableName: 'email_verification_tokens' })
58
+ ], EmailVerificationToken);
59
+ export { EmailVerificationToken };
60
+ //# sourceMappingURL=email-verification-token.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-verification-token.entity.js","sourceRoot":"","sources":["../../../src/backend/entities/email-verification-token.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;;;;GAKG;AAGI,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,CAAC,aAAa,CAAC,CAAqC;IAGpD,EAAE,GAAW,UAAU,EAAE,CAAC;IAI1B,iBAAiB,CAAU;IAI3B,SAAS,CAAU;IAInB,SAAS,CAAQ;IAGjB,UAAU,CAAe;IAGzB,SAAS,GAAS,IAAI,IAAI,EAAE,CAAC;CAC9B,CAAA;AAnBC;IADC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;kDACH;AAI1B;IAFC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE;;iEACmB;AAI3B;IAFC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACzC,MAAM,EAAE;;yDACU;AAInB;IAFC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC9B,KAAK,EAAE;8BACI,IAAI;yDAAC;AAGjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACtB;AAGzB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;8BAChD,IAAI;yDAAc;AAtBlB,sBAAsB;IAFlC,cAAc,EAAE;IAChB,MAAM,CAAC,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC;GACtC,sBAAsB,CAuBlC"}
@@ -0,0 +1,14 @@
1
+ import { OptionalProps } from '@mikro-orm/core';
2
+ /**
3
+ * Per-Organization allow-list entry for a delivery method.
4
+ *
5
+ * Empty set ⇒ the platform default methods apply (FR-015). A non-empty
6
+ * set means "only these delivery methods are offered at checkout".
7
+ */
8
+ export declare class OrganizationDeliveryMethodLink {
9
+ [OptionalProps]?: 'createdAt';
10
+ organizationId: string;
11
+ deliveryMethodId: string;
12
+ createdAt: Date;
13
+ }
14
+ //# sourceMappingURL=organization-delivery-method-link.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-delivery-method-link.entity.d.ts","sourceRoot":"","sources":["../../../src/backend/entities/organization-delivery-method-link.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AAG9E;;;;;GAKG;AACH,qBAEa,8BAA8B;IACzC,CAAC,aAAa,CAAC,CAAC,EAAE,WAAW,CAAC;IAG9B,cAAc,EAAG,MAAM,CAAC;IAGxB,gBAAgB,EAAG,MAAM,CAAC;IAG1B,SAAS,EAAE,IAAI,CAAc;CAC9B"}
@@ -0,0 +1,41 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Entity, OptionalProps, PrimaryKey, Property } from '@mikro-orm/core';
11
+ import { OrgScoped } from '@endora-commerce/platform/tenancy';
12
+ /**
13
+ * Per-Organization allow-list entry for a delivery method.
14
+ *
15
+ * Empty set ⇒ the platform default methods apply (FR-015). A non-empty
16
+ * set means "only these delivery methods are offered at checkout".
17
+ */
18
+ let OrganizationDeliveryMethodLink = class OrganizationDeliveryMethodLink {
19
+ [OptionalProps];
20
+ organizationId;
21
+ deliveryMethodId;
22
+ createdAt = new Date();
23
+ };
24
+ __decorate([
25
+ PrimaryKey({ type: 'uuid' }),
26
+ __metadata("design:type", String)
27
+ ], OrganizationDeliveryMethodLink.prototype, "organizationId", void 0);
28
+ __decorate([
29
+ PrimaryKey({ type: 'uuid' }),
30
+ __metadata("design:type", String)
31
+ ], OrganizationDeliveryMethodLink.prototype, "deliveryMethodId", void 0);
32
+ __decorate([
33
+ Property({ type: 'datetime' }),
34
+ __metadata("design:type", Date)
35
+ ], OrganizationDeliveryMethodLink.prototype, "createdAt", void 0);
36
+ OrganizationDeliveryMethodLink = __decorate([
37
+ OrgScoped(),
38
+ Entity({ tableName: 'organization_delivery_methods' })
39
+ ], OrganizationDeliveryMethodLink);
40
+ export { OrganizationDeliveryMethodLink };
41
+ //# sourceMappingURL=organization-delivery-method-link.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-delivery-method-link.entity.js","sourceRoot":"","sources":["../../../src/backend/entities/organization-delivery-method-link.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D;;;;;GAKG;AAGI,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IACzC,CAAC,aAAa,CAAC,CAAe;IAG9B,cAAc,CAAU;IAGxB,gBAAgB,CAAU;IAG1B,SAAS,GAAS,IAAI,IAAI,EAAE,CAAC;CAC9B,CAAA;AAPC;IADC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;sEACL;AAGxB;IADC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;wEACH;AAG1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;8BACpB,IAAI;iEAAc;AAVlB,8BAA8B;IAF1C,SAAS,EAAE;IACX,MAAM,CAAC,EAAE,SAAS,EAAE,+BAA+B,EAAE,CAAC;GAC1C,8BAA8B,CAW1C"}
@@ -0,0 +1,21 @@
1
+ import { OptionalProps } from '@mikro-orm/core';
2
+ /**
3
+ * Pending invitation row issued by an Organization Admin.
4
+ * Token rules mirror the email-verification flow: random base64url token
5
+ * shown once, sha256 hash stored. One-shot via `consumed_at`.
6
+ */
7
+ export declare class OrganizationInvitation {
8
+ [OptionalProps]?: 'id' | 'createdAt' | 'updatedAt' | 'consumedAt' | 'revokedAt' | 'role' | 'invitedByCustomerAccountId';
9
+ id: string;
10
+ organizationId: string;
11
+ invitedByCustomerAccountId?: string | null;
12
+ email: string;
13
+ role: 'organization_admin' | 'regular_user';
14
+ tokenHash: string;
15
+ expiresAt: Date;
16
+ consumedAt?: Date | null;
17
+ revokedAt?: Date | null;
18
+ createdAt: Date;
19
+ updatedAt: Date;
20
+ }
21
+ //# sourceMappingURL=organization-invitation.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-invitation.entity.d.ts","sourceRoot":"","sources":["../../../src/backend/entities/organization-invitation.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,aAAa,EAAgC,MAAM,iBAAiB,CAAC;AAI7F;;;;GAIG;AACH,qBAEa,sBAAsB;IACjC,CAAC,aAAa,CAAC,CAAC,EACZ,IAAI,GACJ,WAAW,GACX,WAAW,GACX,YAAY,GACZ,WAAW,GACX,MAAM,GACN,4BAA4B,CAAC;IAGjC,EAAE,EAAE,MAAM,CAAgB;IAI1B,cAAc,EAAG,MAAM,CAAC;IAGxB,0BAA0B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAI3C,KAAK,EAAG,MAAM,CAAC;IAGf,IAAI,EAAE,oBAAoB,GAAG,cAAc,CAAkB;IAI7D,SAAS,EAAG,MAAM,CAAC;IAInB,SAAS,EAAG,IAAI,CAAC;IAGjB,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAGzB,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAGxB,SAAS,EAAE,IAAI,CAAc;IAG7B,SAAS,EAAE,IAAI,CAAc;CAC9B"}
@@ -0,0 +1,85 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Entity, Index, OptionalProps, PrimaryKey, Property, Unique } from '@mikro-orm/core';
11
+ import { OrgScoped } from '@endora-commerce/platform/tenancy';
12
+ import { randomUUID } from 'crypto';
13
+ /**
14
+ * Pending invitation row issued by an Organization Admin.
15
+ * Token rules mirror the email-verification flow: random base64url token
16
+ * shown once, sha256 hash stored. One-shot via `consumed_at`.
17
+ */
18
+ let OrganizationInvitation = class OrganizationInvitation {
19
+ [OptionalProps];
20
+ id = randomUUID();
21
+ organizationId;
22
+ invitedByCustomerAccountId;
23
+ email;
24
+ role = 'regular_user';
25
+ tokenHash;
26
+ expiresAt;
27
+ consumedAt;
28
+ revokedAt;
29
+ createdAt = new Date();
30
+ updatedAt = new Date();
31
+ };
32
+ __decorate([
33
+ PrimaryKey({ type: 'uuid' }),
34
+ __metadata("design:type", String)
35
+ ], OrganizationInvitation.prototype, "id", void 0);
36
+ __decorate([
37
+ Property({ type: 'uuid' }),
38
+ Index(),
39
+ __metadata("design:type", String)
40
+ ], OrganizationInvitation.prototype, "organizationId", void 0);
41
+ __decorate([
42
+ Property({ type: 'uuid', nullable: true }),
43
+ __metadata("design:type", Object)
44
+ ], OrganizationInvitation.prototype, "invitedByCustomerAccountId", void 0);
45
+ __decorate([
46
+ Property({ type: 'string', length: 320 }),
47
+ Index(),
48
+ __metadata("design:type", String)
49
+ ], OrganizationInvitation.prototype, "email", void 0);
50
+ __decorate([
51
+ Property({ type: 'string', length: 32 }),
52
+ __metadata("design:type", String)
53
+ ], OrganizationInvitation.prototype, "role", void 0);
54
+ __decorate([
55
+ Property({ type: 'string', length: 128 }),
56
+ Unique(),
57
+ __metadata("design:type", String)
58
+ ], OrganizationInvitation.prototype, "tokenHash", void 0);
59
+ __decorate([
60
+ Property({ type: 'datetime' }),
61
+ Index(),
62
+ __metadata("design:type", Date)
63
+ ], OrganizationInvitation.prototype, "expiresAt", void 0);
64
+ __decorate([
65
+ Property({ type: 'datetime', nullable: true }),
66
+ __metadata("design:type", Object)
67
+ ], OrganizationInvitation.prototype, "consumedAt", void 0);
68
+ __decorate([
69
+ Property({ type: 'datetime', nullable: true }),
70
+ __metadata("design:type", Object)
71
+ ], OrganizationInvitation.prototype, "revokedAt", void 0);
72
+ __decorate([
73
+ Property({ type: 'datetime', onCreate: () => new Date() }),
74
+ __metadata("design:type", Date)
75
+ ], OrganizationInvitation.prototype, "createdAt", void 0);
76
+ __decorate([
77
+ Property({ type: 'datetime', onUpdate: () => new Date() }),
78
+ __metadata("design:type", Date)
79
+ ], OrganizationInvitation.prototype, "updatedAt", void 0);
80
+ OrganizationInvitation = __decorate([
81
+ OrgScoped(),
82
+ Entity({ tableName: 'organization_invitations' })
83
+ ], OrganizationInvitation);
84
+ export { OrganizationInvitation };
85
+ //# sourceMappingURL=organization-invitation.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-invitation.entity.js","sourceRoot":"","sources":["../../../src/backend/entities/organization-invitation.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;;;GAIG;AAGI,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,CAAC,aAAa,CAAC,CAOkB;IAGjC,EAAE,GAAW,UAAU,EAAE,CAAC;IAI1B,cAAc,CAAU;IAGxB,0BAA0B,CAAiB;IAI3C,KAAK,CAAU;IAGf,IAAI,GAA0C,cAAc,CAAC;IAI7D,SAAS,CAAU;IAInB,SAAS,CAAQ;IAGjB,UAAU,CAAe;IAGzB,SAAS,CAAe;IAGxB,SAAS,GAAS,IAAI,IAAI,EAAE,CAAC;IAG7B,SAAS,GAAS,IAAI,IAAI,EAAE,CAAC;CAC9B,CAAA;AAnCC;IADC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;kDACH;AAI1B;IAFC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE;;8DACgB;AAGxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0EACA;AAI3C;IAFC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACzC,KAAK,EAAE;;qDACO;AAGf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;oDACoB;AAI7D;IAFC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACzC,MAAM,EAAE;;yDACU;AAInB;IAFC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC9B,KAAK,EAAE;8BACI,IAAI;yDAAC;AAGjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACtB;AAGzB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACvB;AAGxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;8BAChD,IAAI;yDAAc;AAG7B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;8BAChD,IAAI;yDAAc;AA7ClB,sBAAsB;IAFlC,SAAS,EAAE;IACX,MAAM,CAAC,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAAC;GACrC,sBAAsB,CA8ClC"}
@@ -0,0 +1,14 @@
1
+ import { OptionalProps } from '@mikro-orm/core';
2
+ /**
3
+ * Per-Organization allow-list entry for a payment method.
4
+ *
5
+ * Empty set ⇒ the platform default methods apply (FR-014). A non-empty
6
+ * set means "only these methods are offered at checkout".
7
+ */
8
+ export declare class OrganizationPaymentMethodLink {
9
+ [OptionalProps]?: 'createdAt';
10
+ organizationId: string;
11
+ paymentMethodId: string;
12
+ createdAt: Date;
13
+ }
14
+ //# sourceMappingURL=organization-payment-method-link.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-payment-method-link.entity.d.ts","sourceRoot":"","sources":["../../../src/backend/entities/organization-payment-method-link.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AAG9E;;;;;GAKG;AACH,qBAEa,6BAA6B;IACxC,CAAC,aAAa,CAAC,CAAC,EAAE,WAAW,CAAC;IAG9B,cAAc,EAAG,MAAM,CAAC;IAGxB,eAAe,EAAG,MAAM,CAAC;IAGzB,SAAS,EAAE,IAAI,CAAc;CAC9B"}
@@ -0,0 +1,41 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Entity, OptionalProps, PrimaryKey, Property } from '@mikro-orm/core';
11
+ import { OrgScoped } from '@endora-commerce/platform/tenancy';
12
+ /**
13
+ * Per-Organization allow-list entry for a payment method.
14
+ *
15
+ * Empty set ⇒ the platform default methods apply (FR-014). A non-empty
16
+ * set means "only these methods are offered at checkout".
17
+ */
18
+ let OrganizationPaymentMethodLink = class OrganizationPaymentMethodLink {
19
+ [OptionalProps];
20
+ organizationId;
21
+ paymentMethodId;
22
+ createdAt = new Date();
23
+ };
24
+ __decorate([
25
+ PrimaryKey({ type: 'uuid' }),
26
+ __metadata("design:type", String)
27
+ ], OrganizationPaymentMethodLink.prototype, "organizationId", void 0);
28
+ __decorate([
29
+ PrimaryKey({ type: 'uuid' }),
30
+ __metadata("design:type", String)
31
+ ], OrganizationPaymentMethodLink.prototype, "paymentMethodId", void 0);
32
+ __decorate([
33
+ Property({ type: 'datetime' }),
34
+ __metadata("design:type", Date)
35
+ ], OrganizationPaymentMethodLink.prototype, "createdAt", void 0);
36
+ OrganizationPaymentMethodLink = __decorate([
37
+ OrgScoped(),
38
+ Entity({ tableName: 'organization_payment_methods' })
39
+ ], OrganizationPaymentMethodLink);
40
+ export { OrganizationPaymentMethodLink };
41
+ //# sourceMappingURL=organization-payment-method-link.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-payment-method-link.entity.js","sourceRoot":"","sources":["../../../src/backend/entities/organization-payment-method-link.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D;;;;;GAKG;AAGI,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IACxC,CAAC,aAAa,CAAC,CAAe;IAG9B,cAAc,CAAU;IAGxB,eAAe,CAAU;IAGzB,SAAS,GAAS,IAAI,IAAI,EAAE,CAAC;CAC9B,CAAA;AAPC;IADC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qEACL;AAGxB;IADC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;sEACJ;AAGzB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;8BACpB,IAAI;gEAAc;AAVlB,6BAA6B;IAFzC,SAAS,EAAE;IACX,MAAM,CAAC,EAAE,SAAS,EAAE,8BAA8B,EAAE,CAAC;GACzC,6BAA6B,CAWzC"}