@hartl-services/medusa-base 2.11.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/.medusa/server/src/admin/index.js +39 -39
  2. package/.medusa/server/src/admin/index.mjs +39 -39
  3. package/.medusa/server/src/api/admin/tax-compliance/customer-addresses/[address_id]/tax-identification/route.js +15 -0
  4. package/.medusa/server/src/api/check-customer-address-tax-identification.js +93 -0
  5. package/.medusa/server/src/api/customer-address-identification-response.js +14 -0
  6. package/.medusa/server/src/api/middlewares.js +55 -1
  7. package/.medusa/server/src/api/store/carts/[id]/tax-identification/route.js +179 -0
  8. package/.medusa/server/src/api/store/customers/me/addresses/[address_id]/tax-identification/route.js +12 -0
  9. package/.medusa/server/src/api/store/customers/me/tax-identifications/route.js +14 -0
  10. package/.medusa/server/src/api/store/tax-identification-policy/route.js +21 -0
  11. package/.medusa/server/src/api/tax-identification-message.js +9 -0
  12. package/.medusa/server/src/api/to-response-amount.js +19 -0
  13. package/.medusa/server/src/jobs/tax-compliance-state-sync.js +26 -0
  14. package/.medusa/server/src/modules/tax-compliance/domain/validation-policy.js +48 -0
  15. package/.medusa/server/src/modules/tax-compliance/index.js +15 -0
  16. package/.medusa/server/src/modules/tax-compliance/migrations/Migration20260814120459.js +18 -0
  17. package/.medusa/server/src/modules/tax-compliance/migrations/Migration20260814121724.js +14 -0
  18. package/.medusa/server/src/modules/tax-compliance/migrations/Migration20260814153410.js +14 -0
  19. package/.medusa/server/src/modules/tax-compliance/migrations/Migration20260929091620.js +27 -0
  20. package/.medusa/server/src/modules/tax-compliance/migrations/Migration20261011090147.js +16 -0
  21. package/.medusa/server/src/modules/tax-compliance/models/tax-compliance-state.js +29 -0
  22. package/.medusa/server/src/modules/tax-compliance/models/tax-compliance-validation.js +74 -0
  23. package/.medusa/server/src/modules/tax-compliance/runtime-settings.js +43 -0
  24. package/.medusa/server/src/modules/tax-compliance/service.js +693 -0
  25. package/.medusa/server/src/providers/tax-compliance/index.js +11 -0
  26. package/.medusa/server/src/providers/tax-compliance/service.js +179 -0
  27. package/.medusa/server/src/public/constants.js +4 -2
  28. package/.medusa/server/src/public/index.js +6 -2
  29. package/.medusa/server/src/public/tax-compliance.js +22 -0
  30. package/.medusa/server/src/shared/lib/index.js +2 -1
  31. package/.medusa/server/src/shared/lib/optional-registration.js +34 -0
  32. package/.medusa/server/src/shop-config/build-food-shop-config.js +6 -9
  33. package/.medusa/server/src/subscribers/tax-compliance-plugin-features-updated.js +25 -0
  34. package/.medusa/server/src/tax-compliance/complete-cart-hooks.js +26 -0
  35. package/.medusa/server/src/tax-compliance/integrations/finanzonline/client.js +222 -0
  36. package/.medusa/server/src/tax-compliance/integrations/finanzonline/validator.js +50 -0
  37. package/.medusa/server/src/tax-compliance/integrations/registry.js +26 -0
  38. package/.medusa/server/src/tax-compliance/integrations/validator.js +19 -0
  39. package/.medusa/server/src/tax-compliance/lib/order-tax-context.js +100 -0
  40. package/.medusa/server/src/tax-compliance/lib/tax-compliance-state.js +59 -0
  41. package/.medusa/server/src/tax-compliance/lib/tax-runtime-settings.js +79 -0
  42. package/.medusa/server/src/tax-compliance/plugin-features.js +73 -0
  43. package/.medusa/server/src/tax-compliance/resolve-services.js +7 -0
  44. package/.medusa/server/src/tax-compliance/types/tax-compliance.js +6 -0
  45. package/.medusa/server/src/workflows/documents/issue-invoice-after-shipment.js +25 -30
  46. package/.medusa/server/src/workflows/documents/issue-packing-list.js +3 -14
  47. package/.medusa/server/src/workflows/hooks/cart-tax-context.js +78 -0
  48. package/.medusa/server/src/workflows/hooks/order-tax-context.js +7 -0
  49. package/.medusa/server/src/workflows/hooks/shipping-tax-apportionment.js +145 -0
  50. package/.medusa/server/src/workflows/tax-compliance/apportion-order-shipping-tax.js +72 -0
  51. package/.medusa/server/src/workflows/tax-compliance/domain/requires-frozen-tax-evidence.js +27 -0
  52. package/.medusa/server/src/workflows/tax-compliance/freeze-order-evidence.js +125 -0
  53. package/.medusa/server/src/workflows/tax-compliance/submit-customer-address-tax-identification.js +18 -0
  54. package/.medusa/server/src/workflows/tax-compliance/submit-tax-identification.js +18 -0
  55. package/README.md +344 -22
  56. package/dist/public/constants.d.ts +2 -0
  57. package/dist/public/constants.js +3 -1
  58. package/dist/public/index.d.ts +2 -1
  59. package/dist/public/index.js +5 -1
  60. package/dist/public/tax-compliance.d.ts +30 -0
  61. package/dist/public/tax-compliance.js +21 -0
  62. package/dist/shared/lib/index.d.ts +1 -0
  63. package/dist/shared/lib/index.js +1 -0
  64. package/dist/shared/lib/optional-registration.d.ts +18 -0
  65. package/dist/shared/lib/optional-registration.js +33 -0
  66. package/dist/shop-config/build-food-shop-config.d.ts +2 -2
  67. package/dist/shop-config/build-food-shop-config.js +5 -8
  68. package/package.json +3 -2
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toFinanzOnlineCredentials = exports.FINANZONLINE_SETTING_KEYS = exports.toMerchantProfile = exports.normalizeMerchantProfile = void 0;
4
+ const lib_1 = require("../../shared/lib");
5
+ const text = (value) => {
6
+ if (typeof value !== "string") {
7
+ return undefined;
8
+ }
9
+ const trimmed = value.trim();
10
+ return trimmed ? trimmed : undefined;
11
+ };
12
+ /** Lower-case country code and upper-case UID without whitespace. */
13
+ const normalizeMerchantProfile = (merchant) => ({
14
+ countryCode: merchant.countryCode.trim().replace(/\s+/g, " ").toLowerCase(),
15
+ vatNumber: (0, lib_1.normalizeVatNumber)(merchant.vatNumber),
16
+ });
17
+ exports.normalizeMerchantProfile = normalizeMerchantProfile;
18
+ /** Normalized; `null` while country or UID is unset. */
19
+ const toMerchantProfile = (values) => {
20
+ const countryCode = text(values.country_code);
21
+ const vatNumber = text(values.vat_number);
22
+ return countryCode && vatNumber
23
+ ? (0, exports.normalizeMerchantProfile)({ countryCode, vatNumber })
24
+ : null;
25
+ };
26
+ exports.toMerchantProfile = toMerchantProfile;
27
+ exports.FINANZONLINE_SETTING_KEYS = [
28
+ "finanzonline_participant_id",
29
+ "finanzonline_user_id",
30
+ "finanzonline_password",
31
+ ];
32
+ /** All three values or none: a partial set counts as not configured. */
33
+ const toFinanzOnlineCredentials = (values) => {
34
+ const participantId = text(values.finanzonline_participant_id);
35
+ const userId = text(values.finanzonline_user_id);
36
+ const password = text(values.finanzonline_password);
37
+ const missing = exports.FINANZONLINE_SETTING_KEYS.filter((key) => !text(values[key]));
38
+ return participantId && userId && password
39
+ ? { credentials: { participantId, userId, password }, missing: [] }
40
+ : { credentials: undefined, missing };
41
+ };
42
+ exports.toFinanzOnlineCredentials = toFinanzOnlineCredentials;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3RheC1jb21wbGlhbmNlL3J1bnRpbWUtc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQXFEO0FBaUJyRCxNQUFNLElBQUksR0FBRyxDQUFDLEtBQWMsRUFBc0IsRUFBRTtJQUNsRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUIsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO0FBQ3RDLENBQUMsQ0FBQTtBQUVELHFFQUFxRTtBQUM5RCxNQUFNLHdCQUF3QixHQUFHLENBQ3RDLFFBQXNDLEVBQ1IsRUFBRSxDQUFDLENBQUM7SUFDbEMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUU7SUFDM0UsU0FBUyxFQUFFLElBQUEsd0JBQWtCLEVBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztDQUNsRCxDQUFDLENBQUE7QUFMVyxRQUFBLHdCQUF3Qiw0QkFLbkM7QUFFRix3REFBd0Q7QUFDakQsTUFBTSxpQkFBaUIsR0FBRyxDQUMvQixNQUF1QyxFQUNGLEVBQUU7SUFDdkMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUM3QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3pDLE9BQU8sV0FBVyxJQUFJLFNBQVM7UUFDN0IsQ0FBQyxDQUFDLElBQUEsZ0NBQXdCLEVBQUMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDdEQsQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUNWLENBQUMsQ0FBQTtBQVJZLFFBQUEsaUJBQWlCLHFCQVE3QjtBQUVZLFFBQUEseUJBQXlCLEdBQUc7SUFDdkMsNkJBQTZCO0lBQzdCLHNCQUFzQjtJQUN0Qix1QkFBdUI7Q0FDZixDQUFBO0FBT1Ysd0VBQXdFO0FBQ2pFLE1BQU0seUJBQXlCLEdBQUcsQ0FDdkMsTUFBd0MsRUFDUixFQUFFO0lBQ2xDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtJQUM5RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDaEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0lBQ25ELE1BQU0sT0FBTyxHQUFHLGlDQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUU3RSxPQUFPLGFBQWEsSUFBSSxNQUFNLElBQUksUUFBUTtRQUN4QyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7UUFDbkUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUN6QyxDQUFDLENBQUE7QUFYWSxRQUFBLHlCQUF5Qiw2QkFXckMifQ==