@sakeetech/viva-payments-core 0.2.6 → 0.2.8

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/README.md CHANGED
@@ -81,7 +81,7 @@ new Payments({
81
81
  | `createOrder(req, opts?)` | `POST /checkout/v2/orders` (merchant) / `POST /checkout/v2/isv/orders?merchantId={uuid}` (ISV). Returns `{ orderCode, redirectUrl }`. |
82
82
  | `retrieveTransaction(transactionId, opts?)` | `GET /checkout/v2/[isv/]transactions/{id}`. Idempotent. |
83
83
  | `refundPayment(transactionId, opts)` | `POST /api/transactions/{id}` on the **legacy host** with Basic auth (probe F1 — v2/OAuth2 path returns 405). Requires `legacyClient`. |
84
- | `cancelOrder(orderCode, opts?)` | `DELETE /checkout/v2/orders/{orderCode}[?merchantId=...]`. Idempotent. |
84
+ | `cancelOrder(orderCode, opts)` | `DELETE /api/orders/{orderCode}` on the **legacy host** with Basic auth (the v2/OAuth2 `/checkout/v2/orders/{oc}` route returns 404). Requires `legacyClient` — Merchant Basic (M) or a Reseller-variant per call (I). Idempotent. |
85
85
 
86
86
  Mode behaviour: in merchant mode, `merchantId` (if passed) is silently
87
87
  ignored; `isvAmount` is stripped from the wire body. In ISV mode,
@@ -3,19 +3,14 @@
3
3
  *
4
4
  * Some ISV API calls (e.g. `cancelOrder`) require a Reseller-level basic-auth
5
5
  * credential rather than the OAuth2 bearer token. This strategy computes the
6
- * `Authorization: Basic <base64(merchantId:resellerApiKey)>` header value and
7
- * returns it from `getBearerToken()` so the S3 HTTP client remains uniform —
8
- * it always calls `getBearerToken()` and uses the result verbatim.
6
+ * `Authorization: Basic <base64(resellerId:merchantId:resellerApiKey)>` header
7
+ * value and returns it from `getBearerToken()` so the S3 HTTP client remains
8
+ * uniform — it always calls `getBearerToken()` and uses the result verbatim.
9
9
  *
10
- * Credential combination used:
11
- * Username = merchantId, Password = resellerApiKey
10
+ * Credential combination used (three-part):
11
+ * Username = resellerId:merchantId, Password = resellerApiKey
12
12
  *
13
- * TODO(impl): verify exact merchantId:resellerApiKey concatenation against
14
- * live demo. The ISV docs (`payment-isv-api.txt`) confirm Reseller ID +
15
- * Merchant ID + Reseller API Key are required credentials but the precise
16
- * Basic-auth encoding (which field is "username" vs "password") should be
17
- * validated against a live Viva demo response before shipping.
18
- * @see references/viva-docs/md/payment-isv-api.txt:1
13
+ * @see docs/internal/payment-isv-api.yaml:2650 (reseller auth structure)
19
14
  */
20
15
  import type { AuthStrategy } from '../types/auth.js';
21
16
  export interface ResellerStrategyOptions {
@@ -29,7 +24,7 @@ export interface ResellerStrategyOptions {
29
24
  /**
30
25
  * Returns a Basic-auth Authorization header value for ISV reseller calls.
31
26
  *
32
- * `getBearerToken()` returns `Basic <base64(merchantId:resellerApiKey)>`.
27
+ * `getBearerToken()` returns `Basic <base64(resellerId:merchantId:resellerApiKey)>`.
33
28
  * The S3 layer sets `Authorization: <value>` — for this strategy the value
34
29
  * includes the `Basic ` prefix so it can be used identically to a bearer value.
35
30
  *
@@ -1 +1 @@
1
- {"version":3,"file":"reseller-strategy.d.ts","sourceRoot":"","sources":["../../src/auth/reseller-strategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,yBAA0B,YAAW,YAAY;IAC5D,QAAQ,CAAC,IAAI,yBAAyB;IAEtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAE7B,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,uBAAuB;IAM/E;;;;;;;OAOG;IACG,cAAc,CAAC,KAAK,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzE;;;;;;;;OAQG;IACH,sBAAsB,IAAI,MAAM;IAOhC,0EAA0E;IAC1E,IAAI,UAAU,IAAI,MAAM,CAEvB;CACF"}
1
+ {"version":3,"file":"reseller-strategy.d.ts","sourceRoot":"","sources":["../../src/auth/reseller-strategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,yBAA0B,YAAW,YAAY;IAC5D,QAAQ,CAAC,IAAI,yBAAyB;IAEtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAE7B,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,uBAAuB;IAM/E;;;;;;;OAOG;IACG,cAAc,CAAC,KAAK,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzE;;;;;;;;OAQG;IACH,sBAAsB,IAAI,MAAM;IAOhC,0EAA0E;IAC1E,IAAI,UAAU,IAAI,MAAM,CAEvB;CACF"}
@@ -4,26 +4,21 @@
4
4
  *
5
5
  * Some ISV API calls (e.g. `cancelOrder`) require a Reseller-level basic-auth
6
6
  * credential rather than the OAuth2 bearer token. This strategy computes the
7
- * `Authorization: Basic <base64(merchantId:resellerApiKey)>` header value and
8
- * returns it from `getBearerToken()` so the S3 HTTP client remains uniform —
9
- * it always calls `getBearerToken()` and uses the result verbatim.
7
+ * `Authorization: Basic <base64(resellerId:merchantId:resellerApiKey)>` header
8
+ * value and returns it from `getBearerToken()` so the S3 HTTP client remains
9
+ * uniform — it always calls `getBearerToken()` and uses the result verbatim.
10
10
  *
11
- * Credential combination used:
12
- * Username = merchantId, Password = resellerApiKey
11
+ * Credential combination used (three-part):
12
+ * Username = resellerId:merchantId, Password = resellerApiKey
13
13
  *
14
- * TODO(impl): verify exact merchantId:resellerApiKey concatenation against
15
- * live demo. The ISV docs (`payment-isv-api.txt`) confirm Reseller ID +
16
- * Merchant ID + Reseller API Key are required credentials but the precise
17
- * Basic-auth encoding (which field is "username" vs "password") should be
18
- * validated against a live Viva demo response before shipping.
19
- * @see references/viva-docs/md/payment-isv-api.txt:1
14
+ * @see docs/internal/payment-isv-api.yaml:2650 (reseller auth structure)
20
15
  */
21
16
  Object.defineProperty(exports, "__esModule", { value: true });
22
17
  exports.ResellerBasicAuthStrategy = void 0;
23
18
  /**
24
19
  * Returns a Basic-auth Authorization header value for ISV reseller calls.
25
20
  *
26
- * `getBearerToken()` returns `Basic <base64(merchantId:resellerApiKey)>`.
21
+ * `getBearerToken()` returns `Basic <base64(resellerId:merchantId:resellerApiKey)>`.
27
22
  * The S3 layer sets `Authorization: <value>` — for this strategy the value
28
23
  * includes the `Basic ` prefix so it can be used identically to a bearer value.
29
24
  *
@@ -1 +1 @@
1
- {"version":3,"file":"reseller-strategy.js","sourceRoot":"","sources":["../../src/auth/reseller-strategy.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAaH;;;;;;;;GAQG;AACH,MAAa,yBAAyB;IAC3B,IAAI,GAAG,qBAAqB,CAAC;IAErB,WAAW,CAAS;IACpB,WAAW,CAAS;IACpB,eAAe,CAAS;IAEzC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAA2B;QAC7E,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IACxC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAAC,KAAkC;QACrD,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACvC,CAAC;IAED;;;;;;;;OAQG;IACH,sBAAsB;QACpB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACzB,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,EAAE,CAClE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,OAAO,SAAS,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,0EAA0E;IAC1E,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AA7CD,8DA6CC"}
1
+ {"version":3,"file":"reseller-strategy.js","sourceRoot":"","sources":["../../src/auth/reseller-strategy.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAaH;;;;;;;;GAQG;AACH,MAAa,yBAAyB;IAC3B,IAAI,GAAG,qBAAqB,CAAC;IAErB,WAAW,CAAS;IACpB,WAAW,CAAS;IACpB,eAAe,CAAS;IAEzC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAA2B;QAC7E,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IACxC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAAC,KAAkC;QACrD,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACvC,CAAC;IAED;;;;;;;;OAQG;IACH,sBAAsB;QACpB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACzB,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,EAAE,CAClE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,OAAO,SAAS,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,0EAA0E;IAC1E,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AA7CD,8DA6CC"}
@@ -230,34 +230,41 @@ export declare class Payments {
230
230
  /**
231
231
  * Cancel an order that has not yet been paid.
232
232
  *
233
- * Idempotent per Viva docs: calling cancel on an already-cancelled or
234
- * captured order returns the existing Viva response without error.
235
- *
236
233
  * Per plan P18: cancellation triggers webhook 4865 (Order Updated).
237
234
  *
238
- * Path: `DELETE /checkout/v2/orders/{orderCode}?merchantId={merchantId}` (OAuth2).
235
+ * CONTRACT (verified against live demo, 2026-06-13 — see
236
+ * docs/internal/viva-cancel-probes/*-findings.md):
237
+ * `DELETE /api/orders/{orderCode}` on the LEGACY HOST
238
+ * (`demo.vivapayments.com` / `www.vivapayments.com`) with Basic auth.
239
+ * Success → 200 `{ OrderCode, ErrorCode: 0, ErrorText: null, Success: true }`.
239
240
  *
240
- * UNVERIFIED against live sandbox as of 2026-04-25 probe. Only
241
- * cancel-transaction (refund/reverse) was tested; cancel-order was not.
242
- * Kept on v2/OAuth2 + 401-fallback path defensively.
241
+ * The v2/OAuth2 route `DELETE /checkout/v2/orders/{orderCode}` does NOT exist
242
+ * — it returns an empty 404 for every order (even GET-by-code 404s), so the
243
+ * whole order-by-code resource is unavailable on `demo-api`/OAuth2. Cancel
244
+ * lives on the legacy host, exactly like refundPayment's cancel-transaction.
243
245
  *
244
- * 401 → reseller fallback (D15) — kept DEFENSIVE:
245
- * If the primary OAuth2 client receives a 401 and secondaryClient is configured,
246
- * the request is retried once with the secondary (Reseller basic-auth) client.
247
- * A 401 from the secondary surfaces immediately as VivaAuthError — no further retry.
246
+ * AUTH per mode (the caller wires the correct `legacyClient`):
247
+ * - merchant: Merchant Basic — `base64(MerchantId:ApiKey)`.
248
+ * - isv: Reseller Basic — `base64(ResellerId:ConnectedMerchantId:ResellerApiKey)`.
249
+ * The caller passes a Reseller-variant client per-call via `opts.legacyClient`,
250
+ * since the cancel must authenticate as the reseller scoped to the connected
251
+ * merchant — an ISV never holds the connected merchant's ApiKey.
248
252
  *
249
- * Note: if cancelOrder already succeeded on Viva's side before any 401 is
250
- * observed, a 4xx from Viva on a subsequent attempt signals the order is
251
- * already cancelled (idempotent). The fallback does NOT apply to non-401
252
- * errors — those propagate as VivaApiError unchanged.
253
+ * This method calls `legacyClient` DIRECTLY (no OAuth2 / 401-fallback). If
254
+ * `legacyClient` is absent, throws VivaValidationError.
253
255
  *
254
- * @see references/viva-docs/md/payment-isv-api.txt:1
256
+ * Idempotent (verified): re-cancelling an already-cancelled order returns 200
257
+ * `Success: true`, not a 4xx — so the retry-on-5xx safety is sound and a second
258
+ * cancel is harmless.
259
+ *
260
+ * @see docs/internal/viva-cancel-probes/viva-cancel-order-findings.md (v2/OAuth2 route → 404)
261
+ * @see docs/internal/viva-cancel-probes/viva-cancel-legacy-findings.md (merchant legacy → 200)
262
+ * @see docs/internal/viva-cancel-probes/viva-cancel-isv-reseller-findings.md (ISV reseller legacy → 200, idempotent)
255
263
  * @see references/viva-docs/md/webhooks-for-payments.txt:205 (4865 Order Updated)
256
- * @see references/viva-docs/md/isv-credentials.txt:107 (reseller basic-auth)
257
- * @see docs/plans/vendure-plugin-v0.md §D15 (reseller fallback scope)
258
264
  */
259
265
  cancelOrder(orderCode: OrderCode, opts?: {
260
266
  merchantId?: MerchantId;
267
+ legacyClient?: BasicAuthClient;
261
268
  }): Promise<CancelOrderResponse>;
262
269
  }
263
270
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/payments/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,cAAc,EACd,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,SAAS,EACT,UAAU,EACX,MAAM,mBAAmB,CAAC;AAwB3B;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC;AAE9C;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC;CACzC;AAuFD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8B;gBAE/C,MAAM,EAAE,cAAc;IAOlC;;;;;;;;;;;;;;;;;;OAkBG;IACG,WAAW,CACf,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE;QAAE,UAAU,CAAC,EAAE,UAAU,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GACxD,OAAO,CAAC,mBAAmB,CAAC;IAgF/B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,mBAAmB,CACvB,aAAa,EAAE,aAAa,EAC5B,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,UAAU,CAAA;KAAO,GACrC,OAAO,CAAC,2BAA2B,CAAC;IAqFvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACG,aAAa,CACjB,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE;QACJ,UAAU,EAAE,UAAU,CAAC;QACvB,WAAW,CAAC,EAAE,UAAU,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,mEAAmE;QACnE,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB;;;;;WAKG;QACH,YAAY,CAAC,EAAE,eAAe,CAAC;KAChC,GACA,OAAO,CAAC,cAAc,CAAC;IA+D1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,WAAW,CACf,SAAS,EAAE,SAAS,EACpB,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,UAAU,CAAA;KAAO,GACrC,OAAO,CAAC,mBAAmB,CAAC;CAoChC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/payments/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,cAAc,EACd,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,SAAS,EACT,UAAU,EACX,MAAM,mBAAmB,CAAC;AAwB3B;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC;AAE9C;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC;CACzC;AA+DD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8B;gBAE/C,MAAM,EAAE,cAAc;IAOlC;;;;;;;;;;;;;;;;;;OAkBG;IACG,WAAW,CACf,GAAG,EAAE,kBAAkB,EACvB,IAAI,EAAE;QAAE,UAAU,CAAC,EAAE,UAAU,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GACxD,OAAO,CAAC,mBAAmB,CAAC;IAgF/B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,mBAAmB,CACvB,aAAa,EAAE,aAAa,EAC5B,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,UAAU,CAAA;KAAO,GACrC,OAAO,CAAC,2BAA2B,CAAC;IAqFvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACG,aAAa,CACjB,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE;QACJ,UAAU,EAAE,UAAU,CAAC;QACvB,WAAW,CAAC,EAAE,UAAU,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,mEAAmE;QACnE,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB;;;;;WAKG;QACH,YAAY,CAAC,EAAE,eAAe,CAAC;KAChC,GACA,OAAO,CAAC,cAAc,CAAC;IA+D1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACG,WAAW,CACf,SAAS,EAAE,SAAS,EACpB,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,UAAU,CAAC;QAAC,YAAY,CAAC,EAAE,eAAe,CAAA;KAAO,GACrE,OAAO,CAAC,mBAAmB,CAAC;CAqChC"}
@@ -119,26 +119,6 @@ function buildTransactionRetrieveUrl(mode, transactionId, merchantId) {
119
119
  };
120
120
  }
121
121
  }
122
- /**
123
- * Build the path + query for `DELETE /checkout/v2/orders/{orderCode}`.
124
- *
125
- * Both modes share the same path template; only ISV mode appends the
126
- * `merchantId` query parameter (and requires it).
127
- */
128
- function buildOrderCancelUrl(mode, orderCode, merchantId) {
129
- const path = `/checkout/v2/orders/${orderCode}`;
130
- switch (mode) {
131
- case 'merchant':
132
- return { path, query: {} };
133
- case 'isv':
134
- if (!merchantId) {
135
- throw new index_js_1.VivaValidationError({
136
- message: "cancelOrder: merchantId is required when mode='isv'",
137
- });
138
- }
139
- return { path, query: { merchantId } };
140
- }
141
- }
142
122
  // ---------------------------------------------------------------------------
143
123
  // Payments
144
124
  // ---------------------------------------------------------------------------
@@ -470,63 +450,62 @@ class Payments {
470
450
  /**
471
451
  * Cancel an order that has not yet been paid.
472
452
  *
473
- * Idempotent per Viva docs: calling cancel on an already-cancelled or
474
- * captured order returns the existing Viva response without error.
475
- *
476
453
  * Per plan P18: cancellation triggers webhook 4865 (Order Updated).
477
454
  *
478
- * Path: `DELETE /checkout/v2/orders/{orderCode}?merchantId={merchantId}` (OAuth2).
455
+ * CONTRACT (verified against live demo, 2026-06-13 — see
456
+ * docs/internal/viva-cancel-probes/*-findings.md):
457
+ * `DELETE /api/orders/{orderCode}` on the LEGACY HOST
458
+ * (`demo.vivapayments.com` / `www.vivapayments.com`) with Basic auth.
459
+ * Success → 200 `{ OrderCode, ErrorCode: 0, ErrorText: null, Success: true }`.
460
+ *
461
+ * The v2/OAuth2 route `DELETE /checkout/v2/orders/{orderCode}` does NOT exist
462
+ * — it returns an empty 404 for every order (even GET-by-code 404s), so the
463
+ * whole order-by-code resource is unavailable on `demo-api`/OAuth2. Cancel
464
+ * lives on the legacy host, exactly like refundPayment's cancel-transaction.
479
465
  *
480
- * UNVERIFIED against live sandbox as of 2026-04-25 probe. Only
481
- * cancel-transaction (refund/reverse) was tested; cancel-order was not.
482
- * Kept on v2/OAuth2 + 401-fallback path defensively.
466
+ * AUTH per mode (the caller wires the correct `legacyClient`):
467
+ * - merchant: Merchant Basic — `base64(MerchantId:ApiKey)`.
468
+ * - isv: Reseller Basic — `base64(ResellerId:ConnectedMerchantId:ResellerApiKey)`.
469
+ * The caller passes a Reseller-variant client per-call via `opts.legacyClient`,
470
+ * since the cancel must authenticate as the reseller scoped to the connected
471
+ * merchant — an ISV never holds the connected merchant's ApiKey.
483
472
  *
484
- * 401 → reseller fallback (D15) — kept DEFENSIVE:
485
- * If the primary OAuth2 client receives a 401 and secondaryClient is configured,
486
- * the request is retried once with the secondary (Reseller basic-auth) client.
487
- * A 401 from the secondary surfaces immediately as VivaAuthError — no further retry.
473
+ * This method calls `legacyClient` DIRECTLY (no OAuth2 / 401-fallback). If
474
+ * `legacyClient` is absent, throws VivaValidationError.
488
475
  *
489
- * Note: if cancelOrder already succeeded on Viva's side before any 401 is
490
- * observed, a 4xx from Viva on a subsequent attempt signals the order is
491
- * already cancelled (idempotent). The fallback does NOT apply to non-401
492
- * errors — those propagate as VivaApiError unchanged.
476
+ * Idempotent (verified): re-cancelling an already-cancelled order returns 200
477
+ * `Success: true`, not a 4xx — so the retry-on-5xx safety is sound and a second
478
+ * cancel is harmless.
493
479
  *
494
- * @see references/viva-docs/md/payment-isv-api.txt:1
480
+ * @see docs/internal/viva-cancel-probes/viva-cancel-order-findings.md (v2/OAuth2 route → 404)
481
+ * @see docs/internal/viva-cancel-probes/viva-cancel-legacy-findings.md (merchant legacy → 200)
482
+ * @see docs/internal/viva-cancel-probes/viva-cancel-isv-reseller-findings.md (ISV reseller legacy → 200, idempotent)
495
483
  * @see references/viva-docs/md/webhooks-for-payments.txt:205 (4865 Order Updated)
496
- * @see references/viva-docs/md/isv-credentials.txt:107 (reseller basic-auth)
497
- * @see docs/plans/vendure-plugin-v0.md §D15 (reseller fallback scope)
498
484
  */
499
485
  async cancelOrder(orderCode, opts = {}) {
500
- // Resolve URL per mode. In merchant mode `opts.merchantId` is silently
501
- // ignored. In ISV mode it is required.
502
- const { path, query } = buildOrderCancelUrl(this.mode, orderCode, opts.merchantId);
503
- const requestOpts = {
504
- method: 'DELETE',
505
- path,
506
- query,
507
- idempotent: true, // idempotent per Viva docs
508
- endpoint: 'DELETE /checkout/v2/orders/{orderCode}',
509
- };
510
- let raw;
511
- try {
512
- raw = await this.client.request(requestOpts);
513
- }
514
- catch (err) {
515
- // 401 → reseller fallback (D15). Only attempt if secondaryClient is present.
516
- // A 401 from the secondary surfaces immediately — no further retry.
517
- // @see docs/plans/vendure-plugin-v0.md §D15
518
- // @see references/viva-docs/md/isv-credentials.txt:107
519
- if (err instanceof index_js_1.VivaAuthError && err.httpStatus === 401 && this.secondaryClient) {
520
- raw = await this.secondaryClient.request(requestOpts);
521
- }
522
- else {
523
- throw err;
524
- }
486
+ // legacyClient REQUIRED — DELETE /api/orders/{oc} on the legacy host with
487
+ // Basic auth. Merchant mode: Merchant Basic (construction-time legacyClient).
488
+ // ISV mode: a Reseller-variant client passed per-call (reseller creds +
489
+ // connected merchant UUID), mirroring refundPayment.
490
+ const legacyClient = opts.legacyClient ?? this.legacyClient;
491
+ if (!legacyClient) {
492
+ throw new index_js_1.VivaValidationError({
493
+ message: 'cancelOrder requires a legacyClient (Basic auth). ' +
494
+ 'Merchant mode: configure the Merchant Basic pair (MerchantId + ApiKey). ' +
495
+ 'ISV mode: pass a Reseller-variant client (resellerId + connectedMerchantId + resellerApiKey).',
496
+ });
525
497
  }
498
+ const result = await legacyClient.request({
499
+ method: 'DELETE',
500
+ path: `/api/orders/${orderCode}`,
501
+ idempotent: true, // verified idempotent: re-cancel returns 200 Success
502
+ endpoint: 'DELETE /api/orders/{orderCode}',
503
+ });
504
+ const raw = result.data;
526
505
  return {
527
- orderCode: raw.OrderCode,
528
- errorCode: raw.ErrorCode,
529
- errorText: raw.ErrorText,
506
+ orderCode: (raw.OrderCode ?? orderCode),
507
+ errorCode: raw.ErrorCode ?? 0,
508
+ errorText: raw.ErrorText ?? '',
530
509
  };
531
510
  }
532
511
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/payments/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/payments/client.ts"],"names":[],"mappings":"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"}
@@ -32,12 +32,37 @@ export declare function isTransactionEvent(id: number): id is 1796 | 1797 | 1798
32
32
  */
33
33
  export declare function isOnboardingEvent(id: number): id is 8193 | 8194;
34
34
  /**
35
- * All v1-scope event IDs as a frozen array.
35
+ * All v1-scope event IDs the webhook handler ACCEPTS INBOUND, as a frozen array.
36
36
  *
37
- * Used by `viva:register-webhooks` CLI to enumerate the required registrations
38
- * and by the route handler to reject unknown event types.
37
+ * This is the route handler's allow-list for incoming notifications — it
38
+ * includes 4865 (Order Updated) because the endpoint legitimately RECEIVES
39
+ * order-cancellation events. It is NOT the set to register via the ISV API:
40
+ * 4865 is not registerable at the ISV partner-account level (see
41
+ * {@link ISV_EVENT_TYPE_IDS}). Use this for inbound validation only.
39
42
  *
40
43
  * @see references/viva-docs/md/webhooks-for-payments.txt:141
41
44
  */
42
45
  export declare const V1_EVENT_TYPE_IDS: readonly (1796 | 1797 | 1798 | 4865 | 8193 | 8194)[];
46
+ /**
47
+ * Event IDs registerable via the ISV webhook API (`POST /isv/v1/webhooks`).
48
+ *
49
+ * The ISV partner-account webhook API accepts only the transaction events plus
50
+ * the two "Marketplace & ISV only" onboarding events. It does NOT accept 4865
51
+ * (Order Updated) — that is an order-level Smart Checkout event registerable
52
+ * only per-merchant via Self-Care, and `POST /isv/v1/webhooks` rejects it with
53
+ * `IsvCreateWebhookFailedInvalidEventTypeId`. (sakee-tech/vivawallet-npm-public#18)
54
+ *
55
+ * 1796 — Transaction Payment Created
56
+ * 1797 — Transaction Reversal Created
57
+ * 1798 — Transaction Failed
58
+ * 8193 — Account Connected (Marketplace & ISV only)
59
+ * 8194 — Account Verification Status Changed (Marketplace & ISV only)
60
+ *
61
+ * 1799 (Transaction Price Calculated) is intentionally excluded — it is
62
+ * deferred post-v1 (see DEFERRED_EVENT_TYPES).
63
+ *
64
+ * @see references/viva-docs/md/webhooks-for-payments.txt:222 (8193/8194 "Marketplace & ISV only")
65
+ * @see references/viva-docs/md/isv-partner-program.txt:200 (ISV webhook event list — no 4865)
66
+ */
67
+ export declare const ISV_EVENT_TYPE_IDS: readonly (1796 | 1797 | 1798 | 8193 | 8194)[];
43
68
  //# sourceMappingURL=event-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../../src/webhooks/event-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE/E;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAE9E;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,CAE/D;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,EAEvE,CAAC"}
1
+ {"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../../src/webhooks/event-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE/E;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAE9E;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,CAE/D;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,EAEvE,CAAC;AAEZ;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,EAEjE,CAAC"}
@@ -8,7 +8,7 @@
8
8
  * @see references/viva-docs/md/webhooks-for-payments.txt:141
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.V1_EVENT_TYPE_IDS = exports.EVENT_TYPES = void 0;
11
+ exports.ISV_EVENT_TYPE_IDS = exports.V1_EVENT_TYPE_IDS = exports.EVENT_TYPES = void 0;
12
12
  exports.isTransactionEvent = isTransactionEvent;
13
13
  exports.isOnboardingEvent = isOnboardingEvent;
14
14
  var webhook_events_js_1 = require("../types/webhook-events.js");
@@ -42,14 +42,41 @@ function isOnboardingEvent(id) {
42
42
  return id === 8193 || id === 8194;
43
43
  }
44
44
  /**
45
- * All v1-scope event IDs as a frozen array.
45
+ * All v1-scope event IDs the webhook handler ACCEPTS INBOUND, as a frozen array.
46
46
  *
47
- * Used by `viva:register-webhooks` CLI to enumerate the required registrations
48
- * and by the route handler to reject unknown event types.
47
+ * This is the route handler's allow-list for incoming notifications — it
48
+ * includes 4865 (Order Updated) because the endpoint legitimately RECEIVES
49
+ * order-cancellation events. It is NOT the set to register via the ISV API:
50
+ * 4865 is not registerable at the ISV partner-account level (see
51
+ * {@link ISV_EVENT_TYPE_IDS}). Use this for inbound validation only.
49
52
  *
50
53
  * @see references/viva-docs/md/webhooks-for-payments.txt:141
51
54
  */
52
55
  exports.V1_EVENT_TYPE_IDS = Object.freeze([
53
56
  1796, 1797, 1798, 4865, 8193, 8194,
54
57
  ]);
58
+ /**
59
+ * Event IDs registerable via the ISV webhook API (`POST /isv/v1/webhooks`).
60
+ *
61
+ * The ISV partner-account webhook API accepts only the transaction events plus
62
+ * the two "Marketplace & ISV only" onboarding events. It does NOT accept 4865
63
+ * (Order Updated) — that is an order-level Smart Checkout event registerable
64
+ * only per-merchant via Self-Care, and `POST /isv/v1/webhooks` rejects it with
65
+ * `IsvCreateWebhookFailedInvalidEventTypeId`. (sakee-tech/vivawallet-npm-public#18)
66
+ *
67
+ * 1796 — Transaction Payment Created
68
+ * 1797 — Transaction Reversal Created
69
+ * 1798 — Transaction Failed
70
+ * 8193 — Account Connected (Marketplace & ISV only)
71
+ * 8194 — Account Verification Status Changed (Marketplace & ISV only)
72
+ *
73
+ * 1799 (Transaction Price Calculated) is intentionally excluded — it is
74
+ * deferred post-v1 (see DEFERRED_EVENT_TYPES).
75
+ *
76
+ * @see references/viva-docs/md/webhooks-for-payments.txt:222 (8193/8194 "Marketplace & ISV only")
77
+ * @see references/viva-docs/md/isv-partner-program.txt:200 (ISV webhook event list — no 4865)
78
+ */
79
+ exports.ISV_EVENT_TYPE_IDS = Object.freeze([
80
+ 1796, 1797, 1798, 8193, 8194,
81
+ ]);
55
82
  //# sourceMappingURL=event-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-types.js","sourceRoot":"","sources":["../../src/webhooks/event-types.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAgBH,gDAEC;AAYD,8CAEC;AA9BD,gEAA+E;AAAtE,gHAAA,WAAW,OAAA;AAEpB;;;;;;;;;;;GAWG;AACH,SAAgB,kBAAkB,CAAC,EAAU;IAC3C,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC;AAClE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,iBAAiB,CAAC,EAAU;IAC1C,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC;AACpC,CAAC;AAED;;;;;;;GAOG;AACU,QAAA,iBAAiB,GAAyD,MAAM,CAAC,MAAM,CAAC;IACnG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC1B,CAAC,CAAC"}
1
+ {"version":3,"file":"event-types.js","sourceRoot":"","sources":["../../src/webhooks/event-types.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAgBH,gDAEC;AAYD,8CAEC;AA9BD,gEAA+E;AAAtE,gHAAA,WAAW,OAAA;AAEpB;;;;;;;;;;;GAWG;AACH,SAAgB,kBAAkB,CAAC,EAAU;IAC3C,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC;AAClE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,iBAAiB,CAAC,EAAU;IAC1C,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC;AACpC,CAAC;AAED;;;;;;;;;;GAUG;AACU,QAAA,iBAAiB,GAAyD,MAAM,CAAC,MAAM,CAAC;IACnG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC1B,CAAC,CAAC;AAEZ;;;;;;;;;;;;;;;;;;;;GAoBG;AACU,QAAA,kBAAkB,GAAkD,MAAM,CAAC,MAAM,CAAC;IAC7F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACpB,CAAC,CAAC"}
@@ -15,6 +15,6 @@
15
15
  export { buildChallengeResponse } from './challenge-response.js';
16
16
  export { VIVA_DEMO_IPS, VIVA_PROD_IPS, isAllowedSourceIp, } from './ip-allowlist.js';
17
17
  export { extractClientIp, type ClientIpRequest, } from './extract-client-ip.js';
18
- export { EVENT_TYPES, type VivaEventTypeId, isTransactionEvent, isOnboardingEvent, V1_EVENT_TYPE_IDS, } from './event-types.js';
18
+ export { EVENT_TYPES, type VivaEventTypeId, isTransactionEvent, isOnboardingEvent, V1_EVENT_TYPE_IDS, ISV_EVENT_TYPE_IDS, } from './event-types.js';
19
19
  export { mapStatusLetter, validateStatusTransition, applyStatusTransition, type StatusTransitionResult, } from './status-lattice.js';
20
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/webhooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EACL,aAAa,EACb,aAAa,EACb,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,eAAe,EACf,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,WAAW,EACX,KAAK,eAAe,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/webhooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EACL,aAAa,EACb,aAAa,EACb,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,eAAe,EACf,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,WAAW,EACX,KAAK,eAAe,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC"}
@@ -14,7 +14,7 @@
14
14
  * @see references/viva-docs/md/webhooks-for-payments.txt:254
15
15
  */
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.applyStatusTransition = exports.validateStatusTransition = exports.mapStatusLetter = exports.V1_EVENT_TYPE_IDS = exports.isOnboardingEvent = exports.isTransactionEvent = exports.EVENT_TYPES = exports.extractClientIp = exports.isAllowedSourceIp = exports.VIVA_PROD_IPS = exports.VIVA_DEMO_IPS = exports.buildChallengeResponse = void 0;
17
+ exports.applyStatusTransition = exports.validateStatusTransition = exports.mapStatusLetter = exports.ISV_EVENT_TYPE_IDS = exports.V1_EVENT_TYPE_IDS = exports.isOnboardingEvent = exports.isTransactionEvent = exports.EVENT_TYPES = exports.extractClientIp = exports.isAllowedSourceIp = exports.VIVA_PROD_IPS = exports.VIVA_DEMO_IPS = exports.buildChallengeResponse = void 0;
18
18
  var challenge_response_js_1 = require("./challenge-response.js");
19
19
  Object.defineProperty(exports, "buildChallengeResponse", { enumerable: true, get: function () { return challenge_response_js_1.buildChallengeResponse; } });
20
20
  var ip_allowlist_js_1 = require("./ip-allowlist.js");
@@ -28,6 +28,7 @@ Object.defineProperty(exports, "EVENT_TYPES", { enumerable: true, get: function
28
28
  Object.defineProperty(exports, "isTransactionEvent", { enumerable: true, get: function () { return event_types_js_1.isTransactionEvent; } });
29
29
  Object.defineProperty(exports, "isOnboardingEvent", { enumerable: true, get: function () { return event_types_js_1.isOnboardingEvent; } });
30
30
  Object.defineProperty(exports, "V1_EVENT_TYPE_IDS", { enumerable: true, get: function () { return event_types_js_1.V1_EVENT_TYPE_IDS; } });
31
+ Object.defineProperty(exports, "ISV_EVENT_TYPE_IDS", { enumerable: true, get: function () { return event_types_js_1.ISV_EVENT_TYPE_IDS; } });
31
32
  var status_lattice_js_1 = require("./status-lattice.js");
32
33
  Object.defineProperty(exports, "mapStatusLetter", { enumerable: true, get: function () { return status_lattice_js_1.mapStatusLetter; } });
33
34
  Object.defineProperty(exports, "validateStatusTransition", { enumerable: true, get: function () { return status_lattice_js_1.validateStatusTransition; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/webhooks/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAEH,iEAAiE;AAAxD,+HAAA,sBAAsB,OAAA;AAE/B,qDAI2B;AAHzB,gHAAA,aAAa,OAAA;AACb,gHAAA,aAAa,OAAA;AACb,oHAAA,iBAAiB,OAAA;AAGnB,+DAGgC;AAF9B,uHAAA,eAAe,OAAA;AAIjB,mDAM0B;AALxB,6GAAA,WAAW,OAAA;AAEX,oHAAA,kBAAkB,OAAA;AAClB,mHAAA,iBAAiB,OAAA;AACjB,mHAAA,iBAAiB,OAAA;AAGnB,yDAK6B;AAJ3B,oHAAA,eAAe,OAAA;AACf,6HAAA,wBAAwB,OAAA;AACxB,0HAAA,qBAAqB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/webhooks/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAEH,iEAAiE;AAAxD,+HAAA,sBAAsB,OAAA;AAE/B,qDAI2B;AAHzB,gHAAA,aAAa,OAAA;AACb,gHAAA,aAAa,OAAA;AACb,oHAAA,iBAAiB,OAAA;AAGnB,+DAGgC;AAF9B,uHAAA,eAAe,OAAA;AAIjB,mDAO0B;AANxB,6GAAA,WAAW,OAAA;AAEX,oHAAA,kBAAkB,OAAA;AAClB,mHAAA,iBAAiB,OAAA;AACjB,mHAAA,iBAAiB,OAAA;AACjB,oHAAA,kBAAkB,OAAA;AAGpB,yDAK6B;AAJ3B,oHAAA,eAAe,OAAA;AACf,6HAAA,wBAAwB,OAAA;AACxB,0HAAA,qBAAqB,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sakeetech/viva-payments-core",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "description": "Framework-agnostic Viva Wallet client for ISV integrations. Used by medusa-payment-viva and vendure-payment-viva.",
5
5
  "license": "MIT",
6
6
  "repository": {