@hartl-services/medusa-base 2.11.0 → 4.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 (149) hide show
  1. package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginActionsSection.d.ts +1 -1
  2. package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginFeaturesCard.d.ts +1 -1
  3. package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginHubCard.d.ts +1 -1
  4. package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginSettingsForm.d.ts +1 -1
  5. package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginStatusChips.d.ts +1 -1
  6. package/.medusa/server/src/admin/admin-components/features/plugin-features/components/ShopMasterDataBanner.d.ts +1 -1
  7. package/.medusa/server/src/admin/admin-components/features/plugin-features/hooks/usePluginFeatureEnabled.d.ts +1 -1
  8. package/.medusa/server/src/admin/admin-components/features/plugin-features/hooks/usePluginSettingsForm.d.ts +1 -1
  9. package/.medusa/server/src/admin/admin-components/features/plugin-features/hooks/usePluginSwitch.d.ts +1 -1
  10. package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/action-runs.d.ts +1 -1
  11. package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/plugin-features-admin-client.d.ts +1 -1
  12. package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/plugin-features-admin-client.js +1 -1
  13. package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/plugin-view.d.ts +1 -1
  14. package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/settings-draft.d.ts +1 -1
  15. package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/settings-layout.d.ts +1 -1
  16. package/.medusa/server/src/admin/index.js +4 -4
  17. package/.medusa/server/src/admin/index.mjs +4 -4
  18. package/.medusa/server/src/api/admin/draft-orders/[id]/order-confirmation/route.js +2 -2
  19. package/.medusa/server/src/api/admin/email/attachments/[id]/mail-kinds/route.js +2 -2
  20. package/.medusa/server/src/api/admin/email/attachments/[id]/route.js +2 -2
  21. package/.medusa/server/src/api/admin/email/attachments/[id]/versions/route.js +2 -2
  22. package/.medusa/server/src/api/admin/email/attachments/route.js +2 -2
  23. package/.medusa/server/src/api/admin/email/messages/[id]/resends/route.js +2 -2
  24. package/.medusa/server/src/api/admin/email/messages/[id]/route.js +2 -2
  25. package/.medusa/server/src/api/admin/email/messages/route.js +2 -2
  26. package/.medusa/server/src/api/admin/email/templates/[kind]/preview/route.js +2 -2
  27. package/.medusa/server/src/api/admin/email/templates/[kind]/route.js +2 -2
  28. package/.medusa/server/src/api/admin/email/templates/[kind]/send-test/route.js +2 -2
  29. package/.medusa/server/src/api/admin/email/templates/[kind]/test-sources/route.js +2 -2
  30. package/.medusa/server/src/api/admin/email/templates/route.js +2 -2
  31. package/.medusa/server/src/api/admin/plugin-features/[plugin_key]/actions/[action_key]/route.js +2 -2
  32. package/.medusa/server/src/api/admin/plugin-features/[plugin_key]/actions/[action_key]/runs/route.js +2 -2
  33. package/.medusa/server/src/api/admin/plugin-features/[plugin_key]/route.js +2 -2
  34. package/.medusa/server/src/api/admin/plugin-features/[plugin_key]/settings/route.js +2 -2
  35. package/.medusa/server/src/api/admin/plugin-features/route.js +2 -2
  36. package/.medusa/server/src/api/admin/tax-compliance/customer-addresses/[address_id]/tax-identification/route.js +15 -0
  37. package/.medusa/server/src/api/admin-first-login-password-policy.js +2 -2
  38. package/.medusa/server/src/api/answer-code-provider-route-not-found.js +2 -2
  39. package/.medusa/server/src/api/check-customer-address-tax-identification.js +93 -0
  40. package/.medusa/server/src/api/code-account-password-routes.js +2 -2
  41. package/.medusa/server/src/api/customer-address-identification-response.js +14 -0
  42. package/.medusa/server/src/api/middlewares.js +61 -7
  43. package/.medusa/server/src/api/password-policy.js +2 -2
  44. package/.medusa/server/src/api/plugin-actions.js +2 -2
  45. package/.medusa/server/src/api/plugin-features-http.js +2 -2
  46. package/.medusa/server/src/api/require-login-code-customer-email.js +2 -2
  47. package/.medusa/server/src/api/store/carts/[id]/completion-check/route.js +2 -2
  48. package/.medusa/server/src/api/store/carts/[id]/tax-identification/route.js +179 -0
  49. package/.medusa/server/src/api/store/customer-auth/password-policy/route.js +2 -2
  50. package/.medusa/server/src/api/store/customers/me/addresses/[address_id]/tax-identification/route.js +12 -0
  51. package/.medusa/server/src/api/store/customers/me/tax-identifications/route.js +14 -0
  52. package/.medusa/server/src/api/store/plugin-features/[plugin_key]/route.js +2 -2
  53. package/.medusa/server/src/api/store/plugin-features/route.js +2 -2
  54. package/.medusa/server/src/api/store/tax-identification-policy/route.js +21 -0
  55. package/.medusa/server/src/api/tax-identification-message.js +9 -0
  56. package/.medusa/server/src/api/to-response-amount.js +19 -0
  57. package/.medusa/server/src/customer-auth/application/prepare-code-account-password-reset.js +2 -2
  58. package/.medusa/server/src/customer-auth/application/request-login-code.js +2 -2
  59. package/.medusa/server/src/customer-auth/customer-password-policy.js +2 -2
  60. package/.medusa/server/src/customer-auth/domain/auth-methods.js +2 -2
  61. package/.medusa/server/src/customer-auth/domain/login-code.js +2 -2
  62. package/.medusa/server/src/customer-auth/login-code-state.js +2 -2
  63. package/.medusa/server/src/customer-auth/plugin-features.js +2 -2
  64. package/.medusa/server/src/documents/paths/documents.js +2 -2
  65. package/.medusa/server/src/documents/schemas/documents.js +2 -2
  66. package/.medusa/server/src/email/application/deliver-login-code.js +2 -2
  67. package/.medusa/server/src/email/domain/business-keys.js +2 -2
  68. package/.medusa/server/src/email/templates/blocks/render-document.js +2 -2
  69. package/.medusa/server/src/email/templates/render.js +2 -2
  70. package/.medusa/server/src/email/templates/validate.js +2 -2
  71. package/.medusa/server/src/email/types/template-data.js +2 -2
  72. package/.medusa/server/src/jobs/tax-compliance-state-sync.js +26 -0
  73. package/.medusa/server/src/modules/documents/service.js +2 -2
  74. package/.medusa/server/src/modules/email/domain/attachment.js +2 -2
  75. package/.medusa/server/src/modules/email/service.js +3 -3
  76. package/.medusa/server/src/modules/tax-compliance/domain/validation-policy.js +48 -0
  77. package/.medusa/server/src/modules/tax-compliance/index.js +15 -0
  78. package/.medusa/server/src/modules/tax-compliance/migrations/Migration20260814120459.js +18 -0
  79. package/.medusa/server/src/modules/tax-compliance/migrations/Migration20260814121724.js +14 -0
  80. package/.medusa/server/src/modules/tax-compliance/migrations/Migration20260814153410.js +14 -0
  81. package/.medusa/server/src/modules/tax-compliance/migrations/Migration20260929091620.js +27 -0
  82. package/.medusa/server/src/modules/tax-compliance/migrations/Migration20261011090147.js +16 -0
  83. package/.medusa/server/src/modules/tax-compliance/models/tax-compliance-state.js +29 -0
  84. package/.medusa/server/src/modules/tax-compliance/models/tax-compliance-validation.js +74 -0
  85. package/.medusa/server/src/modules/tax-compliance/runtime-settings.js +43 -0
  86. package/.medusa/server/src/modules/tax-compliance/service.js +693 -0
  87. package/.medusa/server/src/providers/email-otp/service.js +2 -2
  88. package/.medusa/server/src/providers/tax-compliance/index.js +11 -0
  89. package/.medusa/server/src/providers/tax-compliance/service.js +179 -0
  90. package/.medusa/server/src/public/constants.js +4 -2
  91. package/.medusa/server/src/public/index.js +6 -2
  92. package/.medusa/server/src/public/shop-config.js +6 -6
  93. package/.medusa/server/src/public/tax-compliance.js +22 -0
  94. package/.medusa/server/src/shared/lib/index.js +2 -1
  95. package/.medusa/server/src/shared/lib/optional-registration.js +34 -0
  96. package/.medusa/server/src/shop-config/{build-food-shop-config.js → build-shop-config.js} +15 -18
  97. package/.medusa/server/src/shop-config/options.js +4 -4
  98. package/.medusa/server/src/subscribers/affiliate-application-submitted.js +2 -2
  99. package/.medusa/server/src/subscribers/affiliate-consignment-reminder-due.js +2 -2
  100. package/.medusa/server/src/subscribers/documents-order-cancellation-ready.js +2 -2
  101. package/.medusa/server/src/subscribers/documents-refund-ready.js +2 -2
  102. package/.medusa/server/src/subscribers/documents-shipment-invoice-assignment-decided.js +2 -2
  103. package/.medusa/server/src/subscribers/packing-list-allocation-revised.js +2 -2
  104. package/.medusa/server/src/subscribers/tax-compliance-plugin-features-updated.js +25 -0
  105. package/.medusa/server/src/tax-compliance/complete-cart-hooks.js +26 -0
  106. package/.medusa/server/src/tax-compliance/integrations/finanzonline/client.js +222 -0
  107. package/.medusa/server/src/tax-compliance/integrations/finanzonline/validator.js +50 -0
  108. package/.medusa/server/src/tax-compliance/integrations/registry.js +26 -0
  109. package/.medusa/server/src/tax-compliance/integrations/validator.js +19 -0
  110. package/.medusa/server/src/tax-compliance/lib/order-tax-context.js +100 -0
  111. package/.medusa/server/src/tax-compliance/lib/tax-compliance-state.js +59 -0
  112. package/.medusa/server/src/tax-compliance/lib/tax-runtime-settings.js +79 -0
  113. package/.medusa/server/src/tax-compliance/plugin-features.js +73 -0
  114. package/.medusa/server/src/tax-compliance/resolve-services.js +7 -0
  115. package/.medusa/server/src/tax-compliance/types/tax-compliance.js +6 -0
  116. package/.medusa/server/src/workflows/documents/issue-invoice-after-shipment.js +25 -30
  117. package/.medusa/server/src/workflows/documents/issue-packing-list.js +3 -14
  118. package/.medusa/server/src/workflows/hooks/cart-tax-context.js +78 -0
  119. package/.medusa/server/src/workflows/hooks/order-tax-context.js +7 -0
  120. package/.medusa/server/src/workflows/hooks/shipping-tax-apportionment.js +145 -0
  121. package/.medusa/server/src/workflows/tax-compliance/apportion-order-shipping-tax.js +72 -0
  122. package/.medusa/server/src/workflows/tax-compliance/domain/requires-frozen-tax-evidence.js +27 -0
  123. package/.medusa/server/src/workflows/tax-compliance/freeze-order-evidence.js +125 -0
  124. package/.medusa/server/src/workflows/tax-compliance/submit-customer-address-tax-identification.js +18 -0
  125. package/.medusa/server/src/workflows/tax-compliance/submit-tax-identification.js +18 -0
  126. package/README.md +393 -61
  127. package/dist/customer-auth/domain/auth-methods.js +1 -1
  128. package/dist/customer-auth/plugin-features.js +1 -1
  129. package/dist/documents/types/admin-api.d.ts +1 -1
  130. package/dist/documents/types/document-summary.d.ts +1 -1
  131. package/dist/documents/types/store-api.d.ts +1 -1
  132. package/dist/email/types/template-data.js +1 -1
  133. package/dist/public/constants.d.ts +2 -0
  134. package/dist/public/constants.js +3 -1
  135. package/dist/public/index.d.ts +2 -1
  136. package/dist/public/index.js +5 -1
  137. package/dist/public/shop-config.d.ts +4 -4
  138. package/dist/public/shop-config.js +5 -5
  139. package/dist/public/tax-compliance.d.ts +30 -0
  140. package/dist/public/tax-compliance.js +21 -0
  141. package/dist/shared/lib/index.d.ts +1 -0
  142. package/dist/shared/lib/index.js +1 -0
  143. package/dist/shared/lib/optional-registration.d.ts +18 -0
  144. package/dist/shared/lib/optional-registration.js +33 -0
  145. package/dist/shop-config/{build-food-shop-config.d.ts → build-shop-config.d.ts} +12 -12
  146. package/dist/shop-config/{build-food-shop-config.js → build-shop-config.js} +14 -17
  147. package/dist/shop-config/options.d.ts +3 -3
  148. package/dist/shop-config/options.js +3 -3
  149. package/package.json +7 -6
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ const TaxComplianceValidation = utils_1.model
5
+ .define({
6
+ name: "tax_compliance_validation",
7
+ tableName: "tax_compliance_validation",
8
+ }, {
9
+ id: utils_1.model.id({ prefix: "tcv" }).primaryKey(),
10
+ // Exactly one subject per record (CHECK in the migration): a cart, or a
11
+ // saved customer address together with its customer.
12
+ cart_id: utils_1.model.text().nullable(),
13
+ customer_address_id: utils_1.model.text().nullable(),
14
+ customer_id: utils_1.model.text().nullable(),
15
+ order_id: utils_1.model.text().nullable(),
16
+ status: utils_1.model.text(),
17
+ company_name: utils_1.model.text(),
18
+ customer_vat_number: utils_1.model.text(),
19
+ billing_address: utils_1.model.json(),
20
+ delivery_country_code: utils_1.model.text(),
21
+ merchant_country_code: utils_1.model.text(),
22
+ merchant_vat_number: utils_1.model.text(),
23
+ provider: utils_1.model.text(),
24
+ provider_facts: utils_1.model.json().nullable(),
25
+ validation_reason: utils_1.model.text(),
26
+ cart_fingerprint: utils_1.model.text(),
27
+ merchant_profile_fingerprint: utils_1.model.text(),
28
+ validated_at: utils_1.model.dateTime(),
29
+ validation_date: utils_1.model.text(),
30
+ is_current: utils_1.model.boolean().default(true),
31
+ cache_used: utils_1.model.boolean().default(false),
32
+ reuse_reason: utils_1.model.text().nullable(),
33
+ })
34
+ .indexes([
35
+ {
36
+ name: "IDX_tax_compliance_validation_cart_id",
37
+ on: ["cart_id"],
38
+ where: "deleted_at IS NULL",
39
+ },
40
+ {
41
+ name: "IDX_tax_compliance_validation_order_id",
42
+ on: ["order_id"],
43
+ where: "deleted_at IS NULL",
44
+ },
45
+ {
46
+ name: "IDX_tax_compliance_validation_current_uid_day",
47
+ on: ["customer_vat_number", "validation_date"],
48
+ where: "deleted_at IS NULL AND is_current = true",
49
+ },
50
+ {
51
+ name: "IDX_tax_compliance_validation_merchant_uid_day",
52
+ on: ["merchant_vat_number", "customer_vat_number", "validation_date"],
53
+ where: "deleted_at IS NULL",
54
+ },
55
+ {
56
+ name: "IDX_tax_compliance_validation_current_cart",
57
+ on: ["cart_id"],
58
+ unique: true,
59
+ where: "deleted_at IS NULL AND is_current = true",
60
+ },
61
+ {
62
+ name: "IDX_tax_compliance_validation_customer_id",
63
+ on: ["customer_id"],
64
+ where: "deleted_at IS NULL",
65
+ },
66
+ {
67
+ name: "IDX_tax_compliance_validation_current_customer_address",
68
+ on: ["customer_address_id"],
69
+ unique: true,
70
+ where: "deleted_at IS NULL AND is_current = true",
71
+ },
72
+ ]);
73
+ exports.default = TaxComplianceValidation;
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LWNvbXBsaWFuY2UtdmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3RheC1jb21wbGlhbmNlL21vZGVscy90YXgtY29tcGxpYW5jZS12YWxpZGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscURBQWlEO0FBRWpELE1BQU0sdUJBQXVCLEdBQUcsYUFBSztLQUNsQyxNQUFNLENBQ0w7SUFDRSxJQUFJLEVBQUUsMkJBQTJCO0lBQ2pDLFNBQVMsRUFBRSwyQkFBMkI7Q0FDdkMsRUFDRDtJQUNFLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFO0lBQzVDLHdFQUF3RTtJQUN4RSxxREFBcUQ7SUFDckQsT0FBTyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEMsbUJBQW1CLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QyxXQUFXLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNwQyxRQUFRLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNqQyxNQUFNLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRTtJQUNwQixZQUFZLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRTtJQUMxQixtQkFBbUIsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ2pDLGVBQWUsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQzdCLHFCQUFxQixFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDbkMscUJBQXFCLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRTtJQUNuQyxtQkFBbUIsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ2pDLFFBQVEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3RCLGNBQWMsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3ZDLGlCQUFpQixFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDL0IsZ0JBQWdCLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRTtJQUM5Qiw0QkFBNEIsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQzFDLFlBQVksRUFBRSxhQUFLLENBQUMsUUFBUSxFQUFFO0lBQzlCLGVBQWUsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQzdCLFVBQVUsRUFBRSxhQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN6QyxVQUFVLEVBQUUsYUFBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDMUMsWUFBWSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDdEMsQ0FDRjtLQUNBLE9BQU8sQ0FBQztJQUNQO1FBQ0UsSUFBSSxFQUFFLHVDQUF1QztRQUM3QyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDZixLQUFLLEVBQUUsb0JBQW9CO0tBQzVCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsd0NBQXdDO1FBQzlDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQztRQUNoQixLQUFLLEVBQUUsb0JBQW9CO0tBQzVCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsK0NBQStDO1FBQ3JELEVBQUUsRUFBRSxDQUFDLHFCQUFxQixFQUFFLGlCQUFpQixDQUFDO1FBQzlDLEtBQUssRUFBRSwwQ0FBMEM7S0FDbEQ7SUFDRDtRQUNFLElBQUksRUFBRSxnREFBZ0Q7UUFDdEQsRUFBRSxFQUFFLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLENBQUM7UUFDckUsS0FBSyxFQUFFLG9CQUFvQjtLQUM1QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLDRDQUE0QztRQUNsRCxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDZixNQUFNLEVBQUUsSUFBSTtRQUNaLEtBQUssRUFBRSwwQ0FBMEM7S0FDbEQ7SUFDRDtRQUNFLElBQUksRUFBRSwyQ0FBMkM7UUFDakQsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQ25CLEtBQUssRUFBRSxvQkFBb0I7S0FDNUI7SUFDRDtRQUNFLElBQUksRUFBRSx3REFBd0Q7UUFDOUQsRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUM7UUFDM0IsTUFBTSxFQUFFLElBQUk7UUFDWixLQUFLLEVBQUUsMENBQTBDO0tBQ2xEO0NBQ0YsQ0FBQyxDQUFBO0FBRUosa0JBQWUsdUJBQXVCLENBQUEifQ==
@@ -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==