@sakeetech/vendure-payment-viva 0.2.1
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/LICENSE +21 -0
- package/README.md +952 -0
- package/dist/api/admin-internal.controller.d.ts +59 -0
- package/dist/api/admin-internal.controller.d.ts.map +1 -0
- package/dist/api/admin-internal.controller.js +229 -0
- package/dist/api/admin-internal.controller.js.map +1 -0
- package/dist/api/admin-onboarding.controller.d.ts +72 -0
- package/dist/api/admin-onboarding.controller.d.ts.map +1 -0
- package/dist/api/admin-onboarding.controller.js +496 -0
- package/dist/api/admin-onboarding.controller.js.map +1 -0
- package/dist/api/admin-sources.controller.d.ts +50 -0
- package/dist/api/admin-sources.controller.d.ts.map +1 -0
- package/dist/api/admin-sources.controller.js +283 -0
- package/dist/api/admin-sources.controller.js.map +1 -0
- package/dist/api/shop-api.extension.d.ts +15 -0
- package/dist/api/shop-api.extension.d.ts.map +1 -0
- package/dist/api/shop-api.extension.js +35 -0
- package/dist/api/shop-api.extension.js.map +1 -0
- package/dist/api/shop-api.resolver.d.ts +42 -0
- package/dist/api/shop-api.resolver.d.ts.map +1 -0
- package/dist/api/shop-api.resolver.js +256 -0
- package/dist/api/shop-api.resolver.js.map +1 -0
- package/dist/api/webhook.controller.d.ts +58 -0
- package/dist/api/webhook.controller.d.ts.map +1 -0
- package/dist/api/webhook.controller.js +204 -0
- package/dist/api/webhook.controller.js.map +1 -0
- package/dist/cli/bin.d.ts +28 -0
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/cli/bin.js +104 -0
- package/dist/cli/bin.js.map +1 -0
- package/dist/cli/plan.d.ts +41 -0
- package/dist/cli/plan.d.ts.map +1 -0
- package/dist/cli/plan.js +115 -0
- package/dist/cli/plan.js.map +1 -0
- package/dist/cli/register-webhooks.d.ts +45 -0
- package/dist/cli/register-webhooks.d.ts.map +1 -0
- package/dist/cli/register-webhooks.js +400 -0
- package/dist/cli/register-webhooks.js.map +1 -0
- package/dist/cli/types.d.ts +75 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +10 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/constants.d.ts +35 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +40 -0
- package/dist/constants.js.map +1 -0
- package/dist/entities/index.d.ts +4 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +3 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/viva-transaction.entity.d.ts +70 -0
- package/dist/entities/viva-transaction.entity.d.ts.map +1 -0
- package/dist/entities/viva-transaction.entity.js +133 -0
- package/dist/entities/viva-transaction.entity.js.map +1 -0
- package/dist/entities/viva-webhook-event.entity.d.ts +71 -0
- package/dist/entities/viva-webhook-event.entity.d.ts.map +1 -0
- package/dist/entities/viva-webhook-event.entity.js +138 -0
- package/dist/entities/viva-webhook-event.entity.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs/process-viva-webhook.handler.d.ts +95 -0
- package/dist/jobs/process-viva-webhook.handler.d.ts.map +1 -0
- package/dist/jobs/process-viva-webhook.handler.js +530 -0
- package/dist/jobs/process-viva-webhook.handler.js.map +1 -0
- package/dist/jobs/queue-names.d.ts +18 -0
- package/dist/jobs/queue-names.d.ts.map +1 -0
- package/dist/jobs/queue-names.js +19 -0
- package/dist/jobs/queue-names.js.map +1 -0
- package/dist/jobs/retention-cleanup.handler.d.ts +31 -0
- package/dist/jobs/retention-cleanup.handler.d.ts.map +1 -0
- package/dist/jobs/retention-cleanup.handler.js +94 -0
- package/dist/jobs/retention-cleanup.handler.js.map +1 -0
- package/dist/loaders/bootstrap.d.ts +28 -0
- package/dist/loaders/bootstrap.d.ts.map +1 -0
- package/dist/loaders/bootstrap.js +90 -0
- package/dist/loaders/bootstrap.js.map +1 -0
- package/dist/migrations/1714000000000-create-viva-tables.d.ts +22 -0
- package/dist/migrations/1714000000000-create-viva-tables.d.ts.map +1 -0
- package/dist/migrations/1714000000000-create-viva-tables.js +105 -0
- package/dist/migrations/1714000000000-create-viva-tables.js.map +1 -0
- package/dist/observability/metrics-state.service.d.ts +43 -0
- package/dist/observability/metrics-state.service.d.ts.map +1 -0
- package/dist/observability/metrics-state.service.js +207 -0
- package/dist/observability/metrics-state.service.js.map +1 -0
- package/dist/payment-method-handler.d.ts +26 -0
- package/dist/payment-method-handler.d.ts.map +1 -0
- package/dist/payment-method-handler.js +693 -0
- package/dist/payment-method-handler.js.map +1 -0
- package/dist/plugin.d.ts +95 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +241 -0
- package/dist/plugin.js.map +1 -0
- package/dist/providers/viva-oauth2-strategy.provider.d.ts +41 -0
- package/dist/providers/viva-oauth2-strategy.provider.d.ts.map +1 -0
- package/dist/providers/viva-oauth2-strategy.provider.js +60 -0
- package/dist/providers/viva-oauth2-strategy.provider.js.map +1 -0
- package/dist/services/connected-accounts.service.d.ts +53 -0
- package/dist/services/connected-accounts.service.d.ts.map +1 -0
- package/dist/services/connected-accounts.service.js +108 -0
- package/dist/services/connected-accounts.service.js.map +1 -0
- package/dist/services/per-merchant-semaphore.service.d.ts +49 -0
- package/dist/services/per-merchant-semaphore.service.d.ts.map +1 -0
- package/dist/services/per-merchant-semaphore.service.js +156 -0
- package/dist/services/per-merchant-semaphore.service.js.map +1 -0
- package/dist/services/state-machine.service.d.ts +100 -0
- package/dist/services/state-machine.service.d.ts.map +1 -0
- package/dist/services/state-machine.service.js +233 -0
- package/dist/services/state-machine.service.js.map +1 -0
- package/dist/types.d.ts +286 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +23 -0
- package/dist/types.js.map +1 -0
- package/dist/util/currency.d.ts +32 -0
- package/dist/util/currency.d.ts.map +1 -0
- package/dist/util/currency.js +90 -0
- package/dist/util/currency.js.map +1 -0
- package/dist/util/error-envelope.d.ts +51 -0
- package/dist/util/error-envelope.d.ts.map +1 -0
- package/dist/util/error-envelope.js +157 -0
- package/dist/util/error-envelope.js.map +1 -0
- package/dist/util/ip-allowlist.d.ts +44 -0
- package/dist/util/ip-allowlist.d.ts.map +1 -0
- package/dist/util/ip-allowlist.js +139 -0
- package/dist/util/ip-allowlist.js.map +1 -0
- package/dist/util/normalize-options.d.ts +24 -0
- package/dist/util/normalize-options.d.ts.map +1 -0
- package/dist/util/normalize-options.js +189 -0
- package/dist/util/normalize-options.js.map +1 -0
- package/dist/util/url-template.d.ts +18 -0
- package/dist/util/url-template.d.ts.map +1 -0
- package/dist/util/url-template.js +22 -0
- package/dist/util/url-template.js.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-method-handler.js","sourceRoot":"","sources":["../src/payment-method-handler.ts"],"names":[],"mappings":"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"}
|
package/dist/plugin.d.ts
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* plugin.ts — VivaPaymentPlugin Vendure module.
|
|
3
|
+
*
|
|
4
|
+
* V4: wires entities, channel custom fields, OAuth2 singleton provider,
|
|
5
|
+
* and the bootstrap warmup service. Payment handler, controllers, and
|
|
6
|
+
* webhook job are wired in V5+.
|
|
7
|
+
*
|
|
8
|
+
* @see docs/plans/vendure-plugin-v0.md §D19, §"Build Plan (Waves) — V4"
|
|
9
|
+
*/
|
|
10
|
+
import type { VivaPaymentPluginOptions, VivaPaymentPluginInitInput } from './types.js';
|
|
11
|
+
export declare class VivaPaymentPlugin {
|
|
12
|
+
/**
|
|
13
|
+
* Configure and register the plugin.
|
|
14
|
+
*
|
|
15
|
+
* Must be called before passing the plugin to `VendureConfig.plugins`.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* VivaPaymentPlugin.init({
|
|
20
|
+
* mode: 'isv',
|
|
21
|
+
* clientId: process.env.VIVA_CLIENT_ID!,
|
|
22
|
+
* clientSecret: process.env.VIVA_CLIENT_SECRET!,
|
|
23
|
+
* environment: 'demo',
|
|
24
|
+
* webhookVerificationKey: process.env.VIVA_WEBHOOK_VERIFICATION_KEY!,
|
|
25
|
+
* successUrl: 'https://example.com/checkout/success?orderCode={orderCode}',
|
|
26
|
+
* failureUrl: 'https://example.com/checkout/failure',
|
|
27
|
+
* onboardingReturnUrl: 'https://example.com/admin/viva/onboarding-return',
|
|
28
|
+
* })
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* Accepts either the new field names (`clientId`/`clientSecret`) or the
|
|
32
|
+
* deprecated aliases (`isvClientId`/`isvClientSecret`) — old names emit a
|
|
33
|
+
* one-time deprecation warning. `mode` is optional and defaults to
|
|
34
|
+
* `'merchant'` (auto-detected as `'isv'` when ISV-only fields are present).
|
|
35
|
+
*/
|
|
36
|
+
static init(options: VivaPaymentPluginInitInput | VivaPaymentPluginOptions): typeof VivaPaymentPlugin;
|
|
37
|
+
/**
|
|
38
|
+
* @internal Test-only: reset module-level init() warning flags.
|
|
39
|
+
* Used by `test/plugin/init-validation.test.ts`.
|
|
40
|
+
*/
|
|
41
|
+
static _resetInitNoticesForTesting(): void;
|
|
42
|
+
/**
|
|
43
|
+
* Exposes the channel custom field definitions for testing / inspection.
|
|
44
|
+
* Mode-aware: returns the fields registered for the current init() mode.
|
|
45
|
+
* Falls back to the ISV field set when init() hasn't been called yet so
|
|
46
|
+
* existing snapshot tests continue to see the full list by default.
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
static get channelCustomFields(): ({
|
|
50
|
+
name: string;
|
|
51
|
+
type: "string";
|
|
52
|
+
nullable: boolean;
|
|
53
|
+
public: boolean;
|
|
54
|
+
ui: {
|
|
55
|
+
component: string;
|
|
56
|
+
};
|
|
57
|
+
description: {
|
|
58
|
+
languageCode: any;
|
|
59
|
+
value: string;
|
|
60
|
+
}[];
|
|
61
|
+
defaultValue?: never;
|
|
62
|
+
} | {
|
|
63
|
+
name: string;
|
|
64
|
+
type: "boolean";
|
|
65
|
+
nullable: boolean;
|
|
66
|
+
defaultValue: boolean;
|
|
67
|
+
public: boolean;
|
|
68
|
+
description: {
|
|
69
|
+
languageCode: any;
|
|
70
|
+
value: string;
|
|
71
|
+
}[];
|
|
72
|
+
ui?: never;
|
|
73
|
+
} | {
|
|
74
|
+
name: string;
|
|
75
|
+
type: "string";
|
|
76
|
+
nullable: boolean;
|
|
77
|
+
defaultValue: string;
|
|
78
|
+
public: boolean;
|
|
79
|
+
description: {
|
|
80
|
+
languageCode: any;
|
|
81
|
+
value: string;
|
|
82
|
+
}[];
|
|
83
|
+
} | {
|
|
84
|
+
name: string;
|
|
85
|
+
type: "boolean";
|
|
86
|
+
nullable: boolean;
|
|
87
|
+
defaultValue: boolean;
|
|
88
|
+
public: boolean;
|
|
89
|
+
description: {
|
|
90
|
+
languageCode: any;
|
|
91
|
+
value: string;
|
|
92
|
+
}[];
|
|
93
|
+
})[];
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAuHpB,qBA+Da,iBAAiB;IAC5B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,0BAA0B,GAAG,wBAAwB,GAAG,OAAO,iBAAiB;IAKrG;;;OAGG;IACH,MAAM,CAAC,2BAA2B,IAAI,IAAI;IAI1C;;;;;;OAMG;IACH,MAAM,KAAK,mBAAmB;;;;;;;;;0BAhLU,GAAG;;;;;;;;;;;0BAgBH,GAAG;;;;;;;;;;;0BAWH,GAAG;;;;;;;;;;0BAQH,GAAG;;;SAgJ1C;CACF"}
|
package/dist/plugin.js
ADDED
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* plugin.ts — VivaPaymentPlugin Vendure module.
|
|
3
|
+
*
|
|
4
|
+
* V4: wires entities, channel custom fields, OAuth2 singleton provider,
|
|
5
|
+
* and the bootstrap warmup service. Payment handler, controllers, and
|
|
6
|
+
* webhook job are wired in V5+.
|
|
7
|
+
*
|
|
8
|
+
* @see docs/plans/vendure-plugin-v0.md §D19, §"Build Plan (Waves) — V4"
|
|
9
|
+
*/
|
|
10
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
11
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
12
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
13
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
14
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
15
|
+
};
|
|
16
|
+
var VivaPaymentPlugin_1;
|
|
17
|
+
import { VendurePlugin } from '@vendure/core';
|
|
18
|
+
import { VIVA_PLUGIN_OPTIONS, VIVA_PLUGIN_NAME } from './constants.js';
|
|
19
|
+
import { normalizePluginOptions, _resetInitNoticesForTesting } from './util/normalize-options.js';
|
|
20
|
+
import { VivaTransaction, VivaWebhookEvent } from './entities/index.js';
|
|
21
|
+
import { VivaOAuth2StrategyProvider } from './providers/viva-oauth2-strategy.provider.js';
|
|
22
|
+
import { VivaBootstrap } from './loaders/bootstrap.js';
|
|
23
|
+
import { StateMachineService } from './services/state-machine.service.js';
|
|
24
|
+
import { PerMerchantSemaphore } from './services/per-merchant-semaphore.service.js';
|
|
25
|
+
import { ConnectedAccountsService } from './services/connected-accounts.service.js';
|
|
26
|
+
import { ProcessVivaWebhookHandler } from './jobs/process-viva-webhook.handler.js';
|
|
27
|
+
import { RetentionCleanupHandler } from './jobs/retention-cleanup.handler.js';
|
|
28
|
+
import { vivaPaymentMethodHandler } from './payment-method-handler.js';
|
|
29
|
+
import { WebhookController } from './api/webhook.controller.js';
|
|
30
|
+
import { AdminOnboardingController } from './api/admin-onboarding.controller.js';
|
|
31
|
+
import { AdminInternalController } from './api/admin-internal.controller.js';
|
|
32
|
+
import { AdminSourcesController } from './api/admin-sources.controller.js';
|
|
33
|
+
import { VivaShopApiResolver } from './api/shop-api.resolver.js';
|
|
34
|
+
import { shopApiExtensions } from './api/shop-api.extension.js';
|
|
35
|
+
import { MetricsStateService } from './observability/metrics-state.service.js';
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
// Channel custom fields
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
/**
|
|
40
|
+
* Channel-level custom fields auto-registered by the plugin.
|
|
41
|
+
*
|
|
42
|
+
* @see docs/plans/vendure-plugin-v0.md §"Data Model — Channel custom fields"
|
|
43
|
+
*
|
|
44
|
+
* v0.2.0 mode gating:
|
|
45
|
+
* - Always registered (both modes): `vivaSourceCode`, `vivaApplePayDomainVerified`.
|
|
46
|
+
* - Registered only when `options.mode === 'isv'`:
|
|
47
|
+
* `vivaAccountId`, `vivaMerchantId`, `vivaPayoutsEnabled`.
|
|
48
|
+
*
|
|
49
|
+
* NOTE on existing deployments switching merchant→isv or isv→merchant:
|
|
50
|
+
* Vendure does NOT auto-drop columns when a custom field is no longer
|
|
51
|
+
* registered (preserves operator data). Switching to merchant mode leaves
|
|
52
|
+
* the three ISV columns in place — unused but harmless. There is no data
|
|
53
|
+
* loss. To reclaim the columns, operators must drop them manually.
|
|
54
|
+
*
|
|
55
|
+
* Field visibility:
|
|
56
|
+
* - `vivaPayoutsEnabled` is `public: true` — storefront reads it via Shop API
|
|
57
|
+
* to gate the Viva CTA.
|
|
58
|
+
* - All other fields are admin-only (`public: false`).
|
|
59
|
+
*/
|
|
60
|
+
const ISV_ONLY_CHANNEL_FIELDS = [
|
|
61
|
+
{
|
|
62
|
+
name: 'vivaAccountId',
|
|
63
|
+
type: 'string',
|
|
64
|
+
nullable: true,
|
|
65
|
+
public: false,
|
|
66
|
+
ui: { component: 'text-form-input' },
|
|
67
|
+
description: [{ languageCode: 'en', value: 'Viva accountId — written at onboarding-create' }],
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: 'vivaMerchantId',
|
|
71
|
+
type: 'string',
|
|
72
|
+
nullable: true,
|
|
73
|
+
public: false,
|
|
74
|
+
ui: { component: 'text-form-input' },
|
|
75
|
+
description: [{ languageCode: 'en', value: 'Viva merchantId UUID — written by plugin after Account Verification webhook' }],
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: 'vivaPayoutsEnabled',
|
|
79
|
+
type: 'boolean',
|
|
80
|
+
nullable: false,
|
|
81
|
+
defaultValue: false,
|
|
82
|
+
public: true,
|
|
83
|
+
description: [{ languageCode: 'en', value: 'Storefront gate: true once merchant is verified by Viva' }],
|
|
84
|
+
},
|
|
85
|
+
];
|
|
86
|
+
const SHARED_CHANNEL_FIELDS = [
|
|
87
|
+
{
|
|
88
|
+
name: 'vivaSourceCode',
|
|
89
|
+
type: 'string',
|
|
90
|
+
nullable: true,
|
|
91
|
+
defaultValue: 'Default',
|
|
92
|
+
public: false,
|
|
93
|
+
description: [{ languageCode: 'en', value: 'Viva source code for Smart Checkout — defaults to "Default"' }],
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
name: 'vivaApplePayDomainVerified',
|
|
97
|
+
type: 'boolean',
|
|
98
|
+
nullable: false,
|
|
99
|
+
defaultValue: false,
|
|
100
|
+
public: false,
|
|
101
|
+
description: [{ languageCode: 'en', value: 'Ops tracking: true once Apple Pay domain is verified (manual step)' }],
|
|
102
|
+
},
|
|
103
|
+
];
|
|
104
|
+
/**
|
|
105
|
+
* Resolve the channel custom fields to register based on the plugin mode.
|
|
106
|
+
* Returns the merged + ordered list (matches v0.1.x ordering when mode='isv'
|
|
107
|
+
* so existing snapshots / DB columns stay stable).
|
|
108
|
+
*/
|
|
109
|
+
function resolveChannelCustomFields(mode) {
|
|
110
|
+
if (mode === 'isv') {
|
|
111
|
+
// Order preserved from v0.1.x: accountId, merchantId, sourceCode, payoutsEnabled, applePayDomainVerified.
|
|
112
|
+
const [accountId, merchantId, payoutsEnabled] = ISV_ONLY_CHANNEL_FIELDS;
|
|
113
|
+
const [sourceCode, applePay] = SHARED_CHANNEL_FIELDS;
|
|
114
|
+
return [accountId, merchantId, sourceCode, payoutsEnabled, applePay];
|
|
115
|
+
}
|
|
116
|
+
return [...SHARED_CHANNEL_FIELDS];
|
|
117
|
+
}
|
|
118
|
+
// ---------------------------------------------------------------------------
|
|
119
|
+
// Plugin-level module state
|
|
120
|
+
// ---------------------------------------------------------------------------
|
|
121
|
+
/**
|
|
122
|
+
* Stored plugin options set by `.init()`.
|
|
123
|
+
* Accessed at runtime by NestJS providers via the `VIVA_PLUGIN_OPTIONS` token.
|
|
124
|
+
*/
|
|
125
|
+
let pluginOptions;
|
|
126
|
+
// ---------------------------------------------------------------------------
|
|
127
|
+
// Plugin class
|
|
128
|
+
// ---------------------------------------------------------------------------
|
|
129
|
+
let VivaPaymentPlugin = VivaPaymentPlugin_1 = class VivaPaymentPlugin {
|
|
130
|
+
/**
|
|
131
|
+
* Configure and register the plugin.
|
|
132
|
+
*
|
|
133
|
+
* Must be called before passing the plugin to `VendureConfig.plugins`.
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```ts
|
|
137
|
+
* VivaPaymentPlugin.init({
|
|
138
|
+
* mode: 'isv',
|
|
139
|
+
* clientId: process.env.VIVA_CLIENT_ID!,
|
|
140
|
+
* clientSecret: process.env.VIVA_CLIENT_SECRET!,
|
|
141
|
+
* environment: 'demo',
|
|
142
|
+
* webhookVerificationKey: process.env.VIVA_WEBHOOK_VERIFICATION_KEY!,
|
|
143
|
+
* successUrl: 'https://example.com/checkout/success?orderCode={orderCode}',
|
|
144
|
+
* failureUrl: 'https://example.com/checkout/failure',
|
|
145
|
+
* onboardingReturnUrl: 'https://example.com/admin/viva/onboarding-return',
|
|
146
|
+
* })
|
|
147
|
+
* ```
|
|
148
|
+
*
|
|
149
|
+
* Accepts either the new field names (`clientId`/`clientSecret`) or the
|
|
150
|
+
* deprecated aliases (`isvClientId`/`isvClientSecret`) — old names emit a
|
|
151
|
+
* one-time deprecation warning. `mode` is optional and defaults to
|
|
152
|
+
* `'merchant'` (auto-detected as `'isv'` when ISV-only fields are present).
|
|
153
|
+
*/
|
|
154
|
+
static init(options) {
|
|
155
|
+
pluginOptions = normalizePluginOptions(options);
|
|
156
|
+
return VivaPaymentPlugin_1;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* @internal Test-only: reset module-level init() warning flags.
|
|
160
|
+
* Used by `test/plugin/init-validation.test.ts`.
|
|
161
|
+
*/
|
|
162
|
+
static _resetInitNoticesForTesting() {
|
|
163
|
+
_resetInitNoticesForTesting();
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Exposes the channel custom field definitions for testing / inspection.
|
|
167
|
+
* Mode-aware: returns the fields registered for the current init() mode.
|
|
168
|
+
* Falls back to the ISV field set when init() hasn't been called yet so
|
|
169
|
+
* existing snapshot tests continue to see the full list by default.
|
|
170
|
+
* @internal
|
|
171
|
+
*/
|
|
172
|
+
static get channelCustomFields() {
|
|
173
|
+
const mode = pluginOptions?.mode ?? 'isv';
|
|
174
|
+
return resolveChannelCustomFields(mode);
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
VivaPaymentPlugin = VivaPaymentPlugin_1 = __decorate([
|
|
178
|
+
VendurePlugin({
|
|
179
|
+
imports: [],
|
|
180
|
+
controllers: [WebhookController, AdminOnboardingController, AdminInternalController, AdminSourcesController],
|
|
181
|
+
shopApiExtensions: {
|
|
182
|
+
schema: shopApiExtensions,
|
|
183
|
+
resolvers: [VivaShopApiResolver],
|
|
184
|
+
},
|
|
185
|
+
providers: [
|
|
186
|
+
// Options factory — must come first so other providers can inject it.
|
|
187
|
+
{
|
|
188
|
+
provide: VIVA_PLUGIN_OPTIONS,
|
|
189
|
+
useFactory: () => {
|
|
190
|
+
if (!pluginOptions) {
|
|
191
|
+
throw new Error(`[${VIVA_PLUGIN_NAME}] Plugin options not initialised. Call VivaPaymentPlugin.init(options) before adding the plugin to your VendureConfig.`);
|
|
192
|
+
}
|
|
193
|
+
return pluginOptions;
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
// Singleton OAuth2 strategy — depends on VIVA_PLUGIN_OPTIONS.
|
|
197
|
+
VivaOAuth2StrategyProvider,
|
|
198
|
+
// Bootstrap warmup hook — depends on both of the above.
|
|
199
|
+
VivaBootstrap,
|
|
200
|
+
// Row-level transaction helpers + order/payment transitions (V5 + V7).
|
|
201
|
+
StateMachineService,
|
|
202
|
+
// Per-merchant in-process semaphore (V7, D9).
|
|
203
|
+
PerMerchantSemaphore,
|
|
204
|
+
// Channel ↔ Viva account helpers (V7 + V9).
|
|
205
|
+
ConnectedAccountsService,
|
|
206
|
+
// Webhook worker job handler — registers queue on bootstrap (V7).
|
|
207
|
+
ProcessVivaWebhookHandler,
|
|
208
|
+
// 90-day webhook event retention cleanup — daily setInterval (V7).
|
|
209
|
+
RetentionCleanupHandler,
|
|
210
|
+
// Shop API mutation resolver — cancelPayment (V8).
|
|
211
|
+
VivaShopApiResolver,
|
|
212
|
+
// In-process metrics state singleton (V10).
|
|
213
|
+
MetricsStateService,
|
|
214
|
+
],
|
|
215
|
+
entities: [VivaTransaction, VivaWebhookEvent],
|
|
216
|
+
exports: [VIVA_PLUGIN_OPTIONS, VivaBootstrap, StateMachineService, PerMerchantSemaphore, ConnectedAccountsService, ProcessVivaWebhookHandler, MetricsStateService],
|
|
217
|
+
compatibility: '^3.0.0',
|
|
218
|
+
configuration: (config) => {
|
|
219
|
+
// Merge Viva channel custom fields into the host app's customFields config.
|
|
220
|
+
// Vendure handles the column migrations automatically.
|
|
221
|
+
//
|
|
222
|
+
// ISV-only fields (vivaAccountId, vivaMerchantId, vivaPayoutsEnabled) are
|
|
223
|
+
// skipped in merchant mode — see resolveChannelCustomFields above.
|
|
224
|
+
const mode = pluginOptions?.mode ?? 'merchant';
|
|
225
|
+
const channelFields = resolveChannelCustomFields(mode);
|
|
226
|
+
config.customFields.Channel = [
|
|
227
|
+
...(config.customFields.Channel ?? []),
|
|
228
|
+
...channelFields,
|
|
229
|
+
];
|
|
230
|
+
// Register the Viva payment method handler.
|
|
231
|
+
config.paymentOptions = config.paymentOptions ?? {};
|
|
232
|
+
config.paymentOptions.paymentMethodHandlers = [
|
|
233
|
+
...(config.paymentOptions.paymentMethodHandlers ?? []),
|
|
234
|
+
vivaPaymentMethodHandler,
|
|
235
|
+
];
|
|
236
|
+
return config;
|
|
237
|
+
},
|
|
238
|
+
})
|
|
239
|
+
], VivaPaymentPlugin);
|
|
240
|
+
export { VivaPaymentPlugin };
|
|
241
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* providers/viva-oauth2-strategy.provider.ts — singleton OAuth2 strategy Nest provider.
|
|
3
|
+
*
|
|
4
|
+
* Builds a single `OAuth2ClientCredentialsStrategy` from the plugin options
|
|
5
|
+
* and registers it under `VIVA_OAUTH2_STRATEGY_TOKEN`. All other providers that
|
|
6
|
+
* need a bearer token inject this token — same stateful cache is reused across
|
|
7
|
+
* every request.
|
|
8
|
+
*
|
|
9
|
+
* Token cache is keyed by `viva:isv:token:{clientId}:{environment}` inside the
|
|
10
|
+
* strategy. Because there is only one client_id platform-wide, one InMemoryTokenCache
|
|
11
|
+
* instance covers all merchants.
|
|
12
|
+
*
|
|
13
|
+
* @see docs/plans/vendure-plugin-v0.md §"Configuration Surface" (D12)
|
|
14
|
+
* @see packages/medusa-payment-viva/src/loaders/viva-oauth2-strategy.ts (reference impl)
|
|
15
|
+
*/
|
|
16
|
+
import { OAuth2ClientCredentialsStrategy } from '@sakeetech/viva-payments-core/auth';
|
|
17
|
+
import type { VivaPaymentPluginOptions } from '../types.js';
|
|
18
|
+
export { VIVA_OAUTH2_STRATEGY_TOKEN } from '../constants.js';
|
|
19
|
+
/**
|
|
20
|
+
* Nest provider that builds and exposes the singleton OAuth2 strategy.
|
|
21
|
+
*
|
|
22
|
+
* The factory is intentionally simple: one set of credentials, one cache,
|
|
23
|
+
* one mutex. Multi-worker scenarios can inject a `redisLock` through plugin
|
|
24
|
+
* options (D12 — Redlock client).
|
|
25
|
+
*/
|
|
26
|
+
export declare const VivaOAuth2StrategyProvider: {
|
|
27
|
+
provide: string;
|
|
28
|
+
inject: [string];
|
|
29
|
+
useFactory: (options: VivaPaymentPluginOptions) => OAuth2ClientCredentialsStrategy;
|
|
30
|
+
};
|
|
31
|
+
export type VivaOAuth2Strategy = OAuth2ClientCredentialsStrategy;
|
|
32
|
+
/**
|
|
33
|
+
* Convenience parameter decorator for injecting the OAuth2 strategy.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* constructor(@InjectVivaOAuth2Strategy() private readonly oauth2: VivaOAuth2Strategy) {}
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare const InjectVivaOAuth2Strategy: () => ParameterDecorator;
|
|
41
|
+
//# sourceMappingURL=viva-oauth2-strategy.provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viva-oauth2-strategy.provider.d.ts","sourceRoot":"","sources":["../../src/providers/viva-oauth2-strategy.provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EACL,+BAA+B,EAGhC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAO5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAM7D;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B;;YAEJ,CAAC,MAAM,CAAC;0BACnB,wBAAwB,KAAG,+BAA+B;CAejF,CAAC;AAMF,MAAM,MAAM,kBAAkB,GAAG,+BAA+B,CAAC;AAEjE;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,QAAO,kBACR,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* providers/viva-oauth2-strategy.provider.ts — singleton OAuth2 strategy Nest provider.
|
|
3
|
+
*
|
|
4
|
+
* Builds a single `OAuth2ClientCredentialsStrategy` from the plugin options
|
|
5
|
+
* and registers it under `VIVA_OAUTH2_STRATEGY_TOKEN`. All other providers that
|
|
6
|
+
* need a bearer token inject this token — same stateful cache is reused across
|
|
7
|
+
* every request.
|
|
8
|
+
*
|
|
9
|
+
* Token cache is keyed by `viva:isv:token:{clientId}:{environment}` inside the
|
|
10
|
+
* strategy. Because there is only one client_id platform-wide, one InMemoryTokenCache
|
|
11
|
+
* instance covers all merchants.
|
|
12
|
+
*
|
|
13
|
+
* @see docs/plans/vendure-plugin-v0.md §"Configuration Surface" (D12)
|
|
14
|
+
* @see packages/medusa-payment-viva/src/loaders/viva-oauth2-strategy.ts (reference impl)
|
|
15
|
+
*/
|
|
16
|
+
import { Inject } from '@nestjs/common';
|
|
17
|
+
import { OAuth2ClientCredentialsStrategy, InMemoryTokenCache, AsyncMutex, } from '@sakeetech/viva-payments-core/auth';
|
|
18
|
+
import { VIVA_PLUGIN_OPTIONS, VIVA_OAUTH2_STRATEGY_TOKEN } from '../constants.js';
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Re-export the token so callers can import from a single path.
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
export { VIVA_OAUTH2_STRATEGY_TOKEN } from '../constants.js';
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// Provider factory
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
/**
|
|
27
|
+
* Nest provider that builds and exposes the singleton OAuth2 strategy.
|
|
28
|
+
*
|
|
29
|
+
* The factory is intentionally simple: one set of credentials, one cache,
|
|
30
|
+
* one mutex. Multi-worker scenarios can inject a `redisLock` through plugin
|
|
31
|
+
* options (D12 — Redlock client).
|
|
32
|
+
*/
|
|
33
|
+
export const VivaOAuth2StrategyProvider = {
|
|
34
|
+
provide: VIVA_OAUTH2_STRATEGY_TOKEN,
|
|
35
|
+
inject: [VIVA_PLUGIN_OPTIONS],
|
|
36
|
+
useFactory: (options) => {
|
|
37
|
+
const cache = new InMemoryTokenCache();
|
|
38
|
+
const mutex = new AsyncMutex();
|
|
39
|
+
return new OAuth2ClientCredentialsStrategy({
|
|
40
|
+
environment: options.environment,
|
|
41
|
+
clientId: options.clientId,
|
|
42
|
+
clientSecret: options.clientSecret,
|
|
43
|
+
cache,
|
|
44
|
+
mutex,
|
|
45
|
+
// Optional infra overrides from plugin options.
|
|
46
|
+
...(options.metricsHook !== undefined ? { metrics: options.metricsHook } : {}),
|
|
47
|
+
...(options.logger !== undefined ? { logger: options.logger } : {}),
|
|
48
|
+
});
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Convenience parameter decorator for injecting the OAuth2 strategy.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```ts
|
|
56
|
+
* constructor(@InjectVivaOAuth2Strategy() private readonly oauth2: VivaOAuth2Strategy) {}
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export const InjectVivaOAuth2Strategy = () => Inject(VIVA_OAUTH2_STRATEGY_TOKEN);
|
|
60
|
+
//# sourceMappingURL=viva-oauth2-strategy.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viva-oauth2-strategy.provider.js","sourceRoot":"","sources":["../../src/providers/viva-oauth2-strategy.provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EACL,+BAA+B,EAC/B,kBAAkB,EAClB,UAAU,GACX,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAElF,8EAA8E;AAC9E,gEAAgE;AAChE,8EAA8E;AAE9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAE7D,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,OAAO,EAAE,0BAA0B;IACnC,MAAM,EAAE,CAAC,mBAAmB,CAAa;IACzC,UAAU,EAAE,CAAC,OAAiC,EAAmC,EAAE;QACjF,MAAM,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;QAE/B,OAAO,IAAI,+BAA+B,CAAC;YACzC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,KAAK;YACL,KAAK;YACL,gDAAgD;YAChD,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpE,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAQF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAuB,EAAE,CAC/D,MAAM,CAAC,0BAA0B,CAAC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* services/connected-accounts.service.ts — Channel ↔ Viva account helpers.
|
|
3
|
+
*
|
|
4
|
+
* Used by the webhook worker (V7) for event 8194 and by the onboarding
|
|
5
|
+
* endpoints (V9). Encapsulates the mandatory field-write order rule:
|
|
6
|
+
*
|
|
7
|
+
* 1. vivaMerchantId (write FIRST — storefront does NOT gate on this)
|
|
8
|
+
* 2. vivaPayoutsEnabled = true (write LAST — storefront gates on this)
|
|
9
|
+
*
|
|
10
|
+
* Writing in reverse order would create a race window where the storefront
|
|
11
|
+
* sees payoutsEnabled=true but vivaMerchantId is still null, causing every
|
|
12
|
+
* createPayment to fail with VIVA_CHANNEL_MISCONFIGURED.
|
|
13
|
+
*
|
|
14
|
+
* @see docs/plans/vendure-plugin-v0.md §"Webhook Design — Process flow" step 4 (8194)
|
|
15
|
+
* @see docs/VENDURE-CONTRACT.MD §10 (field-write order)
|
|
16
|
+
*/
|
|
17
|
+
import { ChannelService, TransactionalConnection } from '@vendure/core';
|
|
18
|
+
import type { RequestContext } from '@vendure/core';
|
|
19
|
+
import { Channel } from '@vendure/core';
|
|
20
|
+
export declare class ConnectedAccountsService {
|
|
21
|
+
private readonly channelService;
|
|
22
|
+
private readonly connection;
|
|
23
|
+
constructor(channelService: ChannelService, connection: TransactionalConnection);
|
|
24
|
+
/**
|
|
25
|
+
* Write `vivaAccountId` on the channel.
|
|
26
|
+
*
|
|
27
|
+
* Called at onboarding-create time (V9) immediately after IsvAccounts.create
|
|
28
|
+
* returns the accountId. This is always the first write for a new channel.
|
|
29
|
+
*/
|
|
30
|
+
writeAccountId(ctx: RequestContext, channel: Channel, accountId: string): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Find a channel where `customFields.vivaAccountId === accountId`.
|
|
33
|
+
*
|
|
34
|
+
* Loads all channels and filters in-process (Vendure doesn't support
|
|
35
|
+
* custom-field WHERE queries natively without raw SQL).
|
|
36
|
+
*
|
|
37
|
+
* Returns null if no channel matches.
|
|
38
|
+
*/
|
|
39
|
+
findChannelByAccountId(accountId: string): Promise<Channel | null>;
|
|
40
|
+
/**
|
|
41
|
+
* Write `vivaMerchantId` on the channel.
|
|
42
|
+
*
|
|
43
|
+
* Must be called BEFORE `flipPayoutsEnabled`. Do not reorder.
|
|
44
|
+
*/
|
|
45
|
+
writeMerchantId(ctx: RequestContext, channel: Channel, merchantId: string): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Flip `vivaPayoutsEnabled` on the channel.
|
|
48
|
+
*
|
|
49
|
+
* Must be called AFTER `writeMerchantId` when enabling. Do not reorder.
|
|
50
|
+
*/
|
|
51
|
+
flipPayoutsEnabled(ctx: RequestContext, channel: Channel, value: boolean): Promise<void>;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=connected-accounts.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connected-accounts.service.d.ts","sourceRoot":"","sources":["../../src/services/connected-accounts.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAU,MAAM,eAAe,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAOxC,qBACa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBADV,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,uBAAuB;IAGtD;;;;;OAKG;IACG,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7F;;;;;;;OAOG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAYxE;;;;OAIG;IACG,eAAe,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB/F;;;;OAIG;IACG,kBAAkB,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAU/F"}
|