@mercurjs/core 2.3.9-canary.4 → 2.3.9-canary.6
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/src/api/admin/middlewares.js +41 -39
- package/.medusa/server/src/api/admin/payout-accounts/[id]/refresh-link/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/payout-accounts/[id]/refresh-link/route.js +14 -0
- package/.medusa/server/src/api/admin/payout-accounts/[id]/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/payout-accounts/[id]/route.js +18 -0
- package/.medusa/server/src/api/admin/payout-accounts/[id]/sync/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/payout-accounts/[id]/sync/route.js +14 -0
- package/.medusa/server/src/api/admin/payout-accounts/helpers.d.ts +2 -0
- package/.medusa/server/src/api/admin/payout-accounts/helpers.js +7 -0
- package/.medusa/server/src/api/admin/payout-accounts/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/payout-accounts/middlewares.js +45 -0
- package/.medusa/server/src/api/admin/payout-accounts/query-config.d.ts +11 -0
- package/.medusa/server/src/api/admin/payout-accounts/query-config.js +26 -0
- package/.medusa/server/src/api/admin/payout-accounts/route.d.ts +5 -0
- package/.medusa/server/src/api/admin/payout-accounts/route.js +31 -0
- package/.medusa/server/src/api/admin/payout-accounts/validators.d.ts +51 -0
- package/.medusa/server/src/api/admin/payout-accounts/validators.js +22 -0
- package/.medusa/server/src/api/admin/payouts/[id]/retry/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/payouts/[id]/retry/route.js +14 -0
- package/.medusa/server/src/api/admin/payouts/helpers.d.ts +2 -0
- package/.medusa/server/src/api/admin/payouts/helpers.js +7 -0
- package/.medusa/server/src/api/admin/payouts/middlewares.js +16 -1
- package/.medusa/server/src/api/admin/payouts/query-config.js +10 -1
- package/.medusa/server/src/api/admin/payouts/validators.d.ts +2 -0
- package/.medusa/server/src/api/admin/payouts/validators.js +3 -1
- package/.medusa/server/src/api/hooks/payout/route.js +4 -6
- package/.medusa/server/src/api/middlewares.js +5 -1
- package/.medusa/server/src/api/payout/onboarding/refresh/route.d.ts +6 -0
- package/.medusa/server/src/api/payout/onboarding/refresh/route.js +21 -0
- package/.medusa/server/src/api/store/carts/middlewares.js +11 -1
- package/.medusa/server/src/api/utils/ensure-seller-middleware.js +2 -2
- package/.medusa/server/src/api/vendor/payout-accounts/[id]/onboarding/route.js +2 -8
- package/.medusa/server/src/api/vendor/payout-accounts/helpers.d.ts +2 -0
- package/.medusa/server/src/api/vendor/payout-accounts/helpers.js +7 -2
- package/.medusa/server/src/api/vendor/payout-accounts/me/route.d.ts +3 -0
- package/.medusa/server/src/api/vendor/payout-accounts/me/route.js +15 -0
- package/.medusa/server/src/api/vendor/payout-accounts/middlewares.js +9 -1
- package/.medusa/server/src/api/vendor/payout-accounts/query-config.d.ts +11 -0
- package/.medusa/server/src/api/vendor/payout-accounts/query-config.js +30 -2
- package/.medusa/server/src/api/vendor/payout-accounts/route.js +4 -9
- package/.medusa/server/src/api/vendor/payout-accounts/validators.d.ts +3 -1
- package/.medusa/server/src/api/vendor/payout-accounts/validators.js +5 -2
- package/.medusa/server/src/api/vendor/payouts/query-config.d.ts +2 -0
- package/.medusa/server/src/api/vendor/payouts/query-config.js +12 -2
- package/.medusa/server/src/api/vendor/payouts/validators.d.ts +1 -0
- package/.medusa/server/src/api/vendor/payouts/validators.js +2 -1
- package/.medusa/server/src/api/vendor/sellers/select/route.js +2 -2
- package/.medusa/server/src/modules/payout/index.d.ts +1 -45
- package/.medusa/server/src/modules/payout/loaders/provider.js +7 -3
- package/.medusa/server/src/modules/payout/migrations/Migration20261028120000.d.ts +5 -0
- package/.medusa/server/src/modules/payout/migrations/Migration20261028120000.js +97 -0
- package/.medusa/server/src/modules/payout/models/index.d.ts +1 -0
- package/.medusa/server/src/modules/payout/models/index.js +4 -2
- package/.medusa/server/src/modules/payout/models/onboarding.d.ts +22 -1
- package/.medusa/server/src/modules/payout/models/payout-account.d.ts +23 -2
- package/.medusa/server/src/modules/payout/models/payout-account.js +33 -7
- package/.medusa/server/src/modules/payout/models/payout-reversal.d.ts +48 -0
- package/.medusa/server/src/modules/payout/models/payout-reversal.js +37 -0
- package/.medusa/server/src/modules/payout/models/payout.d.ts +22 -1
- package/.medusa/server/src/modules/payout/models/payout.js +18 -2
- package/.medusa/server/src/modules/payout/providers/system.d.ts +11 -5
- package/.medusa/server/src/modules/payout/providers/system.js +33 -14
- package/.medusa/server/src/modules/payout/services/payout-module-service.d.ts +94 -100
- package/.medusa/server/src/modules/payout/services/payout-module-service.js +316 -109
- package/.medusa/server/src/modules/payout/services/provider-service.d.ts +11 -7
- package/.medusa/server/src/modules/payout/services/provider-service.js +33 -13
- package/.medusa/server/src/modules/payout/utils/abstract-payout-provider.d.ts +20 -0
- package/.medusa/server/src/modules/payout/utils/abstract-payout-provider.js +19 -0
- package/.medusa/server/src/modules/payout/utils/index.d.ts +1 -0
- package/.medusa/server/src/modules/payout/utils/index.js +18 -0
- package/.medusa/server/src/modules/telemetry/index.d.ts +21 -0
- package/.medusa/server/src/modules/telemetry/index.js +12 -0
- package/.medusa/server/src/modules/telemetry/migrations/Migration20261029000000.d.ts +5 -0
- package/.medusa/server/src/modules/telemetry/migrations/Migration20261029000000.js +27 -0
- package/.medusa/server/src/modules/telemetry/models/index.d.ts +1 -0
- package/.medusa/server/src/modules/telemetry/models/index.js +10 -0
- package/.medusa/server/src/modules/telemetry/models/installation.d.ts +9 -0
- package/.medusa/server/src/modules/telemetry/models/installation.js +14 -0
- package/.medusa/server/src/modules/telemetry/repositories/index.d.ts +1 -0
- package/.medusa/server/src/modules/telemetry/repositories/index.js +18 -0
- package/.medusa/server/src/modules/telemetry/repositories/telemetry-heartbeat.d.ts +10 -0
- package/.medusa/server/src/modules/telemetry/repositories/telemetry-heartbeat.js +28 -0
- package/.medusa/server/src/modules/telemetry/service.d.ts +25 -0
- package/.medusa/server/src/modules/telemetry/service.js +54 -0
- package/.medusa/server/src/subscribers/payout-webhook.d.ts +2 -2
- package/.medusa/server/src/subscribers/payout-webhook.js +9 -5
- package/.medusa/server/src/subscribers/telemetry-first-member-invited.d.ts +3 -0
- package/.medusa/server/src/subscribers/telemetry-first-member-invited.js +14 -0
- package/.medusa/server/src/subscribers/telemetry-first-offer.d.ts +3 -0
- package/.medusa/server/src/subscribers/telemetry-first-offer.js +14 -0
- package/.medusa/server/src/subscribers/telemetry-first-order.d.ts +3 -0
- package/.medusa/server/src/subscribers/telemetry-first-order.js +14 -0
- package/.medusa/server/src/subscribers/telemetry-first-payout-account.d.ts +5 -0
- package/.medusa/server/src/subscribers/telemetry-first-payout-account.js +24 -0
- package/.medusa/server/src/subscribers/telemetry-first-product-published.d.ts +3 -0
- package/.medusa/server/src/subscribers/telemetry-first-product-published.js +14 -0
- package/.medusa/server/src/subscribers/telemetry-first-seller-approved.d.ts +3 -0
- package/.medusa/server/src/subscribers/telemetry-first-seller-approved.js +14 -0
- package/.medusa/server/src/subscribers/telemetry-first-seller.d.ts +3 -0
- package/.medusa/server/src/subscribers/telemetry-first-seller.js +14 -0
- package/.medusa/server/src/utils/telemetry/boot.d.ts +7 -0
- package/.medusa/server/src/utils/telemetry/boot.js +117 -0
- package/.medusa/server/src/utils/telemetry/buckets.d.ts +2 -0
- package/.medusa/server/src/utils/telemetry/buckets.js +22 -0
- package/.medusa/server/src/utils/telemetry/config.d.ts +19 -0
- package/.medusa/server/src/utils/telemetry/config.js +60 -0
- package/.medusa/server/src/utils/telemetry/first-party.d.ts +11 -0
- package/.medusa/server/src/utils/telemetry/first-party.js +33 -0
- package/.medusa/server/src/utils/telemetry/identity.d.ts +6 -0
- package/.medusa/server/src/utils/telemetry/identity.js +32 -0
- package/.medusa/server/src/utils/telemetry/index.d.ts +8 -0
- package/.medusa/server/src/utils/telemetry/index.js +27 -0
- package/.medusa/server/src/utils/telemetry/milestones.d.ts +20 -0
- package/.medusa/server/src/utils/telemetry/milestones.js +60 -0
- package/.medusa/server/src/utils/telemetry/sender.d.ts +17 -0
- package/.medusa/server/src/utils/telemetry/sender.js +48 -0
- package/.medusa/server/src/utils/telemetry/snapshot.d.ts +13 -0
- package/.medusa/server/src/utils/telemetry/snapshot.js +193 -0
- package/.medusa/server/src/with-mercur.d.ts +6 -0
- package/.medusa/server/src/with-mercur.js +1 -1
- package/.medusa/server/src/workflows/payment/utils/split-order-payment-group.js +11 -3
- package/.medusa/server/src/workflows/payment/workflows/process-payment.js +10 -5
- package/.medusa/server/src/workflows/payout/steps/create-onboarding.d.ts +8 -2
- package/.medusa/server/src/workflows/payout/steps/create-onboarding.js +10 -4
- package/.medusa/server/src/workflows/payout/steps/create-payout-account.d.ts +3 -2
- package/.medusa/server/src/workflows/payout/steps/create-payout-account.js +9 -3
- package/.medusa/server/src/workflows/payout/steps/create-payout-accounts.d.ts +11 -0
- package/.medusa/server/src/workflows/payout/steps/create-payout-accounts.js +22 -0
- package/.medusa/server/src/workflows/payout/steps/create-payout-reversals.d.ts +4 -0
- package/.medusa/server/src/workflows/payout/steps/create-payout-reversals.js +23 -0
- package/.medusa/server/src/workflows/payout/steps/create-payouts.d.ts +4 -0
- package/.medusa/server/src/workflows/payout/steps/create-payouts.js +23 -0
- package/.medusa/server/src/workflows/payout/steps/index.d.ts +12 -5
- package/.medusa/server/src/workflows/payout/steps/index.js +13 -6
- package/.medusa/server/src/workflows/payout/steps/process-payout-reversals.d.ts +6 -0
- package/.medusa/server/src/workflows/payout/steps/process-payout-reversals.js +17 -0
- package/.medusa/server/src/workflows/payout/steps/process-payouts.d.ts +6 -0
- package/.medusa/server/src/workflows/payout/steps/process-payouts.js +17 -0
- package/.medusa/server/src/workflows/payout/steps/sync-payout-account.d.ts +8 -0
- package/.medusa/server/src/workflows/payout/steps/sync-payout-account.js +33 -0
- package/.medusa/server/src/workflows/payout/steps/update-payout-reversals.d.ts +4 -0
- package/.medusa/server/src/workflows/payout/steps/update-payout-reversals.js +29 -0
- package/.medusa/server/src/workflows/payout/steps/update-payouts.d.ts +4 -0
- package/.medusa/server/src/workflows/payout/steps/update-payouts.js +34 -0
- package/.medusa/server/src/workflows/payout/steps/validate-onboarding-token.d.ts +12 -0
- package/.medusa/server/src/workflows/payout/steps/validate-onboarding-token.js +23 -0
- package/.medusa/server/src/workflows/payout/steps/validate-payout-retry.d.ts +10 -0
- package/.medusa/server/src/workflows/payout/steps/validate-payout-retry.js +15 -0
- package/.medusa/server/src/workflows/payout/steps/validate-seller-without-payout-account.d.ts +10 -0
- package/.medusa/server/src/workflows/payout/steps/validate-seller-without-payout-account.js +13 -0
- package/.medusa/server/src/workflows/payout/utils/fulfillment-status.d.ts +26 -0
- package/.medusa/server/src/workflows/payout/utils/fulfillment-status.js +64 -0
- package/.medusa/server/src/workflows/payout/utils/index.d.ts +3 -0
- package/.medusa/server/src/workflows/payout/utils/index.js +20 -0
- package/.medusa/server/src/workflows/payout/utils/payout-amounts.d.ts +173 -0
- package/.medusa/server/src/workflows/payout/utils/payout-amounts.js +304 -0
- package/.medusa/server/src/workflows/payout/utils/sent-to-provider.d.ts +11 -0
- package/.medusa/server/src/workflows/payout/utils/sent-to-provider.js +15 -0
- package/.medusa/server/src/workflows/payout/workflows/create-onboarding.d.ts +5 -0
- package/.medusa/server/src/workflows/payout/workflows/create-onboarding.js +8 -3
- package/.medusa/server/src/workflows/payout/workflows/create-or-refresh-seller-payout-account.d.ts +16 -0
- package/.medusa/server/src/workflows/payout/workflows/create-or-refresh-seller-payout-account.js +38 -0
- package/.medusa/server/src/workflows/payout/workflows/create-order-payouts.d.ts +28 -0
- package/.medusa/server/src/workflows/payout/workflows/create-order-payouts.js +82 -0
- package/.medusa/server/src/workflows/payout/workflows/create-payout-account.d.ts +11 -5
- package/.medusa/server/src/workflows/payout/workflows/create-payout-account.js +42 -17
- package/.medusa/server/src/workflows/payout/workflows/create-payout-reversals.d.ts +14 -0
- package/.medusa/server/src/workflows/payout/workflows/create-payout-reversals.js +61 -0
- package/.medusa/server/src/workflows/payout/workflows/index.d.ts +11 -2
- package/.medusa/server/src/workflows/payout/workflows/index.js +12 -3
- package/.medusa/server/src/workflows/payout/workflows/link-payout-account.d.ts +11 -0
- package/.medusa/server/src/workflows/payout/workflows/link-payout-account.js +35 -0
- package/.medusa/server/src/workflows/payout/workflows/process-payout-for-webhook.d.ts +7 -3
- package/.medusa/server/src/workflows/payout/workflows/process-payout-for-webhook.js +50 -57
- package/.medusa/server/src/workflows/payout/workflows/process-payout-reversal.d.ts +9 -0
- package/.medusa/server/src/workflows/payout/workflows/process-payout-reversal.js +19 -0
- package/.medusa/server/src/workflows/payout/workflows/process-payout.d.ts +13 -0
- package/.medusa/server/src/workflows/payout/workflows/process-payout.js +23 -0
- package/.medusa/server/src/workflows/payout/workflows/refresh-onboarding.d.ts +13 -0
- package/.medusa/server/src/workflows/payout/workflows/refresh-onboarding.js +26 -0
- package/.medusa/server/src/workflows/payout/workflows/refresh-payout-account-link.d.ts +9 -0
- package/.medusa/server/src/workflows/payout/workflows/refresh-payout-account-link.js +15 -0
- package/.medusa/server/src/workflows/payout/workflows/retry-payout.d.ts +10 -0
- package/.medusa/server/src/workflows/payout/workflows/retry-payout.js +36 -0
- package/.medusa/server/src/workflows/payout/workflows/sync-payout-account.d.ts +9 -0
- package/.medusa/server/src/workflows/payout/workflows/sync-payout-account.js +24 -0
- package/package.json +3 -3
- package/.medusa/server/src/workflows/payout/steps/create-payout.d.ts +0 -3
- package/.medusa/server/src/workflows/payout/steps/create-payout.js +0 -12
- package/.medusa/server/src/workflows/payout/steps/update-payout-account.d.ts +0 -35
- package/.medusa/server/src/workflows/payout/steps/update-payout-account.js +0 -27
- package/.medusa/server/src/workflows/payout/steps/update-payout.d.ts +0 -35
- package/.medusa/server/src/workflows/payout/steps/update-payout.js +0 -27
- package/.medusa/server/src/workflows/payout/steps/validate-seller-payout-account.d.ts +0 -5
- package/.medusa/server/src/workflows/payout/steps/validate-seller-payout-account.js +0 -21
- package/.medusa/server/src/workflows/payout/workflows/create-payout.d.ts +0 -9
- package/.medusa/server/src/workflows/payout/workflows/create-payout.js +0 -87
|
@@ -19,138 +19,316 @@ class PayoutModuleService extends (0, utils_1.MedusaService)({
|
|
|
19
19
|
Onboarding: models_1.Onboarding,
|
|
20
20
|
Payout: models_1.Payout,
|
|
21
21
|
PayoutAccount: models_1.PayoutAccount,
|
|
22
|
+
PayoutReversal: models_1.PayoutReversal,
|
|
22
23
|
}) {
|
|
23
24
|
constructor({ payoutProviderService, baseRepository }, options) {
|
|
24
25
|
// @ts-ignore
|
|
25
26
|
super(...arguments);
|
|
26
27
|
this.payoutProviderService_ = payoutProviderService;
|
|
27
28
|
this.baseRepository_ = baseRepository;
|
|
28
|
-
this.options_ =
|
|
29
|
-
...types_1.PAYOUT_MODULE_OPTION_DEFAULTS,
|
|
30
|
-
...(options ?? {}),
|
|
31
|
-
};
|
|
29
|
+
this.options_ = (0, types_1.resolvePayoutModuleOptions)(options);
|
|
32
30
|
}
|
|
33
31
|
getOptions() {
|
|
34
|
-
return
|
|
35
|
-
...types_1.PAYOUT_MODULE_OPTION_DEFAULTS,
|
|
36
|
-
...(this.options_ ?? {}),
|
|
37
|
-
};
|
|
32
|
+
return this.options_;
|
|
38
33
|
}
|
|
39
34
|
async createPayoutAccount(input, sharedContext) {
|
|
40
|
-
|
|
41
|
-
let providerAccount
|
|
35
|
+
const payoutAccount = await this.createPayoutAccounts({ data: input.data ?? {}, context: (input.context ?? null) }, sharedContext);
|
|
36
|
+
let providerAccount;
|
|
42
37
|
try {
|
|
43
|
-
|
|
44
|
-
providerAccount = await this.payoutProviderService_.createPayoutAccount({
|
|
45
|
-
context: {
|
|
46
|
-
idempotency_key: payoutAccount.id,
|
|
47
|
-
...input.context
|
|
48
|
-
},
|
|
49
|
-
data: {
|
|
50
|
-
...input.data,
|
|
51
|
-
account_id: payoutAccount.id,
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
payoutAccount = await this.updatePayoutAccounts({
|
|
55
|
-
id: payoutAccount.id,
|
|
56
|
-
data: providerAccount.data,
|
|
57
|
-
status: providerAccount.status
|
|
58
|
-
}, sharedContext);
|
|
38
|
+
providerAccount = await this.payoutProviderService_.createAccount(this.providerAccountInput_(payoutAccount.id, input));
|
|
59
39
|
}
|
|
60
40
|
catch (error) {
|
|
61
|
-
|
|
62
|
-
await this.updatePayoutAccounts({
|
|
63
|
-
id: payoutAccount.id,
|
|
64
|
-
data: providerAccount.data,
|
|
65
|
-
status: providerAccount.status,
|
|
66
|
-
}, sharedContext).catch(() => null);
|
|
67
|
-
}
|
|
68
|
-
else if (payoutAccount?.id) {
|
|
69
|
-
await this.deletePayoutAccounts(payoutAccount.id, sharedContext);
|
|
70
|
-
}
|
|
41
|
+
await this.deletePayoutAccounts(payoutAccount.id, sharedContext);
|
|
71
42
|
throw error;
|
|
72
43
|
}
|
|
73
|
-
|
|
44
|
+
const updated = await this.updatePayoutAccounts({ id: payoutAccount.id, ...this.accountFieldsFromProvider_(providerAccount) }, sharedContext);
|
|
45
|
+
return await this.baseRepository_.serialize(updated);
|
|
74
46
|
}
|
|
75
|
-
async
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}, sharedContext);
|
|
80
|
-
const providerData = await this.payoutProviderService_.createOnboarding({
|
|
81
|
-
context: {
|
|
82
|
-
idempotency_key: input.account_id,
|
|
83
|
-
...input.context
|
|
84
|
-
},
|
|
85
|
-
data: {
|
|
86
|
-
...payoutAccount.data,
|
|
87
|
-
...input.data
|
|
88
|
-
}
|
|
47
|
+
async syncPayoutAccount(accountId, sharedContext) {
|
|
48
|
+
const account = await this.retrievePayoutAccount(accountId, {}, sharedContext);
|
|
49
|
+
const providerAccount = await this.payoutProviderService_.retrieveAccount({
|
|
50
|
+
account: this.providerAccountRef_(account),
|
|
89
51
|
});
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
52
|
+
const updated = await this.updatePayoutAccounts({
|
|
53
|
+
id: accountId,
|
|
54
|
+
...this.accountFieldsFromProvider_(providerAccount),
|
|
55
|
+
...(providerAccount.details_submitted
|
|
56
|
+
? { onboarding_token: null, onboarding_token_issued_at: null }
|
|
57
|
+
: {}),
|
|
58
|
+
}, sharedContext);
|
|
59
|
+
return await this.baseRepository_.serialize(updated);
|
|
60
|
+
}
|
|
61
|
+
async deletePayoutAccount(accountId, sharedContext) {
|
|
62
|
+
const account = await this.retrievePayoutAccount(accountId, { relations: ["onboarding"] }, sharedContext);
|
|
63
|
+
if (account.external_id) {
|
|
64
|
+
await this.payoutProviderService_.deleteAccount({ account: this.providerAccountRef_(account) });
|
|
65
|
+
}
|
|
66
|
+
if (account.onboarding) {
|
|
67
|
+
await this.deleteOnboardings(account.onboarding.id, sharedContext);
|
|
68
|
+
}
|
|
69
|
+
await this.deletePayoutAccounts(accountId, sharedContext);
|
|
70
|
+
}
|
|
71
|
+
async createOnboarding(input, sharedContext) {
|
|
72
|
+
const account = await this.retrievePayoutAccount(input.account_id, { relations: ["onboarding"] }, sharedContext);
|
|
73
|
+
const loginLink = account.details_submitted
|
|
74
|
+
? await this.payoutProviderService_.createLoginLink({ account: this.providerAccountRef_(account) })
|
|
75
|
+
: null;
|
|
76
|
+
let data;
|
|
77
|
+
if (loginLink) {
|
|
78
|
+
data = { ...loginLink.data, url: loginLink.url, kind: "login", expires_at: loginLink.expires_at ?? null };
|
|
99
79
|
}
|
|
100
80
|
else {
|
|
101
|
-
|
|
81
|
+
const token = input.rotate_token || !this.isOnboardingTokenValid_(account)
|
|
82
|
+
? this.generateOnboardingToken_()
|
|
83
|
+
: account.onboarding_token;
|
|
84
|
+
if (token !== account.onboarding_token) {
|
|
85
|
+
await this.updatePayoutAccounts({ id: account.id, onboarding_token: token, onboarding_token_issued_at: new Date() }, sharedContext);
|
|
86
|
+
}
|
|
87
|
+
const link = await this.payoutProviderService_.createOnboarding({
|
|
88
|
+
context: { ...input.context, idempotency_key: input.account_id },
|
|
89
|
+
data: { ...account.data, ...input.data },
|
|
90
|
+
account: this.providerAccountRef_(account),
|
|
91
|
+
refresh_url: input.data?.refresh_url ??
|
|
92
|
+
`${this.options_.onboarding.refreshBaseUrl}/payout/onboarding/refresh?token=${token}`,
|
|
93
|
+
return_url: input.data?.return_url ?? this.options_.onboarding.returnUrl,
|
|
94
|
+
});
|
|
95
|
+
data = { ...link.data, url: link.url, kind: "onboarding", expires_at: link.expires_at ?? null };
|
|
102
96
|
}
|
|
97
|
+
const onboarding = account.onboarding
|
|
98
|
+
? await this.updateOnboardings({ id: account.onboarding.id, data }, sharedContext)
|
|
99
|
+
: await this.createOnboardings({
|
|
100
|
+
account_id: input.account_id,
|
|
101
|
+
data,
|
|
102
|
+
context: (input.context ?? null),
|
|
103
|
+
}, sharedContext);
|
|
103
104
|
return await this.baseRepository_.serialize(onboarding);
|
|
104
105
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
106
|
+
async processPayout(payoutId, sharedContext) {
|
|
107
|
+
const { payout, attempt } = await this.processPayout_(payoutId, sharedContext);
|
|
108
|
+
if (attempt) {
|
|
109
|
+
const result = await this.processPayoutFromProvider_(payout, attempt);
|
|
110
|
+
await this.updatePayouts({ id: payout.id, ...result, data: { ...(payout.data ?? {}), ...attempt, ...result.data } }, sharedContext);
|
|
111
|
+
}
|
|
112
|
+
const updated = await this.retrievePayout(payoutId, {}, sharedContext);
|
|
113
|
+
return await this.baseRepository_.serialize(updated);
|
|
114
|
+
}
|
|
115
|
+
async processPayoutReversal(reversalId, sharedContext) {
|
|
116
|
+
const { reversal, attempt } = await this.processPayoutReversal_(reversalId, sharedContext);
|
|
117
|
+
if (attempt) {
|
|
118
|
+
const result = await this.processPayoutReversalFromProvider_(reversal, attempt);
|
|
119
|
+
await this.updatePayoutReversals({ id: reversal.id, ...result, data: { ...(reversal.data ?? {}), ...attempt, ...result.data } }, sharedContext);
|
|
120
|
+
}
|
|
121
|
+
const updated = await this.retrievePayoutReversal(reversalId, {}, sharedContext);
|
|
122
|
+
return await this.baseRepository_.serialize(updated);
|
|
123
|
+
}
|
|
124
|
+
async getWebhookActionAndData(input) {
|
|
125
|
+
return await this.payoutProviderService_.getWebhookActionAndData(input);
|
|
126
|
+
}
|
|
127
|
+
async processPayout_(payoutId, sharedContext = {}) {
|
|
128
|
+
await this.lockRow_("payout", payoutId, sharedContext);
|
|
129
|
+
const payout = await this.retrievePayout(payoutId, { relations: ["account"] }, sharedContext);
|
|
130
|
+
if (!PayoutModuleService.PROCESSABLE_STATUSES.includes(payout.status)) {
|
|
131
|
+
return { payout, attempt: null };
|
|
132
|
+
}
|
|
133
|
+
const attempt = this.nextAttempt_(payout.id, payout.data);
|
|
134
|
+
await this.updatePayouts({ id: payout.id, status: types_1.PayoutStatus.PROCESSING, data: { ...(payout.data ?? {}), ...attempt } }, sharedContext);
|
|
135
|
+
return { payout, attempt };
|
|
136
|
+
}
|
|
137
|
+
async processPayoutReversal_(reversalId, sharedContext = {}) {
|
|
138
|
+
await this.lockRow_("payout_reversal", reversalId, sharedContext);
|
|
139
|
+
const reversal = await this.retrievePayoutReversal(reversalId, { relations: ["payout"] }, sharedContext);
|
|
140
|
+
if (!PayoutModuleService.PROCESSABLE_STATUSES.includes(reversal.status)) {
|
|
141
|
+
return { reversal, attempt: null };
|
|
142
|
+
}
|
|
143
|
+
const attempt = this.nextAttempt_(reversal.id, reversal.data);
|
|
144
|
+
await this.updatePayoutReversals({
|
|
145
|
+
id: reversal.id,
|
|
146
|
+
status: types_1.PayoutStatus.PROCESSING,
|
|
147
|
+
data: { ...(reversal.data ?? {}), ...attempt },
|
|
148
|
+
}, sharedContext);
|
|
149
|
+
return { reversal, attempt };
|
|
150
|
+
}
|
|
151
|
+
// Runs outside the transaction so the row lock is never held across the provider call.
|
|
152
|
+
async processPayoutFromProvider_(payout, attempt) {
|
|
153
|
+
const source = (payout.data?.source_payment ?? null);
|
|
109
154
|
try {
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
amount:
|
|
113
|
-
currency_code:
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
155
|
+
const response = await this.payoutProviderService_.createPayout({
|
|
156
|
+
account: this.providerAccountRef_(payout.account ?? {}),
|
|
157
|
+
amount: payout.amount,
|
|
158
|
+
currency_code: payout.currency_code,
|
|
159
|
+
source_payment: source,
|
|
160
|
+
group: payout.order_id,
|
|
161
|
+
metadata: {
|
|
162
|
+
payout_id: payout.id,
|
|
163
|
+
...(payout.order_id ? { order_id: payout.order_id } : {}),
|
|
117
164
|
},
|
|
118
|
-
|
|
119
|
-
...payoutAccount.data,
|
|
120
|
-
...input.data
|
|
121
|
-
}
|
|
165
|
+
context: { idempotency_key: attempt.idempotency_key },
|
|
122
166
|
});
|
|
123
|
-
|
|
124
|
-
id: payout.id,
|
|
125
|
-
data: providerResponse.data,
|
|
126
|
-
status: providerResponse.status,
|
|
127
|
-
}, sharedContext);
|
|
167
|
+
return this.statusFromProvider_(response);
|
|
128
168
|
}
|
|
129
169
|
catch (error) {
|
|
130
|
-
|
|
131
|
-
throw error;
|
|
170
|
+
return this.statusFromError_(error);
|
|
132
171
|
}
|
|
133
|
-
return await this.baseRepository_.serialize(updated);
|
|
134
172
|
}
|
|
135
|
-
async
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
173
|
+
async processPayoutReversalFromProvider_(reversal, attempt) {
|
|
174
|
+
const payout = reversal.payout;
|
|
175
|
+
const provider = (payout.data?.provider ?? {});
|
|
176
|
+
try {
|
|
177
|
+
const response = await this.payoutProviderService_.reversePayout({
|
|
178
|
+
payout: { id: provider.id, data: provider },
|
|
179
|
+
amount: reversal.amount,
|
|
180
|
+
currency_code: payout.currency_code,
|
|
181
|
+
metadata: {
|
|
182
|
+
payout_id: payout.id,
|
|
183
|
+
payout_reversal_id: reversal.id,
|
|
184
|
+
...(reversal.refund_id ? { refund_id: reversal.refund_id } : {}),
|
|
185
|
+
},
|
|
186
|
+
context: { idempotency_key: attempt.idempotency_key },
|
|
187
|
+
});
|
|
188
|
+
return this.statusFromProvider_(response);
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
return this.statusFromError_(error);
|
|
192
|
+
}
|
|
149
193
|
}
|
|
150
|
-
async
|
|
151
|
-
|
|
194
|
+
async lockRow_(table, id, sharedContext) {
|
|
195
|
+
// A FOR UPDATE on a pooled (autocommit) connection would release the lock
|
|
196
|
+
// immediately, so require the transaction context.
|
|
197
|
+
const knex = sharedContext.transactionManager?.getTransactionContext();
|
|
198
|
+
if (!knex) {
|
|
199
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE, `Processing ${table} ${id} must run inside a transaction.`);
|
|
200
|
+
}
|
|
201
|
+
await knex.raw("SET LOCAL lock_timeout = '3s'");
|
|
202
|
+
await knex(table).where("id", id).forUpdate().select("id");
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* The key of a request whose outcome is unknown is kept, so a retry after a
|
|
206
|
+
* timeout returns the payout the provider may already have made. Only a
|
|
207
|
+
* provider refusal clears it, and the next attempt gets a fresh key.
|
|
208
|
+
*/
|
|
209
|
+
nextAttempt_(id, data) {
|
|
210
|
+
const attempts = Number(data?.attempts ?? 0) + 1;
|
|
211
|
+
const kept = data?.idempotency_key;
|
|
212
|
+
return {
|
|
213
|
+
attempts,
|
|
214
|
+
idempotency_key: kept ?? (attempts === 1 ? id : `${id}:${attempts}`),
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
statusFromProvider_(response) {
|
|
218
|
+
return {
|
|
219
|
+
status: response.status,
|
|
220
|
+
status_reason: null,
|
|
221
|
+
data: { provider: { ...response.data, id: response.id }, status_detail: null },
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
statusFromError_(error) {
|
|
225
|
+
const code = this.providerErrorCode_(error);
|
|
226
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
227
|
+
return {
|
|
228
|
+
status: code === types_1.PayoutProviderErrorCode.FINAL ? types_1.PayoutStatus.ABORTED : types_1.PayoutStatus.FAILED,
|
|
229
|
+
status_reason: types_1.PayoutStatusReason.PROVIDER_ERROR,
|
|
230
|
+
data: {
|
|
231
|
+
status_detail: message.slice(0, PayoutModuleService.STATUS_DETAIL_MAX_LENGTH),
|
|
232
|
+
...(code === types_1.PayoutProviderErrorCode.REFUSED ? { idempotency_key: null } : {}),
|
|
233
|
+
},
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
// Read structurally: the error may come from another copy of @mercurjs/types.
|
|
237
|
+
providerErrorCode_(error) {
|
|
238
|
+
const { code, final } = (error ?? {});
|
|
239
|
+
if (final === true || code === types_1.PayoutProviderErrorCode.FINAL) {
|
|
240
|
+
return types_1.PayoutProviderErrorCode.FINAL;
|
|
241
|
+
}
|
|
242
|
+
return code === types_1.PayoutProviderErrorCode.REFUSED ? types_1.PayoutProviderErrorCode.REFUSED : types_1.PayoutProviderErrorCode.UNKNOWN;
|
|
243
|
+
}
|
|
244
|
+
isOnboardingTokenValid_(account) {
|
|
245
|
+
if (!account.onboarding_token || !account.onboarding_token_issued_at) {
|
|
246
|
+
return false;
|
|
247
|
+
}
|
|
248
|
+
const issuedAt = new Date(account.onboarding_token_issued_at).getTime();
|
|
249
|
+
return Date.now() - issuedAt < this.options_.onboarding.tokenTtlSeconds * 1000;
|
|
250
|
+
}
|
|
251
|
+
generateOnboardingToken_() {
|
|
252
|
+
return Array.from(crypto.getRandomValues(new Uint8Array(16)))
|
|
253
|
+
.map((byte) => byte.toString(16).padStart(2, "0"))
|
|
254
|
+
.join("");
|
|
255
|
+
}
|
|
256
|
+
providerAccountRef_(account) {
|
|
257
|
+
return {
|
|
258
|
+
id: account.external_id ?? (account.data?.id ?? ""),
|
|
259
|
+
data: (account.data ?? {}),
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
providerAccountInput_(accountId, input) {
|
|
263
|
+
const seller = input.seller;
|
|
264
|
+
const prefill = this.options_.onboarding.prefill && seller;
|
|
265
|
+
return {
|
|
266
|
+
context: { idempotency_key: accountId, ...input.context },
|
|
267
|
+
data: { ...input.data, account_id: accountId },
|
|
268
|
+
country: input.data?.country ??
|
|
269
|
+
seller?.country_code ??
|
|
270
|
+
this.options_.onboarding.defaultCountry ??
|
|
271
|
+
undefined,
|
|
272
|
+
business_type: input.data?.business_type ??
|
|
273
|
+
(prefill ? (seller?.is_company ? "company" : "individual") : undefined),
|
|
274
|
+
business_profile: prefill
|
|
275
|
+
? {
|
|
276
|
+
name: input.data?.business_name ?? seller?.name ?? null,
|
|
277
|
+
url: input.data?.website ?? seller?.website_url ?? null,
|
|
278
|
+
support_email: input.data?.support_email ?? seller?.email ?? null,
|
|
279
|
+
support_phone: input.data?.support_phone ?? seller?.phone ?? null,
|
|
280
|
+
}
|
|
281
|
+
: undefined,
|
|
282
|
+
metadata: {
|
|
283
|
+
account_id: accountId,
|
|
284
|
+
...(seller?.id ? { seller_id: seller.id } : {}),
|
|
285
|
+
},
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
accountFieldsFromProvider_(account) {
|
|
289
|
+
return {
|
|
290
|
+
external_id: account.id,
|
|
291
|
+
status: this.deriveAccountStatus_(account),
|
|
292
|
+
kyc_status: this.deriveKycStatus_(account.requirements, account.disabled_reason),
|
|
293
|
+
payouts_enabled: account.payouts_enabled,
|
|
294
|
+
charges_enabled: account.charges_enabled,
|
|
295
|
+
details_submitted: account.details_submitted,
|
|
296
|
+
disabled_reason: account.disabled_reason,
|
|
297
|
+
data: account.data,
|
|
298
|
+
last_synced_at: new Date(),
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Outstanding requirements beat pending verification, a `rejected.*`
|
|
303
|
+
* disabled reason is final, any other disabled reason is still under review.
|
|
304
|
+
*/
|
|
305
|
+
deriveKycStatus_(requirements, disabledReason) {
|
|
306
|
+
if (requirements?.currently_due?.length || requirements?.past_due?.length) {
|
|
307
|
+
return types_1.PayoutKycStatus.PENDING_SUBMISSION;
|
|
308
|
+
}
|
|
309
|
+
if (requirements?.pending_verification?.length) {
|
|
310
|
+
return types_1.PayoutKycStatus.PENDING_APPROVAL;
|
|
311
|
+
}
|
|
312
|
+
if (disabledReason?.startsWith("rejected")) {
|
|
313
|
+
return types_1.PayoutKycStatus.REFUSED;
|
|
314
|
+
}
|
|
315
|
+
return disabledReason ? types_1.PayoutKycStatus.PENDING_APPROVAL : types_1.PayoutKycStatus.APPROVED;
|
|
316
|
+
}
|
|
317
|
+
deriveAccountStatus_(account) {
|
|
318
|
+
if (account.status === types_1.PayoutAccountStatus.REJECTED || account.disabled_reason?.startsWith("rejected")) {
|
|
319
|
+
return types_1.PayoutAccountStatus.REJECTED;
|
|
320
|
+
}
|
|
321
|
+
if (!account.details_submitted) {
|
|
322
|
+
return types_1.PayoutAccountStatus.PENDING;
|
|
323
|
+
}
|
|
324
|
+
if (account.payouts_enabled && account.charges_enabled && !account.disabled_reason) {
|
|
325
|
+
return types_1.PayoutAccountStatus.ACTIVE;
|
|
326
|
+
}
|
|
327
|
+
return types_1.PayoutAccountStatus.RESTRICTED;
|
|
152
328
|
}
|
|
153
329
|
}
|
|
330
|
+
PayoutModuleService.PROCESSABLE_STATUSES = [types_1.PayoutStatus.PENDING, types_1.PayoutStatus.FAILED];
|
|
331
|
+
PayoutModuleService.STATUS_DETAIL_MAX_LENGTH = 1024;
|
|
154
332
|
exports.default = PayoutModuleService;
|
|
155
333
|
__decorate([
|
|
156
334
|
(0, utils_1.InjectManager)(),
|
|
@@ -161,7 +339,23 @@ __decorate([
|
|
|
161
339
|
__metadata("design:returntype", Promise)
|
|
162
340
|
], PayoutModuleService.prototype, "createPayoutAccount", null);
|
|
163
341
|
__decorate([
|
|
164
|
-
(0, utils_1.
|
|
342
|
+
(0, utils_1.InjectManager)(),
|
|
343
|
+
(0, utils_1.EmitEvents)(),
|
|
344
|
+
__param(1, (0, utils_1.MedusaContext)()),
|
|
345
|
+
__metadata("design:type", Function),
|
|
346
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
347
|
+
__metadata("design:returntype", Promise)
|
|
348
|
+
], PayoutModuleService.prototype, "syncPayoutAccount", null);
|
|
349
|
+
__decorate([
|
|
350
|
+
(0, utils_1.InjectManager)(),
|
|
351
|
+
(0, utils_1.EmitEvents)(),
|
|
352
|
+
__param(1, (0, utils_1.MedusaContext)()),
|
|
353
|
+
__metadata("design:type", Function),
|
|
354
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
355
|
+
__metadata("design:returntype", Promise)
|
|
356
|
+
], PayoutModuleService.prototype, "deletePayoutAccount", null);
|
|
357
|
+
__decorate([
|
|
358
|
+
(0, utils_1.InjectManager)(),
|
|
165
359
|
(0, utils_1.EmitEvents)(),
|
|
166
360
|
__param(1, (0, utils_1.MedusaContext)()),
|
|
167
361
|
__metadata("design:type", Function),
|
|
@@ -170,19 +364,32 @@ __decorate([
|
|
|
170
364
|
], PayoutModuleService.prototype, "createOnboarding", null);
|
|
171
365
|
__decorate([
|
|
172
366
|
(0, utils_1.InjectManager)(),
|
|
173
|
-
(0, utils_1.EmitEvents)()
|
|
174
|
-
// @ts-ignore
|
|
175
|
-
,
|
|
367
|
+
(0, utils_1.EmitEvents)(),
|
|
176
368
|
__param(1, (0, utils_1.MedusaContext)()),
|
|
177
369
|
__metadata("design:type", Function),
|
|
178
|
-
__metadata("design:paramtypes", [
|
|
370
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
179
371
|
__metadata("design:returntype", Promise)
|
|
180
|
-
], PayoutModuleService.prototype, "
|
|
372
|
+
], PayoutModuleService.prototype, "processPayout", null);
|
|
373
|
+
__decorate([
|
|
374
|
+
(0, utils_1.InjectManager)(),
|
|
375
|
+
(0, utils_1.EmitEvents)(),
|
|
376
|
+
__param(1, (0, utils_1.MedusaContext)()),
|
|
377
|
+
__metadata("design:type", Function),
|
|
378
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
379
|
+
__metadata("design:returntype", Promise)
|
|
380
|
+
], PayoutModuleService.prototype, "processPayoutReversal", null);
|
|
181
381
|
__decorate([
|
|
182
382
|
(0, utils_1.InjectTransactionManager)(),
|
|
183
383
|
__param(1, (0, utils_1.MedusaContext)()),
|
|
184
384
|
__metadata("design:type", Function),
|
|
185
|
-
__metadata("design:paramtypes", [
|
|
385
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
386
|
+
__metadata("design:returntype", Promise)
|
|
387
|
+
], PayoutModuleService.prototype, "processPayout_", null);
|
|
388
|
+
__decorate([
|
|
389
|
+
(0, utils_1.InjectTransactionManager)(),
|
|
390
|
+
__param(1, (0, utils_1.MedusaContext)()),
|
|
391
|
+
__metadata("design:type", Function),
|
|
392
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
186
393
|
__metadata("design:returntype", Promise)
|
|
187
|
-
], PayoutModuleService.prototype, "
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5b3V0LW1vZHVsZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvcGF5b3V0L3NlcnZpY2VzL3BheW91dC1tb2R1bGUtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLHFEQU9rQztBQUNsQywyQ0Fjd0I7QUFFeEIsc0NBQTZEO0FBUzdELE1BQXFCLG1CQUFvQixTQUFRLElBQUEscUJBQWEsRUFBQztJQUMzRCxVQUFVLEVBQVYsbUJBQVU7SUFDVixNQUFNLEVBQU4sZUFBTTtJQUNOLGFBQWEsRUFBYixzQkFBYTtDQUNoQixDQUFDO0lBS0UsWUFBWSxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBd0IsRUFBRSxPQUE0QjtRQUNyRyxhQUFhO1FBQ2IsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUE7UUFDbkIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHFCQUFxQixDQUFBO1FBQ25ELElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUc7WUFDWixHQUFHLHFDQUE2QjtZQUNoQyxHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztTQUNyQixDQUFBO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDTixPQUFPO1lBQ0gsR0FBRyxxQ0FBNkI7WUFDaEMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1NBQzNCLENBQUE7SUFDTCxDQUFDO0lBSUssQUFBTixLQUFLLENBQUMsbUJBQW1CLENBQ3JCLEtBQTZCLEVBQ1osYUFBc0M7UUFFdkQsSUFBSSxhQUFhLEdBQWlELElBQUksQ0FBQTtRQUN0RSxJQUFJLGVBQWUsR0FBdUMsSUFBSSxDQUFBO1FBRTlELElBQUksQ0FBQztZQUNELGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FDM0MsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQWtDLEVBQUUsRUFDdkUsYUFBYSxDQUNoQixDQUFBO1lBRUQsZUFBZSxHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDO2dCQUNwRSxPQUFPLEVBQUU7b0JBQ0wsZUFBZSxFQUFFLGFBQWEsQ0FBQyxFQUFFO29CQUNqQyxHQUFHLEtBQUssQ0FBQyxPQUFPO2lCQUNuQjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0YsR0FBRyxLQUFLLENBQUMsSUFBSTtvQkFDYixVQUFVLEVBQUUsYUFBYSxDQUFDLEVBQUU7aUJBQy9CO2FBQ0osQ0FBQyxDQUFBO1lBRUYsYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUMzQztnQkFDSSxFQUFFLEVBQUUsYUFBYSxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSTtnQkFDMUIsTUFBTSxFQUFFLGVBQWUsQ0FBQyxNQUFNO2FBQ2pDLEVBQ0QsYUFBYSxDQUNoQixDQUFBO1FBQ0wsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLGVBQWUsSUFBSSxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQ3ZDLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUMzQjtvQkFDSSxFQUFFLEVBQUUsYUFBYSxDQUFDLEVBQUU7b0JBQ3BCLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSTtvQkFDMUIsTUFBTSxFQUFFLGVBQWUsQ0FBQyxNQUFNO2lCQUNqQyxFQUNELGFBQWEsQ0FDaEIsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDdkIsQ0FBQztpQkFBTSxJQUFJLGFBQWEsRUFBRSxFQUFFLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQTtZQUNwRSxDQUFDO1lBQ0QsTUFBTSxLQUFLLENBQUE7UUFDZixDQUFDO1FBRUQsT0FBTyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFtQixhQUFhLENBQUMsQ0FBQTtJQUNoRixDQUFDO0lBSUssQUFBTixLQUFLLENBQUMsZ0JBQWdCLENBQ2xCLEtBQTBCLEVBQ1QsYUFBc0M7UUFFdkQsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUNyRSxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDaEIsU0FBUyxFQUFFLENBQUMsWUFBWSxDQUFDO1NBQzVCLEVBQUUsYUFBYSxDQUFDLENBQUE7UUFFakIsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLENBQ25FO1lBQ0ksT0FBTyxFQUFFO2dCQUNMLGVBQWUsRUFBRSxLQUFLLENBQUMsVUFBVTtnQkFDakMsR0FBRyxLQUFLLENBQUMsT0FBTzthQUNuQjtZQUNELElBQUksRUFBRTtnQkFDRixHQUFHLGFBQWEsQ0FBQyxJQUFJO2dCQUNyQixHQUFHLEtBQUssQ0FBQyxJQUFJO2FBQ2hCO1NBQ0osQ0FDSixDQUFBO1FBRUQsTUFBTSxvQkFBb0IsR0FBRztZQUN6QixHQUFHLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3hFLE9BQU8sRUFBRSxLQUFLLENBQUMsVUFBVTtZQUN6QixJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUk7WUFDdkIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFrQztTQUNwRCxDQUFBO1FBRUQsSUFBSSxVQUE4QyxDQUFBO1FBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDNUIsVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUNyQyxvQkFBb0IsRUFDcEIsYUFBYSxDQUNoQixDQUFBO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQ3JDLG9CQUFvQixFQUNwQixhQUFhLENBQ2hCLENBQUE7UUFDTCxDQUFDO1FBRUQsT0FBTyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFnQixVQUFVLENBQUMsQ0FBQTtJQUMxRSxDQUFDO0lBS0ssQUFETixhQUFhO0lBQ2IsS0FBSyxDQUFDLGFBQWEsQ0FDZixLQUFzQixFQUNMLGFBQXNDO1FBRXZELE1BQU0sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQTtRQUVqRixJQUFJLE9BQXVDLENBQUE7UUFDM0MsSUFBSSxDQUFDO1lBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUM7Z0JBQ3BFLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtnQkFDNUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO2dCQUNwQixhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7Z0JBQ2xDLE9BQU8sRUFBRTtvQkFDTCxlQUFlLEVBQUUsTUFBTSxDQUFDLEVBQUU7b0JBQzFCLEdBQUcsS0FBSyxDQUFDLE9BQU87aUJBQ25CO2dCQUNELElBQUksRUFBRTtvQkFDRixHQUFHLGFBQWEsQ0FBQyxJQUFJO29CQUNyQixHQUFHLEtBQUssQ0FBQyxJQUFJO2lCQUNoQjthQUNKLENBQUMsQ0FBQTtZQUVGLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQzlCO2dCQUNJLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDYixJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtnQkFDM0IsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE1BQU07YUFDbEMsRUFDRCxhQUFhLENBQ2hCLENBQUE7UUFDTCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNwRSxNQUFNLEtBQUssQ0FBQTtRQUNmLENBQUM7UUFFRCxPQUFPLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQVksT0FBTyxDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUdlLEFBQU4sS0FBSyxDQUFDLGNBQWMsQ0FDMUIsS0FBc0IsRUFDTCxhQUFzQztRQUt2RCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3JFLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDO1NBQ25DLEVBQUUsYUFBYSxDQUFDLENBQUE7UUFFakIsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLDJCQUFtQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RELE1BQU0sSUFBSSxtQkFBVyxDQUNqQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQzdCLFlBQVksS0FBSyxDQUFDLFVBQVUsaUJBQWlCLENBQ2hELENBQUE7UUFDTCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxLQUFLLENBQUMsYUFBYSxDQUNwQztZQUNJLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDbEMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQzVCLE1BQU0sRUFBRSxvQkFBWSxDQUFDLE9BQU87U0FDL0IsRUFDRCxhQUFhLENBQ2hCLENBQUE7UUFFRCxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxDQUFBO0lBQ3BDLENBQUM7SUFFRCxLQUFLLENBQUMsdUJBQXVCLENBQ3pCLEtBQStCO1FBRS9CLE9BQU8sTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0UsQ0FBQztDQUNKO0FBN01ELHNDQTZNQztBQWhMUztJQUZMLElBQUEscUJBQWEsR0FBRTtJQUNmLElBQUEsa0JBQVUsR0FBRTtJQUdSLFdBQUEsSUFBQSxxQkFBYSxHQUFFLENBQUE7Ozs7OERBK0NuQjtBQUlLO0lBRkwsSUFBQSxnQ0FBd0IsR0FBRTtJQUMxQixJQUFBLGtCQUFVLEdBQUU7SUFHUixXQUFBLElBQUEscUJBQWEsR0FBRSxDQUFBOzs7OzJEQXlDbkI7QUFLSztJQUhMLElBQUEscUJBQWEsR0FBRTtJQUNmLElBQUEsa0JBQVUsR0FBRTtJQUNiLGFBQWE7O0lBR1IsV0FBQSxJQUFBLHFCQUFhLEdBQUUsQ0FBQTs7Ozt3REFrQ25CO0FBR2U7SUFEZixJQUFBLGdDQUF3QixHQUFFO0lBR3RCLFdBQUEsSUFBQSxxQkFBYSxHQUFFLENBQUE7Ozs7eURBMkJuQiJ9
|
|
394
|
+
], PayoutModuleService.prototype, "processPayoutReversal_", null);
|
|
395
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5b3V0LW1vZHVsZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvcGF5b3V0L3NlcnZpY2VzL3BheW91dC1tb2R1bGUtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLHFEQU9rQztBQUNsQywyQ0FzQndCO0FBRXhCLHNDQUtrQjtBQWlCbEIsTUFBcUIsbUJBQ2pCLFNBQVEsSUFBQSxxQkFBYSxFQUtsQjtJQUNDLFVBQVUsRUFBVixtQkFBVTtJQUNWLE1BQU0sRUFBTixlQUFNO0lBQ04sYUFBYSxFQUFiLHNCQUFhO0lBQ2IsY0FBYyxFQUFkLHVCQUFjO0NBQ2pCLENBQUM7SUFVRixZQUFZLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUF3QixFQUFFLE9BQTRCO1FBQ3JHLGFBQWE7UUFDYixLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQTtRQUNuQixJQUFJLENBQUMsc0JBQXNCLEdBQUcscUJBQXFCLENBQUE7UUFDbkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUE7UUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFBLGtDQUEwQixFQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3ZELENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3hCLENBQUM7SUFJSyxBQUFOLEtBQUssQ0FBQyxtQkFBbUIsQ0FDckIsS0FBNkIsRUFDWixhQUF5QztRQUUxRCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FDakQsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQW1DLEVBQUUsRUFDOUYsYUFBYSxDQUNoQixDQUFBO1FBRUQsSUFBSSxlQUE4QixDQUFBO1FBQ2xDLElBQUks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
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Constructor } from "@medusajs/framework/types";
|
|
2
|
-
import {
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const PayoutProviderRegistrationPrefix = "payout_";
|
|
2
|
+
import { AccountOutput, CreateAccountInput, CreateLoginLinkInput, CreateOnboardingInput, CreatePayoutInput, DeleteAccountInput, IPayoutProvider, LinkOutput, ListAccountsInput, ListAccountsOutput, PayoutOutput, PayoutWebhookActionInput, PayoutWebhookResult, RetrieveAccountInput, ReversePayoutInput } from "@mercurjs/types";
|
|
3
|
+
export declare const PayoutProviderRegistrationPrefix = "pop_";
|
|
5
4
|
type InjectedDependencies = {
|
|
6
5
|
[key: `${typeof PayoutProviderRegistrationPrefix}${string}`]: IPayoutProvider;
|
|
7
6
|
};
|
|
@@ -9,9 +8,14 @@ export default class PayoutProviderService {
|
|
|
9
8
|
protected readonly payoutProvider_: IPayoutProvider;
|
|
10
9
|
constructor(container: InjectedDependencies);
|
|
11
10
|
static getRegistrationIdentifier(providerClass: Constructor<IPayoutProvider>, optionName?: string): string;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
createAccount(input: CreateAccountInput): Promise<AccountOutput>;
|
|
12
|
+
retrieveAccount(input: RetrieveAccountInput): Promise<AccountOutput>;
|
|
13
|
+
deleteAccount(input: DeleteAccountInput): Promise<void>;
|
|
14
|
+
listAccounts(input: ListAccountsInput): Promise<ListAccountsOutput | null>;
|
|
15
|
+
createOnboarding(input: CreateOnboardingInput): Promise<LinkOutput>;
|
|
16
|
+
createLoginLink(input: CreateLoginLinkInput): Promise<LinkOutput | null>;
|
|
17
|
+
createPayout(input: CreatePayoutInput): Promise<PayoutOutput>;
|
|
18
|
+
reversePayout(input: ReversePayoutInput): Promise<PayoutOutput>;
|
|
19
|
+
getWebhookActionAndData(input: PayoutWebhookActionInput): Promise<PayoutWebhookResult>;
|
|
16
20
|
}
|
|
17
21
|
export {};
|
|
@@ -1,32 +1,52 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PayoutProviderRegistrationPrefix =
|
|
3
|
+
exports.PayoutProviderRegistrationPrefix = void 0;
|
|
4
4
|
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
-
exports.
|
|
6
|
-
exports.PayoutProviderRegistrationPrefix = "payout_";
|
|
5
|
+
exports.PayoutProviderRegistrationPrefix = "pop_";
|
|
7
6
|
class PayoutProviderService {
|
|
8
7
|
constructor(container) {
|
|
9
|
-
const
|
|
10
|
-
if (
|
|
8
|
+
const keys = Object.keys(container).filter((key) => key.startsWith(exports.PayoutProviderRegistrationPrefix));
|
|
9
|
+
if (keys.length !== 1) {
|
|
11
10
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Payout module should be initialized with exactly one provider`);
|
|
12
11
|
}
|
|
13
|
-
this.payoutProvider_ = container[
|
|
12
|
+
this.payoutProvider_ = container[keys[0]];
|
|
14
13
|
}
|
|
15
14
|
static getRegistrationIdentifier(providerClass, optionName) {
|
|
16
15
|
return `${providerClass.identifier}_${optionName}`;
|
|
17
16
|
}
|
|
18
|
-
async
|
|
19
|
-
return await this.payoutProvider_.
|
|
17
|
+
async createAccount(input) {
|
|
18
|
+
return await this.payoutProvider_.createAccount(input);
|
|
20
19
|
}
|
|
21
|
-
async
|
|
22
|
-
return await this.payoutProvider_.
|
|
20
|
+
async retrieveAccount(input) {
|
|
21
|
+
return await this.payoutProvider_.retrieveAccount(input);
|
|
22
|
+
}
|
|
23
|
+
async deleteAccount(input) {
|
|
24
|
+
if (this.payoutProvider_.deleteAccount) {
|
|
25
|
+
await this.payoutProvider_.deleteAccount(input);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async listAccounts(input) {
|
|
29
|
+
return this.payoutProvider_.listAccounts
|
|
30
|
+
? await this.payoutProvider_.listAccounts(input)
|
|
31
|
+
: null;
|
|
23
32
|
}
|
|
24
33
|
async createOnboarding(input) {
|
|
25
34
|
return await this.payoutProvider_.createOnboarding(input);
|
|
26
35
|
}
|
|
27
|
-
async
|
|
28
|
-
return
|
|
36
|
+
async createLoginLink(input) {
|
|
37
|
+
return this.payoutProvider_.createLoginLink
|
|
38
|
+
? await this.payoutProvider_.createLoginLink(input)
|
|
39
|
+
: null;
|
|
40
|
+
}
|
|
41
|
+
async createPayout(input) {
|
|
42
|
+
return await this.payoutProvider_.createPayout(input);
|
|
43
|
+
}
|
|
44
|
+
async reversePayout(input) {
|
|
45
|
+
return await this.payoutProvider_.reversePayout(input);
|
|
46
|
+
}
|
|
47
|
+
async getWebhookActionAndData(input) {
|
|
48
|
+
return await this.payoutProvider_.getWebhookActionAndData(input);
|
|
29
49
|
}
|
|
30
50
|
}
|
|
31
51
|
exports.default = PayoutProviderService;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3BheW91dC9zZXJ2aWNlcy9wcm92aWRlci1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUF1RDtBQW9CMUMsUUFBQSxnQ0FBZ0MsR0FBRyxNQUFNLENBQUE7QUFNdEQsTUFBcUIscUJBQXFCO0lBR3hDLFlBQVksU0FBK0I7UUFDekMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNqRCxHQUFHLENBQUMsVUFBVSxDQUFDLHdDQUFnQyxDQUFDLENBQ2pELENBQUE7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsK0RBQStELENBQ2hFLENBQUE7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUVELE1BQU0sQ0FBQyx5QkFBeUIsQ0FDOUIsYUFBMkMsRUFDM0MsVUFBbUI7UUFFbkIsT0FBTyxHQUFJLGFBQW1ELENBQUMsVUFBVSxJQUFJLFVBQVUsRUFBRSxDQUFBO0lBQzNGLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQXlCO1FBQzNDLE9BQU8sTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN4RCxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUEyQjtRQUMvQyxPQUFPLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDMUQsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBeUI7UUFDM0MsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDakQsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQXdCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZO1lBQ3RDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUNoRCxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQ1YsQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUE0QjtRQUNqRCxPQUFPLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUEyQjtRQUMvQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZTtZQUN6QyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7WUFDbkQsQ0FBQyxDQUFDLElBQUksQ0FBQTtJQUNWLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQXdCO1FBQ3pDLE9BQU8sTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN2RCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUF5QjtRQUMzQyxPQUFPLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDeEQsQ0FBQztJQUVELEtBQUssQ0FBQyx1QkFBdUIsQ0FDM0IsS0FBK0I7UUFFL0IsT0FBTyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDbEUsQ0FBQztDQUNGO0FBcEVELHdDQW9FQyJ9
|