@stamhoofd/structures 2.120.6 → 2.122.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/dist/AppRoute.d.ts +10 -0
- package/dist/AppRoute.d.ts.map +1 -0
- package/dist/AppRoute.js +11 -0
- package/dist/AppRoute.js.map +1 -0
- package/dist/AppType.d.ts +28 -6
- package/dist/AppType.d.ts.map +1 -1
- package/dist/AppType.js +84 -20
- package/dist/AppType.js.map +1 -1
- package/dist/AuditLog.d.ts +6 -1
- package/dist/AuditLog.d.ts.map +1 -1
- package/dist/AuditLog.js +43 -0
- package/dist/AuditLog.js.map +1 -1
- package/dist/AuditLogRenderer.d.ts.map +1 -1
- package/dist/AuditLogRenderer.js.map +1 -1
- package/dist/AuditLogReplacement.d.ts +45 -2
- package/dist/AuditLogReplacement.d.ts.map +1 -1
- package/dist/AuditLogReplacement.js +121 -10
- package/dist/AuditLogReplacement.js.map +1 -1
- package/dist/BalanceItem.d.ts +31 -8
- package/dist/BalanceItem.d.ts.map +1 -1
- package/dist/BalanceItem.js +133 -24
- package/dist/BalanceItem.js.map +1 -1
- package/dist/BundleDiscount.d.ts.map +1 -1
- package/dist/BundleDiscount.js.map +1 -1
- package/dist/Company.d.ts +7 -0
- package/dist/Company.d.ts.map +1 -1
- package/dist/Company.js +39 -1
- package/dist/Company.js.map +1 -1
- package/dist/Document.d.ts +2 -0
- package/dist/Document.d.ts.map +1 -1
- package/dist/Document.js +12 -4
- package/dist/Document.js.map +1 -1
- package/dist/Event.d.ts +1 -0
- package/dist/Event.d.ts.map +1 -1
- package/dist/Event.js +3 -0
- package/dist/Event.js.map +1 -1
- package/dist/EventNotification.d.ts.map +1 -1
- package/dist/EventNotification.js +4 -4
- package/dist/EventNotification.js.map +1 -1
- package/dist/EventNotificationStatus.d.ts +1 -0
- package/dist/EventNotificationStatus.d.ts.map +1 -1
- package/dist/EventNotificationStatus.js +14 -0
- package/dist/EventNotificationStatus.js.map +1 -1
- package/dist/Group.d.ts +13 -1
- package/dist/Group.d.ts.map +1 -1
- package/dist/Group.js +166 -61
- package/dist/Group.js.map +1 -1
- package/dist/GroupCategory.d.ts +15 -1
- package/dist/GroupCategory.d.ts.map +1 -1
- package/dist/GroupCategory.js +16 -3
- package/dist/GroupCategory.js.map +1 -1
- package/dist/GroupPriceDiscount.d.ts.map +1 -1
- package/dist/GroupSettings.d.ts +23 -0
- package/dist/GroupSettings.d.ts.map +1 -1
- package/dist/GroupSettings.js +132 -0
- package/dist/GroupSettings.js.map +1 -1
- package/dist/LoadedPermissions.d.ts.map +1 -1
- package/dist/LoadedPermissions.js.map +1 -1
- package/dist/MemberAdmin.d.ts.map +1 -1
- package/dist/Organization.d.ts +11 -12
- package/dist/Organization.d.ts.map +1 -1
- package/dist/Organization.js +21 -20
- package/dist/Organization.js.map +1 -1
- package/dist/OrganizationInvoiceSettings.d.ts +36 -0
- package/dist/OrganizationInvoiceSettings.d.ts.map +1 -0
- package/dist/OrganizationInvoiceSettings.js +61 -0
- package/dist/OrganizationInvoiceSettings.js.map +1 -0
- package/dist/OrganizationMetaData.d.ts +31 -4
- package/dist/OrganizationMetaData.d.ts.map +1 -1
- package/dist/OrganizationMetaData.js +71 -11
- package/dist/OrganizationMetaData.js.map +1 -1
- package/dist/OrganizationPrivateMetaData.d.ts +11 -0
- package/dist/OrganizationPrivateMetaData.d.ts.map +1 -1
- package/dist/OrganizationPrivateMetaData.js +34 -2
- package/dist/OrganizationPrivateMetaData.js.map +1 -1
- package/dist/OrganizationType.js +2 -2
- package/dist/OrganizationType.js.map +1 -1
- package/dist/PaymentConfiguration.d.ts +2 -0
- package/dist/PaymentConfiguration.d.ts.map +1 -1
- package/dist/PaymentConfiguration.js +13 -1
- package/dist/PaymentConfiguration.js.map +1 -1
- package/dist/PaymentMandate.d.ts +5 -0
- package/dist/PaymentMandate.d.ts.map +1 -1
- package/dist/PaymentMandate.js +228 -0
- package/dist/PaymentMandate.js.map +1 -1
- package/dist/PaymentMethod.d.ts +7 -1
- package/dist/PaymentMethod.d.ts.map +1 -1
- package/dist/PaymentMethod.js +16 -3
- package/dist/PaymentMethod.js.map +1 -1
- package/dist/PaymentProvider.d.ts +1 -0
- package/dist/PaymentProvider.d.ts.map +1 -1
- package/dist/PaymentProvider.js +3 -0
- package/dist/PaymentProvider.js.map +1 -1
- package/dist/PermissionRole.d.ts.map +1 -1
- package/dist/PermissionRole.js.map +1 -1
- package/dist/Platform.d.ts +8 -7
- package/dist/Platform.d.ts.map +1 -1
- package/dist/Platform.js +26 -6
- package/dist/Platform.js.map +1 -1
- package/dist/PriceBreakdown.d.ts +1 -1
- package/dist/PriceBreakdown.d.ts.map +1 -1
- package/dist/ReceivableBalance.d.ts +2 -0
- package/dist/ReceivableBalance.d.ts.map +1 -1
- package/dist/ReceivableBalance.js +6 -0
- package/dist/ReceivableBalance.js.map +1 -1
- package/dist/ReduceablePrice.d.ts.map +1 -1
- package/dist/RegistrationPeriod.d.ts +0 -3
- package/dist/RegistrationPeriod.d.ts.map +1 -1
- package/dist/RegistrationPeriod.js +3 -12
- package/dist/RegistrationPeriod.js.map +1 -1
- package/dist/RegistrationPeriodBase.d.ts +26 -0
- package/dist/RegistrationPeriodBase.d.ts.map +1 -1
- package/dist/RegistrationPeriodBase.js +47 -5
- package/dist/RegistrationPeriodBase.js.map +1 -1
- package/dist/ResourcePermissions.d.ts.map +1 -1
- package/dist/ResourcePermissions.js.map +1 -1
- package/dist/SeatingPlan.d.ts.map +1 -1
- package/dist/SeatingPlan.js +1 -1
- package/dist/SeatingPlan.js.map +1 -1
- package/dist/SetupSteps.d.ts.map +1 -1
- package/dist/SetupSteps.js.map +1 -1
- package/dist/StockReservation.d.ts.map +1 -1
- package/dist/StockReservation.js.map +1 -1
- package/dist/TranslatedString.d.ts +1 -0
- package/dist/TranslatedString.d.ts.map +1 -1
- package/dist/TranslatedString.js.map +1 -1
- package/dist/UserPermissions.d.ts.map +1 -1
- package/dist/UserPermissions.js.map +1 -1
- package/dist/Version.d.ts +1 -2
- package/dist/Version.d.ts.map +1 -1
- package/dist/Version.js +4 -4
- package/dist/Version.js.map +1 -1
- package/dist/addresses/Address.d.ts.map +1 -1
- package/dist/addresses/Address.js +16 -5
- package/dist/addresses/Address.js.map +1 -1
- package/dist/billing/Invoice.d.ts +4 -2
- package/dist/billing/Invoice.d.ts.map +1 -1
- package/dist/billing/Invoice.js +81 -8
- package/dist/billing/Invoice.js.map +1 -1
- package/dist/billing/InvoicedBalanceItem.d.ts +8 -1
- package/dist/billing/InvoicedBalanceItem.d.ts.map +1 -1
- package/dist/billing/InvoicedBalanceItem.js +38 -5
- package/dist/billing/InvoicedBalanceItem.js.map +1 -1
- package/dist/billing/OrganizationPaymentMandate.d.ts +8 -0
- package/dist/billing/OrganizationPaymentMandate.d.ts.map +1 -1
- package/dist/billing/OrganizationPaymentMandate.js +8 -0
- package/dist/billing/OrganizationPaymentMandate.js.map +1 -1
- package/dist/billing/STBillingStatus.d.ts +4 -0
- package/dist/billing/STBillingStatus.d.ts.map +1 -1
- package/dist/billing/STBillingStatus.js +4 -0
- package/dist/billing/STBillingStatus.js.map +1 -1
- package/dist/billing/STInvoiceItem.d.ts +6 -0
- package/dist/billing/STInvoiceItem.d.ts.map +1 -1
- package/dist/billing/STInvoiceItem.js +7 -3
- package/dist/billing/STInvoiceItem.js.map +1 -1
- package/dist/billing/STInvoiceMeta.d.ts +15 -0
- package/dist/billing/STInvoiceMeta.d.ts.map +1 -1
- package/dist/billing/STInvoiceMeta.js +15 -0
- package/dist/billing/STInvoiceMeta.js.map +1 -1
- package/dist/billing/STPackage.d.ts +27 -4
- package/dist/billing/STPackage.d.ts.map +1 -1
- package/dist/billing/STPackage.js +172 -62
- package/dist/billing/STPackage.js.map +1 -1
- package/dist/billing/STPackageBundle.d.ts +7 -7
- package/dist/billing/STPackageBundle.d.ts.map +1 -1
- package/dist/billing/STPackageBundle.js +42 -69
- package/dist/billing/STPackageBundle.js.map +1 -1
- package/dist/checkout/CheckoutResponse.d.ts +2 -2
- package/dist/checkout/CheckoutResponse.d.ts.map +1 -1
- package/dist/checkout/CheckoutResponse.js +2 -2
- package/dist/checkout/CheckoutResponse.js.map +1 -1
- package/dist/checkout/Checkoutable.d.ts +6 -2
- package/dist/checkout/Checkoutable.d.ts.map +1 -1
- package/dist/checkout/Checkoutable.js +9 -2
- package/dist/checkout/Checkoutable.js.map +1 -1
- package/dist/checkout/CreateMandateSettings.d.ts +8 -0
- package/dist/checkout/CreateMandateSettings.d.ts.map +1 -0
- package/dist/checkout/CreateMandateSettings.js +12 -0
- package/dist/checkout/CreateMandateSettings.js.map +1 -0
- package/dist/checkout/OrganizationCheckout.d.ts +28 -0
- package/dist/checkout/OrganizationCheckout.d.ts.map +1 -0
- package/dist/checkout/OrganizationCheckout.js +100 -0
- package/dist/checkout/OrganizationCheckout.js.map +1 -0
- package/dist/checkout/OrganizationMandatesRequest.d.ts +8 -0
- package/dist/checkout/OrganizationMandatesRequest.d.ts.map +1 -0
- package/dist/checkout/OrganizationMandatesRequest.js +12 -0
- package/dist/checkout/OrganizationMandatesRequest.js.map +1 -0
- package/dist/checkout/index.d.ts +1 -1
- package/dist/checkout/index.d.ts.map +1 -1
- package/dist/checkout/index.js +1 -1
- package/dist/checkout/index.js.map +1 -1
- package/dist/circular-dependencies/AuditLogReplacementDependencies.js +33 -26
- package/dist/circular-dependencies/AuditLogReplacementDependencies.js.map +1 -1
- package/dist/circular-dependencies/ExampleReplacementsDependencies.js +7 -0
- package/dist/circular-dependencies/ExampleReplacementsDependencies.js.map +1 -1
- package/dist/email/EditorSmartVariable.d.ts.map +1 -1
- package/dist/email/EditorSmartVariable.js +21 -1
- package/dist/email/EditorSmartVariable.js.map +1 -1
- package/dist/email/EmailTemplate.d.ts +29 -2
- package/dist/email/EmailTemplate.d.ts.map +1 -1
- package/dist/email/EmailTemplate.js +101 -6
- package/dist/email/EmailTemplate.js.map +1 -1
- package/dist/email/exampleReplacements.d.ts +5 -0
- package/dist/email/exampleReplacements.d.ts.map +1 -1
- package/dist/email/exampleReplacements.js +24 -4
- package/dist/email/exampleReplacements.js.map +1 -1
- package/dist/endpoints/CreateOrganization.d.ts +4 -0
- package/dist/endpoints/CreateOrganization.d.ts.map +1 -1
- package/dist/endpoints/CreateOrganization.js +7 -0
- package/dist/endpoints/CreateOrganization.js.map +1 -1
- package/dist/endpoints/EmailRequest.d.ts.map +1 -1
- package/dist/endpoints/EmailRequest.js.map +1 -1
- package/dist/endpoints/GetMollieDashboardResponse.d.ts +5 -0
- package/dist/endpoints/GetMollieDashboardResponse.d.ts.map +1 -0
- package/dist/endpoints/GetMollieDashboardResponse.js +9 -0
- package/dist/endpoints/GetMollieDashboardResponse.js.map +1 -0
- package/dist/endpoints/PayableBalanceCollection.d.ts +6 -4
- package/dist/endpoints/PayableBalanceCollection.d.ts.map +1 -1
- package/dist/endpoints/PayableBalanceCollection.js +12 -3
- package/dist/endpoints/PayableBalanceCollection.js.map +1 -1
- package/dist/endpoints/RegisterResponse.d.ts +2 -2
- package/dist/endpoints/RegisterResponse.d.ts.map +1 -1
- package/dist/endpoints/RegisterResponse.js +2 -2
- package/dist/endpoints/RegisterResponse.js.map +1 -1
- package/dist/endpoints/UitpasNumbersGetDetailsRequest.d.ts.map +1 -1
- package/dist/endpoints/UitpasNumbersGetDetailsRequest.js.map +1 -1
- package/dist/files/File.d.ts.map +1 -1
- package/dist/filters/ExcelExportRequest.d.ts +4 -0
- package/dist/filters/ExcelExportRequest.d.ts.map +1 -1
- package/dist/filters/ExcelExportRequest.js +7 -0
- package/dist/filters/ExcelExportRequest.js.map +1 -1
- package/dist/filters/FilterCompilers.d.ts +5 -1
- package/dist/filters/FilterCompilers.d.ts.map +1 -1
- package/dist/filters/FilterCompilers.js +33 -4
- package/dist/filters/FilterCompilers.js.map +1 -1
- package/dist/filters/FilteredRequest.d.ts.map +1 -1
- package/dist/filters/FilteredRequest.js.map +1 -1
- package/dist/filters/InMemoryFilter.d.ts.map +1 -1
- package/dist/filters/InMemoryFilter.js +3 -0
- package/dist/filters/InMemoryFilter.js.map +1 -1
- package/dist/filters/InMemorySorter.d.ts.map +1 -1
- package/dist/filters/InMemorySorter.js.map +1 -1
- package/dist/filters/PropertyFilter.d.ts.map +1 -1
- package/dist/filters/PropertyFilter.js.map +1 -1
- package/dist/filters/SearchFilterFactory.d.ts.map +1 -1
- package/dist/filters/SearchFilterFactory.js.map +1 -1
- package/dist/filters/StamhoofdFilter.d.ts +12 -4
- package/dist/filters/StamhoofdFilter.d.ts.map +1 -1
- package/dist/filters/StamhoofdFilter.js +5 -5
- package/dist/filters/StamhoofdFilter.js.map +1 -1
- package/dist/filters/convertOldPropertyFilter.d.ts.map +1 -1
- package/dist/filters/convertOldPropertyFilter.js +8 -8
- package/dist/filters/convertOldPropertyFilter.js.map +1 -1
- package/dist/filters/inMemoryFilterDefinitions.d.ts.map +1 -1
- package/dist/filters/inMemoryFilterDefinitions.js +5 -0
- package/dist/filters/inMemoryFilterDefinitions.js.map +1 -1
- package/dist/filters/searchFilterFactories.d.ts.map +1 -1
- package/dist/getActivePeriods.d.ts.map +1 -1
- package/dist/getActivePeriods.js.map +1 -1
- package/dist/grouping/PaginatedResponse.d.ts.map +1 -1
- package/dist/grouping/PaginatedResponse.js.map +1 -1
- package/dist/helpers/DataPermissionHelper.d.ts +19 -0
- package/dist/helpers/DataPermissionHelper.d.ts.map +1 -0
- package/dist/helpers/DataPermissionHelper.js +27 -0
- package/dist/helpers/DataPermissionHelper.js.map +1 -0
- package/dist/helpers/EventPermissionChecker.d.ts.map +1 -1
- package/dist/helpers/EventPermissionChecker.js.map +1 -1
- package/dist/helpers/FinancialSupportHelper.d.ts +19 -0
- package/dist/helpers/FinancialSupportHelper.d.ts.map +1 -0
- package/dist/helpers/FinancialSupportHelper.js +27 -0
- package/dist/helpers/FinancialSupportHelper.js.map +1 -0
- package/dist/helpers/MemberPlatformMembershipHelper.d.ts.map +1 -1
- package/dist/helpers/MemberPlatformMembershipHelper.js.map +1 -1
- package/dist/helpers/TagHelper.d.ts +5 -0
- package/dist/helpers/TagHelper.d.ts.map +1 -1
- package/dist/helpers/TagHelper.js +17 -0
- package/dist/helpers/TagHelper.js.map +1 -1
- package/dist/helpers/calculateHungarianAlgorithm.d.ts.map +1 -1
- package/dist/helpers/calculateHungarianAlgorithm.js.map +1 -1
- package/dist/helpers/getEventTypes.d.ts +8 -0
- package/dist/helpers/getEventTypes.d.ts.map +1 -0
- package/dist/helpers/getEventTypes.js +15 -0
- package/dist/helpers/getEventTypes.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/members/Member.d.ts +1 -0
- package/dist/members/Member.d.ts.map +1 -1
- package/dist/members/Member.js +4 -0
- package/dist/members/Member.js.map +1 -1
- package/dist/members/MemberDetails.d.ts.map +1 -1
- package/dist/members/MemberDetails.js +3 -3
- package/dist/members/MemberDetails.js.map +1 -1
- package/dist/members/MemberResponsibilityRecord.d.ts.map +1 -1
- package/dist/members/MemberWithRegistrationsBlob.d.ts +19 -0
- package/dist/members/MemberWithRegistrationsBlob.d.ts.map +1 -1
- package/dist/members/MemberWithRegistrationsBlob.js +52 -0
- package/dist/members/MemberWithRegistrationsBlob.js.map +1 -1
- package/dist/members/OrganizationRecordsConfiguration.d.ts.map +1 -1
- package/dist/members/OrganizationRecordsConfiguration.js.map +1 -1
- package/dist/members/Parent.d.ts.map +1 -1
- package/dist/members/Parent.js.map +1 -1
- package/dist/members/Payment.d.ts +7 -0
- package/dist/members/Payment.d.ts.map +1 -1
- package/dist/members/Payment.js +20 -1
- package/dist/members/Payment.js.map +1 -1
- package/dist/members/PaymentGeneral.d.ts.map +1 -1
- package/dist/members/PaymentGeneral.js +54 -14
- package/dist/members/PaymentGeneral.js.map +1 -1
- package/dist/members/PlatformMember.d.ts +1 -0
- package/dist/members/PlatformMember.d.ts.map +1 -1
- package/dist/members/PlatformMember.js +81 -34
- package/dist/members/PlatformMember.js.map +1 -1
- package/dist/members/PlatformMembership.d.ts.map +1 -1
- package/dist/members/PlatformMembership.js.map +1 -1
- package/dist/members/Registration.d.ts +9 -0
- package/dist/members/Registration.d.ts.map +1 -1
- package/dist/members/Registration.js +11 -2
- package/dist/members/Registration.js.map +1 -1
- package/dist/members/RegistrationInvitation.d.ts +47 -0
- package/dist/members/RegistrationInvitation.d.ts.map +1 -0
- package/dist/members/RegistrationInvitation.js +118 -0
- package/dist/members/RegistrationInvitation.js.map +1 -0
- package/dist/members/RegistrationWithEncryptedMember.d.ts +3 -0
- package/dist/members/RegistrationWithEncryptedMember.d.ts.map +1 -1
- package/dist/members/RegistrationWithEncryptedMember.js +3 -0
- package/dist/members/RegistrationWithEncryptedMember.js.map +1 -1
- package/dist/members/ReviewTime.d.ts.map +1 -1
- package/dist/members/ReviewTime.js.map +1 -1
- package/dist/members/checkout/RegisterCart.d.ts +5 -0
- package/dist/members/checkout/RegisterCart.d.ts.map +1 -1
- package/dist/members/checkout/RegisterCart.js +11 -0
- package/dist/members/checkout/RegisterCart.js.map +1 -1
- package/dist/members/checkout/RegisterCheckout.d.ts +25 -6
- package/dist/members/checkout/RegisterCheckout.d.ts.map +1 -1
- package/dist/members/checkout/RegisterCheckout.js +98 -16
- package/dist/members/checkout/RegisterCheckout.js.map +1 -1
- package/dist/members/checkout/RegisterItem.d.ts +1 -1
- package/dist/members/checkout/RegisterItem.d.ts.map +1 -1
- package/dist/members/checkout/RegisterItem.js +11 -6
- package/dist/members/checkout/RegisterItem.js.map +1 -1
- package/dist/members/checkout/RegistrationWithPlatformMember.d.ts.map +1 -1
- package/dist/members/records/LegacyRecord.d.ts.map +1 -1
- package/dist/members/records/LegacyRecord.js.map +1 -1
- package/dist/members/records/RecordAnswer.d.ts +13 -2
- package/dist/members/records/RecordAnswer.d.ts.map +1 -1
- package/dist/members/records/RecordAnswer.js +64 -2
- package/dist/members/records/RecordAnswer.js.map +1 -1
- package/dist/members/records/RecordCategory.d.ts.map +1 -1
- package/dist/members/records/RecordCategory.js.map +1 -1
- package/dist/members/records/RecordConfigurationFactory.d.ts.map +1 -1
- package/dist/members/records/RecordConfigurationFactory.js +3 -3
- package/dist/members/records/RecordConfigurationFactory.js.map +1 -1
- package/dist/members/records/RecordSettings.d.ts.map +1 -1
- package/dist/members/records/RecordSettings.js.map +1 -1
- package/dist/webshops/Cart.d.ts.map +1 -1
- package/dist/webshops/Cart.js.map +1 -1
- package/dist/webshops/CartItem.d.ts.map +1 -1
- package/dist/webshops/CartItem.js.map +1 -1
- package/dist/webshops/CartStockHelper.d.ts.map +1 -1
- package/dist/webshops/CartStockHelper.js.map +1 -1
- package/dist/webshops/Checkout.d.ts.map +1 -1
- package/dist/webshops/Checkout.js +3 -3
- package/dist/webshops/Checkout.js.map +1 -1
- package/dist/webshops/Discount.d.ts +2 -1
- package/dist/webshops/Discount.d.ts.map +1 -1
- package/dist/webshops/Discount.js +6 -3
- package/dist/webshops/Discount.js.map +1 -1
- package/dist/webshops/Order.d.ts.map +1 -1
- package/dist/webshops/Order.js.map +1 -1
- package/dist/webshops/Product.d.ts.map +1 -1
- package/dist/webshops/Product.js.map +1 -1
- package/dist/webshops/Ticket.d.ts.map +1 -1
- package/dist/webshops/Ticket.js.map +1 -1
- package/dist/webshops/TransferSettings.d.ts.map +1 -1
- package/dist/webshops/TransferSettings.js.map +1 -1
- package/dist/webshops/WebshopMetaData.d.ts.map +1 -1
- package/package.json +29 -22
- package/dist/checkout/PackageCheckout.d.ts +0 -17
- package/dist/checkout/PackageCheckout.d.ts.map +0 -1
- package/dist/checkout/PackageCheckout.js +0 -27
- package/dist/checkout/PackageCheckout.js.map +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Formatter } from '@stamhoofd/utility';
|
|
1
2
|
import { STPackage, STPackageMeta, STPackageType, STPricingType } from './STPackage.js';
|
|
2
3
|
/**
|
|
3
4
|
* Package bundle are packages that you can buy
|
|
@@ -9,7 +10,7 @@ export var STPackageBundle;
|
|
|
9
10
|
// Full members package
|
|
10
11
|
STPackageBundle["Members"] = "Members";
|
|
11
12
|
// One webshop package (max 1 webshop)
|
|
12
|
-
|
|
13
|
+
// SingleWebshop = 'SingleWebshop',
|
|
13
14
|
STPackageBundle["TrialMembers"] = "TrialMembers";
|
|
14
15
|
STPackageBundle["TrialWebshops"] = "TrialWebshops";
|
|
15
16
|
})(STPackageBundle || (STPackageBundle = {}));
|
|
@@ -35,28 +36,12 @@ export class STPackageBundleHelper {
|
|
|
35
36
|
}
|
|
36
37
|
return false;
|
|
37
38
|
}
|
|
38
|
-
static
|
|
39
|
+
static getTrial(bundle) {
|
|
39
40
|
switch (bundle) {
|
|
40
|
-
case STPackageBundle.Members: return
|
|
41
|
-
case STPackageBundle.Webshops: return
|
|
41
|
+
case STPackageBundle.Members: return STPackageBundle.TrialMembers;
|
|
42
|
+
case STPackageBundle.Webshops: return STPackageBundle.TrialWebshops;
|
|
42
43
|
}
|
|
43
|
-
return
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* If you buy a package that is not combineable with an existing one, should it throw an error?
|
|
47
|
-
*/
|
|
48
|
-
static isStackable(bundle, pack) {
|
|
49
|
-
switch (bundle) {
|
|
50
|
-
case STPackageBundle.TrialMembers: {
|
|
51
|
-
// Not allowed to start a trial even if pack is expired
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
case STPackageBundle.TrialWebshops: {
|
|
55
|
-
// Not allowed to start a trial again if pack is expired
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return true;
|
|
44
|
+
return null;
|
|
60
45
|
}
|
|
61
46
|
static isAlreadyBought(bundle, pack) {
|
|
62
47
|
switch (bundle) {
|
|
@@ -78,13 +63,6 @@ export class STPackageBundleHelper {
|
|
|
78
63
|
}
|
|
79
64
|
return false;
|
|
80
65
|
}
|
|
81
|
-
case STPackageBundle.SingleWebshop: {
|
|
82
|
-
if (pack.meta.type === STPackageType.SingleWebshop || pack.meta.type === STPackageType.Webshops) {
|
|
83
|
-
// Already bought
|
|
84
|
-
return true;
|
|
85
|
-
}
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
66
|
}
|
|
89
67
|
return false;
|
|
90
68
|
}
|
|
@@ -104,13 +82,6 @@ export class STPackageBundleHelper {
|
|
|
104
82
|
}
|
|
105
83
|
return false;
|
|
106
84
|
}
|
|
107
|
-
case STPackageBundle.SingleWebshop: {
|
|
108
|
-
if (pack.meta.type === STPackageType.TrialWebshops) {
|
|
109
|
-
// Already bought
|
|
110
|
-
return true;
|
|
111
|
-
}
|
|
112
|
-
return false;
|
|
113
|
-
}
|
|
114
85
|
}
|
|
115
86
|
return false;
|
|
116
87
|
}
|
|
@@ -130,13 +101,6 @@ export class STPackageBundleHelper {
|
|
|
130
101
|
}
|
|
131
102
|
return true;
|
|
132
103
|
}
|
|
133
|
-
case STPackageBundle.SingleWebshop: {
|
|
134
|
-
if (pack.meta.type === STPackageType.SingleWebshop || pack.meta.type === STPackageType.Webshops) {
|
|
135
|
-
// Already bought
|
|
136
|
-
return false;
|
|
137
|
-
}
|
|
138
|
-
return true;
|
|
139
|
-
}
|
|
140
104
|
case STPackageBundle.TrialMembers: {
|
|
141
105
|
if (pack.meta.type === STPackageType.Members || pack.meta.type === STPackageType.TrialMembers) {
|
|
142
106
|
// Already bought
|
|
@@ -155,27 +119,42 @@ export class STPackageBundleHelper {
|
|
|
155
119
|
return false;
|
|
156
120
|
}
|
|
157
121
|
/**
|
|
158
|
-
*
|
|
122
|
+
* If you buy a package that is not combineable with an existing one.
|
|
123
|
+
* Should it start the package after the existing one expires (true) or should it ignore it (false)
|
|
124
|
+
*/
|
|
125
|
+
static isStackable(bundle, pack) {
|
|
126
|
+
switch (bundle) {
|
|
127
|
+
case STPackageBundle.TrialMembers: {
|
|
128
|
+
// Not allowed to start a trial even if pack is expired
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
case STPackageBundle.TrialWebshops: {
|
|
132
|
+
// Not allowed to start a trial again if pack is expired
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Create a new package for this type that starts on 'date' and return the pricing
|
|
159
140
|
*/
|
|
160
141
|
static getCurrentPackage(bundle, date) {
|
|
142
|
+
const start = Formatter.luxon(date).startOf('day');
|
|
161
143
|
switch (bundle) {
|
|
162
144
|
case STPackageBundle.Members: {
|
|
163
|
-
|
|
164
|
-
const
|
|
165
|
-
validUntil.setFullYear(validUntil.getFullYear() + 1);
|
|
166
|
-
// Remove (= not renewable) if not renewed after 1 month
|
|
167
|
-
const removeAt = new Date(validUntil);
|
|
168
|
-
removeAt.setMonth(removeAt.getMonth() + 1);
|
|
145
|
+
const validUntil = start.plus({ years: 1 }).endOf('day');
|
|
146
|
+
const removeAt = validUntil.plus({ months: 1 }).endOf('day');
|
|
169
147
|
return STPackage.create({
|
|
170
|
-
validUntil,
|
|
171
|
-
removeAt,
|
|
148
|
+
validUntil: validUntil.toJSDate(),
|
|
149
|
+
removeAt: removeAt.toJSDate(),
|
|
172
150
|
meta: STPackageMeta.create({
|
|
173
151
|
type: STPackageType.Members,
|
|
174
152
|
unitPrice: 1_0000, // 1 euro
|
|
175
153
|
minimumAmount: 0,
|
|
176
154
|
allowRenew: true,
|
|
177
155
|
pricingType: STPricingType.PerMember,
|
|
178
|
-
startDate:
|
|
156
|
+
startDate: start.toJSDate(),
|
|
157
|
+
canDeactivate: STAMHOOFD.environment === 'development', // Cannot deactivate in production because they already paid for it.
|
|
179
158
|
}),
|
|
180
159
|
});
|
|
181
160
|
}
|
|
@@ -192,47 +171,41 @@ export class STPackageBundleHelper {
|
|
|
192
171
|
serviceFeeFixed: 0,
|
|
193
172
|
serviceFeePercentage: 2_00,
|
|
194
173
|
serviceFeeMaximum: 2000, // 20 cent
|
|
195
|
-
startDate:
|
|
174
|
+
startDate: start.toJSDate(),
|
|
196
175
|
canDeactivate: true,
|
|
197
176
|
}),
|
|
198
177
|
});
|
|
199
178
|
}
|
|
200
179
|
case STPackageBundle.TrialMembers: {
|
|
201
|
-
|
|
202
|
-
const
|
|
203
|
-
validUntil.setDate(validUntil.getDate() + 14);
|
|
204
|
-
// Remove if not valid anymore
|
|
205
|
-
const removeAt = new Date(validUntil);
|
|
180
|
+
const validUntil = start.plus({ days: 14 }).endOf('day');
|
|
181
|
+
const removeAt = validUntil;
|
|
206
182
|
return STPackage.create({
|
|
207
|
-
validUntil,
|
|
208
|
-
removeAt,
|
|
183
|
+
validUntil: validUntil.toJSDate(),
|
|
184
|
+
removeAt: removeAt.toJSDate(),
|
|
209
185
|
meta: STPackageMeta.create({
|
|
210
186
|
type: STPackageType.TrialMembers,
|
|
211
187
|
unitPrice: 0,
|
|
212
188
|
minimumAmount: 1,
|
|
213
189
|
allowRenew: false,
|
|
214
190
|
pricingType: STPricingType.Fixed,
|
|
215
|
-
startDate:
|
|
191
|
+
startDate: start.toJSDate(),
|
|
216
192
|
canDeactivate: true,
|
|
217
193
|
}),
|
|
218
194
|
});
|
|
219
195
|
}
|
|
220
196
|
case STPackageBundle.TrialWebshops: {
|
|
221
|
-
|
|
222
|
-
const
|
|
223
|
-
validUntil.setDate(validUntil.getDate() + 14);
|
|
224
|
-
// Remove if not valid anymore
|
|
225
|
-
const removeAt = new Date(validUntil);
|
|
197
|
+
const validUntil = start.plus({ days: 14 }).endOf('day');
|
|
198
|
+
const removeAt = validUntil;
|
|
226
199
|
return STPackage.create({
|
|
227
|
-
validUntil,
|
|
228
|
-
removeAt,
|
|
200
|
+
validUntil: validUntil.toJSDate(),
|
|
201
|
+
removeAt: removeAt.toJSDate(),
|
|
229
202
|
meta: STPackageMeta.create({
|
|
230
203
|
type: STPackageType.TrialWebshops,
|
|
231
204
|
unitPrice: 0,
|
|
232
205
|
minimumAmount: 1,
|
|
233
206
|
allowRenew: false,
|
|
234
207
|
pricingType: STPricingType.Fixed,
|
|
235
|
-
startDate:
|
|
208
|
+
startDate: start.toJSDate(),
|
|
236
209
|
canDeactivate: true,
|
|
237
210
|
}),
|
|
238
211
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"STPackageBundle.js","sourceRoot":"","sources":["../../src/billing/STPackageBundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAExF;;GAEG;AACH,MAAM,CAAN,IAAY,eAYX;AAZD,WAAY,eAAe;IACvB,oCAAoC;IACpC,wCAAqB,CAAA;IAErB,uBAAuB;IACvB,sCAAmB,CAAA;IAEnB,sCAAsC;IACtC,
|
|
1
|
+
{"version":3,"file":"STPackageBundle.js","sourceRoot":"","sources":["../../src/billing/STPackageBundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AutoEncoder } from '@simonbackx/simple-encoding';
|
|
2
|
-
import { Payment } from '../members/Payment.js';
|
|
3
2
|
import { Invoice } from '../billing/Invoice.js';
|
|
3
|
+
import { PaymentGeneral } from '../members/PaymentGeneral.js';
|
|
4
4
|
/**
|
|
5
5
|
* If needed, you can extend this class to add extra fields in custom checkout flows.
|
|
6
6
|
*/
|
|
@@ -9,7 +9,7 @@ export declare class CheckoutResponse extends AutoEncoder {
|
|
|
9
9
|
* Used for polling the payment status or showing transfer instructions.
|
|
10
10
|
* Also used for showing a summary on the success page.
|
|
11
11
|
*/
|
|
12
|
-
payment:
|
|
12
|
+
payment: PaymentGeneral | null;
|
|
13
13
|
/**
|
|
14
14
|
* If an invoice is available and created, it will be set here already.
|
|
15
15
|
* When asked for a pro forma invoice, this will be set.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckoutResponse.d.ts","sourceRoot":"","sources":["../../src/checkout/CheckoutResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwB,MAAM,6BAA6B,CAAC;AAEhF,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CheckoutResponse.d.ts","sourceRoot":"","sources":["../../src/checkout/CheckoutResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwB,MAAM,6BAA6B,CAAC;AAEhF,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;IAC7C;;;OAGG;IAEH,OAAO,EAAE,cAAc,GAAG,IAAI,CAAQ;IAEtC;;;OAGG;IAEH,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IAE/B;;OAEG;IAEH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEjC;;;OAGG;IAEH,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;CACvC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { AutoEncoder, field, StringDecoder } from '@simonbackx/simple-encoding';
|
|
3
|
-
import { Payment } from '../members/Payment.js';
|
|
4
3
|
import { Invoice } from '../billing/Invoice.js';
|
|
4
|
+
import { PaymentGeneral } from '../members/PaymentGeneral.js';
|
|
5
5
|
/**
|
|
6
6
|
* If needed, you can extend this class to add extra fields in custom checkout flows.
|
|
7
7
|
*/
|
|
@@ -27,7 +27,7 @@ export class CheckoutResponse extends AutoEncoder {
|
|
|
27
27
|
paymentQRCode = null;
|
|
28
28
|
}
|
|
29
29
|
__decorate([
|
|
30
|
-
field({ decoder:
|
|
30
|
+
field({ decoder: PaymentGeneral, nullable: true })
|
|
31
31
|
], CheckoutResponse.prototype, "payment", void 0);
|
|
32
32
|
__decorate([
|
|
33
33
|
field({ decoder: Invoice, nullable: true })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckoutResponse.js","sourceRoot":"","sources":["../../src/checkout/CheckoutResponse.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEhF,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CheckoutResponse.js","sourceRoot":"","sources":["../../src/checkout/CheckoutResponse.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEhF,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAC7C;;;OAGG;IAEH,OAAO,GAA0B,IAAI,CAAC;IAEtC;;;OAGG;IAEH,OAAO,GAAmB,IAAI,CAAC;IAE/B;;OAEG;IAEH,UAAU,GAAkB,IAAI,CAAC;IAEjC;;;OAGG;IAEH,aAAa,GAAkB,IAAI,CAAC;CACvC;AArBG;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;iDACb;AAOtC;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;iDACb;AAM/B;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oDACjB;AAOjC;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;uDACd"}
|
|
@@ -2,6 +2,8 @@ import { PaymentMethod } from '../PaymentMethod.js';
|
|
|
2
2
|
import { PaymentCustomer } from '../PaymentCustomer.js';
|
|
3
3
|
import { PaymentMandate } from '../PaymentMandate.js';
|
|
4
4
|
import { AutoEncoder } from '@simonbackx/simple-encoding';
|
|
5
|
+
import { CreateMandateSettings } from './CreateMandateSettings.js';
|
|
6
|
+
import type { BalanceItem } from '../BalanceItem.js';
|
|
5
7
|
/**
|
|
6
8
|
* We have multiple checkout flows in Stamhoofd. They all share a similar way of selecting a payment method,
|
|
7
9
|
* and also allowing you to pay for already existing balances.
|
|
@@ -9,7 +11,7 @@ import { AutoEncoder } from '@simonbackx/simple-encoding';
|
|
|
9
11
|
* This interface, streamlines this to a common interface that we should start using everywhere, so we can
|
|
10
12
|
* make more general helpers in the backend and frontend for handling the payment flow.
|
|
11
13
|
*/
|
|
12
|
-
export declare abstract class Checkoutable<T> extends AutoEncoder {
|
|
14
|
+
export declare abstract class Checkoutable<T = unknown> extends AutoEncoder {
|
|
13
15
|
/**
|
|
14
16
|
* This part is what you are paying for, new stuff. Can be empty if you are only paying
|
|
15
17
|
* for existing balances.
|
|
@@ -38,7 +40,7 @@ export declare abstract class Checkoutable<T> extends AutoEncoder {
|
|
|
38
40
|
*
|
|
39
41
|
* Note: it might be required for subscription based purchases to set this to true if not paying with an existing mandate.
|
|
40
42
|
*/
|
|
41
|
-
createMandate:
|
|
43
|
+
createMandate: CreateMandateSettings | null;
|
|
42
44
|
/**
|
|
43
45
|
* The link we'll redirect the user back too after the payment page (either succeeded or failed!)
|
|
44
46
|
* The id query param will be appended with the payment id
|
|
@@ -62,5 +64,7 @@ export declare abstract class Checkoutable<T> extends AutoEncoder {
|
|
|
62
64
|
* The price that the frontend displayed to the user. Can be null to skip verification.
|
|
63
65
|
*/
|
|
64
66
|
totalPrice: number | null;
|
|
67
|
+
removeBalanceItemByBalance(item: BalanceItem): void;
|
|
68
|
+
addBalanceItem(item: BalanceItem, amount: number): void;
|
|
65
69
|
}
|
|
66
70
|
//# sourceMappingURL=Checkoutable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkoutable.d.ts","sourceRoot":"","sources":["../../src/checkout/Checkoutable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAA6F,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"Checkoutable.d.ts","sourceRoot":"","sources":["../../src/checkout/Checkoutable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAA6F,MAAM,6BAA6B,CAAC;AACrJ,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;;GAMG;AACH,8BAAsB,YAAY,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,WAAW;IAC/D;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IAItB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAE1C;;OAEG;IAEH,aAAa,EAAE,aAAa,GAAG,IAAI,CAAQ;IAE3C;;OAEG;IAEH,OAAO,EAAE,cAAc,GAAG,IAAI,CAAQ;IAEtC;;;OAGG;IAEH,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAQ;IAExC;;;;;;;;OAQG;IAEH,aAAa,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAE5C;;;OAGG;IAEH,WAAW,EAAE,GAAG,GAAG,IAAI,CAAQ;IAE/B;;;OAGG;IAEH,SAAS,EAAE,GAAG,GAAG,IAAI,CAAQ;IAE7B;;;;;;;OAOG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEjC,0BAA0B,CAAC,IAAI,EAAE,WAAW;IAI5C,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM;CAGnD"}
|
|
@@ -3,6 +3,7 @@ import { PaymentMethod } from '../PaymentMethod.js';
|
|
|
3
3
|
import { PaymentCustomer } from '../PaymentCustomer.js';
|
|
4
4
|
import { PaymentMandate } from '../PaymentMandate.js';
|
|
5
5
|
import { AutoEncoder, BooleanDecoder, EnumDecoder, field, IntegerDecoder, MapDecoder, StringDecoder, URLDecoder } from '@simonbackx/simple-encoding';
|
|
6
|
+
import { CreateMandateSettings } from './CreateMandateSettings.js';
|
|
6
7
|
/**
|
|
7
8
|
* We have multiple checkout flows in Stamhoofd. They all share a similar way of selecting a payment method,
|
|
8
9
|
* and also allowing you to pay for already existing balances.
|
|
@@ -35,7 +36,7 @@ export class Checkoutable extends AutoEncoder {
|
|
|
35
36
|
*
|
|
36
37
|
* Note: it might be required for subscription based purchases to set this to true if not paying with an existing mandate.
|
|
37
38
|
*/
|
|
38
|
-
createMandate
|
|
39
|
+
createMandate;
|
|
39
40
|
/**
|
|
40
41
|
* The link we'll redirect the user back too after the payment page (either succeeded or failed!)
|
|
41
42
|
* The id query param will be appended with the payment id
|
|
@@ -59,6 +60,12 @@ export class Checkoutable extends AutoEncoder {
|
|
|
59
60
|
* The price that the frontend displayed to the user. Can be null to skip verification.
|
|
60
61
|
*/
|
|
61
62
|
totalPrice = null;
|
|
63
|
+
removeBalanceItemByBalance(item) {
|
|
64
|
+
this.balances.delete(item.id);
|
|
65
|
+
}
|
|
66
|
+
addBalanceItem(item, amount) {
|
|
67
|
+
this.balances.set(item.id, amount);
|
|
68
|
+
}
|
|
62
69
|
}
|
|
63
70
|
__decorate([
|
|
64
71
|
field({ decoder: new MapDecoder(StringDecoder, IntegerDecoder) })
|
|
@@ -73,7 +80,7 @@ __decorate([
|
|
|
73
80
|
field({ decoder: PaymentCustomer, nullable: true })
|
|
74
81
|
], Checkoutable.prototype, "customer", void 0);
|
|
75
82
|
__decorate([
|
|
76
|
-
field({ decoder:
|
|
83
|
+
field({ decoder: CreateMandateSettings, nullable: true })
|
|
77
84
|
], Checkoutable.prototype, "createMandate", void 0);
|
|
78
85
|
__decorate([
|
|
79
86
|
field({ decoder: new URLDecoder({ allowedProtocols: ['https:'] }), nullable: true })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkoutable.js","sourceRoot":"","sources":["../../src/checkout/Checkoutable.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"Checkoutable.js","sourceRoot":"","sources":["../../src/checkout/Checkoutable.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACrJ,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE;;;;;;GAMG;AACH,MAAM,OAAgB,YAA0B,SAAQ,WAAW;IAO/D,4FAA4F;IAE5F,QAAQ,GAAwB,IAAI,GAAG,EAAE,CAAC;IAE1C;;OAEG;IAEH,aAAa,GAAyB,IAAI,CAAC;IAE3C;;OAEG;IAEH,OAAO,GAA0B,IAAI,CAAC;IAEtC;;;OAGG;IAEH,QAAQ,GAA2B,IAAI,CAAC;IAExC;;;;;;;;OAQG;IAEH,aAAa,CAA+B;IAE5C;;;OAGG;IAEH,WAAW,GAAe,IAAI,CAAC;IAE/B;;;OAGG;IAEH,SAAS,GAAe,IAAI,CAAC;IAE7B;;;;;;;OAOG;IAEH,QAAQ,GAAG,KAAK,CAAC;IAEjB;;OAEG;IAEH,UAAU,GAAkB,IAAI,CAAC;IAEjC,0BAA0B,CAAC,IAAiB;QACxC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,cAAc,CAAC,IAAiB,EAAE,MAAc;QAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;CACJ;AAvEG;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,UAAU,CAAC,aAAa,EAAE,cAAc,CAAC,EAAE,CAAC;8CACxB;AAM1C;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,WAAW,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;mDACxB;AAM3C;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;6CACb;AAOtC;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8CACZ;AAYxC;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;mDACd;AAO5C;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;iDACtD;AAO/B;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;+CACxD;AAW7B;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8CAClC;AAMjB;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gDAClB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AutoEncoder } from '@simonbackx/simple-encoding';
|
|
2
|
+
export declare class CreateMandateSettings extends AutoEncoder {
|
|
3
|
+
/**
|
|
4
|
+
* Ignored if it is the only created mandate
|
|
5
|
+
*/
|
|
6
|
+
saveAsDefault: boolean;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=CreateMandateSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateMandateSettings.d.ts","sourceRoot":"","sources":["../../src/checkout/CreateMandateSettings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyB,MAAM,6BAA6B,CAAC;AAEjF,qBAAa,qBAAsB,SAAQ,WAAW;IAClD;;OAEG;IAEH,aAAa,UAAS;CACzB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { AutoEncoder, BooleanDecoder, field } from '@simonbackx/simple-encoding';
|
|
3
|
+
export class CreateMandateSettings extends AutoEncoder {
|
|
4
|
+
/**
|
|
5
|
+
* Ignored if it is the only created mandate
|
|
6
|
+
*/
|
|
7
|
+
saveAsDefault = false;
|
|
8
|
+
}
|
|
9
|
+
__decorate([
|
|
10
|
+
field({ decoder: BooleanDecoder, defaultValue: () => false })
|
|
11
|
+
], CreateMandateSettings.prototype, "saveAsDefault", void 0);
|
|
12
|
+
//# sourceMappingURL=CreateMandateSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateMandateSettings.js","sourceRoot":"","sources":["../../src/checkout/CreateMandateSettings.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEjF,MAAM,OAAO,qBAAsB,SAAQ,WAAW;IAClD;;OAEG;IAEH,aAAa,GAAG,KAAK,CAAC;CACzB;AADG;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;4DACxC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AutoEncoder } from '@simonbackx/simple-encoding';
|
|
2
|
+
import { STPackageBundle } from '../billing/STPackageBundle.js';
|
|
3
|
+
import { Checkoutable } from './Checkoutable.js';
|
|
4
|
+
import type { OrganizationPackagesStatus } from '../billing/OrganizationPackagesStatus.js';
|
|
5
|
+
import type { STPackage } from '../billing/STPackage.js';
|
|
6
|
+
/**
|
|
7
|
+
* Checkout flow between organizations
|
|
8
|
+
*/
|
|
9
|
+
export declare class PackagePurchases extends AutoEncoder {
|
|
10
|
+
/**
|
|
11
|
+
* Buy or activate new packges.
|
|
12
|
+
* If the package already exists, the backend will map it automatically to a renewal.
|
|
13
|
+
*/
|
|
14
|
+
packageBundles: STPackageBundle[];
|
|
15
|
+
/**
|
|
16
|
+
* Renew existing packages explicitly
|
|
17
|
+
*/
|
|
18
|
+
renewPackageIds: string[];
|
|
19
|
+
get empty(): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Calculate the actual packages we'll activate
|
|
22
|
+
*/
|
|
23
|
+
getPackages(currentPackages: OrganizationPackagesStatus): STPackage[];
|
|
24
|
+
}
|
|
25
|
+
export declare class OrganizationCheckout extends Checkoutable<PackagePurchases> {
|
|
26
|
+
purchases: PackagePurchases;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=OrganizationCheckout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrganizationCheckout.d.ts","sourceRoot":"","sources":["../../src/checkout/OrganizationCheckout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAqC,MAAM,6BAA6B,CAAC;AAC3G,OAAO,EAAE,eAAe,EAAyB,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AAC3F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;IAC7C;;;OAGG;IAEH,cAAc,EAAE,eAAe,EAAE,CAAM;IAEvC;;OAEG;IAEH,eAAe,EAAE,MAAM,EAAE,CAAM;IAE/B,IAAI,KAAK,YAER;IAED;;OAEG;IACH,WAAW,CAAC,eAAe,EAAE,0BAA0B,GAAG,SAAS,EAAE;CAqExE;AAED,qBAAa,oBAAqB,SAAQ,YAAY,CAAC,gBAAgB,CAAC;IAEpE,SAAS,EAAE,gBAAgB,CAAC;CAC/B"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ArrayDecoder, AutoEncoder, EnumDecoder, field, StringDecoder } from '@simonbackx/simple-encoding';
|
|
3
|
+
import { STPackageBundle, STPackageBundleHelper } from '../billing/STPackageBundle.js';
|
|
4
|
+
import { Checkoutable } from './Checkoutable.js';
|
|
5
|
+
import { SimpleError } from '@simonbackx/simple-errors';
|
|
6
|
+
/**
|
|
7
|
+
* Checkout flow between organizations
|
|
8
|
+
*/
|
|
9
|
+
export class PackagePurchases extends AutoEncoder {
|
|
10
|
+
/**
|
|
11
|
+
* Buy or activate new packges.
|
|
12
|
+
* If the package already exists, the backend will map it automatically to a renewal.
|
|
13
|
+
*/
|
|
14
|
+
packageBundles = [];
|
|
15
|
+
/**
|
|
16
|
+
* Renew existing packages explicitly
|
|
17
|
+
*/
|
|
18
|
+
renewPackageIds = [];
|
|
19
|
+
get empty() {
|
|
20
|
+
return this.packageBundles.length === 0 && this.renewPackageIds.length === 0;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Calculate the actual packages we'll activate
|
|
24
|
+
*/
|
|
25
|
+
getPackages(currentPackages) {
|
|
26
|
+
const packages = [];
|
|
27
|
+
// Renewals
|
|
28
|
+
for (const id of this.renewPackageIds) {
|
|
29
|
+
const pack = currentPackages.packages.find(c => c.id === id);
|
|
30
|
+
if (!pack) {
|
|
31
|
+
throw new SimpleError({
|
|
32
|
+
code: 'not_found',
|
|
33
|
+
message: 'Package not found',
|
|
34
|
+
human: $t('%1L1'),
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
const renewed = pack.createRenewed();
|
|
38
|
+
packages.push(renewed);
|
|
39
|
+
}
|
|
40
|
+
for (const bundle of this.packageBundles) {
|
|
41
|
+
// Renew after currently running packages
|
|
42
|
+
let date = new Date();
|
|
43
|
+
let skip = false;
|
|
44
|
+
// Do we have a collision? Make sure our package only start after the expiry date of existing packages
|
|
45
|
+
for (const currentPack of [...currentPackages.packages, ...packages]) {
|
|
46
|
+
if (!STPackageBundleHelper.isCombineable(bundle, currentPack)) {
|
|
47
|
+
if (!STPackageBundleHelper.isStackable(bundle, currentPack)) {
|
|
48
|
+
// We skip silently
|
|
49
|
+
console.error('Tried to activate non combineable, non stackable packages...');
|
|
50
|
+
skip = true;
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (currentPack.endDate !== null) {
|
|
54
|
+
const end = currentPack.endDate;
|
|
55
|
+
if (end > date) {
|
|
56
|
+
date = end;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
// Non-expiring
|
|
61
|
+
throw new SimpleError({
|
|
62
|
+
code: 'already_active',
|
|
63
|
+
message: 'Cannot activate this package because of conflicting package',
|
|
64
|
+
human: $t('%1Qa'),
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (skip) {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
packages.push(STPackageBundleHelper.getCurrentPackage(bundle, date));
|
|
73
|
+
}
|
|
74
|
+
// Remove all packages that would be valid for more than 2 years in the future
|
|
75
|
+
// This prevents renewing 2 years in a row
|
|
76
|
+
for (const pack of packages) {
|
|
77
|
+
if (pack.validUntil && pack.validUntil.getTime() > new Date().getTime() + 1000 * 60 * 60 * 24 * 365 * 2) {
|
|
78
|
+
throw new SimpleError({
|
|
79
|
+
code: 'invalid_package',
|
|
80
|
+
message: 'Package valid until date is too far in the future',
|
|
81
|
+
human: $t('%1Sv'),
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return packages;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
__decorate([
|
|
89
|
+
field({ decoder: new ArrayDecoder(new EnumDecoder(STPackageBundle)) })
|
|
90
|
+
], PackagePurchases.prototype, "packageBundles", void 0);
|
|
91
|
+
__decorate([
|
|
92
|
+
field({ decoder: new ArrayDecoder(StringDecoder) })
|
|
93
|
+
], PackagePurchases.prototype, "renewPackageIds", void 0);
|
|
94
|
+
export class OrganizationCheckout extends Checkoutable {
|
|
95
|
+
purchases;
|
|
96
|
+
}
|
|
97
|
+
__decorate([
|
|
98
|
+
field({ decoder: PackagePurchases })
|
|
99
|
+
], OrganizationCheckout.prototype, "purchases", void 0);
|
|
100
|
+
//# sourceMappingURL=OrganizationCheckout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrganizationCheckout.js","sourceRoot":"","sources":["../../src/checkout/OrganizationCheckout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AutoEncoder } from '@simonbackx/simple-encoding';
|
|
2
|
+
export declare class OrganizationMandatesRequest extends AutoEncoder {
|
|
3
|
+
/**
|
|
4
|
+
* If not specified, this will use the default organization id
|
|
5
|
+
*/
|
|
6
|
+
sellingOrganizationId: string | null;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=OrganizationMandatesRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrganizationMandatesRequest.d.ts","sourceRoot":"","sources":["../../src/checkout/OrganizationMandatesRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwB,MAAM,6BAA6B,CAAC;AAEhF,qBAAa,2BAA4B,SAAQ,WAAW;IACxD;;OAEG;IAEH,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { AutoEncoder, field, StringDecoder } from '@simonbackx/simple-encoding';
|
|
3
|
+
export class OrganizationMandatesRequest extends AutoEncoder {
|
|
4
|
+
/**
|
|
5
|
+
* If not specified, this will use the default organization id
|
|
6
|
+
*/
|
|
7
|
+
sellingOrganizationId;
|
|
8
|
+
}
|
|
9
|
+
__decorate([
|
|
10
|
+
field({ decoder: StringDecoder, nullable: true })
|
|
11
|
+
], OrganizationMandatesRequest.prototype, "sellingOrganizationId", void 0);
|
|
12
|
+
//# sourceMappingURL=OrganizationMandatesRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrganizationMandatesRequest.js","sourceRoot":"","sources":["../../src/checkout/OrganizationMandatesRequest.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEhF,MAAM,OAAO,2BAA4B,SAAQ,WAAW;IACxD;;OAEG;IAEH,qBAAqB,CAAgB;CACxC;AADG;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;0EACb"}
|
package/dist/checkout/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checkout/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checkout/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC"}
|
package/dist/checkout/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checkout/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checkout/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC"}
|