@reorderjs/reorder 1.0.8 → 1.1.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/.medusa/server/e2e/auth.setup.js +26 -0
- package/.medusa/server/e2e/cancellation-retention.spec.js +133 -0
- package/.medusa/server/e2e/pages/CancellationCaseDetailPage.js +69 -0
- package/.medusa/server/e2e/pages/CancellationsListPage.js +34 -0
- package/.medusa/server/e2e/pages/PlanFormPage.js +89 -0
- package/.medusa/server/e2e/pages/RenewalDetailPage.js +101 -0
- package/.medusa/server/e2e/pages/SubscriptionDetailPage.js +102 -0
- package/.medusa/server/e2e/plans-offers.spec.js +96 -0
- package/.medusa/server/e2e/renewal-force.spec.js +154 -0
- package/.medusa/server/e2e/seed.setup.js +80 -0
- package/.medusa/server/e2e/subscription-status.spec.js +109 -0
- package/.medusa/server/e2e/subscriptions-list.spec.js +84 -0
- package/.medusa/server/playwright.config.js +37 -0
- package/.medusa/server/scripts/reset-subscriptions-test-data.js +279 -0
- package/.medusa/server/scripts/seed-subscriptions-test-data.js +2425 -0
- package/.medusa/server/scripts/wipe-test-data.js +44 -0
- package/.medusa/server/src/admin/index.js +11106 -9689
- package/.medusa/server/src/admin/index.mjs +11099 -9682
- package/.medusa/server/src/admin/types/analytics.js +2 -1
- package/.medusa/server/src/api/admin/cancellations/validators.js +2 -2
- package/.medusa/server/src/api/admin/dunning/validators.js +2 -2
- package/.medusa/server/src/api/admin/renewals/validators.js +2 -2
- package/.medusa/server/src/api/admin/subscription-analytics/validators.js +2 -2
- package/.medusa/server/src/api/admin/subscription-logs/validators.js +2 -2
- package/.medusa/server/src/api/admin/subscription-offers/validators.js +2 -2
- package/.medusa/server/src/api/admin/subscription-settings/validators.js +2 -2
- package/.medusa/server/src/api/admin/subscriptions/[id]/payment-method/route.js +19 -0
- package/.medusa/server/src/api/admin/subscriptions/[id]/payment-methods/route.js +10 -0
- package/.medusa/server/src/api/admin/subscriptions/middlewares.js +8 -1
- package/.medusa/server/src/api/admin/subscriptions/utils.js +5 -1
- package/.medusa/server/src/api/admin/subscriptions/validators.js +7 -3
- package/.medusa/server/src/api/store/customers/me/subscriptions/[id]/payment-method/route.js +26 -0
- package/.medusa/server/src/api/store/customers/me/subscriptions/[id]/payment-methods/route.js +15 -0
- package/.medusa/server/src/api/store/customers/me/subscriptions/middlewares.js +8 -1
- package/.medusa/server/src/api/store/customers/me/subscriptions/utils.js +72 -1
- package/.medusa/server/src/api/store/customers/me/subscriptions/validators.js +7 -3
- package/.medusa/server/src/api/store/products/validators.js +2 -2
- package/.medusa/server/src/modules/activity-log/__tests__/create-subscription-log-event.spec.js +257 -0
- package/.medusa/server/src/modules/activity-log/__tests__/normalize-log-event.spec.js +231 -0
- package/.medusa/server/src/modules/activity-log/migrations/Migration20260818120000.js +16 -0
- package/.medusa/server/src/modules/activity-log/types/index.js +2 -1
- package/.medusa/server/src/modules/analytics/__tests__/admin-query.spec.js +560 -0
- package/.medusa/server/src/modules/analytics/index.js +2 -2
- package/.medusa/server/src/modules/analytics/utils/admin-query.js +157 -5
- package/.medusa/server/src/modules/plan-offer/__tests__/service.spec.js +94 -0
- package/.medusa/server/src/modules/renewal/__tests__/service.spec.js +89 -0
- package/.medusa/server/src/modules/settings/__tests__/normalize-settings.spec.js +86 -0
- package/.medusa/server/src/modules/settings/__tests__/service.spec.js +124 -0
- package/.medusa/server/src/modules/subscription/__tests__/payment-methods.spec.js +186 -0
- package/.medusa/server/src/modules/subscription/__tests__/service.spec.js +124 -0
- package/.medusa/server/src/modules/subscription/utils/admin-query.js +196 -14
- package/.medusa/server/src/modules/subscription/utils/payment-methods.js +146 -0
- package/.medusa/server/src/workflows/__tests__/cancel-subscription.spec.js +20 -0
- package/.medusa/server/src/workflows/__tests__/pause-subscription.spec.js +20 -0
- package/.medusa/server/src/workflows/__tests__/update-subscription-shipping-address.spec.js +49 -0
- package/.medusa/server/src/workflows/cancel-subscription.js +21 -1
- package/.medusa/server/src/workflows/index.js +6 -2
- package/.medusa/server/src/workflows/pause-subscription.js +21 -1
- package/.medusa/server/src/workflows/steps/rebuild-analytics-daily-snapshots.js +33 -10
- package/.medusa/server/src/workflows/steps/update-subscription-payment-method.js +110 -0
- package/.medusa/server/src/workflows/steps/validate-subscription-cart.js +7 -22
- package/.medusa/server/src/workflows/update-subscription-payment-method.js +65 -0
- package/.medusa/server/src/workflows/utils/analytics-incremental.js +1 -1
- package/README.md +89 -36
- package/package.json +25 -23
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.cancelSubscriptionWorkflow = void 0;
|
|
4
|
+
exports.buildCancelSubscriptionAnalyticsRebuildInput = buildCancelSubscriptionAnalyticsRebuildInput;
|
|
4
5
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
6
|
const create_subscription_log_event_1 = require("./steps/create-subscription-log-event");
|
|
6
7
|
const ensure_next_renewal_cycle_1 = require("./steps/ensure-next-renewal-cycle");
|
|
7
8
|
const cancel_subscription_1 = require("./steps/cancel-subscription");
|
|
8
9
|
const normalize_log_event_1 = require("../modules/activity-log/utils/normalize-log-event");
|
|
9
10
|
const types_1 = require("../modules/activity-log/types");
|
|
11
|
+
const rebuild_analytics_daily_snapshots_1 = require("./rebuild-analytics-daily-snapshots");
|
|
10
12
|
const date_output_1 = require("./utils/date-output");
|
|
13
|
+
const analytics_incremental_1 = require("./utils/analytics-incremental");
|
|
14
|
+
function buildCancelSubscriptionAnalyticsRebuildInput(input) {
|
|
15
|
+
return (0, analytics_incremental_1.buildAnalyticsIncrementalRebuildInput)({
|
|
16
|
+
occurred_at: input.cancelled_at ?? new Date(),
|
|
17
|
+
trigger_source: "cancel_subscription",
|
|
18
|
+
correlation_id: null,
|
|
19
|
+
triggered_by: input.triggered_by ?? null,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
11
22
|
exports.cancelSubscriptionWorkflow = (0, workflows_sdk_1.createWorkflow)("cancel-subscription", function (input) {
|
|
12
23
|
const subscriptionChange = (0, cancel_subscription_1.cancelSubscriptionStep)(input);
|
|
13
24
|
const logInput = (0, workflows_sdk_1.transform)({ subscriptionChange, input }, function ({ subscriptionChange, input }) {
|
|
@@ -55,10 +66,19 @@ exports.cancelSubscriptionWorkflow = (0, workflows_sdk_1.createWorkflow)("cancel
|
|
|
55
66
|
};
|
|
56
67
|
});
|
|
57
68
|
const renewal_cycle = (0, ensure_next_renewal_cycle_1.ensureNextRenewalCycleStep)(ensureInput);
|
|
69
|
+
const incrementalAnalyticsInput = (0, workflows_sdk_1.transform)({ subscriptionChange, input }, function ({ subscriptionChange, input }) {
|
|
70
|
+
return buildCancelSubscriptionAnalyticsRebuildInput({
|
|
71
|
+
cancelled_at: subscriptionChange.current.cancelled_at,
|
|
72
|
+
triggered_by: input.triggered_by ?? null,
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
rebuild_analytics_daily_snapshots_1.rebuildAnalyticsDailySnapshotsWorkflow.runAsStep({
|
|
76
|
+
input: incrementalAnalyticsInput,
|
|
77
|
+
});
|
|
58
78
|
return new workflows_sdk_1.WorkflowResponse({
|
|
59
79
|
subscription: subscriptionChange.current,
|
|
60
80
|
renewal_cycle,
|
|
61
81
|
});
|
|
62
82
|
});
|
|
63
83
|
exports.default = exports.cancelSubscriptionWorkflow;
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuY2VsLXN1YnNjcmlwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvY2FuY2VsLXN1YnNjcmlwdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvQkEsb0dBVUM7QUE5QkQscUVBSTBDO0FBQzFDLHlGQUFzRjtBQUN0RixpRkFBOEU7QUFDOUUscUVBR29DO0FBQ3BDLDJGQUE2RjtBQUM3Rix5REFHc0M7QUFDdEMsMkZBQTRGO0FBQzVGLHFEQUF1RDtBQUN2RCx5RUFBcUY7QUFFckYsU0FBZ0IsNENBQTRDLENBQUMsS0FHNUQ7SUFDQyxPQUFPLElBQUEsNkRBQXFDLEVBQUM7UUFDM0MsV0FBVyxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSSxJQUFJLEVBQUU7UUFDN0MsY0FBYyxFQUFFLHFCQUFxQjtRQUNyQyxjQUFjLEVBQUUsSUFBSTtRQUNwQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVksSUFBSSxJQUFJO0tBQ3pDLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFWSxRQUFBLDBCQUEwQixHQUFHLElBQUEsOEJBQWMsRUFDdEQscUJBQXFCLEVBQ3JCLFVBQVUsS0FBa0M7SUFDMUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLDRDQUFzQixFQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3hELE1BQU0sUUFBUSxHQUFHLElBQUEseUJBQVMsRUFDeEIsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsRUFDN0IsVUFBVSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRTtRQUNyQyxPQUFPO1lBQ0wsU0FBUyxFQUFFLElBQUEsK0NBQXlCLEVBQUM7Z0JBQ25DLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDOUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxXQUFXO2dCQUNuRCxVQUFVLEVBQUUsNEJBQW9CLENBQUMscUJBQXFCO2dCQUN0RCxVQUFVLEVB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
|
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.rebuildAnalyticsDailySnapshotsWorkflowDefault = exports.rebuildAnalyticsDailySnapshotsWorkflow = exports.updateDunningRetryScheduleWorkflowDefault = exports.updateDunningRetryScheduleWorkflow = exports.markDunningUnrecoveredWorkflowDefault = exports.markDunningUnrecoveredWorkflow = exports.markDunningRecoveredWorkflowDefault = exports.markDunningRecoveredWorkflow = exports.runDunningRetryWorkflowDefault = exports.runDunningRetryWorkflow = exports.updateCancellationReasonWorkflowDefault = exports.updateCancellationReasonWorkflow = exports.finalizeCancellationWorkflowDefault = exports.finalizeCancellationWorkflow = exports.applyRetentionOfferWorkflowDefault = exports.applyRetentionOfferWorkflow = exports.startCancellationCaseWorkflowDefault = exports.startCancellationCaseWorkflow = exports.startDunningWorkflowDefault = exports.startDunningWorkflow = exports.rejectRenewalChangesWorkflowDefault = exports.rejectRenewalChangesWorkflow = exports.approveRenewalChangesWorkflowDefault = exports.approveRenewalChangesWorkflow = exports.forceRenewalCycleWorkflowDefault = exports.forceRenewalCycleWorkflow = exports.ensureNextRenewalCycleWorkflowDefault = exports.ensureNextRenewalCycleWorkflow = exports.processRenewalCycleWorkflowDefault = exports.processRenewalCycleWorkflow = exports.togglePlanOfferWorkflowDefault = exports.togglePlanOfferWorkflow = exports.updatePlanOfferWorkflowDefault = exports.updatePlanOfferWorkflow = exports.createOrUpsertPlanOfferWorkflowDefault = exports.createOrUpsertPlanOfferWorkflow = exports.skipNextDeliveryWorkflowDefault = exports.skipNextDeliveryWorkflow = exports.updateSubscriptionPaymentMethodWorkflowDefault = exports.updateSubscriptionPaymentMethodWorkflow = exports.updateSubscriptionShippingAddressWorkflowDefault = exports.updateSubscriptionShippingAddressWorkflow = exports.scheduleSubscriptionPlanChangeWorkflowDefault = exports.scheduleSubscriptionPlanChangeWorkflow = exports.resumeSubscriptionWorkflowDefault = exports.resumeSubscriptionWorkflow = exports.pauseSubscriptionWorkflowDefault = exports.pauseSubscriptionWorkflow = exports.cancelSubscriptionWorkflowDefault = exports.cancelSubscriptionWorkflow = void 0;
|
|
7
|
+
exports.updateSubscriptionSettingsWorkflowDefault = exports.updateSubscriptionSettingsWorkflow = void 0;
|
|
7
8
|
var cancel_subscription_1 = require("./cancel-subscription");
|
|
8
9
|
Object.defineProperty(exports, "cancelSubscriptionWorkflow", { enumerable: true, get: function () { return cancel_subscription_1.cancelSubscriptionWorkflow; } });
|
|
9
10
|
Object.defineProperty(exports, "cancelSubscriptionWorkflowDefault", { enumerable: true, get: function () { return __importDefault(cancel_subscription_1).default; } });
|
|
@@ -19,6 +20,9 @@ Object.defineProperty(exports, "scheduleSubscriptionPlanChangeWorkflowDefault",
|
|
|
19
20
|
var update_subscription_shipping_address_1 = require("./update-subscription-shipping-address");
|
|
20
21
|
Object.defineProperty(exports, "updateSubscriptionShippingAddressWorkflow", { enumerable: true, get: function () { return update_subscription_shipping_address_1.updateSubscriptionShippingAddressWorkflow; } });
|
|
21
22
|
Object.defineProperty(exports, "updateSubscriptionShippingAddressWorkflowDefault", { enumerable: true, get: function () { return __importDefault(update_subscription_shipping_address_1).default; } });
|
|
23
|
+
var update_subscription_payment_method_1 = require("./update-subscription-payment-method");
|
|
24
|
+
Object.defineProperty(exports, "updateSubscriptionPaymentMethodWorkflow", { enumerable: true, get: function () { return update_subscription_payment_method_1.updateSubscriptionPaymentMethodWorkflow; } });
|
|
25
|
+
Object.defineProperty(exports, "updateSubscriptionPaymentMethodWorkflowDefault", { enumerable: true, get: function () { return __importDefault(update_subscription_payment_method_1).default; } });
|
|
22
26
|
var skip_next_delivery_1 = require("./skip-next-delivery");
|
|
23
27
|
Object.defineProperty(exports, "skipNextDeliveryWorkflow", { enumerable: true, get: function () { return skip_next_delivery_1.skipNextDeliveryWorkflow; } });
|
|
24
28
|
Object.defineProperty(exports, "skipNextDeliveryWorkflowDefault", { enumerable: true, get: function () { return __importDefault(skip_next_delivery_1).default; } });
|
|
@@ -79,4 +83,4 @@ Object.defineProperty(exports, "rebuildAnalyticsDailySnapshotsWorkflowDefault",
|
|
|
79
83
|
var update_subscription_settings_1 = require("./update-subscription-settings");
|
|
80
84
|
Object.defineProperty(exports, "updateSubscriptionSettingsWorkflow", { enumerable: true, get: function () { return update_subscription_settings_1.updateSubscriptionSettingsWorkflow; } });
|
|
81
85
|
Object.defineProperty(exports, "updateSubscriptionSettingsWorkflowDefault", { enumerable: true, get: function () { return __importDefault(update_subscription_settings_1).default; } });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSw2REFHOEI7QUFGNUIsaUlBQUEsMEJBQTBCLE9BQUE7QUFDMUIseUpBQUEsT0FBTyxPQUFxQztBQUU5QywyREFHNkI7QUFGM0IsK0hBQUEseUJBQXlCLE9BQUE7QUFDekIsdUpBQUEsT0FBTyxPQUFvQztBQUU3Qyw2REFHOEI7QUFGNUIsaUlBQUEsMEJBQTBCLE9BQUE7QUFDMUIseUpBQUEsT0FBTyxPQUFxQztBQUU5Qyx5RkFHNEM7QUFGMUMsMkpBQUEsc0NBQXNDLE9BQUE7QUFDdEMsbUxBQUEsT0FBTyxPQUFpRDtBQUUxRCwrRkFHK0M7QUFGN0MsaUtBQUEseUNBQXlDLE9BQUE7QUFDekMseUxBQUEsT0FBTyxPQUFvRDtBQUU3RCwyRkFHNkM7QUFGM0MsNkpBQUEsdUNBQXVDLE9BQUE7QUFDdkMscUxBQUEsT0FBTyxPQUFrRDtBQUUzRCwyREFHNkI7QUFGM0IsOEhBQUEsd0JBQXdCLE9BQUE7QUFDeEIsc0pBQUEsT0FBTyxPQUFtQztBQUU1Qyw2RUFHc0M7QUFGcEMsOElBQUEsK0JBQStCLE9BQUE7QUFDL0Isc0tBQUEsT0FBTyxPQUEwQztBQUVuRCx5REFHNEI7QUFGMUIsNEhBQUEsdUJBQXVCLE9BQUE7QUFDdkIsb0pBQUEsT0FBTyxPQUFrQztBQUUzQyx5REFHNEI7QUFGMUIsNEhBQUEsdUJBQXVCLE9BQUE7QUFDdkIsb0pBQUEsT0FBTyxPQUFrQztBQUUzQyxpRUFHZ0M7QUFGOUIsb0lBQUEsMkJBQTJCLE9BQUE7QUFDM0IsNEpBQUEsT0FBTyxPQUFzQztBQUUvQyx5RUFHb0M7QUFGbEMsMklBQUEsOEJBQThCLE9BQUE7QUFDOUIsbUtBQUEsT0FBTyxPQUF5QztBQUVsRCw2REFHOEI7QUFGNUIsZ0lBQUEseUJBQXlCLE9BQUE7QUFDekIsd0pBQUEsT0FBTyxPQUFvQztBQUU3QyxxRUFHa0M7QUFGaEMsd0lBQUEsNkJBQTZCLE9BQUE7QUFDN0IsZ0tBQUEsT0FBTyxPQUF3QztBQUVqRCxtRUFHaUM7QUFGL0Isc0lBQUEsNEJBQTRCLE9BQUE7QUFDNUIsOEpBQUEsT0FBTyxPQUF1QztBQUVoRCxpREFHd0I7QUFGdEIscUhBQUEsb0JBQW9CLE9BQUE7QUFDcEIsNklBQUEsT0FBTyxPQUErQjtBQUV4QyxxRUFHa0M7QUFGaEMsd0lBQUEsNkJBQTZCLE9BQUE7QUFDN0IsZ0tBQUEsT0FBTyxPQUF3QztBQUVqRCxpRUFHZ0M7QUFGOUIsb0lBQUEsMkJBQTJCLE9BQUE7QUFDM0IsNEpBQUEsT0FBTyxPQUFzQztBQUUvQyxpRUFHZ0M7QUFGOUIscUlBQUEsNEJBQTRCLE9BQUE7QUFDNUIsNkpBQUEsT0FBTyxPQUF1QztBQUVoRCwyRUFHcUM7QUFGbkMsOElBQUEsZ0NBQWdDLE9BQUE7QUFDaEMsc0tBQUEsT0FBTyxPQUEyQztBQUVwRCx5REFHNEI7QUFGMUIsNEhBQUEsdUJBQXVCLE9BQUE7QUFDdkIsb0pBQUEsT0FBTyxPQUFrQztBQUUzQyxtRUFHaUM7QUFGL0Isc0lBQUEsNEJBQTRCLE9BQUE7QUFDNUIsOEpBQUEsT0FBTyxPQUF1QztBQUVoRCx1RUFHbUM7QUFGakMsMElBQUEsOEJBQThCLE9BQUE7QUFDOUIsa0tBQUEsT0FBTyxPQUF5QztBQUVsRCxpRkFHd0M7QUFGdEMsbUpBQUEsa0NBQWtDLE9BQUE7QUFDbEMsMktBQUEsT0FBTyxPQUE2QztBQUV0RCx5RkFHNEM7QUFGMUMsMkpBQUEsc0NBQXNDLE9BQUE7QUFDdEMsbUxBQUEsT0FBTyxPQUFpRDtBQUUxRCwrRUFHdUM7QUFGckMsa0pBQUEsa0NBQWtDLE9BQUE7QUFDbEMsMEtBQUEsT0FBTyxPQUE2QyJ9
|
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.pauseSubscriptionWorkflow = void 0;
|
|
4
|
+
exports.buildPauseSubscriptionAnalyticsRebuildInput = buildPauseSubscriptionAnalyticsRebuildInput;
|
|
4
5
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
6
|
const create_subscription_log_event_1 = require("./steps/create-subscription-log-event");
|
|
6
7
|
const ensure_next_renewal_cycle_1 = require("./steps/ensure-next-renewal-cycle");
|
|
7
8
|
const pause_subscription_1 = require("./steps/pause-subscription");
|
|
8
9
|
const normalize_log_event_1 = require("../modules/activity-log/utils/normalize-log-event");
|
|
9
10
|
const types_1 = require("../modules/activity-log/types");
|
|
11
|
+
const rebuild_analytics_daily_snapshots_1 = require("./rebuild-analytics-daily-snapshots");
|
|
10
12
|
const date_output_1 = require("./utils/date-output");
|
|
13
|
+
const analytics_incremental_1 = require("./utils/analytics-incremental");
|
|
14
|
+
function buildPauseSubscriptionAnalyticsRebuildInput(input) {
|
|
15
|
+
return (0, analytics_incremental_1.buildAnalyticsIncrementalRebuildInput)({
|
|
16
|
+
occurred_at: input.paused_at ?? new Date(),
|
|
17
|
+
trigger_source: "pause_subscription",
|
|
18
|
+
correlation_id: null,
|
|
19
|
+
triggered_by: input.triggered_by ?? null,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
11
22
|
exports.pauseSubscriptionWorkflow = (0, workflows_sdk_1.createWorkflow)("pause-subscription", function (input) {
|
|
12
23
|
const subscriptionChange = (0, pause_subscription_1.pauseSubscriptionStep)(input);
|
|
13
24
|
const logInput = (0, workflows_sdk_1.transform)({ subscriptionChange, input }, function ({ subscriptionChange, input }) {
|
|
@@ -52,10 +63,19 @@ exports.pauseSubscriptionWorkflow = (0, workflows_sdk_1.createWorkflow)("pause-s
|
|
|
52
63
|
};
|
|
53
64
|
});
|
|
54
65
|
const renewal_cycle = (0, ensure_next_renewal_cycle_1.ensureNextRenewalCycleStep)(ensureInput);
|
|
66
|
+
const incrementalAnalyticsInput = (0, workflows_sdk_1.transform)({ subscriptionChange, input }, function ({ subscriptionChange, input }) {
|
|
67
|
+
return buildPauseSubscriptionAnalyticsRebuildInput({
|
|
68
|
+
paused_at: subscriptionChange.current.paused_at,
|
|
69
|
+
triggered_by: input.triggered_by ?? null,
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
rebuild_analytics_daily_snapshots_1.rebuildAnalyticsDailySnapshotsWorkflow.runAsStep({
|
|
73
|
+
input: incrementalAnalyticsInput,
|
|
74
|
+
});
|
|
55
75
|
return new workflows_sdk_1.WorkflowResponse({
|
|
56
76
|
subscription: subscriptionChange.current,
|
|
57
77
|
renewal_cycle,
|
|
58
78
|
});
|
|
59
79
|
});
|
|
60
80
|
exports.default = exports.pauseSubscriptionWorkflow;
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF1c2Utc3Vic2NyaXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wYXVzZS1zdWJzY3JpcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBb0JBLGtHQVVDO0FBOUJELHFFQUkwQztBQUMxQyx5RkFBc0Y7QUFDdEYsaUZBQThFO0FBQzlFLG1FQUdtQztBQUNuQywyRkFBNkY7QUFDN0YseURBR3NDO0FBQ3RDLDJGQUE0RjtBQUM1RixxREFBdUQ7QUFDdkQseUVBQXFGO0FBRXJGLFNBQWdCLDJDQUEyQyxDQUFDLEtBRzNEO0lBQ0MsT0FBTyxJQUFBLDZEQUFxQyxFQUFDO1FBQzNDLFdBQVcsRUFBRSxLQUFLLENBQUMsU0FBUyxJQUFJLElBQUksSUFBSSxFQUFFO1FBQzFDLGNBQWMsRUFBRSxvQkFBb0I7UUFDcEMsY0FBYyxFQUFFLElBQUk7UUFDcEIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSTtLQUN6QyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRVksUUFBQSx5QkFBeUIsR0FBRyxJQUFBLDhCQUFjLEVBQ3JELG9CQUFvQixFQUNwQixVQUFVLEtBQWlDO0lBQ3pDLE1BQU0sa0JBQWtCLEdBQUcsSUFBQSwwQ0FBcUIsRUFBQyxLQUFLLENBQUMsQ0FBQTtJQUN2RCxNQUFNLFFBQVEsR0FBRyxJQUFBLHlCQUFTLEVBQ3hCLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLEVBQzdCLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUU7UUFDckMsT0FBTztZQUNMLFNBQVMsRUFBRSxJQUFBLCtDQUF5QixFQUFDO2dCQUNuQyxlQUFlLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzlDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsV0FBVztnQkFDbkQsVUFBVSxFQUFFLDRCQUFvQixDQUFDLG1CQUFtQjtnQkFDcEQsVUFBVSxFQUFF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
|
|
@@ -97,6 +97,8 @@ async function listSubscriptionsForDay(container, dayEnd, batchSize, offset) {
|
|
|
97
97
|
"started_at",
|
|
98
98
|
"paused_at",
|
|
99
99
|
"cancel_effective_at",
|
|
100
|
+
"orders.id",
|
|
101
|
+
"orders.created_at",
|
|
100
102
|
],
|
|
101
103
|
filters: {
|
|
102
104
|
started_at: {
|
|
@@ -260,10 +262,30 @@ async function rebuildSingleDay(container, analyticsModule, input, dayIso) {
|
|
|
260
262
|
latestRenewalBySubscription.set(renewalCycle.subscription_id, renewalCycle);
|
|
261
263
|
}
|
|
262
264
|
}
|
|
263
|
-
const
|
|
264
|
-
|
|
265
|
-
.
|
|
266
|
-
|
|
265
|
+
const orderIdsToFetch = new Set();
|
|
266
|
+
for (const cycle of latestRenewalBySubscription.values()) {
|
|
267
|
+
if (cycle.generated_order_id) {
|
|
268
|
+
orderIdsToFetch.add(cycle.generated_order_id);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
const latestOrderBySubscription = new Map();
|
|
272
|
+
for (const subscription of subscriptions) {
|
|
273
|
+
const orders = subscription.orders ?? [];
|
|
274
|
+
let latestId = null;
|
|
275
|
+
let latestCreatedAt = 0;
|
|
276
|
+
for (const order of orders) {
|
|
277
|
+
const createdAt = new Date(order.created_at).getTime();
|
|
278
|
+
if (createdAt <= dayEnd.getTime() && createdAt > latestCreatedAt) {
|
|
279
|
+
latestCreatedAt = createdAt;
|
|
280
|
+
latestId = order.id;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
if (latestId) {
|
|
284
|
+
latestOrderBySubscription.set(subscription.id, latestId);
|
|
285
|
+
orderIdsToFetch.add(latestId);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
const orders = await listOrders(container, Array.from(orderIdsToFetch));
|
|
267
289
|
const ordersById = new Map(orders.map((order) => [order.id, order]));
|
|
268
290
|
for (const subscription of subscriptions) {
|
|
269
291
|
const lifecycleEvent = latestLifecycleEventBySubscription.get(subscription.id) ?? null;
|
|
@@ -271,10 +293,11 @@ async function rebuildSingleDay(container, analyticsModule, input, dayIso) {
|
|
|
271
293
|
const isActive = derivedStatus === types_3.SubscriptionStatus.ACTIVE;
|
|
272
294
|
const churnEvent = churnBySubscription.get(subscription.id) ?? null;
|
|
273
295
|
const latestRenewal = latestRenewalBySubscription.get(subscription.id) ?? null;
|
|
274
|
-
const
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
const
|
|
296
|
+
const latestOrderId = latestRenewal?.generated_order_id ??
|
|
297
|
+
latestOrderBySubscription.get(subscription.id) ??
|
|
298
|
+
null;
|
|
299
|
+
const latestOrder = latestOrderId ? ordersById.get(latestOrderId) ?? null : null;
|
|
300
|
+
const orderTotal = latestOrder ? Number(latestOrder?.total ?? 0) : null;
|
|
278
301
|
const mrrAmount = isActive && latestOrder && Number.isFinite(orderTotal)
|
|
279
302
|
? normalizeMonthlyRecurringValue(orderTotal, subscription.frequency_interval, subscription.frequency_value)
|
|
280
303
|
: null;
|
|
@@ -297,7 +320,7 @@ async function rebuildSingleDay(container, analyticsModule, input, dayIso) {
|
|
|
297
320
|
lifecycle_event_type: lifecycleEvent?.event_type ?? null,
|
|
298
321
|
dunning_open_at_day_end: openDunningBySubscription.get(subscription.id) ?? false,
|
|
299
322
|
renewal_order_id: latestRenewal?.generated_order_id ?? null,
|
|
300
|
-
revenue_source:
|
|
323
|
+
revenue_source: latestOrderId ? "order" : "unavailable",
|
|
301
324
|
churn_source: churnEvent ? "cancellation_case" : null,
|
|
302
325
|
},
|
|
303
326
|
metadata: {
|
|
@@ -516,4 +539,4 @@ exports.rebuildAnalyticsDailySnapshotsStep = (0, workflows_sdk_1.createStep)("re
|
|
|
516
539
|
failed_days: failedDays,
|
|
517
540
|
});
|
|
518
541
|
});
|
|
519
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVidWlsZC1hbmFseXRpY3MtZGFpbHktc25hcHNob3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy9yZWJ1aWxkLWFuYWx5dGljcy1kYWlseS1zbmFwc2hvdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTRFO0FBRTVFLHFEQUE4RTtBQUM5RSx1REFFZ0M7QUFFaEMsaUVBQTZFO0FBQzdFLDZFQUE2RjtBQUM3RiwrRUFNb0Q7QUFDcEQsNERBR3lDO0FBQ3pDLDREQUV5QztBQUN6Qyw0REFHeUM7QUFzSHpDLFNBQVMsUUFBUSxDQUFDLFNBQTBCO0lBQzFDLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBWSxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUN0RSxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsU0FBMEI7SUFDNUMsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFpQixlQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDM0QsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLElBQVU7SUFDOUIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUN4QyxDQUFDO0FBRUQsU0FBUywwQkFBMEIsQ0FBQyxLQUErQztJQUNqRixPQUFPLDZCQUE2QixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUE7QUFDbEcsQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsUUFBYztJQUM5QyxPQUFPLHVCQUF1QixZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQTtBQUN4RCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsTUFBYztJQUNuQyxPQUFPLElBQUks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
|
|
542
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVidWlsZC1hbmFseXRpY3MtZGFpbHktc25hcHNob3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy9yZWJ1aWxkLWFuYWx5dGljcy1kYWlseS1zbmFwc2hvdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTRFO0FBRTVFLHFEQUE4RTtBQUM5RSx1REFFZ0M7QUFFaEMsaUVBQTZFO0FBQzdFLDZFQUE2RjtBQUM3RiwrRUFNb0Q7QUFDcEQsNERBR3lDO0FBQ3pDLDREQUV5QztBQUN6Qyw0REFHeUM7QUFzSHpDLFNBQVMsUUFBUSxDQUFDLFNBQTBCO0lBQzFDLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBWSxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUN0RSxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsU0FBMEI7SUFDNUMsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFpQixlQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDM0QsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLElBQVU7SUFDOUIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUN4QyxDQUFDO0FBRUQsU0FBUywwQkFBMEIsQ0FBQyxLQUErQztJQUNqRixPQUFPLDZCQUE2QixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUE7QUFDbEcsQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsUUFBYztJQUM5QyxPQUFPLHVCQUF1QixZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQTtBQUN4RCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsTUFBYztJQUNuQyxPQUFPLElBQUks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
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateSubscriptionPaymentMethodStep = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const subscription_1 = require("../../modules/subscription");
|
|
6
|
+
const types_1 = require("../../modules/subscription/types");
|
|
7
|
+
const errors_1 = require("../../modules/subscription/utils/errors");
|
|
8
|
+
const payment_methods_1 = require("../../modules/subscription/utils/payment-methods");
|
|
9
|
+
const pause_subscription_1 = require("./pause-subscription");
|
|
10
|
+
const UPDATABLE_STATUSES = [
|
|
11
|
+
types_1.SubscriptionStatus.ACTIVE,
|
|
12
|
+
types_1.SubscriptionStatus.PAUSED,
|
|
13
|
+
types_1.SubscriptionStatus.PAST_DUE,
|
|
14
|
+
];
|
|
15
|
+
exports.updateSubscriptionPaymentMethodStep = (0, workflows_sdk_1.createStep)("update-subscription-payment-method", async function (input, { container }) {
|
|
16
|
+
const subscriptionModuleService = container.resolve(subscription_1.SUBSCRIPTION_MODULE);
|
|
17
|
+
const subscription = await subscriptionModuleService.retrieveSubscription(input.id);
|
|
18
|
+
if (!UPDATABLE_STATUSES.includes(subscription.status)) {
|
|
19
|
+
throw errors_1.subscriptionErrors.invalidState(input.id, "update payment method", subscription.status);
|
|
20
|
+
}
|
|
21
|
+
if (!input.payment_method_id.trim()) {
|
|
22
|
+
throw errors_1.subscriptionErrors.invalidData("payment_method_id is required");
|
|
23
|
+
}
|
|
24
|
+
const paymentContext = (subscription.payment_context ??
|
|
25
|
+
null);
|
|
26
|
+
const providerId = input.provider_id?.trim() || paymentContext?.payment_provider_id || null;
|
|
27
|
+
if (!providerId) {
|
|
28
|
+
throw errors_1.subscriptionErrors.invalidData(`Subscription '${input.id}' has no payment provider configured, so 'provider_id' is required`);
|
|
29
|
+
}
|
|
30
|
+
const resolved = await (0, payment_methods_1.resolveCustomerPaymentMethod)(container, {
|
|
31
|
+
customer_id: subscription.customer_id,
|
|
32
|
+
provider_id: providerId,
|
|
33
|
+
payment_method_id: input.payment_method_id.trim(),
|
|
34
|
+
});
|
|
35
|
+
const previousPaymentMethod = await resolvePreviousPaymentMethod(container, subscription.customer_id, paymentContext);
|
|
36
|
+
const updatedAt = new Date().toISOString();
|
|
37
|
+
const updated = await subscriptionModuleService.updateSubscriptions({
|
|
38
|
+
id: input.id,
|
|
39
|
+
payment_context: {
|
|
40
|
+
payment_provider_id: providerId,
|
|
41
|
+
source_payment_collection_id: paymentContext?.source_payment_collection_id ?? null,
|
|
42
|
+
source_payment_session_id: paymentContext?.source_payment_session_id ?? null,
|
|
43
|
+
payment_method_reference: resolved.summary.id,
|
|
44
|
+
customer_payment_reference: readAccountHolderReference(resolved.account_holder) ??
|
|
45
|
+
paymentContext?.customer_payment_reference ??
|
|
46
|
+
null,
|
|
47
|
+
},
|
|
48
|
+
metadata: {
|
|
49
|
+
...(subscription.metadata ?? {}),
|
|
50
|
+
payment_method_update_context: {
|
|
51
|
+
triggered_by: input.triggered_by ?? null,
|
|
52
|
+
updated_at: updatedAt,
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
return new workflows_sdk_1.StepResponse({
|
|
57
|
+
current: (0, pause_subscription_1.asSubscriptionWorkflowRecord)(updated),
|
|
58
|
+
previous: (0, pause_subscription_1.asSubscriptionWorkflowRecord)(subscription),
|
|
59
|
+
previous_payment_method: previousPaymentMethod,
|
|
60
|
+
current_payment_method: resolved.summary,
|
|
61
|
+
}, (0, pause_subscription_1.asSubscriptionWorkflowRecord)(subscription));
|
|
62
|
+
}, async function (subscription, { container }) {
|
|
63
|
+
if (!subscription) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const subscriptionModuleService = container.resolve(subscription_1.SUBSCRIPTION_MODULE);
|
|
67
|
+
await subscriptionModuleService.updateSubscriptions((0, pause_subscription_1.asSubscriptionUpdateInput)(subscription));
|
|
68
|
+
});
|
|
69
|
+
/**
|
|
70
|
+
* Resolves the card details of the currently stored payment method so the
|
|
71
|
+
* activity log can record what the payment method was changed from.
|
|
72
|
+
*
|
|
73
|
+
* The provider lookup is best effort: a removed or unreachable payment method
|
|
74
|
+
* must not block the update.
|
|
75
|
+
*/
|
|
76
|
+
async function resolvePreviousPaymentMethod(container, customerId, paymentContext) {
|
|
77
|
+
if (!paymentContext?.payment_provider_id ||
|
|
78
|
+
!paymentContext.payment_method_reference) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
try {
|
|
82
|
+
const previous = await (0, payment_methods_1.resolveCustomerPaymentMethod)(container, {
|
|
83
|
+
customer_id: customerId,
|
|
84
|
+
provider_id: paymentContext.payment_provider_id,
|
|
85
|
+
payment_method_id: paymentContext.payment_method_reference,
|
|
86
|
+
});
|
|
87
|
+
return previous.summary;
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return {
|
|
91
|
+
id: paymentContext.payment_method_reference,
|
|
92
|
+
provider_id: paymentContext.payment_provider_id,
|
|
93
|
+
type: null,
|
|
94
|
+
brand: null,
|
|
95
|
+
last4: null,
|
|
96
|
+
exp_month: null,
|
|
97
|
+
exp_year: null,
|
|
98
|
+
created_at: null,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function readAccountHolderReference(accountHolder) {
|
|
103
|
+
if (typeof accountHolder.external_id === "string" &&
|
|
104
|
+
accountHolder.external_id.trim()) {
|
|
105
|
+
return accountHolder.external_id.trim();
|
|
106
|
+
}
|
|
107
|
+
const data = accountHolder.data ?? {};
|
|
108
|
+
return typeof data.id === "string" && data.id.trim() ? data.id.trim() : null;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXN1YnNjcmlwdGlvbi1wYXltZW50LW1ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvc3RlcHMvdXBkYXRlLXN1YnNjcmlwdGlvbi1wYXltZW50LW1ldGhvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxRUFBNEU7QUFDNUUsNkRBQWdFO0FBRWhFLDREQUl5QztBQUN6QyxvRUFBNEU7QUFDNUUsc0ZBQStGO0FBQy9GLDZEQUk2QjtBQWdCN0IsTUFBTSxrQkFBa0IsR0FBRztJQUN6QiwwQkFBa0IsQ0FBQyxNQUFNO0lBQ3pCLDBCQUFrQixDQUFDLE1BQU07SUFDekIsMEJBQWtCLENBQUMsUUFBUTtDQUM1QixDQUFBO0FBRVksUUFBQSxtQ0FBbUMsR0FBRyxJQUFBLDBCQUFVLEVBQzNELG9DQUFvQyxFQUNwQyxLQUFLLFdBQ0gsS0FBK0MsRUFDL0MsRUFBRSxTQUFTLEVBQUU7SUFFYixNQUFNLHlCQUF5QixHQUM3QixTQUFTLENBQUMsT0FBTyxDQUFDLGtDQUFtQixDQUFDLENBQUE7SUFFeEMsTUFBTSxZQUFZLEdBQUcsTUFBTSx5QkFBeUIsQ0FBQyxvQkFBb0IsQ0FDdkUsS0FBSyxDQUFDLEVBQUUsQ0FDVCxDQUFBO0lBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBNEIsQ0FBQyxFQUFFLENBQUM7UUFDNUUsTUFBTSwyQkFBa0IsQ0FBQyxZQUFZLENBQ25DLEtBQUssQ0FBQyxFQUFFLEVBQ1IsdUJBQXVCLEVBQ3ZCLFlBQVksQ0FBQyxNQUFNLENBQ3BCLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sMkJBQWtCLENBQUMsV0FBVyxDQUFDLCtCQUErQixDQUFDLENBQUE7SUFDdkUsQ0FBQztJQUVELE1BQU0sY0FBYyxH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
|
|
@@ -6,6 +6,7 @@ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
|
6
6
|
const effective_config_1 = require("../../modules/plan-offer/utils/effective-config");
|
|
7
7
|
const types_1 = require("../../modules/subscription/types");
|
|
8
8
|
const errors_1 = require("../../modules/subscription/utils/errors");
|
|
9
|
+
const payment_methods_1 = require("../../modules/subscription/utils/payment-methods");
|
|
9
10
|
exports.validateSubscriptionCartStep = (0, workflows_sdk_1.createStep)("validate-subscription-cart", async function (input, { container }) {
|
|
10
11
|
const cart = await loadCart(container, input.cart_id);
|
|
11
12
|
if (cart.completed_at) {
|
|
@@ -235,7 +236,7 @@ async function resolveSavedPaymentMethodReference(container, customer, providerI
|
|
|
235
236
|
throw errors_1.subscriptionErrors.invalidData(`Subscription checkout requires a saved payment account holder for provider '${providerId}'`);
|
|
236
237
|
}
|
|
237
238
|
const paymentModule = container.resolve(utils_1.Modules.PAYMENT);
|
|
238
|
-
const paymentMethods = await paymentModule.listPaymentMethods({
|
|
239
|
+
const paymentMethods = (await paymentModule.listPaymentMethods({
|
|
239
240
|
provider_id: providerId,
|
|
240
241
|
context: {
|
|
241
242
|
account_holder: {
|
|
@@ -243,31 +244,15 @@ async function resolveSavedPaymentMethodReference(container, customer, providerI
|
|
|
243
244
|
data: accountHolder.data ?? {},
|
|
244
245
|
},
|
|
245
246
|
},
|
|
246
|
-
});
|
|
247
|
-
const latestPaymentMethod = paymentMethods
|
|
248
|
-
.
|
|
249
|
-
.
|
|
250
|
-
const leftCreated = readNumericTimestamp(left.data?.created);
|
|
251
|
-
const rightCreated = readNumericTimestamp(right.data?.created);
|
|
252
|
-
return rightCreated - leftCreated;
|
|
253
|
-
})[0];
|
|
247
|
+
}));
|
|
248
|
+
const latestPaymentMethod = (0, payment_methods_1.sortPaymentMethodSummaries)((paymentMethods ?? [])
|
|
249
|
+
.filter((paymentMethod) => !!paymentMethod?.id)
|
|
250
|
+
.map((paymentMethod) => (0, payment_methods_1.toPaymentMethodSummary)(paymentMethod, providerId)))[0];
|
|
254
251
|
if (!latestPaymentMethod?.id) {
|
|
255
252
|
throw errors_1.subscriptionErrors.invalidData(`Subscription checkout requires at least one saved payment method for provider '${providerId}'`);
|
|
256
253
|
}
|
|
257
254
|
return latestPaymentMethod.id;
|
|
258
255
|
}
|
|
259
|
-
function readNumericTimestamp(value) {
|
|
260
|
-
if (typeof value === "number" && Number.isFinite(value)) {
|
|
261
|
-
return value;
|
|
262
|
-
}
|
|
263
|
-
if (typeof value === "string") {
|
|
264
|
-
const parsed = Number.parseInt(value, 10);
|
|
265
|
-
if (Number.isFinite(parsed)) {
|
|
266
|
-
return parsed;
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
return 0;
|
|
270
|
-
}
|
|
271
256
|
function readString(value) {
|
|
272
257
|
if (typeof value !== "string" || !value.trim()) {
|
|
273
258
|
throw errors_1.subscriptionErrors.invalidData("Subscription checkout requires complete address data");
|
|
@@ -277,4 +262,4 @@ function readString(value) {
|
|
|
277
262
|
function readNullableString(value) {
|
|
278
263
|
return typeof value === "string" && value.trim() ? value.trim() : null;
|
|
279
264
|
}
|
|
280
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtc3Vic2NyaXB0aW9uLWNhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N0ZXBzL3ZhbGlkYXRlLXN1YnNjcmlwdGlvbi1jYXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUE4RTtBQUM5RSxxRUFBNEU7QUFFNUUsc0ZBQWtHO0FBQ2xHLDREQU15QztBQUN6QyxvRUFBNEU7QUFxRS9ELFFBQUEsNEJBQTRCLEdBQUcsSUFBQSwwQkFBVSxFQUNwRCw0QkFBNEIsRUFDNUIsS0FBSyxXQUNILEtBQXdDLEVBQ3hDLEVBQUUsU0FBUyxFQUFFO0lBRWIsTUFBTSxJQUFJLEdBQUcsTUFBTSxRQUFRLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUVyRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixNQUFNLDJCQUFrQixDQUFDLFFBQVEsQ0FDL0IsU0FBUyxLQUFLLENBQUMsT0FBTyx3QkFBd0IsQ0FDL0MsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sMkJBQWtCLENBQUMsV0FBVyxDQUNsQyw0REFBNEQsQ0FDN0QsQ0FBQTtJQUNILENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFdkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUE7SUFDOUIsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDOUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUNsQyxDQUFBO0lBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzlCLE1BQU0sMkJBQWtCLENBQUMsV0FBVyxDQUNsQyx5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
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtc3Vic2NyaXB0aW9uLWNhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N0ZXBzL3ZhbGlkYXRlLXN1YnNjcmlwdGlvbi1jYXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUE4RTtBQUM5RSxxRUFBNEU7QUFFNUUsc0ZBQWtHO0FBQ2xHLDREQU95QztBQUN6QyxvRUFBNEU7QUFDNUUsc0ZBR3lEO0FBcUU1QyxRQUFBLDRCQUE0QixHQUFHLElBQUEsMEJBQVUsRUFDcEQsNEJBQTRCLEVBQzVCLEtBQUssV0FDSCxLQUF3QyxFQUN4QyxFQUFFLFNBQVMsRUFBRTtJQUViLE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFckQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsTUFBTSwyQkFBa0IsQ0FBQyxRQUFRLENBQy9CLFNBQVMsS0FBSyxDQUFDLE9BQU8sd0JBQXdCLENBQy9DLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QixNQUFNLDJCQUFrQixDQUFDLFdBQVcsQ0FDbEMsNERBQTRELENBQzdELENBQUE7SUFDSCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRXZDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFBO0lBQzlCLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQzlDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDbEMsQ0FBQTtJQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM5QixNQUFNLDJCQUFrQixDQUFD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
|