@cimplify/sdk 0.103.0 → 0.104.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/advanced.d.mts +3 -3
- package/dist/advanced.d.ts +3 -3
- package/dist/advanced.js +22 -22
- package/dist/advanced.mjs +3 -3
- package/dist/{chunk-C2JSNJUC.mjs → chunk-2WPVUIHX.mjs} +52 -11
- package/dist/{chunk-JG5CQNCB.js → chunk-4BKOKHE3.js} +4 -0
- package/dist/{chunk-R6OLQ33I.js → chunk-5BDYDZ4U.js} +239 -87
- package/dist/{chunk-H7ACMHM3.mjs → chunk-5RT4HYMP.mjs} +32 -4
- package/dist/{chunk-NNG6IFFX.js → chunk-7PDEX54K.js} +3 -3
- package/dist/{chunk-M4URVKHE.mjs → chunk-DYIAX3WI.mjs} +1 -1
- package/dist/{chunk-QOWPGS7Z.js → chunk-E4K2VQDD.js} +35 -5
- package/dist/{chunk-VNPEYLB2.mjs → chunk-H3RATH4B.mjs} +4 -0
- package/dist/{chunk-JSWJ4XDE.js → chunk-IQFFSKE2.js} +315 -108
- package/dist/{chunk-J6PNHDHL.mjs → chunk-OCCNG6MO.mjs} +284 -77
- package/dist/{chunk-GERXZQSX.mjs → chunk-OKADBZAI.mjs} +171 -20
- package/dist/{chunk-VIL6IQCG.js → chunk-YVAEY3VC.js} +54 -13
- package/dist/{client-Dqg2mc-7.d.ts → client-BVNWjk6W.d.ts} +2 -2
- package/dist/{client-BfpNjJ_a.d.mts → client-BuLcOWLv.d.ts} +115 -23
- package/dist/{client-DHBwvh7U.d.ts → client-D5AoobFc.d.mts} +115 -23
- package/dist/{client-DpqRobY9.d.mts → client-fM716k7G.d.mts} +2 -2
- package/dist/{index-C8uDqLwJ.d.ts → index-BtcoqrY1.d.ts} +3 -3
- package/dist/{index-e2y6AK70.d.mts → index-D7Tf3v7c.d.mts} +3 -3
- package/dist/index.d.mts +10 -8
- package/dist/index.d.ts +10 -8
- package/dist/index.js +107 -106
- package/dist/index.mjs +6 -5
- package/dist/{link-cuNVYc2s.d.mts → link-D9iSVxt5.d.mts} +12 -1
- package/dist/{link-cuNVYc2s.d.ts → link-D9iSVxt5.d.ts} +12 -1
- package/dist/mock/cli.mjs +53 -10
- package/dist/mock/library.js +53 -10
- package/dist/mock/library.mjs +53 -10
- package/dist/mock/msw.js +53 -10
- package/dist/mock/msw.mjs +53 -10
- package/dist/{payment-H5LoIvXU.d.mts → payment-g0HFkEDU.d.mts} +519 -54
- package/dist/{payment-H5LoIvXU.d.ts → payment-g0HFkEDU.d.ts} +519 -54
- package/dist/{price-C2RqscMY.d.ts → price-BLIeAb8K.d.ts} +1 -1
- package/dist/{price-BvePgDXe.d.mts → price-Czq_cTC_.d.mts} +1 -1
- package/dist/react.d.mts +4 -4
- package/dist/react.d.ts +4 -4
- package/dist/react.js +193 -169
- package/dist/react.mjs +54 -30
- package/dist/{server-C7FyLdrz.d.mts → server-BkVhOIwn.d.mts} +4 -2
- package/dist/{server-DoXIpSd7.d.ts → server-DKK_D-PP.d.ts} +4 -2
- package/dist/server.d.mts +4 -4
- package/dist/server.d.ts +4 -4
- package/dist/server.js +11 -10
- package/dist/server.mjs +5 -4
- package/dist/testing/msw.d.mts +2 -2
- package/dist/testing/msw.d.ts +2 -2
- package/dist/testing/msw.js +3 -3
- package/dist/testing/msw.mjs +2 -2
- package/dist/testing/suite.d.mts +6 -6
- package/dist/testing/suite.d.ts +6 -6
- package/dist/testing/suite.js +25 -25
- package/dist/testing/suite.mjs +6 -6
- package/dist/testing.d.mts +46 -6
- package/dist/testing.d.ts +46 -6
- package/dist/testing.js +94 -82
- package/dist/testing.mjs +13 -9
- package/dist/utils.d.mts +4 -4
- package/dist/utils.d.ts +4 -4
- package/dist/utils.js +31 -31
- package/dist/utils.mjs +2 -2
- package/package.json +1 -1
- package/registry/chat-widget.json +1 -1
package/dist/advanced.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { g as AuthService, x as BusinessService, I as CartOperations, J as CatalogueQueries, a8 as CheckoutOperations, a8 as CheckoutService, ae as CimplifyElement, af as CimplifyElements,
|
|
2
|
-
import './payment-
|
|
3
|
-
import './link-
|
|
1
|
+
export { g as AuthService, x as BusinessService, I as CartOperations, J as CatalogueQueries, a8 as CheckoutOperations, a8 as CheckoutService, ae as CimplifyElement, af as CimplifyElements, az as ELEMENT_TYPES, aA as EVENT_TYPES, aD as ElementEventType, aE as ElementOptions, aF as ElementType, aN as ElementsOptions, aU as FetchQuoteInput, b1 as FxService, b5 as GetProductsOptions, b8 as InventoryService, bc as LinkService, bg as LiteService, bn as MESSAGE_TYPES, bK as OrderQueries, c4 as PriceQuote, ca as QuoteBundleSelectionInput, cb as QuoteCompositeSelectionInput, cc as QuoteDynamicBuckets, cd as QuoteStatus, ce as QuoteUiMessage, cg as RefreshQuoteInput, ch as RefreshQuoteResult, cG as SchedulingService, di as createElements } from './client-D5AoobFc.mjs';
|
|
2
|
+
import './payment-g0HFkEDU.mjs';
|
|
3
|
+
import './link-D9iSVxt5.mjs';
|
|
4
4
|
|
|
5
5
|
declare function generateIdempotencyKey(prefix?: string): string;
|
|
6
6
|
|
package/dist/advanced.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { g as AuthService, x as BusinessService, I as CartOperations, J as CatalogueQueries, a8 as CheckoutOperations, a8 as CheckoutService, ae as CimplifyElement, af as CimplifyElements,
|
|
2
|
-
import './payment-
|
|
3
|
-
import './link-
|
|
1
|
+
export { g as AuthService, x as BusinessService, I as CartOperations, J as CatalogueQueries, a8 as CheckoutOperations, a8 as CheckoutService, ae as CimplifyElement, af as CimplifyElements, az as ELEMENT_TYPES, aA as EVENT_TYPES, aD as ElementEventType, aE as ElementOptions, aF as ElementType, aN as ElementsOptions, aU as FetchQuoteInput, b1 as FxService, b5 as GetProductsOptions, b8 as InventoryService, bc as LinkService, bg as LiteService, bn as MESSAGE_TYPES, bK as OrderQueries, c4 as PriceQuote, ca as QuoteBundleSelectionInput, cb as QuoteCompositeSelectionInput, cc as QuoteDynamicBuckets, cd as QuoteStatus, ce as QuoteUiMessage, cg as RefreshQuoteInput, ch as RefreshQuoteResult, cG as SchedulingService, di as createElements } from './client-BuLcOWLv.js';
|
|
2
|
+
import './payment-g0HFkEDU.js';
|
|
3
|
+
import './link-D9iSVxt5.js';
|
|
4
4
|
|
|
5
5
|
declare function generateIdempotencyKey(prefix?: string): string;
|
|
6
6
|
|
package/dist/advanced.js
CHANGED
|
@@ -1,86 +1,86 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkIQFFSKE2_js = require('./chunk-IQFFSKE2.js');
|
|
4
4
|
require('./chunk-CNN7Z2IP.js');
|
|
5
|
-
require('./chunk-
|
|
6
|
-
require('./chunk-
|
|
5
|
+
require('./chunk-7PDEX54K.js');
|
|
6
|
+
require('./chunk-4BKOKHE3.js');
|
|
7
7
|
require('./chunk-OWW5GUSB.js');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
Object.defineProperty(exports, "AuthService", {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return chunkIQFFSKE2_js.AuthService; }
|
|
14
14
|
});
|
|
15
15
|
Object.defineProperty(exports, "BusinessService", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunkIQFFSKE2_js.BusinessService; }
|
|
18
18
|
});
|
|
19
19
|
Object.defineProperty(exports, "CartOperations", {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
21
|
+
get: function () { return chunkIQFFSKE2_js.CartOperations; }
|
|
22
22
|
});
|
|
23
23
|
Object.defineProperty(exports, "CatalogueQueries", {
|
|
24
24
|
enumerable: true,
|
|
25
|
-
get: function () { return
|
|
25
|
+
get: function () { return chunkIQFFSKE2_js.CatalogueQueries; }
|
|
26
26
|
});
|
|
27
27
|
Object.defineProperty(exports, "CheckoutOperations", {
|
|
28
28
|
enumerable: true,
|
|
29
|
-
get: function () { return
|
|
29
|
+
get: function () { return chunkIQFFSKE2_js.CheckoutService; }
|
|
30
30
|
});
|
|
31
31
|
Object.defineProperty(exports, "CheckoutService", {
|
|
32
32
|
enumerable: true,
|
|
33
|
-
get: function () { return
|
|
33
|
+
get: function () { return chunkIQFFSKE2_js.CheckoutService; }
|
|
34
34
|
});
|
|
35
35
|
Object.defineProperty(exports, "CimplifyElement", {
|
|
36
36
|
enumerable: true,
|
|
37
|
-
get: function () { return
|
|
37
|
+
get: function () { return chunkIQFFSKE2_js.CimplifyElement; }
|
|
38
38
|
});
|
|
39
39
|
Object.defineProperty(exports, "CimplifyElements", {
|
|
40
40
|
enumerable: true,
|
|
41
|
-
get: function () { return
|
|
41
|
+
get: function () { return chunkIQFFSKE2_js.CimplifyElements; }
|
|
42
42
|
});
|
|
43
43
|
Object.defineProperty(exports, "ELEMENT_TYPES", {
|
|
44
44
|
enumerable: true,
|
|
45
|
-
get: function () { return
|
|
45
|
+
get: function () { return chunkIQFFSKE2_js.ELEMENT_TYPES; }
|
|
46
46
|
});
|
|
47
47
|
Object.defineProperty(exports, "EVENT_TYPES", {
|
|
48
48
|
enumerable: true,
|
|
49
|
-
get: function () { return
|
|
49
|
+
get: function () { return chunkIQFFSKE2_js.EVENT_TYPES; }
|
|
50
50
|
});
|
|
51
51
|
Object.defineProperty(exports, "FxService", {
|
|
52
52
|
enumerable: true,
|
|
53
|
-
get: function () { return
|
|
53
|
+
get: function () { return chunkIQFFSKE2_js.FxService; }
|
|
54
54
|
});
|
|
55
55
|
Object.defineProperty(exports, "InventoryService", {
|
|
56
56
|
enumerable: true,
|
|
57
|
-
get: function () { return
|
|
57
|
+
get: function () { return chunkIQFFSKE2_js.InventoryService; }
|
|
58
58
|
});
|
|
59
59
|
Object.defineProperty(exports, "LinkService", {
|
|
60
60
|
enumerable: true,
|
|
61
|
-
get: function () { return
|
|
61
|
+
get: function () { return chunkIQFFSKE2_js.LinkService; }
|
|
62
62
|
});
|
|
63
63
|
Object.defineProperty(exports, "LiteService", {
|
|
64
64
|
enumerable: true,
|
|
65
|
-
get: function () { return
|
|
65
|
+
get: function () { return chunkIQFFSKE2_js.LiteService; }
|
|
66
66
|
});
|
|
67
67
|
Object.defineProperty(exports, "MESSAGE_TYPES", {
|
|
68
68
|
enumerable: true,
|
|
69
|
-
get: function () { return
|
|
69
|
+
get: function () { return chunkIQFFSKE2_js.MESSAGE_TYPES; }
|
|
70
70
|
});
|
|
71
71
|
Object.defineProperty(exports, "OrderQueries", {
|
|
72
72
|
enumerable: true,
|
|
73
|
-
get: function () { return
|
|
73
|
+
get: function () { return chunkIQFFSKE2_js.OrderQueries; }
|
|
74
74
|
});
|
|
75
75
|
Object.defineProperty(exports, "SchedulingService", {
|
|
76
76
|
enumerable: true,
|
|
77
|
-
get: function () { return
|
|
77
|
+
get: function () { return chunkIQFFSKE2_js.SchedulingService; }
|
|
78
78
|
});
|
|
79
79
|
Object.defineProperty(exports, "createElements", {
|
|
80
80
|
enumerable: true,
|
|
81
|
-
get: function () { return
|
|
81
|
+
get: function () { return chunkIQFFSKE2_js.createElements; }
|
|
82
82
|
});
|
|
83
83
|
Object.defineProperty(exports, "generateIdempotencyKey", {
|
|
84
84
|
enumerable: true,
|
|
85
|
-
get: function () { return
|
|
85
|
+
get: function () { return chunkIQFFSKE2_js.generateIdempotencyKey; }
|
|
86
86
|
});
|
package/dist/advanced.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { AuthService, BusinessService, CartOperations, CatalogueQueries, CheckoutService as CheckoutOperations, CheckoutService, CimplifyElement, CimplifyElements, ELEMENT_TYPES, EVENT_TYPES, FxService, InventoryService, LinkService, LiteService, MESSAGE_TYPES, OrderQueries, SchedulingService, createElements, generateIdempotencyKey } from './chunk-
|
|
1
|
+
export { AuthService, BusinessService, CartOperations, CatalogueQueries, CheckoutService as CheckoutOperations, CheckoutService, CimplifyElement, CimplifyElements, ELEMENT_TYPES, EVENT_TYPES, FxService, InventoryService, LinkService, LiteService, MESSAGE_TYPES, OrderQueries, SchedulingService, createElements, generateIdempotencyKey } from './chunk-OCCNG6MO.mjs';
|
|
2
2
|
import './chunk-GOHSXBKW.mjs';
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
import './chunk-DYIAX3WI.mjs';
|
|
4
|
+
import './chunk-H3RATH4B.mjs';
|
|
5
5
|
import './chunk-3G6RQLXK.mjs';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { messagePreview } from './chunk-U4MW6PYU.mjs';
|
|
2
2
|
import { PAYMENT_METHOD } from './chunk-GOHSXBKW.mjs';
|
|
3
|
-
import { ErrorCode } from './chunk-
|
|
3
|
+
import { ErrorCode } from './chunk-H3RATH4B.mjs';
|
|
4
4
|
import { __publicField, __privateAdd, __privateSet, __privateGet, __privateMethod, __privateWrapper } from './chunk-3G6RQLXK.mjs';
|
|
5
5
|
|
|
6
6
|
// ../node_modules/.bun/hono@4.12.25/node_modules/hono/dist/compose.js
|
|
@@ -2435,6 +2435,36 @@ function buildV1(deps) {
|
|
|
2435
2435
|
"/catalogue/quotes/:quote_id/refresh",
|
|
2436
2436
|
(c) => tryRoute(c, () => deps.catalogue.refreshQuote(c.req.param("quote_id")))
|
|
2437
2437
|
);
|
|
2438
|
+
app.get("/reviews/summary", (c) => {
|
|
2439
|
+
const productId = c.req.query("product_id");
|
|
2440
|
+
if (productId !== void 0 && (productId.length === 0 || productId.trim() !== productId)) {
|
|
2441
|
+
return fail(c, validation("product_id must be a non-empty canonical identifier"));
|
|
2442
|
+
}
|
|
2443
|
+
const response = {
|
|
2444
|
+
data: {
|
|
2445
|
+
ratings: {
|
|
2446
|
+
product_id: productId ?? null,
|
|
2447
|
+
review_count: 0,
|
|
2448
|
+
rating_sum: 0,
|
|
2449
|
+
average_rating: null,
|
|
2450
|
+
distribution: { one: 0, two: 0, three: 0, four: 0, five: 0 }
|
|
2451
|
+
},
|
|
2452
|
+
trust_chips: {
|
|
2453
|
+
on_time_delivery_percent: null,
|
|
2454
|
+
delivery_sample_size: 0,
|
|
2455
|
+
average_first_response_seconds: null,
|
|
2456
|
+
support_sample_size: 0
|
|
2457
|
+
}
|
|
2458
|
+
}
|
|
2459
|
+
};
|
|
2460
|
+
return c.json(response);
|
|
2461
|
+
});
|
|
2462
|
+
app.get("/reviews", (c) => {
|
|
2463
|
+
const response = {
|
|
2464
|
+
data: { items: [], next_cursor: null }
|
|
2465
|
+
};
|
|
2466
|
+
return c.json(response);
|
|
2467
|
+
});
|
|
2438
2468
|
app.get("/cart", (c) => tryRoute(c, () => deps.cart.toUICart(deps.cart.get(c.var.session))));
|
|
2439
2469
|
app.delete("/cart", (c) => tryRoute(c, () => deps.cart.clear(c.var.session)));
|
|
2440
2470
|
app.get("/cart/items", (c) => tryRoute(c, () => deps.cart.getItems(c.var.session)));
|
|
@@ -3330,9 +3360,10 @@ function buildLink(deps) {
|
|
|
3330
3360
|
app.post("/auth/request-otp", async (c) => {
|
|
3331
3361
|
const body = await c.req.json().catch(() => ({}));
|
|
3332
3362
|
return tryRoute(c, () => {
|
|
3333
|
-
deps.auth.requestOtp(body.contact ?? "");
|
|
3363
|
+
const challenge = deps.auth.requestOtp(body.contact ?? "");
|
|
3334
3364
|
return {
|
|
3335
3365
|
success: true,
|
|
3366
|
+
challenge_id: challenge.otp_id,
|
|
3336
3367
|
message: `OTP sent to ${body.contact ?? "contact"}`,
|
|
3337
3368
|
expires_in: 300,
|
|
3338
3369
|
is_new_account: false
|
|
@@ -3342,7 +3373,11 @@ function buildLink(deps) {
|
|
|
3342
3373
|
app.post("/auth/verify-otp", async (c) => {
|
|
3343
3374
|
const body = await c.req.json().catch(() => ({}));
|
|
3344
3375
|
return tryRoute(c, () => {
|
|
3345
|
-
const session = deps.auth.verifyOtp(
|
|
3376
|
+
const session = deps.auth.verifyOtp(
|
|
3377
|
+
body.contact ?? "",
|
|
3378
|
+
body.otp_code ?? "",
|
|
3379
|
+
body.challenge_id
|
|
3380
|
+
);
|
|
3346
3381
|
c.header("x-session-token", session.token);
|
|
3347
3382
|
const customer = deps.link.ensureCustomer(session.customer_id ?? session.id, {
|
|
3348
3383
|
email: body.contact?.includes("@") ? body.contact : void 0,
|
|
@@ -3436,10 +3471,7 @@ function buildLink(deps) {
|
|
|
3436
3471
|
};
|
|
3437
3472
|
});
|
|
3438
3473
|
});
|
|
3439
|
-
app.get(
|
|
3440
|
-
"/preferences",
|
|
3441
|
-
(c) => tryRoute(c, () => deps.link.getPreferences(customerId(c)))
|
|
3442
|
-
);
|
|
3474
|
+
app.get("/preferences", (c) => tryRoute(c, () => deps.link.getPreferences(customerId(c))));
|
|
3443
3475
|
app.post("/preferences", async (c) => {
|
|
3444
3476
|
const body = await c.req.json().catch(() => ({}));
|
|
3445
3477
|
return tryRoute(c, () => {
|
|
@@ -3916,9 +3948,16 @@ function createAuthService(opts) {
|
|
|
3916
3948
|
code_hint: options.mode === "permissive" ? code : void 0
|
|
3917
3949
|
};
|
|
3918
3950
|
},
|
|
3919
|
-
verifyOtp(contact, code) {
|
|
3920
|
-
|
|
3921
|
-
|
|
3951
|
+
verifyOtp(contact, code, challengeId) {
|
|
3952
|
+
let otp = challengeId ? registry.otps.get(challengeId) : void 0;
|
|
3953
|
+
if (!challengeId) {
|
|
3954
|
+
const matching = registry.otps.list((o) => o.contact === contact);
|
|
3955
|
+
otp = matching[matching.length - 1];
|
|
3956
|
+
}
|
|
3957
|
+
if (challengeId) {
|
|
3958
|
+
if (!otp) throw new Error("No OTP challenge found");
|
|
3959
|
+
if (otp.contact !== contact) throw new Error("OTP challenge does not match contact");
|
|
3960
|
+
}
|
|
3922
3961
|
if (options.mode === "strict") {
|
|
3923
3962
|
if (!otp) throw new Error("No OTP requested");
|
|
3924
3963
|
if (otp.code !== code && code !== options.defaultOtp) throw new Error("Invalid OTP");
|
|
@@ -5246,7 +5285,7 @@ function createCartService(opts) {
|
|
|
5246
5285
|
|
|
5247
5286
|
// src/mock/domain/checkout.ts
|
|
5248
5287
|
function createCheckoutService(opts) {
|
|
5249
|
-
const { registry, clock, ids, bus} = opts;
|
|
5288
|
+
const { registry, clock, ids, bus } = opts;
|
|
5250
5289
|
return {
|
|
5251
5290
|
process(session, body) {
|
|
5252
5291
|
if (!body.cart_id) throw validation("cart_id required");
|
|
@@ -5733,6 +5772,7 @@ function createDeliveryService() {
|
|
|
5733
5772
|
rate_id: "dlvrt_mock_standard",
|
|
5734
5773
|
name: "Standard",
|
|
5735
5774
|
fee: standardFree ? money(0) : money(15),
|
|
5775
|
+
fee_status: "priced",
|
|
5736
5776
|
currency: "GHS",
|
|
5737
5777
|
free_delivery_applied: standardFree,
|
|
5738
5778
|
free_over_amount: money(200),
|
|
@@ -5746,6 +5786,7 @@ function createDeliveryService() {
|
|
|
5746
5786
|
name: "Express",
|
|
5747
5787
|
description: "Delivered within the hour",
|
|
5748
5788
|
fee: money(25),
|
|
5789
|
+
fee_status: "priced",
|
|
5749
5790
|
currency: "GHS",
|
|
5750
5791
|
free_delivery_applied: false,
|
|
5751
5792
|
eta_min_minutes: 30,
|
|
@@ -107,6 +107,8 @@ var ErrorCode = {
|
|
|
107
107
|
CARD_DECLINED: "CARD_DECLINED",
|
|
108
108
|
INVALID_OTP: "INVALID_OTP",
|
|
109
109
|
OTP_EXPIRED: "OTP_EXPIRED",
|
|
110
|
+
OTP_CHALLENGE_EXHAUSTED: "OTP_CHALLENGE_EXHAUSTED",
|
|
111
|
+
OTP_CHALLENGE_CONSUMED: "OTP_CHALLENGE_CONSUMED",
|
|
110
112
|
AUTHORIZATION_FAILED: "AUTHORIZATION_FAILED",
|
|
111
113
|
PAYMENT_ACTION_NOT_COMPLETED: "PAYMENT_ACTION_NOT_COMPLETED",
|
|
112
114
|
SLOT_UNAVAILABLE: "SLOT_UNAVAILABLE",
|
|
@@ -152,6 +154,8 @@ var ERROR_SUGGESTIONS = {
|
|
|
152
154
|
CARD_DECLINED: "Card was declined. Ask shopper to retry or switch payment method.",
|
|
153
155
|
INVALID_OTP: "Authorization code is invalid. Let shopper re-enter OTP/PIN and retry.",
|
|
154
156
|
OTP_EXPIRED: "Authorization code expired. Request a new OTP and re-submit authorization.",
|
|
157
|
+
OTP_CHALLENGE_EXHAUSTED: "This verification challenge has no attempts left. Continue checkout without saved details or request a fresh challenge.",
|
|
158
|
+
OTP_CHALLENGE_CONSUMED: "This verification challenge has already been used. Continue with the established session or request a fresh challenge.",
|
|
155
159
|
AUTHORIZATION_FAILED: "Additional payment authorization failed. Retry authorization or change payment method.",
|
|
156
160
|
PAYMENT_ACTION_NOT_COMPLETED: "Required payment action was not completed. Resume provider flow and poll for status.",
|
|
157
161
|
SLOT_UNAVAILABLE: "Selected schedule slot is unavailable. Refresh available slots and ask shopper to reselect.",
|