@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.
Files changed (135) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +952 -0
  3. package/dist/api/admin-internal.controller.d.ts +59 -0
  4. package/dist/api/admin-internal.controller.d.ts.map +1 -0
  5. package/dist/api/admin-internal.controller.js +229 -0
  6. package/dist/api/admin-internal.controller.js.map +1 -0
  7. package/dist/api/admin-onboarding.controller.d.ts +72 -0
  8. package/dist/api/admin-onboarding.controller.d.ts.map +1 -0
  9. package/dist/api/admin-onboarding.controller.js +496 -0
  10. package/dist/api/admin-onboarding.controller.js.map +1 -0
  11. package/dist/api/admin-sources.controller.d.ts +50 -0
  12. package/dist/api/admin-sources.controller.d.ts.map +1 -0
  13. package/dist/api/admin-sources.controller.js +283 -0
  14. package/dist/api/admin-sources.controller.js.map +1 -0
  15. package/dist/api/shop-api.extension.d.ts +15 -0
  16. package/dist/api/shop-api.extension.d.ts.map +1 -0
  17. package/dist/api/shop-api.extension.js +35 -0
  18. package/dist/api/shop-api.extension.js.map +1 -0
  19. package/dist/api/shop-api.resolver.d.ts +42 -0
  20. package/dist/api/shop-api.resolver.d.ts.map +1 -0
  21. package/dist/api/shop-api.resolver.js +256 -0
  22. package/dist/api/shop-api.resolver.js.map +1 -0
  23. package/dist/api/webhook.controller.d.ts +58 -0
  24. package/dist/api/webhook.controller.d.ts.map +1 -0
  25. package/dist/api/webhook.controller.js +204 -0
  26. package/dist/api/webhook.controller.js.map +1 -0
  27. package/dist/cli/bin.d.ts +28 -0
  28. package/dist/cli/bin.d.ts.map +1 -0
  29. package/dist/cli/bin.js +104 -0
  30. package/dist/cli/bin.js.map +1 -0
  31. package/dist/cli/plan.d.ts +41 -0
  32. package/dist/cli/plan.d.ts.map +1 -0
  33. package/dist/cli/plan.js +115 -0
  34. package/dist/cli/plan.js.map +1 -0
  35. package/dist/cli/register-webhooks.d.ts +45 -0
  36. package/dist/cli/register-webhooks.d.ts.map +1 -0
  37. package/dist/cli/register-webhooks.js +400 -0
  38. package/dist/cli/register-webhooks.js.map +1 -0
  39. package/dist/cli/types.d.ts +75 -0
  40. package/dist/cli/types.d.ts.map +1 -0
  41. package/dist/cli/types.js +10 -0
  42. package/dist/cli/types.js.map +1 -0
  43. package/dist/constants.d.ts +35 -0
  44. package/dist/constants.d.ts.map +1 -0
  45. package/dist/constants.js +40 -0
  46. package/dist/constants.js.map +1 -0
  47. package/dist/entities/index.d.ts +4 -0
  48. package/dist/entities/index.d.ts.map +1 -0
  49. package/dist/entities/index.js +3 -0
  50. package/dist/entities/index.js.map +1 -0
  51. package/dist/entities/viva-transaction.entity.d.ts +70 -0
  52. package/dist/entities/viva-transaction.entity.d.ts.map +1 -0
  53. package/dist/entities/viva-transaction.entity.js +133 -0
  54. package/dist/entities/viva-transaction.entity.js.map +1 -0
  55. package/dist/entities/viva-webhook-event.entity.d.ts +71 -0
  56. package/dist/entities/viva-webhook-event.entity.d.ts.map +1 -0
  57. package/dist/entities/viva-webhook-event.entity.js +138 -0
  58. package/dist/entities/viva-webhook-event.entity.js.map +1 -0
  59. package/dist/index.d.ts +27 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +23 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/jobs/process-viva-webhook.handler.d.ts +95 -0
  64. package/dist/jobs/process-viva-webhook.handler.d.ts.map +1 -0
  65. package/dist/jobs/process-viva-webhook.handler.js +530 -0
  66. package/dist/jobs/process-viva-webhook.handler.js.map +1 -0
  67. package/dist/jobs/queue-names.d.ts +18 -0
  68. package/dist/jobs/queue-names.d.ts.map +1 -0
  69. package/dist/jobs/queue-names.js +19 -0
  70. package/dist/jobs/queue-names.js.map +1 -0
  71. package/dist/jobs/retention-cleanup.handler.d.ts +31 -0
  72. package/dist/jobs/retention-cleanup.handler.d.ts.map +1 -0
  73. package/dist/jobs/retention-cleanup.handler.js +94 -0
  74. package/dist/jobs/retention-cleanup.handler.js.map +1 -0
  75. package/dist/loaders/bootstrap.d.ts +28 -0
  76. package/dist/loaders/bootstrap.d.ts.map +1 -0
  77. package/dist/loaders/bootstrap.js +90 -0
  78. package/dist/loaders/bootstrap.js.map +1 -0
  79. package/dist/migrations/1714000000000-create-viva-tables.d.ts +22 -0
  80. package/dist/migrations/1714000000000-create-viva-tables.d.ts.map +1 -0
  81. package/dist/migrations/1714000000000-create-viva-tables.js +105 -0
  82. package/dist/migrations/1714000000000-create-viva-tables.js.map +1 -0
  83. package/dist/observability/metrics-state.service.d.ts +43 -0
  84. package/dist/observability/metrics-state.service.d.ts.map +1 -0
  85. package/dist/observability/metrics-state.service.js +207 -0
  86. package/dist/observability/metrics-state.service.js.map +1 -0
  87. package/dist/payment-method-handler.d.ts +26 -0
  88. package/dist/payment-method-handler.d.ts.map +1 -0
  89. package/dist/payment-method-handler.js +693 -0
  90. package/dist/payment-method-handler.js.map +1 -0
  91. package/dist/plugin.d.ts +95 -0
  92. package/dist/plugin.d.ts.map +1 -0
  93. package/dist/plugin.js +241 -0
  94. package/dist/plugin.js.map +1 -0
  95. package/dist/providers/viva-oauth2-strategy.provider.d.ts +41 -0
  96. package/dist/providers/viva-oauth2-strategy.provider.d.ts.map +1 -0
  97. package/dist/providers/viva-oauth2-strategy.provider.js +60 -0
  98. package/dist/providers/viva-oauth2-strategy.provider.js.map +1 -0
  99. package/dist/services/connected-accounts.service.d.ts +53 -0
  100. package/dist/services/connected-accounts.service.d.ts.map +1 -0
  101. package/dist/services/connected-accounts.service.js +108 -0
  102. package/dist/services/connected-accounts.service.js.map +1 -0
  103. package/dist/services/per-merchant-semaphore.service.d.ts +49 -0
  104. package/dist/services/per-merchant-semaphore.service.d.ts.map +1 -0
  105. package/dist/services/per-merchant-semaphore.service.js +156 -0
  106. package/dist/services/per-merchant-semaphore.service.js.map +1 -0
  107. package/dist/services/state-machine.service.d.ts +100 -0
  108. package/dist/services/state-machine.service.d.ts.map +1 -0
  109. package/dist/services/state-machine.service.js +233 -0
  110. package/dist/services/state-machine.service.js.map +1 -0
  111. package/dist/types.d.ts +286 -0
  112. package/dist/types.d.ts.map +1 -0
  113. package/dist/types.js +23 -0
  114. package/dist/types.js.map +1 -0
  115. package/dist/util/currency.d.ts +32 -0
  116. package/dist/util/currency.d.ts.map +1 -0
  117. package/dist/util/currency.js +90 -0
  118. package/dist/util/currency.js.map +1 -0
  119. package/dist/util/error-envelope.d.ts +51 -0
  120. package/dist/util/error-envelope.d.ts.map +1 -0
  121. package/dist/util/error-envelope.js +157 -0
  122. package/dist/util/error-envelope.js.map +1 -0
  123. package/dist/util/ip-allowlist.d.ts +44 -0
  124. package/dist/util/ip-allowlist.d.ts.map +1 -0
  125. package/dist/util/ip-allowlist.js +139 -0
  126. package/dist/util/ip-allowlist.js.map +1 -0
  127. package/dist/util/normalize-options.d.ts +24 -0
  128. package/dist/util/normalize-options.d.ts.map +1 -0
  129. package/dist/util/normalize-options.js +189 -0
  130. package/dist/util/normalize-options.js.map +1 -0
  131. package/dist/util/url-template.d.ts +18 -0
  132. package/dist/util/url-template.d.ts.map +1 -0
  133. package/dist/util/url-template.js +22 -0
  134. package/dist/util/url-template.js.map +1 -0
  135. 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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"}
@@ -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"}