@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.
- package/LICENSE +21 -0
- package/README.md +62 -0
- package/dist/admin/components/OrganizationSalesRepsTab.d.ts +27 -0
- package/dist/admin/components/OrganizationSalesRepsTab.d.ts.map +1 -0
- package/dist/admin/components/OrganizationSalesRepsTab.js +170 -0
- package/dist/admin/components/OrganizationSalesRepsTab.js.map +1 -0
- package/dist/admin/index.d.ts +30 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +59 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/pages/OrganizationDetail.d.ts +9 -0
- package/dist/admin/pages/OrganizationDetail.d.ts.map +1 -0
- package/dist/admin/pages/OrganizationDetail.js +247 -0
- package/dist/admin/pages/OrganizationDetail.js.map +1 -0
- package/dist/admin/pages/OrganizationsList.d.ts +9 -0
- package/dist/admin/pages/OrganizationsList.d.ts.map +1 -0
- package/dist/admin/pages/OrganizationsList.js +73 -0
- package/dist/admin/pages/OrganizationsList.js.map +1 -0
- package/dist/admin/panels/ApplicablePriceListsPanel.d.ts +12 -0
- package/dist/admin/panels/ApplicablePriceListsPanel.d.ts.map +1 -0
- package/dist/admin/panels/ApplicablePriceListsPanel.js +49 -0
- package/dist/admin/panels/ApplicablePriceListsPanel.js.map +1 -0
- package/dist/admin/panels/FulfilmentStrategyPanel.d.ts +16 -0
- package/dist/admin/panels/FulfilmentStrategyPanel.d.ts.map +1 -0
- package/dist/admin/panels/FulfilmentStrategyPanel.js +29 -0
- package/dist/admin/panels/FulfilmentStrategyPanel.js.map +1 -0
- package/dist/admin/panels/HierarchyPanel.d.ts +15 -0
- package/dist/admin/panels/HierarchyPanel.d.ts.map +1 -0
- package/dist/admin/panels/HierarchyPanel.js +65 -0
- package/dist/admin/panels/HierarchyPanel.js.map +1 -0
- package/dist/admin/panels/ModerationActionsPanel.d.ts +28 -0
- package/dist/admin/panels/ModerationActionsPanel.d.ts.map +1 -0
- package/dist/admin/panels/ModerationActionsPanel.js +111 -0
- package/dist/admin/panels/ModerationActionsPanel.js.map +1 -0
- package/dist/admin/panels/RestrictionsPanel.d.ts +24 -0
- package/dist/admin/panels/RestrictionsPanel.d.ts.map +1 -0
- package/dist/admin/panels/RestrictionsPanel.js +121 -0
- package/dist/admin/panels/RestrictionsPanel.js.map +1 -0
- package/dist/admin/panels/VatValidationPanel.d.ts +28 -0
- package/dist/admin/panels/VatValidationPanel.d.ts.map +1 -0
- package/dist/admin/panels/VatValidationPanel.js +79 -0
- package/dist/admin/panels/VatValidationPanel.js.map +1 -0
- package/dist/backend/commands/move.command.d.ts +11 -0
- package/dist/backend/commands/move.command.d.ts.map +1 -0
- package/dist/backend/commands/move.command.js +11 -0
- package/dist/backend/commands/move.command.js.map +1 -0
- package/dist/backend/commands/set-cart-approval-policy.command.d.ts +31 -0
- package/dist/backend/commands/set-cart-approval-policy.command.d.ts.map +1 -0
- package/dist/backend/commands/set-cart-approval-policy.command.js +56 -0
- package/dist/backend/commands/set-cart-approval-policy.command.js.map +1 -0
- package/dist/backend/commands/set-credit-mode.command.d.ts +16 -0
- package/dist/backend/commands/set-credit-mode.command.d.ts.map +1 -0
- package/dist/backend/commands/set-credit-mode.command.js +25 -0
- package/dist/backend/commands/set-credit-mode.command.js.map +1 -0
- package/dist/backend/commands/set-parent.command.d.ts +26 -0
- package/dist/backend/commands/set-parent.command.d.ts.map +1 -0
- package/dist/backend/commands/set-parent.command.js +51 -0
- package/dist/backend/commands/set-parent.command.js.map +1 -0
- package/dist/backend/demo/reset.d.ts +20 -0
- package/dist/backend/demo/reset.d.ts.map +1 -0
- package/dist/backend/demo/reset.js +11 -0
- package/dist/backend/demo/reset.js.map +1 -0
- package/dist/backend/demo/rows.d.ts +44 -0
- package/dist/backend/demo/rows.d.ts.map +1 -0
- package/dist/backend/demo/rows.js +44 -0
- package/dist/backend/demo/rows.js.map +1 -0
- package/dist/backend/demo/seed.d.ts +20 -0
- package/dist/backend/demo/seed.d.ts.map +1 -0
- package/dist/backend/demo/seed.js +28 -0
- package/dist/backend/demo/seed.js.map +1 -0
- package/dist/backend/email-templates/invitation.d.ts +23 -0
- package/dist/backend/email-templates/invitation.d.ts.map +1 -0
- package/dist/backend/email-templates/invitation.js +35 -0
- package/dist/backend/email-templates/invitation.js.map +1 -0
- package/dist/backend/email-templates/transactional-defaults.d.ts +54 -0
- package/dist/backend/email-templates/transactional-defaults.d.ts.map +1 -0
- package/dist/backend/email-templates/transactional-defaults.js +242 -0
- package/dist/backend/email-templates/transactional-defaults.js.map +1 -0
- package/dist/backend/email-templates/verification.d.ts +14 -0
- package/dist/backend/email-templates/verification.d.ts.map +1 -0
- package/dist/backend/email-templates/verification.js +34 -0
- package/dist/backend/email-templates/verification.js.map +1 -0
- package/dist/backend/entities/email-verification-token.entity.d.ts +17 -0
- package/dist/backend/entities/email-verification-token.entity.d.ts.map +1 -0
- package/dist/backend/entities/email-verification-token.entity.js +60 -0
- package/dist/backend/entities/email-verification-token.entity.js.map +1 -0
- package/dist/backend/entities/organization-delivery-method-link.entity.d.ts +14 -0
- package/dist/backend/entities/organization-delivery-method-link.entity.d.ts.map +1 -0
- package/dist/backend/entities/organization-delivery-method-link.entity.js +41 -0
- package/dist/backend/entities/organization-delivery-method-link.entity.js.map +1 -0
- package/dist/backend/entities/organization-invitation.entity.d.ts +21 -0
- package/dist/backend/entities/organization-invitation.entity.d.ts.map +1 -0
- package/dist/backend/entities/organization-invitation.entity.js +85 -0
- package/dist/backend/entities/organization-invitation.entity.js.map +1 -0
- package/dist/backend/entities/organization-payment-method-link.entity.d.ts +14 -0
- package/dist/backend/entities/organization-payment-method-link.entity.d.ts.map +1 -0
- package/dist/backend/entities/organization-payment-method-link.entity.js +41 -0
- package/dist/backend/entities/organization-payment-method-link.entity.js.map +1 -0
- package/dist/backend/entities/organization-sales-rep-assignment.entity.d.ts +17 -0
- package/dist/backend/entities/organization-sales-rep-assignment.entity.d.ts.map +1 -0
- package/dist/backend/entities/organization-sales-rep-assignment.entity.js +56 -0
- package/dist/backend/entities/organization-sales-rep-assignment.entity.js.map +1 -0
- package/dist/backend/entities/organization-tax-id-validation.entity.d.ts +29 -0
- package/dist/backend/entities/organization-tax-id-validation.entity.d.ts.map +1 -0
- package/dist/backend/entities/organization-tax-id-validation.entity.js +78 -0
- package/dist/backend/entities/organization-tax-id-validation.entity.js.map +1 -0
- package/dist/backend/entities/organization-warehouse-link.entity.d.ts +15 -0
- package/dist/backend/entities/organization-warehouse-link.entity.d.ts.map +1 -0
- package/dist/backend/entities/organization-warehouse-link.entity.js +42 -0
- package/dist/backend/entities/organization-warehouse-link.entity.js.map +1 -0
- package/dist/backend/entities/organization.entity.d.ts +125 -0
- package/dist/backend/entities/organization.entity.d.ts.map +1 -0
- package/dist/backend/entities/organization.entity.js +282 -0
- package/dist/backend/entities/organization.entity.js.map +1 -0
- package/dist/backend/index.d.ts +250 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +506 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/integrations/ministerstwo-finansow-client.d.ts +22 -0
- package/dist/backend/integrations/ministerstwo-finansow-client.d.ts.map +1 -0
- package/dist/backend/integrations/ministerstwo-finansow-client.js +172 -0
- package/dist/backend/integrations/ministerstwo-finansow-client.js.map +1 -0
- package/dist/backend/integrations/vies-client.d.ts +18 -0
- package/dist/backend/integrations/vies-client.d.ts.map +1 -0
- package/dist/backend/integrations/vies-client.js +133 -0
- package/dist/backend/integrations/vies-client.js.map +1 -0
- package/dist/backend/plugin.d.ts +126 -0
- package/dist/backend/plugin.d.ts.map +1 -0
- package/dist/backend/plugin.js +139 -0
- package/dist/backend/plugin.js.map +1 -0
- package/dist/backend/routes.admin.d.ts +66 -0
- package/dist/backend/routes.admin.d.ts.map +1 -0
- package/dist/backend/routes.admin.js +711 -0
- package/dist/backend/routes.admin.js.map +1 -0
- package/dist/backend/routes.customer.d.ts +33 -0
- package/dist/backend/routes.customer.d.ts.map +1 -0
- package/dist/backend/routes.customer.js +139 -0
- package/dist/backend/routes.customer.js.map +1 -0
- package/dist/backend/routes.members.d.ts +31 -0
- package/dist/backend/routes.members.d.ts.map +1 -0
- package/dist/backend/routes.members.js +109 -0
- package/dist/backend/routes.members.js.map +1 -0
- package/dist/backend/routes.public.d.ts +49 -0
- package/dist/backend/routes.public.d.ts.map +1 -0
- package/dist/backend/routes.public.js +220 -0
- package/dist/backend/routes.public.js.map +1 -0
- package/dist/backend/routes.sales-reps.d.ts +46 -0
- package/dist/backend/routes.sales-reps.d.ts.map +1 -0
- package/dist/backend/routes.sales-reps.js +114 -0
- package/dist/backend/routes.sales-reps.js.map +1 -0
- package/dist/backend/routes.storefront.d.ts +25 -0
- package/dist/backend/routes.storefront.d.ts.map +1 -0
- package/dist/backend/routes.storefront.js +65 -0
- package/dist/backend/routes.storefront.js.map +1 -0
- package/dist/backend/schemas/organization.d.ts +59 -0
- package/dist/backend/schemas/organization.d.ts.map +1 -0
- package/dist/backend/schemas/organization.js +55 -0
- package/dist/backend/schemas/organization.js.map +1 -0
- package/dist/backend/schemas/settings.d.ts +30 -0
- package/dist/backend/schemas/settings.d.ts.map +1 -0
- package/dist/backend/schemas/settings.js +35 -0
- package/dist/backend/schemas/settings.js.map +1 -0
- package/dist/backend/services/email-verification-service.d.ts +45 -0
- package/dist/backend/services/email-verification-service.d.ts.map +1 -0
- package/dist/backend/services/email-verification-service.js +95 -0
- package/dist/backend/services/email-verification-service.js.map +1 -0
- package/dist/backend/services/invitation-service.d.ts +85 -0
- package/dist/backend/services/invitation-service.d.ts.map +1 -0
- package/dist/backend/services/invitation-service.js +266 -0
- package/dist/backend/services/invitation-service.js.map +1 -0
- package/dist/backend/services/normalize-name.d.ts +14 -0
- package/dist/backend/services/normalize-name.d.ts.map +1 -0
- package/dist/backend/services/normalize-name.js +14 -0
- package/dist/backend/services/normalize-name.js.map +1 -0
- package/dist/backend/services/org-registration-notifier.d.ts +36 -0
- package/dist/backend/services/org-registration-notifier.d.ts.map +1 -0
- package/dist/backend/services/org-registration-notifier.js +109 -0
- package/dist/backend/services/org-registration-notifier.js.map +1 -0
- package/dist/backend/services/org-template-email.d.ts +18 -0
- package/dist/backend/services/org-template-email.d.ts.map +1 -0
- package/dist/backend/services/org-template-email.js +16 -0
- package/dist/backend/services/org-template-email.js.map +1 -0
- package/dist/backend/services/organization-context-service.d.ts +52 -0
- package/dist/backend/services/organization-context-service.d.ts.map +1 -0
- package/dist/backend/services/organization-context-service.js +70 -0
- package/dist/backend/services/organization-context-service.js.map +1 -0
- package/dist/backend/services/organization-country-reference.d.ts +11 -0
- package/dist/backend/services/organization-country-reference.d.ts.map +1 -0
- package/dist/backend/services/organization-country-reference.js +24 -0
- package/dist/backend/services/organization-country-reference.js.map +1 -0
- package/dist/backend/services/organization-details-port.d.ts +33 -0
- package/dist/backend/services/organization-details-port.d.ts.map +1 -0
- package/dist/backend/services/organization-details-port.js +95 -0
- package/dist/backend/services/organization-details-port.js.map +1 -0
- package/dist/backend/services/organization-effective-pricelists-service.d.ts +50 -0
- package/dist/backend/services/organization-effective-pricelists-service.d.ts.map +1 -0
- package/dist/backend/services/organization-effective-pricelists-service.js +68 -0
- package/dist/backend/services/organization-effective-pricelists-service.js.map +1 -0
- package/dist/backend/services/organization-inheritance-service.d.ts +73 -0
- package/dist/backend/services/organization-inheritance-service.d.ts.map +1 -0
- package/dist/backend/services/organization-inheritance-service.js +63 -0
- package/dist/backend/services/organization-inheritance-service.js.map +1 -0
- package/dist/backend/services/organization-moderation-service.d.ts +124 -0
- package/dist/backend/services/organization-moderation-service.d.ts.map +1 -0
- package/dist/backend/services/organization-moderation-service.js +337 -0
- package/dist/backend/services/organization-moderation-service.js.map +1 -0
- package/dist/backend/services/organization-restriction-service.d.ts +70 -0
- package/dist/backend/services/organization-restriction-service.d.ts.map +1 -0
- package/dist/backend/services/organization-restriction-service.js +210 -0
- package/dist/backend/services/organization-restriction-service.js.map +1 -0
- package/dist/backend/services/organization-tax-id-validation-service.d.ts +59 -0
- package/dist/backend/services/organization-tax-id-validation-service.d.ts.map +1 -0
- package/dist/backend/services/organization-tax-id-validation-service.js +115 -0
- package/dist/backend/services/organization-tax-id-validation-service.js.map +1 -0
- package/dist/backend/services/organization-tree-service.d.ts +102 -0
- package/dist/backend/services/organization-tree-service.d.ts.map +1 -0
- package/dist/backend/services/organization-tree-service.js +184 -0
- package/dist/backend/services/organization-tree-service.js.map +1 -0
- package/dist/backend/services/personal-organization-service.d.ts +130 -0
- package/dist/backend/services/personal-organization-service.d.ts.map +1 -0
- package/dist/backend/services/personal-organization-service.js +207 -0
- package/dist/backend/services/personal-organization-service.js.map +1 -0
- package/dist/backend/services/registration-service.d.ts +80 -0
- package/dist/backend/services/registration-service.d.ts.map +1 -0
- package/dist/backend/services/registration-service.js +126 -0
- package/dist/backend/services/registration-service.js.map +1 -0
- package/dist/backend/services/sales-rep-assignment-service.d.ts +89 -0
- package/dist/backend/services/sales-rep-assignment-service.d.ts.map +1 -0
- package/dist/backend/services/sales-rep-assignment-service.js +176 -0
- package/dist/backend/services/sales-rep-assignment-service.js.map +1 -0
- package/dist/backend/services/vat-validator-port.d.ts +20 -0
- package/dist/backend/services/vat-validator-port.d.ts.map +1 -0
- package/dist/backend/services/vat-validator-port.js +2 -0
- package/dist/backend/services/vat-validator-port.js.map +1 -0
- package/dist/manifest.d.ts +176 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +503 -0
- package/dist/manifest.js.map +1 -0
- package/dist/migrations/20260424T205317_organizations_init.d.ts +13 -0
- package/dist/migrations/20260424T205317_organizations_init.d.ts.map +1 -0
- package/dist/migrations/20260424T205317_organizations_init.js +100 -0
- package/dist/migrations/20260424T205317_organizations_init.js.map +1 -0
- package/dist/migrations/20260425T051700_organizations_invitations_init.d.ts +13 -0
- package/dist/migrations/20260425T051700_organizations_invitations_init.d.ts.map +1 -0
- package/dist/migrations/20260425T051700_organizations_invitations_init.js +39 -0
- package/dist/migrations/20260425T051700_organizations_invitations_init.js.map +1 -0
- package/dist/migrations/20260611T140349_organizations_consolidation.d.ts +35 -0
- package/dist/migrations/20260611T140349_organizations_consolidation.d.ts.map +1 -0
- package/dist/migrations/20260611T140349_organizations_consolidation.js +180 -0
- package/dist/migrations/20260611T140349_organizations_consolidation.js.map +1 -0
- package/dist/migrations/20260611T140358_organizations_org_order_confirmation_emails.d.ts +10 -0
- package/dist/migrations/20260611T140358_organizations_org_order_confirmation_emails.d.ts.map +1 -0
- package/dist/migrations/20260611T140358_organizations_org_order_confirmation_emails.js +14 -0
- package/dist/migrations/20260611T140358_organizations_org_order_confirmation_emails.js.map +1 -0
- package/dist/migrations/20260611T140402_organizations_org_fulfilment_strategy.d.ts +14 -0
- package/dist/migrations/20260611T140402_organizations_org_fulfilment_strategy.d.ts.map +1 -0
- package/dist/migrations/20260611T140402_organizations_org_fulfilment_strategy.js +20 -0
- package/dist/migrations/20260611T140402_organizations_org_fulfilment_strategy.js.map +1 -0
- package/dist/migrations/20260717T151403_organizations_personal_organizations.d.ts +24 -0
- package/dist/migrations/20260717T151403_organizations_personal_organizations.d.ts.map +1 -0
- package/dist/migrations/20260717T151403_organizations_personal_organizations.js +63 -0
- package/dist/migrations/20260717T151403_organizations_personal_organizations.js.map +1 -0
- package/dist/migrations/20260718T200340_organizations_organization_custom_field_values.d.ts +12 -0
- package/dist/migrations/20260718T200340_organizations_organization_custom_field_values.d.ts.map +1 -0
- package/dist/migrations/20260718T200340_organizations_organization_custom_field_values.js +16 -0
- package/dist/migrations/20260718T200340_organizations_organization_custom_field_values.js.map +1 -0
- package/dist/migrations/20260720T044254_organizations_org_hierarchy.d.ts +23 -0
- package/dist/migrations/20260720T044254_organizations_org_hierarchy.d.ts.map +1 -0
- package/dist/migrations/20260720T044254_organizations_org_hierarchy.js +37 -0
- package/dist/migrations/20260720T044254_organizations_org_hierarchy.js.map +1 -0
- package/dist/migrations/20260912T094646_organizations_sales_channel_organizations.d.ts +27 -0
- package/dist/migrations/20260912T094646_organizations_sales_channel_organizations.d.ts.map +1 -0
- package/dist/migrations/20260912T094646_organizations_sales_channel_organizations.js +44 -0
- package/dist/migrations/20260912T094646_organizations_sales_channel_organizations.js.map +1 -0
- package/dist/migrations/index.d.ts +35 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +45 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/ports/index.d.ts +53 -0
- package/dist/ports/index.d.ts.map +1 -0
- package/dist/ports/index.js +2 -0
- package/dist/ports/index.js.map +1 -0
- package/docs/organization-hierarchy.md +117 -0
- package/docs/organizations.md +312 -0
- package/i18n/en.json +17 -0
- package/i18n/pl.json +17 -0
- package/package.json +107 -0
- 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":"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"}
|
|
@@ -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"}
|