@agent-cards/sdk 0.24.1 → 0.24.2

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.
@@ -1,6 +1,6 @@
1
1
  // @ts-nocheck
2
2
  // Generated from @agent-cards/payment-core. Do not edit.
3
- // artifact-sha256: f21676a30bdae7f57fc6f082de081b702b2e8cb4d7af10779b1d674cfd256b1d
3
+ // artifact-sha256: b51ae1e970674f5e2b35bd33193e9a5ed5b04142e3764296c28dcb3d91e3d17b
4
4
  // src/card-number-key.js
5
5
  var CARD_NUMBER_KEY = /^(number|card_number|cardnumber|cardNum|card_num|pan)$/i;
6
6
  // src/json-path.js
@@ -357,8 +357,8 @@ var CONTROL = /[\u0000-\u001f\u007f]/;
357
357
  var cardLikeName = (name) => (name.match(/[0-9]/g) ?? []).length >= 12;
358
358
  var record3 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
359
359
  var sameKeys = (value, keys) => {
360
- const own23 = Object.keys(value);
361
- return own23.length === keys.length && own23.every((key, at) => key === keys[at]);
360
+ const own24 = Object.keys(value);
361
+ return own24.length === keys.length && own24.every((key, at) => key === keys[at]);
362
362
  };
363
363
  var refuse4 = (code) => Object.freeze({ verdict: "refuse", code });
364
364
  var CARD4 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
@@ -776,8 +776,8 @@ var PADDLE_TOKENEX_PSP = "paddle_tokenex";
776
776
  var PADDLE_TOKENEX_FACT_KEYS = /* @__PURE__ */ Object.freeze(["card_first_six", "card_last_four", "expiry_month", "expiry_year", "card_brand"]);
777
777
  var record4 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
778
778
  var sameKeys2 = (value, keys) => {
779
- const own23 = Object.keys(value);
780
- return own23.length === keys.length && own23.every((key, at) => key === keys[at]);
779
+ const own24 = Object.keys(value);
780
+ return own24.length === keys.length && own24.every((key, at) => key === keys[at]);
781
781
  };
782
782
  var refuse7 = (code) => Object.freeze({ verdict: "refuse", code });
783
783
  var CARD6 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
@@ -1266,8 +1266,8 @@ var TEXT_LIMIT = 256;
1266
1266
  var CONTROL4 = /[\u0000-\u001f\u007f]/;
1267
1267
  var record6 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
1268
1268
  var sameKeys3 = (value, keys) => {
1269
- const own23 = Object.keys(value);
1270
- return own23.length === keys.length && own23.every((key, at) => key === keys[at]);
1269
+ const own24 = Object.keys(value);
1270
+ return own24.length === keys.length && own24.every((key, at) => key === keys[at]);
1271
1271
  };
1272
1272
  var plainText = (value) => typeof value === "string" && value.length <= TEXT_LIMIT && !CONTROL4.test(value) && (value.match(/[0-9]/g) ?? []).length < 12;
1273
1273
  var refuse9 = (code) => Object.freeze({ verdict: "refuse", code });
@@ -1469,8 +1469,8 @@ var EXPIRATION = /^[0-9]{2}(?:0[1-9]|1[0-2])$/;
1469
1469
  var CARD_PAYMENT = "PAYMENT_CARD";
1470
1470
  var record8 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
1471
1471
  var sameKeys4 = (value, keys) => {
1472
- const own23 = Object.keys(value);
1473
- return own23.length === keys.length && own23.every((key, at) => key === keys[at]);
1472
+ const own24 = Object.keys(value);
1473
+ return own24.length === keys.length && own24.every((key, at) => key === keys[at]);
1474
1474
  };
1475
1475
  var refuse11 = (code) => Object.freeze({ verdict: "refuse", code });
1476
1476
  var CARD10 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
@@ -1700,8 +1700,8 @@ var LOCALE = /^[a-z]{2}(?:-[A-Za-z]{2,4})?$/;
1700
1700
  var PAN_LIKE3 = /(?:[0-9][ _.:-]*){12,}/;
1701
1701
  var record9 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
1702
1702
  var sameKeys5 = (value, keys) => {
1703
- const own23 = Object.keys(value);
1704
- return own23.length === keys.length && own23.every((key, at) => key === keys[at]);
1703
+ const own24 = Object.keys(value);
1704
+ return own24.length === keys.length && own24.every((key, at) => key === keys[at]);
1705
1705
  };
1706
1706
  var refuse13 = (code) => Object.freeze({ verdict: "refuse", code });
1707
1707
  var CARD12 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
@@ -2732,8 +2732,8 @@ var TEXT_LIMIT3 = 256;
2732
2732
  var CONTROL7 = /[\u0000-\u001f\u007f]/;
2733
2733
  var record13 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
2734
2734
  var sameKeys7 = (value, keys) => {
2735
- const own23 = Object.keys(value);
2736
- return own23.length === keys.length && own23.every((key, at) => key === keys[at]);
2735
+ const own24 = Object.keys(value);
2736
+ return own24.length === keys.length && own24.every((key, at) => key === keys[at]);
2737
2737
  };
2738
2738
  var plainText3 = (value) => typeof value === "string" && value.length <= TEXT_LIMIT3 && !CONTROL7.test(value) && (value.match(/[0-9]/g) ?? []).length < 12;
2739
2739
  var refuse19 = (code) => Object.freeze({ verdict: "refuse", code });
@@ -3438,8 +3438,8 @@ var HOSTNAME = /^(?=.{1,253}$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](
3438
3438
  var PUBLISHABLE_KEY = /^[A-Za-z0-9]{16,64}$/;
3439
3439
  var record18 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
3440
3440
  var sameKeys8 = (value, keys) => {
3441
- const own23 = Object.keys(value);
3442
- return own23.length === keys.length && own23.every((key, at) => key === keys[at]);
3441
+ const own24 = Object.keys(value);
3442
+ return own24.length === keys.length && own24.every((key, at) => key === keys[at]);
3443
3443
  };
3444
3444
  var refuse24 = (code) => Object.freeze({ verdict: "refuse", code });
3445
3445
  var CARD23 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
@@ -4130,8 +4130,8 @@ var LONG_TEXT_LIMIT = BODY_LIMIT25;
4130
4130
  var record22 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
4131
4131
  var owns6 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
4132
4132
  var sameKeys9 = (value, keys) => {
4133
- const own23 = Object.keys(value);
4134
- return own23.length === keys.length && own23.every((key, at) => key === keys[at]);
4133
+ const own24 = Object.keys(value);
4134
+ return own24.length === keys.length && own24.every((key, at) => key === keys[at]);
4135
4135
  };
4136
4136
  var exact3 = (pattern, value) => typeof value === "string" && pattern.test(value);
4137
4137
  var printable3 = (text10) => [...text10].every((character) => {
@@ -4530,8 +4530,8 @@ var POSTAL_CODE4 = /^[A-Za-z0-9 -]{0,16}$/;
4530
4530
  var CIPHERTEXT_B64 = /^[A-Za-z0-9+/]{341}[AQgw]==$/;
4531
4531
  var record24 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
4532
4532
  var sameKeys11 = (value, keys) => {
4533
- const own23 = Object.keys(value);
4534
- return own23.length === keys.length && own23.every((key, at) => key === keys[at]);
4533
+ const own24 = Object.keys(value);
4534
+ return own24.length === keys.length && own24.every((key, at) => key === keys[at]);
4535
4535
  };
4536
4536
  var refuse29 = (code) => Object.freeze({ verdict: "refuse", code });
4537
4537
  var failed = (code) => (
@@ -5863,12 +5863,12 @@ function membersRefusal(root) {
5863
5863
  const pending = [[root, ""]];
5864
5864
  while (pending.length > 0) {
5865
5865
  const [node, path] = pending.pop();
5866
- const own23 = path === "" ? TRANSACTION_MEMBERS : owns7(RECORD_MEMBERS, path) ? RECORD_MEMBERS[path] : null;
5866
+ const own24 = path === "" ? TRANSACTION_MEMBERS : owns7(RECORD_MEMBERS, path) ? RECORD_MEMBERS[path] : null;
5867
5867
  for (const [key, child] of Object.entries(node)) {
5868
5868
  const at = Array.isArray(node) ? path : path === "" ? key : `${path}.${key}`;
5869
5869
  if (at === "checkoutCreditCard")
5870
5870
  continue;
5871
- if (own23 !== null && !own23.includes(key))
5871
+ if (own24 !== null && !own24.includes(key))
5872
5872
  return true;
5873
5873
  if (TEXT_RECORDS.includes(path) && child !== null && typeof child !== "string")
5874
5874
  return true;
@@ -6235,6 +6235,96 @@ var aurus_default = /* @__PURE__ */ registerProcessor({
6235
6235
  bodyGate: (url, body) => url !== void 0 && !isAurusTokenUrl(url) ? refuse37("aurus_url_refused") : aurusBodyVerdict(body),
6236
6236
  limitations: ["The card frame seals the card in the page under a public key its own script carries; the cardholder's device does not seal for Aurus yet, so a held request opens no approval that pays."]
6237
6237
  });
6238
+ // src/processors/bigcommerce.js
6239
+ var BIGCOMMERCE_PSP = "bigcommerce";
6240
+ var BIGCOMMERCE_OPERATION = "bigcommerce.card_request";
6241
+ var BIGCOMMERCE_PAYMENTS_URL = "https://payments.bigcommerce.com/api/public/v1/orders/payments";
6242
+ var BODY_LIMIT36 = 65536;
6243
+ var CARD_KEYS16 = /* @__PURE__ */ new Set([
6244
+ "account_name",
6245
+ "month",
6246
+ "number",
6247
+ "verification_value",
6248
+ "year",
6249
+ "customer_code",
6250
+ "three_d_secure",
6251
+ "hosted_form_nonce"
6252
+ ]);
6253
+ var OTHER_INSTRUMENTS = /* @__PURE__ */ Object.freeze(["bigpay_token", "credit_card_token", "credit_card_cryptogram"]);
6254
+ var NUMBER8 = /^[0-9]{12,19}$/;
6255
+ var CURRENCY6 = /^[A-Z]{3}$/;
6256
+ var record32 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
6257
+ var own12 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
6258
+ var refuse38 = (code) => Object.freeze({ verdict: "refuse", code });
6259
+ var CARD37 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
6260
+ var CONTINUE13 = /* @__PURE__ */ Object.freeze({ verdict: "continue" });
6261
+ function isBigcommercePaymentsUrl(url) {
6262
+ return url === BIGCOMMERCE_PAYMENTS_URL;
6263
+ }
6264
+ function readBody22(body) {
6265
+ if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT36)
6266
+ return null;
6267
+ try {
6268
+ const parsed = JSON.parse(body);
6269
+ return record32(parsed) && record32(parsed.payment) ? parsed : null;
6270
+ }
6271
+ catch {
6272
+ return null;
6273
+ }
6274
+ }
6275
+ function bigcommerceBodyVerdict(body, url) {
6276
+ if (url !== void 0 && !isBigcommercePaymentsUrl(url))
6277
+ return refuse38("bigcommerce_url_refused");
6278
+ const parsed = readBody22(body);
6279
+ if (!parsed)
6280
+ return refuse38("bigcommerce_body_unsupported");
6281
+ const { payment } = parsed;
6282
+ if (!own12(payment, "credit_card"))
6283
+ return CONTINUE13;
6284
+ const card = payment.credit_card;
6285
+ if (!record32(card) || OTHER_INSTRUMENTS.some((key) => own12(payment, key)) || Object.keys(card).some((key) => !CARD_KEYS16.has(key)) || typeof card.number !== "string" || !NUMBER8.test(card.number)) {
6286
+ return refuse38("bigcommerce_body_unsupported");
6287
+ }
6288
+ if (payment.vault_payment_instrument === true)
6289
+ return refuse38("bigcommerce_keep_on_file");
6290
+ return CARD37;
6291
+ }
6292
+ function bigcommerceAmount(template) {
6293
+ const parsed = record32(template) ? readBody22(template.body) : null;
6294
+ const order = parsed && record32(parsed.order) ? parsed.order : null;
6295
+ const total = order && record32(order.totals) ? order.totals.grand_total : void 0;
6296
+ if (!Number.isSafeInteger(total) || total <= 0 || typeof order.currency !== "string" || !CURRENCY6.test(order.currency))
6297
+ return null;
6298
+ return { amountCents: total, currency: order.currency.toLowerCase() };
6299
+ }
6300
+ var bigcommerce_default = /* @__PURE__ */ registerProcessor({
6301
+ psp: BIGCOMMERCE_PSP,
6302
+ definitions: [
6303
+ {
6304
+ psp: "bigcommerce",
6305
+ // The card request above. One host serves every BigCommerce store, test and live alike, so no sandbox host is
6306
+ // marked. Ships dark: served only to a client that declares `bigcommerce_card_form`, for a company the backend's
6307
+ // processor gate turns BigCommerce on for. `(?![\w/.%-])` ends the path for a consumer that tests `match`
6308
+ // unanchored; the exact-URL rule holds the rest.
6309
+ capability: "bigcommerce_card_form",
6310
+ match: "payments\\.bigcommerce\\.com/api/public/v1/orders/payments(?![\\w/.%-])",
6311
+ hosts: ["^payments\\.bigcommerce\\.com$"],
6312
+ encoding: "json",
6313
+ // The order's payment token and the JSON Accept. Origin, Referer and cookies never ride.
6314
+ passthroughHeaders: ["^authorization$", "^accept$"],
6315
+ jsonCardFields: [["payment", "credit_card", "number"]],
6316
+ // A payment with no new card on the same URL continues untouched (bigcommerceBodyVerdict says which).
6317
+ passWithoutCard: "payments\\.bigcommerce\\.com/api/public/v1/orders/payments"
6318
+ }
6319
+ ],
6320
+ // The request charges the store's gateway at once, so only the cardholder's device sends it, after a person approves.
6321
+ refusedOperations: [BIGCOMMERCE_OPERATION],
6322
+ // Not surveyed: reading a BigCommerce payment back takes the store's own API credentials, which Agentcard never holds.
6323
+ settlementReadback: "not_surveyed",
6324
+ exactUrl: isBigcommercePaymentsUrl,
6325
+ bodyGate: (url, body) => bigcommerceBodyVerdict(body, url),
6326
+ amount: bigcommerceAmount
6327
+ });
6238
6328
  // src/processors/bluesnap.js
6239
6329
  var BLUESNAP_PSP = "bluesnap";
6240
6330
  var BLUESNAP_OPERATION = "bluesnap.card_request";
@@ -6242,16 +6332,16 @@ var BLUESNAP_HOSTS = /* @__PURE__ */ Object.freeze({ 1: "ws1.bluesnap.com", 2: "
6242
6332
  var BLUESNAP_SANDBOX_HOST = "sandpay.bluesnap.com";
6243
6333
  var BLUESNAP_CARD_KEYS = /* @__PURE__ */ Object.freeze(["cvv", "ccNumber", "expDate"]);
6244
6334
  var BLUESNAP_LEG_KEYS = /* @__PURE__ */ Object.freeze(["cvv", "expDate"]);
6245
- var BODY_LIMIT36 = 1024;
6335
+ var BODY_LIMIT37 = 1024;
6246
6336
  var TOKEN_URL2 = /^https:\/\/(ws1|ws2|sandpay)\.bluesnap\.com\/services\/2\/payment-fields-tokens\/([0-9a-f]{64}_[12]?)$/;
6247
6337
  var CARD_NUMBER18 = /^[0-9]{12,19}$/;
6248
6338
  var SECURITY_CODE22 = /^[0-9]{3,4}$/;
6249
6339
  var EXPIRY3 = /^(?:0[1-9]|1[0-2])\/20[0-9]{2}$/;
6250
6340
  var SAVED_CARD_KEYS2 = ["last4Digits", "lastFourDigits", "ccType"];
6251
- var record32 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
6252
- var own12 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
6253
- var refuse38 = (code) => Object.freeze({ verdict: "refuse", code });
6254
- var CARD37 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
6341
+ var record33 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
6342
+ var own13 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
6343
+ var refuse39 = (code) => Object.freeze({ verdict: "refuse", code });
6344
+ var CARD38 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
6255
6345
  var LEG = /* @__PURE__ */ Object.freeze({ verdict: "continue" });
6256
6346
  function bluesnapTokenUrl(url) {
6257
6347
  const match = typeof url === "string" ? TOKEN_URL2.exec(url) : null;
@@ -6263,30 +6353,30 @@ function bluesnapTokenUrl(url) {
6263
6353
  function isBluesnapTokenUrl(url) {
6264
6354
  return bluesnapTokenUrl(url) !== null;
6265
6355
  }
6266
- function readBody22(body) {
6267
- if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT36)
6356
+ function readBody23(body) {
6357
+ if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT37)
6268
6358
  return null;
6269
6359
  try {
6270
6360
  const value = JSON.parse(body);
6271
- return record32(value) && JSON.stringify(value) === body ? value : null;
6361
+ return record33(value) && JSON.stringify(value) === body ? value : null;
6272
6362
  }
6273
6363
  catch {
6274
6364
  return null;
6275
6365
  }
6276
6366
  }
6277
6367
  function bluesnapBodyVerdict(body) {
6278
- const value = readBody22(body);
6368
+ const value = readBody23(body);
6279
6369
  if (value === null)
6280
- return refuse38("bluesnap_body_unsupported");
6370
+ return refuse39("bluesnap_body_unsupported");
6281
6371
  const keys = Object.keys(value);
6282
6372
  if (keys.some((key) => SAVED_CARD_KEYS2.includes(key)))
6283
- return refuse38(own12(value, "ccNumber") ? "bluesnap_body_unsupported" : "bluesnap_saved_card");
6373
+ return refuse39(own13(value, "ccNumber") ? "bluesnap_body_unsupported" : "bluesnap_saved_card");
6284
6374
  if (keys.length === 0 || keys.some((key, i) => !BLUESNAP_CARD_KEYS.includes(key) || i > 0 && BLUESNAP_CARD_KEYS.indexOf(keys[i - 1]) >= BLUESNAP_CARD_KEYS.indexOf(key))) {
6285
- return refuse38("bluesnap_body_unsupported");
6375
+ return refuse39("bluesnap_body_unsupported");
6286
6376
  }
6287
- if (own12(value, "ccNumber") && !(typeof value.ccNumber === "string" && CARD_NUMBER18.test(value.ccNumber)) || own12(value, "cvv") && !(typeof value.cvv === "string" && SECURITY_CODE22.test(value.cvv)) || own12(value, "expDate") && !(typeof value.expDate === "string" && EXPIRY3.test(value.expDate)))
6288
- return refuse38("bluesnap_body_unsupported");
6289
- return own12(value, "ccNumber") ? CARD37 : LEG;
6377
+ if (own13(value, "ccNumber") && !(typeof value.ccNumber === "string" && CARD_NUMBER18.test(value.ccNumber)) || own13(value, "cvv") && !(typeof value.cvv === "string" && SECURITY_CODE22.test(value.cvv)) || own13(value, "expDate") && !(typeof value.expDate === "string" && EXPIRY3.test(value.expDate)))
6378
+ return refuse39("bluesnap_body_unsupported");
6379
+ return own13(value, "ccNumber") ? CARD38 : LEG;
6290
6380
  }
6291
6381
  var bluesnap_default = /* @__PURE__ */ registerProcessor({
6292
6382
  psp: BLUESNAP_PSP,
@@ -6390,7 +6480,7 @@ var REQUIRED = Object.freeze([
6390
6480
  "ekashu_failure_url",
6391
6481
  "ekashu_callback_success_url"
6392
6482
  ]);
6393
- var CARD_KEYS16 = Object.freeze([
6483
+ var CARD_KEYS17 = Object.freeze([
6394
6484
  "ekashu_card_number",
6395
6485
  "ekashu_expires_end_month",
6396
6486
  "ekashu_expires_end_year",
@@ -6592,7 +6682,7 @@ var CURRENCIES2 = Object.freeze({ EUR: "eur" });
6592
6682
  var MAX_URL = 512;
6593
6683
  var MAX_ENTRY3 = 8 * 1024;
6594
6684
  var MAX_VALUE = 256;
6595
- var own13 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
6685
+ var own14 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
6596
6686
  var field2 = (name, reason) => ({ ok: false, code: "hosted_form_field_refused", field: name, reason });
6597
6687
  function cardlinkVposEntryHost(raw) {
6598
6688
  if (typeof raw !== "string" || raw.length > MAX_URL || raw.includes("?") || raw.includes("#"))
@@ -6604,7 +6694,7 @@ function cardlinkVposEntryHost(raw) {
6604
6694
  catch {
6605
6695
  return null;
6606
6696
  }
6607
- if (url.href !== raw || url.protocol !== "https:" || url.port || url.username || url.password || !own13(CARDLINK_VPOS_HOSTS, url.hostname) || url.pathname !== CARDLINK_VPOS_ENTRY_PATH)
6697
+ if (url.href !== raw || url.protocol !== "https:" || url.port || url.username || url.password || !own14(CARDLINK_VPOS_HOSTS, url.hostname) || url.pathname !== CARDLINK_VPOS_ENTRY_PATH)
6608
6698
  return null;
6609
6699
  return url.hostname;
6610
6700
  }
@@ -6647,7 +6737,7 @@ function cardlinkVposMerchant(mid, vposHost, merchants = CARDLINK_VPOS_MERCHANTS
6647
6737
  function entryAmount(values) {
6648
6738
  const amount2 = values.get("orderAmount");
6649
6739
  const code = values.get("currency");
6650
- const currency = typeof code === "string" && own13(CURRENCIES2, code) ? CURRENCIES2[code] : null;
6740
+ const currency = typeof code === "string" && own14(CURRENCIES2, code) ? CURRENCIES2[code] : null;
6651
6741
  if (!currency || typeof amount2 !== "string" || !/^(?:0|[1-9]\d{0,11})(?:\.\d{1,2})?$/.test(amount2))
6652
6742
  return null;
6653
6743
  const [whole2, fraction = ""] = amount2.split(".");
@@ -6702,7 +6792,7 @@ function checkCardlinkVposEntry(body, { url = null, merchants = CARDLINK_VPOS_ME
6702
6792
  return field2("payMethod", /^iris$/i.test(method) ? "not_a_card_payment" : "special_flow");
6703
6793
  const amount2 = entryAmount(values);
6704
6794
  if (!amount2)
6705
- return field2(own13(CURRENCIES2, values.get("currency")) ? "orderAmount" : "currency", "malformed");
6795
+ return field2(own14(CURRENCIES2, values.get("currency")) ? "orderAmount" : "currency", "malformed");
6706
6796
  if (!/^\d{1,30}$/.test(values.get("mid")))
6707
6797
  return field2("mid", "malformed");
6708
6798
  if (!/^[A-Za-z0-9]{1,50}$/.test(values.get("orderid")))
@@ -6739,16 +6829,16 @@ var CARDLINK_VPOS_TDS2_FIELDS = Object.freeze([
6739
6829
  ]);
6740
6830
  var PAGE_FIELDS = Object.freeze(["trid", "st", "payStep", "cmd", "startbonus", "bonusdata"]);
6741
6831
  var WALLET_FIELDS2 = Object.freeze(["walletId", "applePayResponse"]);
6742
- var CARD38 = Object.freeze({ number: "card.pan", holder: "card.holderName", month: "card.expiryMonth", year: "card.expiryYear", cvc: "card.cvv" });
6743
- var TEXT_CONTROLS = /* @__PURE__ */ new Set([CARD38.number, CARD38.holder, CARD38.cvc]);
6744
- var SELECT_CONTROLS = /* @__PURE__ */ new Set([CARD38.month, CARD38.year]);
6832
+ var CARD39 = Object.freeze({ number: "card.pan", holder: "card.holderName", month: "card.expiryMonth", year: "card.expiryYear", cvc: "card.cvv" });
6833
+ var TEXT_CONTROLS = /* @__PURE__ */ new Set([CARD39.number, CARD39.holder, CARD39.cvc]);
6834
+ var SELECT_CONTROLS = /* @__PURE__ */ new Set([CARD39.month, CARD39.year]);
6745
6835
  var MAX_PAGE3 = 256 * 1024;
6746
6836
  var COOKIE_DOMAINS = Object.freeze({
6747
6837
  "vpos.eurocommerce.gr": "eurocommerce.gr",
6748
6838
  "ecommerce.cardlink.gr": "cardlink.gr",
6749
6839
  "www.alphaecommerce.gr": "alphaecommerce.gr"
6750
6840
  });
6751
- var POST_REQUIRED = Object.freeze(["trid", "st", "cmd", CARD38.number, CARD38.holder, CARD38.month, CARD38.year, CARD38.cvc, "makepayment"]);
6841
+ var POST_REQUIRED = Object.freeze(["trid", "st", "cmd", CARD39.number, CARD39.holder, CARD39.month, CARD39.year, CARD39.cvc, "makepayment"]);
6752
6842
  var POST_EMPTY = Object.freeze(["payStep", "startbonus", "bonusdata", ...WALLET_FIELDS2]);
6753
6843
  var POST_ALLOWED = /* @__PURE__ */ new Set([...POST_REQUIRED, ...POST_EMPTY, "paymentMethod", ...CARDLINK_VPOS_TDS2_FIELDS]);
6754
6844
  var CARDLINK_VPOS_REFUSALS = Object.freeze([
@@ -6878,7 +6968,7 @@ var REQUIRED4 = Object.freeze([
6878
6968
  "CurrencyCode",
6879
6969
  "HashValue"
6880
6970
  ]);
6881
- var CARD_KEYS17 = /* @__PURE__ */ new Set(["cardno", "cardexp", "cardcvv2", "cardholder", "param2", "param4", "cvv2", "epmonth2", "epyear2", "custocp"]);
6971
+ var CARD_KEYS18 = /* @__PURE__ */ new Set(["cardno", "cardexp", "cardcvv2", "cardholder", "param2", "param4", "cvv2", "epmonth2", "epyear2", "custocp"]);
6882
6972
  var SECRET_KEYS = /* @__PURE__ */ new Set(["password"]);
6883
6973
  var STORED_KEYS2 = /* @__PURE__ */ new Set([
6884
6974
  "tokentype",
@@ -6935,7 +7025,7 @@ function checkEghlEntry(body, { url = null, merchants = EGHL_MERCHANTS } = {}) {
6935
7025
  if (value === "")
6936
7026
  continue;
6937
7027
  const folded = key.toLowerCase();
6938
- if (CARD_KEYS17.has(folded))
7028
+ if (CARD_KEYS18.has(folded))
6939
7029
  return field3(key, "card_in_entry");
6940
7030
  if (SECRET_KEYS.has(folded))
6941
7031
  return field3(key, "not_an_entry");
@@ -7067,7 +7157,7 @@ var FRISBII_REFUSED_PATHS = /* @__PURE__ */ Object.freeze({
7067
7157
  "/v1/token/cof/": "frisbii_stored_card_unsupported",
7068
7158
  "/v1/token/create_click_to_pay": "frisbii_click_to_pay_unsupported"
7069
7159
  });
7070
- var BODY_LIMIT37 = 8192;
7160
+ var BODY_LIMIT38 = 8192;
7071
7161
  var URL_LIMIT15 = 256;
7072
7162
  var CARD_NUMBER19 = /^[0-9]{12,19}$/;
7073
7163
  var MONTH19 = /^(?:0[1-9]|1[0-2])$/;
@@ -7111,13 +7201,13 @@ var BROWSER_ORDER = /* @__PURE__ */ Object.freeze([
7111
7201
  "tz"
7112
7202
  ]);
7113
7203
  var LABEL = /^[A-Za-z0-9_-]{1,64}$/;
7114
- var record33 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
7115
- var own14 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
7116
- var refuse39 = (code) => Object.freeze({ verdict: "refuse", code });
7117
- var CARD39 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
7204
+ var record34 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
7205
+ var own15 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
7206
+ var refuse40 = (code) => Object.freeze({ verdict: "refuse", code });
7207
+ var CARD40 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
7118
7208
  var text9 = (value, max) => typeof value === "string" && value.length <= max;
7119
7209
  var absentOrNull = (value) => value === void 0 || value === null;
7120
- var inOrder6 = (value, order) => Object.keys(value).every((key) => order.includes(key)) && Object.keys(value).join() === order.filter((key) => own14(value, key)).join();
7210
+ var inOrder6 = (value, order) => Object.keys(value).every((key) => order.includes(key)) && Object.keys(value).join() === order.filter((key) => own15(value, key)).join();
7121
7211
  function frisbiiTokenUrl(url) {
7122
7212
  if (typeof url !== "string" || url.length > URL_LIMIT15 || url.includes("#"))
7123
7213
  return null;
@@ -7128,7 +7218,7 @@ function frisbiiTokenUrl(url) {
7128
7218
  catch {
7129
7219
  return null;
7130
7220
  }
7131
- if (parsed.href !== url || parsed.protocol !== "https:" || parsed.port || parsed.username || parsed.password || !own14(FRISBII_HOSTS, parsed.hostname) || parsed.pathname !== FRISBII_TOKEN_PATH)
7221
+ if (parsed.href !== url || parsed.protocol !== "https:" || parsed.port || parsed.username || parsed.password || !own15(FRISBII_HOSTS, parsed.hostname) || parsed.pathname !== FRISBII_TOKEN_PATH)
7132
7222
  return null;
7133
7223
  const match = /^\?session=([A-Za-z0-9_-]{8,128})$/.exec(parsed.search);
7134
7224
  return match ? Object.freeze({ host: parsed.hostname, brand: FRISBII_HOSTS[parsed.hostname], session: match[1] }) : null;
@@ -7144,7 +7234,7 @@ function frisbiiRefusedFlowUrl(url) {
7144
7234
  catch {
7145
7235
  return null;
7146
7236
  }
7147
- if (parsed.href !== url || parsed.protocol !== "https:" || parsed.port || parsed.username || parsed.password || !own14(FRISBII_HOSTS, parsed.hostname) || !own14(FRISBII_REFUSED_PATHS, parsed.pathname))
7237
+ if (parsed.href !== url || parsed.protocol !== "https:" || parsed.port || parsed.username || parsed.password || !own15(FRISBII_HOSTS, parsed.hostname) || !own15(FRISBII_REFUSED_PATHS, parsed.pathname))
7148
7238
  return null;
7149
7239
  return FRISBII_REFUSED_PATHS[parsed.pathname];
7150
7240
  }
@@ -7158,28 +7248,28 @@ function luhn9(digits3) {
7158
7248
  }
7159
7249
  return sum % 10 === 0;
7160
7250
  }
7161
- function readBody23(body) {
7162
- if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT37)
7251
+ function readBody24(body) {
7252
+ if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT38)
7163
7253
  return null;
7164
7254
  try {
7165
7255
  const value = JSON.parse(body);
7166
- return record33(value) && JSON.stringify(value) === body ? value : null;
7256
+ return record34(value) && JSON.stringify(value) === body ? value : null;
7167
7257
  }
7168
7258
  catch {
7169
7259
  return null;
7170
7260
  }
7171
7261
  }
7172
7262
  function browserInfo(info) {
7173
- return record33(info) && Object.keys(info).join() === BROWSER_ORDER.join() && info.javascriptEnabled === true && typeof info.javaEnabled === "boolean" && /^size_[0-9]{3}x[0-9]{3}$/.test(info.challengeWindowSize) && [info.colorDepth, info.screenHeight, info.screenWidth].every((n) => Number.isSafeInteger(n) && n >= 0 && n <= 1e5) && Number.isSafeInteger(info.tz) && Math.abs(info.tz) <= 1440;
7263
+ return record34(info) && Object.keys(info).join() === BROWSER_ORDER.join() && info.javascriptEnabled === true && typeof info.javaEnabled === "boolean" && /^size_[0-9]{3}x[0-9]{3}$/.test(info.challengeWindowSize) && [info.colorDepth, info.screenHeight, info.screenWidth].every((n) => Number.isSafeInteger(n) && n >= 0 && n <= 1e5) && Number.isSafeInteger(info.tz) && Math.abs(info.tz) <= 1440;
7174
7264
  }
7175
7265
  function scaBlock(block, target) {
7176
- if (!record33(block) || !inOrder6(block, SCA_ORDER) || !own14(block, "returnUrl") || !own14(block, "tokenBrowserInfo"))
7266
+ if (!record34(block) || !inOrder6(block, SCA_ORDER) || !own15(block, "returnUrl") || !own15(block, "tokenBrowserInfo"))
7177
7267
  return false;
7178
7268
  if (!Number.isSafeInteger(block.amount) || block.amount < 0 || typeof block.currency !== "string" || !/^[A-Z]{3}$/.test(block.currency))
7179
7269
  return false;
7180
7270
  if (!(absentOrNull(block.orderId) || text9(block.orderId, 128)) || !(absentOrNull(block.orderText) || text9(block.orderText, 512)))
7181
7271
  return false;
7182
- if (!(absentOrNull(block.merchantScaData) || record33(block.merchantScaData)))
7272
+ if (!(absentOrNull(block.merchantScaData) || record34(block.merchantScaData)))
7183
7273
  return false;
7184
7274
  if (!text9(block.returnUrl, 2048) || !browserInfo(block.tokenBrowserInfo))
7185
7275
  return false;
@@ -7187,16 +7277,16 @@ function scaBlock(block, target) {
7187
7277
  return back !== null && (target === null || back[1] === target.brand && back[2] === target.session);
7188
7278
  }
7189
7279
  function frisbiiBodyVerdict(body, url) {
7190
- const value = readBody23(body);
7191
- if (value === null || !inOrder6(value, BODY_ORDER) || !BODY_REQUIRED.every((key) => own14(value, key)) || BODY_REFUSED.some((key) => own14(value, key)))
7192
- return refuse39("frisbii_body_unsupported");
7280
+ const value = readBody24(body);
7281
+ if (value === null || !inOrder6(value, BODY_ORDER) || !BODY_REQUIRED.every((key) => own15(value, key)) || BODY_REFUSED.some((key) => own15(value, key)))
7282
+ return refuse40("frisbii_body_unsupported");
7193
7283
  if (value.recurring === true || value.intent === "CHARGE_AND_STORE")
7194
- return refuse39("frisbii_card_on_file");
7284
+ return refuse40("frisbii_card_on_file");
7195
7285
  const target = url === void 0 ? null : frisbiiTokenUrl(url);
7196
7286
  if (url !== void 0 && target === null)
7197
- return refuse39("frisbii_body_unsupported");
7287
+ return refuse40("frisbii_body_unsupported");
7198
7288
  const sound = typeof value.number === "string" && CARD_NUMBER19.test(value.number) && luhn9(value.number) && typeof value.month === "string" && MONTH19.test(value.month) && typeof value.year === "string" && YEAR20.test(value.year) && typeof value.cvv === "string" && SECURITY_CODE23.test(value.cvv) && typeof value.pkey === "string" && IDENTIFIER2.test(value.pkey) && value.recurring === false && (value.cardholder_name === void 0 || text9(value.cardholder_name, 64)) && (value.intent === void 0 || value.intent === "CHARGE") && (absentOrNull(value.recurringAverageAmount) || Number.isSafeInteger(value.recurringAverageAmount) && value.recurringAverageAmount >= 0) && (absentOrNull(value.agreementFilter) || typeof value.agreementFilter === "string" && LABEL.test(value.agreementFilter) || Array.isArray(value.agreementFilter) && value.agreementFilter.length <= 16 && value.agreementFilter.every((entry) => typeof entry === "string" && LABEL.test(entry))) && SCA_RULES.includes(value.strongAuthenticationRule) && (value.tokenStrongAuthenticationRequest === void 0 || scaBlock(value.tokenStrongAuthenticationRequest, target));
7199
- return sound ? CARD39 : refuse39("frisbii_body_unsupported");
7289
+ return sound ? CARD40 : refuse40("frisbii_body_unsupported");
7200
7290
  }
7201
7291
  var frisbii_default = /* @__PURE__ */ registerProcessor({
7202
7292
  psp: FRISBII_PSP,
@@ -7231,8 +7321,8 @@ var frisbii_default = /* @__PURE__ */ registerProcessor({
7231
7321
  return frisbiiBodyVerdict(body);
7232
7322
  const flow = frisbiiRefusedFlowUrl(url);
7233
7323
  if (flow !== null)
7234
- return refuse39(flow);
7235
- return isFrisbiiTokenUrl(url) ? frisbiiBodyVerdict(body, url) : refuse39("frisbii_url_refused");
7324
+ return refuse40(flow);
7325
+ return isFrisbiiTokenUrl(url) ? frisbiiBodyVerdict(body, url) : refuse40("frisbii_url_refused");
7236
7326
  },
7237
7327
  limitations: ["A live Frisbii card goes only to a merchant account a reviewed pin lists, and none is pinned yet."]
7238
7328
  });
@@ -7261,7 +7351,7 @@ var IYZICO_CARD_KEYS = /* @__PURE__ */ Object.freeze([
7261
7351
  "registerConsumerCard",
7262
7352
  "registerCard"
7263
7353
  ]);
7264
- var BODY_LIMIT38 = 4096;
7354
+ var BODY_LIMIT39 = 4096;
7265
7355
  var CARD_NUMBER20 = /^[0-9]{12,19}$/;
7266
7356
  var SECURITY_CODE24 = /^[0-9]{3,4}$/;
7267
7357
  var MONTH20 = /^(?:0?[1-9]|1[0-2])$/;
@@ -7271,8 +7361,8 @@ var CHANNELS = /* @__PURE__ */ Object.freeze(["WEB", "MOBILE_WEB", "MOBILE_IOS",
7271
7361
  var METADATA_KEYS3 = /* @__PURE__ */ Object.freeze(["lightRedesign", "pwiGrowthActionDisabled"]);
7272
7362
  var FLAG = /^[A-Za-z_]{1,16}$/;
7273
7363
  var HOLDER5 = /^[^\x00-\x1f\x7f0-9]{3,100}$/u;
7274
- var record34 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
7275
- var own15 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
7364
+ var record35 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
7365
+ var own16 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
7276
7366
  var inOrder7 = (value, keys) => {
7277
7367
  let at = 0;
7278
7368
  for (const name of Object.keys(value)) {
@@ -7284,17 +7374,17 @@ var inOrder7 = (value, keys) => {
7284
7374
  }
7285
7375
  return true;
7286
7376
  };
7287
- var refuse40 = (code) => Object.freeze({ verdict: "refuse", code });
7288
- var CARD40 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
7377
+ var refuse41 = (code) => Object.freeze({ verdict: "refuse", code });
7378
+ var CARD41 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
7289
7379
  function isIyzicoCardUrl(url) {
7290
7380
  return typeof url === "string" && IYZICO_CARD_URLS.includes(url);
7291
7381
  }
7292
- function readBody24(body) {
7293
- if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT38)
7382
+ function readBody25(body) {
7383
+ if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT39)
7294
7384
  return null;
7295
7385
  try {
7296
7386
  const value = JSON.parse(body);
7297
- return record34(value) && JSON.stringify(value) === body ? value : null;
7387
+ return record35(value) && JSON.stringify(value) === body ? value : null;
7298
7388
  }
7299
7389
  catch {
7300
7390
  return null;
@@ -7306,26 +7396,26 @@ function hundredths(price) {
7306
7396
  return value > 0 ? value : null;
7307
7397
  }
7308
7398
  var holderName2 = (name) => typeof name === "string" && HOLDER5.test(name) && name.trim().split(/\s+/).filter((word) => word.length > 1).length > 1;
7309
- var metadata = (value) => record34(value) && inOrder7(value, METADATA_KEYS3) && Object.values(value).every((flag3) => Array.isArray(flag3) && flag3.length === 1 && typeof flag3[0] === "string" && FLAG.test(flag3[0]));
7399
+ var metadata = (value) => record35(value) && inOrder7(value, METADATA_KEYS3) && Object.values(value).every((flag3) => Array.isArray(flag3) && flag3.length === 1 && typeof flag3[0] === "string" && FLAG.test(flag3[0]));
7310
7400
  function iyzicoBodyVerdict(body) {
7311
- const value = readBody24(body);
7401
+ const value = readBody25(body);
7312
7402
  if (value === null)
7313
- return refuse40("iyzico_body_unsupported");
7403
+ return refuse41("iyzico_body_unsupported");
7314
7404
  const card = value.paymentCard;
7315
- if (record34(card) && (own15(card, "cardToken") || own15(card, "ucsToken") || own15(card, "consumerToken")) && !own15(card, "cardNumber"))
7316
- return refuse40("iyzico_saved_card");
7317
- if (own15(value, "dccPayment") || own15(value, "dccQueryRrn"))
7318
- return refuse40("iyzico_dcc_refused");
7319
- if (own15(value, "gsmNumber") || own15(value, "buyerProtected") && value.buyerProtected !== false || record34(card) && (own15(card, "registerCard") && card.registerCard !== 0 || own15(card, "registerConsumerCard") && card.registerConsumerCard !== false)) {
7320
- return refuse40("iyzico_keeps_card");
7405
+ if (record35(card) && (own16(card, "cardToken") || own16(card, "ucsToken") || own16(card, "consumerToken")) && !own16(card, "cardNumber"))
7406
+ return refuse41("iyzico_saved_card");
7407
+ if (own16(value, "dccPayment") || own16(value, "dccQueryRrn"))
7408
+ return refuse41("iyzico_dcc_refused");
7409
+ if (own16(value, "gsmNumber") || own16(value, "buyerProtected") && value.buyerProtected !== false || record35(card) && (own16(card, "registerCard") && card.registerCard !== 0 || own16(card, "registerConsumerCard") && card.registerConsumerCard !== false)) {
7410
+ return refuse41("iyzico_keeps_card");
7321
7411
  }
7322
7412
  if (Number.isSafeInteger(value.installment) && value.installment > 1)
7323
- return refuse40("iyzico_installments_refused");
7324
- if (!inOrder7(value, IYZICO_BODY_KEYS) || !["installment", "paidPrice", "paymentChannel", "paymentCard"].every((key) => own15(value, key)) || value.installment !== 1 || hundredths(value.paidPrice) === null || !CHANNELS.includes(value.paymentChannel) || own15(value, "pwiMetadata") && !metadata(value.pwiMetadata))
7325
- return refuse40("iyzico_body_unsupported");
7326
- if (!record34(card) || Object.keys(card).join() !== IYZICO_CARD_KEYS.join() || typeof card.cardNumber !== "string" || !CARD_NUMBER20.test(card.cardNumber) || !holderName2(card.cardHolderName) || typeof card.expireYear !== "string" || !YEAR21.test(card.expireYear) || typeof card.expireMonth !== "string" || !MONTH20.test(card.expireMonth) || typeof card.cvc !== "string" || !SECURITY_CODE24.test(card.cvc))
7327
- return refuse40("iyzico_body_unsupported");
7328
- return CARD40;
7413
+ return refuse41("iyzico_installments_refused");
7414
+ if (!inOrder7(value, IYZICO_BODY_KEYS) || !["installment", "paidPrice", "paymentChannel", "paymentCard"].every((key) => own16(value, key)) || value.installment !== 1 || hundredths(value.paidPrice) === null || !CHANNELS.includes(value.paymentChannel) || own16(value, "pwiMetadata") && !metadata(value.pwiMetadata))
7415
+ return refuse41("iyzico_body_unsupported");
7416
+ if (!record35(card) || Object.keys(card).join() !== IYZICO_CARD_KEYS.join() || typeof card.cardNumber !== "string" || !CARD_NUMBER20.test(card.cardNumber) || !holderName2(card.cardHolderName) || typeof card.expireYear !== "string" || !YEAR21.test(card.expireYear) || typeof card.expireMonth !== "string" || !MONTH20.test(card.expireMonth) || typeof card.cvc !== "string" || !SECURITY_CODE24.test(card.cvc))
7417
+ return refuse41("iyzico_body_unsupported");
7418
+ return CARD41;
7329
7419
  }
7330
7420
  var iyzico_default = /* @__PURE__ */ registerProcessor({
7331
7421
  psp: IYZICO_PSP,
@@ -7358,7 +7448,7 @@ var iyzico_default = /* @__PURE__ */ registerProcessor({
7358
7448
  source: "https://docs.iyzico.com/en/payment-methods/checkoutform/cf-implementation/cf-retrieve"
7359
7449
  },
7360
7450
  exactUrl: isIyzicoCardUrl,
7361
- bodyGate: (url, body) => url !== void 0 && !isIyzicoCardUrl(url) ? refuse40("iyzico_url_refused") : iyzicoBodyVerdict(body)
7451
+ bodyGate: (url, body) => url !== void 0 && !isIyzicoCardUrl(url) ? refuse41("iyzico_url_refused") : iyzicoBodyVerdict(body)
7362
7452
  });
7363
7453
  // src/processors/midtrans.js
7364
7454
  var MIDTRANS_PSP = "midtrans";
@@ -7366,14 +7456,14 @@ var MIDTRANS_OPERATION = "midtrans.card_request";
7366
7456
  var MIDTRANS_TOKEN_URL = "https://api.midtrans.com/v2/token";
7367
7457
  var MIDTRANS_SANDBOX_TOKEN_URL = "https://api.sandbox.midtrans.com/v2/token";
7368
7458
  var MIDTRANS_TOKEN_KEYS = /* @__PURE__ */ Object.freeze(["card_cvv", "card_number", "card_exp_month", "card_exp_year", "installment_term"]);
7369
- var BODY_LIMIT39 = 4096;
7459
+ var BODY_LIMIT40 = 4096;
7370
7460
  var CARD_NUMBER21 = /^[0-9]{12,19}$/;
7371
7461
  var SECURITY_CODE25 = /^[0-9]{3,4}$/;
7372
7462
  var MONTH21 = /^(?:0[1-9]|1[0-2])$/;
7373
7463
  var YEAR22 = /^20[0-9]{2}$/;
7374
7464
  var TERM = /^[0-9]{1,3}$/;
7375
- var record35 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
7376
- var own16 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
7465
+ var record36 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
7466
+ var own17 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
7377
7467
  var inOrder8 = (value, keys) => {
7378
7468
  let at = 0;
7379
7469
  for (const name of Object.keys(value)) {
@@ -7385,18 +7475,18 @@ var inOrder8 = (value, keys) => {
7385
7475
  }
7386
7476
  return true;
7387
7477
  };
7388
- var refuse41 = (code) => Object.freeze({ verdict: "refuse", code });
7389
- var CARD41 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
7478
+ var refuse42 = (code) => Object.freeze({ verdict: "refuse", code });
7479
+ var CARD42 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
7390
7480
  function isMidtransTokenUrl(url) {
7391
7481
  return url === MIDTRANS_TOKEN_URL || url === MIDTRANS_SANDBOX_TOKEN_URL;
7392
7482
  }
7393
- function readBody25(body) {
7394
- if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT39)
7483
+ function readBody26(body) {
7484
+ if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT40)
7395
7485
  return null;
7396
7486
  let value;
7397
7487
  try {
7398
7488
  value = JSON.parse(body);
7399
- if (!record35(value) || JSON.stringify(value) !== body)
7489
+ if (!record36(value) || JSON.stringify(value) !== body)
7400
7490
  return null;
7401
7491
  }
7402
7492
  catch {
@@ -7405,20 +7495,20 @@ function readBody25(body) {
7405
7495
  return value;
7406
7496
  }
7407
7497
  function midtransBodyVerdict(body) {
7408
- const value = readBody25(body);
7498
+ const value = readBody26(body);
7409
7499
  if (value === null || !inOrder8(value, MIDTRANS_TOKEN_KEYS)) {
7410
- if (record35(value) && (own16(value, "token_id") || own16(value, "two_click")) && !own16(value, "card_number"))
7411
- return refuse41("midtrans_saved_card");
7412
- return refuse41("midtrans_body_unsupported");
7500
+ if (record36(value) && (own17(value, "token_id") || own17(value, "two_click")) && !own17(value, "card_number"))
7501
+ return refuse42("midtrans_saved_card");
7502
+ return refuse42("midtrans_body_unsupported");
7413
7503
  }
7414
- if (!own16(value, "card_cvv") || !own16(value, "card_number") || !own16(value, "card_exp_month") || !own16(value, "card_exp_year")) {
7415
- return refuse41("midtrans_body_unsupported");
7504
+ if (!own17(value, "card_cvv") || !own17(value, "card_number") || !own17(value, "card_exp_month") || !own17(value, "card_exp_year")) {
7505
+ return refuse42("midtrans_body_unsupported");
7416
7506
  }
7417
7507
  if (typeof value.card_cvv !== "string" || !SECURITY_CODE25.test(value.card_cvv) || typeof value.card_number !== "string" || !CARD_NUMBER21.test(value.card_number) || typeof value.card_exp_month !== "string" || !MONTH21.test(value.card_exp_month) || typeof value.card_exp_year !== "string" || !YEAR22.test(value.card_exp_year))
7418
- return refuse41("midtrans_body_unsupported");
7419
- if (own16(value, "installment_term") && (typeof value.installment_term !== "string" || !TERM.test(value.installment_term)))
7420
- return refuse41("midtrans_body_unsupported");
7421
- return CARD41;
7508
+ return refuse42("midtrans_body_unsupported");
7509
+ if (own17(value, "installment_term") && (typeof value.installment_term !== "string" || !TERM.test(value.installment_term)))
7510
+ return refuse42("midtrans_body_unsupported");
7511
+ return CARD42;
7422
7512
  }
7423
7513
  var midtrans_default = /* @__PURE__ */ registerProcessor({
7424
7514
  psp: MIDTRANS_PSP,
@@ -7453,20 +7543,20 @@ var midtrans_default = /* @__PURE__ */ registerProcessor({
7453
7543
  var MONEI_PSP = "monei";
7454
7544
  var MONEI_OPERATION = "monei.card_request";
7455
7545
  var MONEI_TOKENS_URL = "https://api.monei.com/v1/tokens";
7456
- var BODY_LIMIT40 = 1024;
7546
+ var BODY_LIMIT41 = 1024;
7457
7547
  var PAYMENT_ID = /^(?:[0-9a-f]{32}|[0-9a-f]{40})$/;
7458
7548
  var MONEI_CARD_KEYS = /* @__PURE__ */ Object.freeze(["number", "expMonth", "expYear", "cvc"]);
7459
- var NUMBER8 = /^[0-9]{12,19}$/;
7549
+ var NUMBER9 = /^[0-9]{12,19}$/;
7460
7550
  var MONTH22 = /^(?:0[1-9]|1[0-2])$/;
7461
7551
  var YEAR23 = /^[0-9]{2}$/;
7462
7552
  var CODE8 = /^[0-9]{3,4}$/;
7463
- var record36 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
7553
+ var record37 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
7464
7554
  var keysAre2 = (value, keys) => {
7465
7555
  const found = Object.keys(value);
7466
7556
  return found.length === keys.length && found.every((key, at) => key === keys[at]);
7467
7557
  };
7468
- var refuse42 = (code) => Object.freeze({ verdict: "refuse", code });
7469
- var CARD42 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
7558
+ var refuse43 = (code) => Object.freeze({ verdict: "refuse", code });
7559
+ var CARD43 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
7470
7560
  function luhn10(digits3) {
7471
7561
  let sum = 0;
7472
7562
  for (let at = 0; at < digits3.length; at += 1) {
@@ -7483,12 +7573,12 @@ function luhn10(digits3) {
7483
7573
  function isMoneiTokensUrl(url) {
7484
7574
  return url === MONEI_TOKENS_URL;
7485
7575
  }
7486
- function readBody26(body) {
7487
- if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT40)
7576
+ function readBody27(body) {
7577
+ if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT41)
7488
7578
  return null;
7489
7579
  try {
7490
7580
  const value = JSON.parse(body);
7491
- return record36(value) && JSON.stringify(value) === body ? value : null;
7581
+ return record37(value) && JSON.stringify(value) === body ? value : null;
7492
7582
  }
7493
7583
  catch {
7494
7584
  return null;
@@ -7496,19 +7586,19 @@ function readBody26(body) {
7496
7586
  }
7497
7587
  function moneiBodyVerdict(body, url) {
7498
7588
  if (url !== void 0 && !isMoneiTokensUrl(url))
7499
- return refuse42("monei_url_refused");
7500
- const value = readBody26(body);
7589
+ return refuse43("monei_url_refused");
7590
+ const value = readBody27(body);
7501
7591
  if (value === null || !keysAre2(value, ["paymentId", "paymentMethod"]) || typeof value.paymentId !== "string" || !PAYMENT_ID.test(value.paymentId))
7502
- return refuse42("monei_body_unsupported");
7592
+ return refuse43("monei_body_unsupported");
7503
7593
  const method = value.paymentMethod;
7504
- if (!record36(method) || !keysAre2(method, ["card"]) || !record36(method.card) || !keysAre2(method.card, MONEI_CARD_KEYS))
7505
- return refuse42("monei_body_unsupported");
7594
+ if (!record37(method) || !keysAre2(method, ["card"]) || !record37(method.card) || !keysAre2(method.card, MONEI_CARD_KEYS))
7595
+ return refuse43("monei_body_unsupported");
7506
7596
  const { number, expMonth, expYear, cvc } = method.card;
7507
7597
  if (![number, expMonth, expYear, cvc].every((part) => typeof part === "string"))
7508
- return refuse42("monei_body_unsupported");
7509
- if (!NUMBER8.test(number) || !luhn10(number) || !MONTH22.test(expMonth) || !YEAR23.test(expYear) || !CODE8.test(cvc))
7510
- return refuse42("monei_body_unsupported");
7511
- return CARD42;
7598
+ return refuse43("monei_body_unsupported");
7599
+ if (!NUMBER9.test(number) || !luhn10(number) || !MONTH22.test(expMonth) || !YEAR23.test(expYear) || !CODE8.test(cvc))
7600
+ return refuse43("monei_body_unsupported");
7601
+ return CARD43;
7512
7602
  }
7513
7603
  var MONEI_MERCHANT_PINS = /* @__PURE__ */ Object.freeze([
7514
7604
  Object.freeze({ merchant: "Genuins", accountIds: Object.freeze(["8d58ab4c-4ad0-4053-b18f-79d80e9ee158"]), merchantUrls: Object.freeze(["https://genuins.com/"]) })
@@ -7572,9 +7662,9 @@ var OCEANPAYMENT_FORM_FIELDS = /* @__PURE__ */ Object.freeze([
7572
7662
  "reference"
7573
7663
  ]);
7574
7664
  var URL_LIMIT16 = 2048;
7575
- var BODY_LIMIT41 = 8192;
7665
+ var BODY_LIMIT42 = 8192;
7576
7666
  var SEND_PAY = /^\/gateway\/sendPay;jsessionid=[A-Za-z0-9._!-]{16,128}$/;
7577
- var own17 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
7667
+ var own18 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
7578
7668
  var exact4 = (pattern, value) => typeof value === "string" && pattern.test(value);
7579
7669
  var CARD_RUN = /[0-9]{12}/;
7580
7670
  var printable5 = (max) => (value) => typeof value === "string" && value.length <= max && /^[\x20-\x7e]*$/.test(value) && !CARD_RUN.test(value);
@@ -7621,7 +7711,7 @@ function oceanpaymentSendPayUrl(url) {
7621
7711
  catch {
7622
7712
  return null;
7623
7713
  }
7624
- if (parsed.href !== url || parsed.protocol !== "https:" || parsed.port || parsed.username || parsed.password || !own17(OCEANPAYMENT_HOSTS, parsed.hostname) || !SEND_PAY.test(parsed.pathname))
7714
+ if (parsed.href !== url || parsed.protocol !== "https:" || parsed.port || parsed.username || parsed.password || !own18(OCEANPAYMENT_HOSTS, parsed.hostname) || !SEND_PAY.test(parsed.pathname))
7625
7715
  return null;
7626
7716
  return Object.freeze({ host: parsed.hostname, environment: OCEANPAYMENT_HOSTS[parsed.hostname] });
7627
7717
  }
@@ -7649,7 +7739,7 @@ function formDecode2(raw) {
7649
7739
  return formEncode3(value) === raw ? value : null;
7650
7740
  }
7651
7741
  function readPairs2(body) {
7652
- if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT41)
7742
+ if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT42)
7653
7743
  return null;
7654
7744
  const pairs = [];
7655
7745
  for (const chunk of body.split("&")) {
@@ -7734,7 +7824,7 @@ var PAYMENTWALL_PSP = "paymentwall";
7734
7824
  var PAYMENTWALL_OPERATION = "paymentwall.card_request";
7735
7825
  var PAYMENTWALL_TOKEN_URL = "https://pwgateway.com/api/token";
7736
7826
  var PAYMENTWALL_SANDBOX_TOKEN_URL = "https://api.paymentwall.com/api/brick/token";
7737
- var BODY_LIMIT42 = 2048;
7827
+ var BODY_LIMIT43 = 2048;
7738
7828
  var KEY3 = "public_key";
7739
7829
  var PUBLIC_KEY2 = /^(?:t_)?[A-Za-z0-9]{16,64}$/;
7740
7830
  var SHAPES3 = /* @__PURE__ */ Object.freeze({
@@ -7744,8 +7834,8 @@ var SHAPES3 = /* @__PURE__ */ Object.freeze({
7744
7834
  "card[exp_year]": /^(?:[0-9]{2}|20[0-9]{2})$/,
7745
7835
  "card[cvv]": /^[0-9]{3,4}$/
7746
7836
  });
7747
- var refuse43 = (code) => Object.freeze({ verdict: "refuse", code });
7748
- var CARD43 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
7837
+ var refuse44 = (code) => Object.freeze({ verdict: "refuse", code });
7838
+ var CARD44 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
7749
7839
  function luhn11(digits3) {
7750
7840
  let sum = 0;
7751
7841
  for (let at = 0; at < digits3.length; at += 1) {
@@ -7773,7 +7863,7 @@ function paymentwallKeyEnvironment(publicKey) {
7773
7863
  return publicKey.startsWith("t_") ? "sandbox" : "production";
7774
7864
  }
7775
7865
  function readPairs3(body) {
7776
- if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT42 || !/^[A-Za-z0-9_[\]=&]+$/.test(body))
7866
+ if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT43 || !/^[A-Za-z0-9_[\]=&]+$/.test(body))
7777
7867
  return null;
7778
7868
  const pairs = /* @__PURE__ */ new Map();
7779
7869
  for (const chunk of body.split("&")) {
@@ -7789,21 +7879,21 @@ function readPairs3(body) {
7789
7879
  }
7790
7880
  function paymentwallBodyVerdict(body, url) {
7791
7881
  if (url !== void 0 && !isPaymentwallTokenUrl(url))
7792
- return refuse43("paymentwall_url_refused");
7882
+ return refuse44("paymentwall_url_refused");
7793
7883
  const pairs = readPairs3(body);
7794
7884
  if (pairs === null)
7795
- return refuse43("paymentwall_body_unsupported");
7885
+ return refuse44("paymentwall_body_unsupported");
7796
7886
  if (pairs.has("card[token]") && !pairs.has("card[number]"))
7797
- return refuse43("paymentwall_saved_card");
7887
+ return refuse44("paymentwall_saved_card");
7798
7888
  const keys = Object.keys(SHAPES3);
7799
7889
  if (pairs.size !== keys.length || !keys.every((key) => pairs.has(key) && SHAPES3[key].test(pairs.get(key)))) {
7800
- return refuse43("paymentwall_body_unsupported");
7890
+ return refuse44("paymentwall_body_unsupported");
7801
7891
  }
7802
7892
  if (!luhn11(pairs.get("card[number]")))
7803
- return refuse43("paymentwall_body_unsupported");
7893
+ return refuse44("paymentwall_body_unsupported");
7804
7894
  if (url !== void 0 && paymentwallKeyEnvironment(pairs.get(KEY3)) !== paymentwallUrlEnvironment(url))
7805
- return refuse43("paymentwall_key_refused");
7806
- return CARD43;
7895
+ return refuse44("paymentwall_key_refused");
7896
+ return CARD44;
7807
7897
  }
7808
7898
  var paymentwall_default = /* @__PURE__ */ registerProcessor({
7809
7899
  psp: PAYMENTWALL_PSP,
@@ -7953,7 +8043,7 @@ var PAYSTACK_BODY_KEYS = /* @__PURE__ */ Object.freeze([
7953
8043
  "transaction_type"
7954
8044
  ]);
7955
8045
  var OPTIONAL = /* @__PURE__ */ new Set(["access_code", "card_holder_name", "transaction_type"]);
7956
- var BODY_LIMIT43 = 4096;
8046
+ var BODY_LIMIT44 = 4096;
7957
8047
  var CIPHERTEXT_BYTES2 = [62, 63, 64];
7958
8048
  var BASE646 = /^[A-Za-z0-9+/]+={0,2}$/;
7959
8049
  var SHAPES4 = /* @__PURE__ */ Object.freeze({
@@ -7967,8 +8057,8 @@ var SHAPES4 = /* @__PURE__ */ Object.freeze({
7967
8057
  card_holder_name: /^[^\x00-\x1f\x7f0-9]{1,128}$/u,
7968
8058
  transaction_type: /^[a-z_]{1,32}$/
7969
8059
  });
7970
- var own18 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
7971
- var refuse44 = (code) => Object.freeze({ verdict: "refuse", code });
8060
+ var own19 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
8061
+ var refuse45 = (code) => Object.freeze({ verdict: "refuse", code });
7972
8062
  function paystackFormValue(value) {
7973
8063
  return encodeURIComponent(String(value)).replace(/%20/g, "+").replace(/[!'()*~]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);
7974
8064
  }
@@ -7991,7 +8081,7 @@ function isCiphertext2(value) {
7991
8081
  return btoa(binary) === value && CIPHERTEXT_BYTES2.includes(binary.length);
7992
8082
  }
7993
8083
  function readForm3(body) {
7994
- if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT43)
8084
+ if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT44)
7995
8085
  return null;
7996
8086
  const entries = [];
7997
8087
  for (const part of body.split("&")) {
@@ -8010,21 +8100,21 @@ function readForm3(body) {
8010
8100
  function paystackBodyVerdict(body) {
8011
8101
  const entries = readForm3(body);
8012
8102
  if (entries === null)
8013
- return refuse44("paystack_body_unsupported");
8103
+ return refuse45("paystack_body_unsupported");
8014
8104
  const keys = entries.map(([key]) => key);
8015
8105
  if (keys.includes("subscription"))
8016
- return refuse44("paystack_subscription");
8106
+ return refuse45("paystack_subscription");
8017
8107
  if (keys.includes("remember_card") && entries.find(([key]) => key === "remember_card")[1] !== "false")
8018
- return refuse44("paystack_saved_card");
8108
+ return refuse45("paystack_saved_card");
8019
8109
  const expected = PAYSTACK_BODY_KEYS.filter((key) => !OPTIONAL.has(key) || keys.includes(key));
8020
8110
  if (keys.length !== expected.length || keys.some((key, i) => key !== expected[i]))
8021
- return refuse44("paystack_body_unsupported");
8111
+ return refuse45("paystack_body_unsupported");
8022
8112
  const fields = Object.fromEntries(entries);
8023
8113
  if (!isCiphertext2(fields.clientdata))
8024
- return refuse44("paystack_body_unsupported");
8114
+ return refuse45("paystack_body_unsupported");
8025
8115
  for (const [key, shape] of Object.entries(SHAPES4)) {
8026
- if (own18(fields, key) && !shape.test(fields[key]))
8027
- return refuse44("paystack_body_unsupported");
8116
+ if (own19(fields, key) && !shape.test(fields[key]))
8117
+ return refuse45("paystack_body_unsupported");
8028
8118
  }
8029
8119
  return Object.freeze({ verdict: "card", fields: Object.freeze(fields) });
8030
8120
  }
@@ -8051,7 +8141,7 @@ var paystack_default = /* @__PURE__ */ registerProcessor({
8051
8141
  // Not surveyed: reading a charge back takes the merchant's secret key, which Agentcard never holds.
8052
8142
  settlementReadback: "not_surveyed",
8053
8143
  exactUrl: isPaystackChargeUrl,
8054
- bodyGate: (url, body) => url !== void 0 && !isPaystackChargeUrl(url) ? refuse44("paystack_url_refused") : paystackBodyVerdict(body),
8144
+ bodyGate: (url, body) => url !== void 0 && !isPaystackChargeUrl(url) ? refuse45("paystack_url_refused") : paystackBodyVerdict(body),
8055
8145
  // No amount reader: the charge names none, so the agent's pair is the figure the cardholder approves.
8056
8146
  limitations: ["The charge names no merchant and no amount: Paystack's transaction binds both, so the cardholder approves the agent's figure for whichever Paystack merchant opened the checkout."]
8057
8147
  });
@@ -8059,7 +8149,7 @@ var paystack_default = /* @__PURE__ */ registerProcessor({
8059
8149
  var PROCESSOUT_PSP = "processout";
8060
8150
  var PROCESSOUT_OPERATION = "processout.card_request";
8061
8151
  var URL_LIMIT17 = 512;
8062
- var BODY_LIMIT44 = 4096;
8152
+ var BODY_LIMIT45 = 4096;
8063
8153
  var CARD_URL2 = /^https:\/\/api\.processout\.com\/cards\?legacyrequest=true&project_id=((?:test-)?proj_[A-Za-z0-9]{16,64})&x-Content-Type=application\/json&x-API-Version=1\.3\.0\.0&x-Authorization=Basic%20([A-Za-z0-9+/]{4,256}={0,2})$/;
8064
8154
  var PAGE_KEYS2 = /* @__PURE__ */ Object.freeze(["name", "contact", "preferred_scheme"]);
8065
8155
  var CONTACT_KEYS = /* @__PURE__ */ Object.freeze(["address1", "address2", "city", "state", "country_code", "zip"]);
@@ -8074,7 +8164,7 @@ var DEVICE_KEYS4 = /* @__PURE__ */ Object.freeze([
8074
8164
  ]);
8075
8165
  var PROCESSOUT_CARD_KEYS = /* @__PURE__ */ Object.freeze(["number", "exp_month", "exp_year", "cvc2"]);
8076
8166
  var BODY_KEYS3 = /* @__PURE__ */ new Set([...PAGE_KEYS2, "device", ...DEVICE_KEYS4, ...PROCESSOUT_CARD_KEYS]);
8077
- var NUMBER9 = /^[0-9]{12,19}$/;
8167
+ var NUMBER10 = /^[0-9]{12,19}$/;
8078
8168
  var MONTH23 = /^(?:[1-9]|1[0-2])$/;
8079
8169
  var YEAR24 = /^20[0-9]{2}$/;
8080
8170
  var CODE9 = /^[0-9]{3,4}$/;
@@ -8082,10 +8172,10 @@ var TEXT_LIMIT14 = 256;
8082
8172
  var SCHEME = /^[A-Za-z][A-Za-z0-9 _-]{0,31}$/;
8083
8173
  var LANGUAGE5 = /^[A-Za-z]{1,8}(?:-[A-Za-z0-9]{1,8}){0,4}$/;
8084
8174
  var PAN_LIKE7 = /(?:[0-9][^0-9A-Za-z]*){12,}/;
8085
- var record37 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
8086
- var own19 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
8087
- var refuse45 = (code) => Object.freeze({ verdict: "refuse", code });
8088
- var CARD44 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
8175
+ var record38 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
8176
+ var own20 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
8177
+ var refuse46 = (code) => Object.freeze({ verdict: "refuse", code });
8178
+ var CARD45 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
8089
8179
  var BASE647 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
8090
8180
  function base64Of(text10) {
8091
8181
  let out = "";
@@ -8122,12 +8212,12 @@ function processoutCardTarget(url) {
8122
8212
  function isProcessoutCardUrl(url) {
8123
8213
  return processoutCardTarget(url) !== null;
8124
8214
  }
8125
- function readBody27(body) {
8126
- if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT44)
8215
+ function readBody28(body) {
8216
+ if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT45)
8127
8217
  return null;
8128
8218
  try {
8129
8219
  const value = JSON.parse(body);
8130
- return record37(value) && JSON.stringify(value) === body ? value : null;
8220
+ return record38(value) && JSON.stringify(value) === body ? value : null;
8131
8221
  }
8132
8222
  catch {
8133
8223
  return null;
@@ -8145,31 +8235,31 @@ var DEVICE_RULES = /* @__PURE__ */ Object.freeze({
8145
8235
  });
8146
8236
  function soundDevice3(value) {
8147
8237
  const device = value.device;
8148
- if (!record37(device) || !own19(device, "request_origin") || !own19(device, "app_timezone_offset"))
8238
+ if (!record38(device) || !own20(device, "request_origin") || !own20(device, "app_timezone_offset"))
8149
8239
  return false;
8150
- return DEVICE_KEYS4.every((key) => own19(device, key) ? DEVICE_RULES[key](device[key]) && own19(value, key) && value[key] === device[key] : !own19(value, key)) && Object.keys(device).every((key) => DEVICE_KEYS4.includes(key));
8240
+ return DEVICE_KEYS4.every((key) => own20(device, key) ? DEVICE_RULES[key](device[key]) && own20(value, key) && value[key] === device[key] : !own20(value, key)) && Object.keys(device).every((key) => DEVICE_KEYS4.includes(key));
8151
8241
  }
8152
8242
  function soundPageData(value) {
8153
- if (own19(value, "name") && !pageText2(value.name))
8243
+ if (own20(value, "name") && !pageText2(value.name))
8154
8244
  return false;
8155
- if (own19(value, "preferred_scheme") && !(value.preferred_scheme === null || typeof value.preferred_scheme === "string" && SCHEME.test(value.preferred_scheme)))
8245
+ if (own20(value, "preferred_scheme") && !(value.preferred_scheme === null || typeof value.preferred_scheme === "string" && SCHEME.test(value.preferred_scheme)))
8156
8246
  return false;
8157
8247
  const contact = value.contact;
8158
- return record37(contact) && Object.keys(contact).every((key) => CONTACT_KEYS.includes(key) && pageText2(contact[key]));
8248
+ return record38(contact) && Object.keys(contact).every((key) => CONTACT_KEYS.includes(key) && pageText2(contact[key]));
8159
8249
  }
8160
8250
  function processoutBodyVerdict(body, url) {
8161
8251
  if (url !== void 0 && processoutCardTarget(url) === null)
8162
- return refuse45("processout_url_refused");
8163
- const value = readBody27(body);
8252
+ return refuse46("processout_url_refused");
8253
+ const value = readBody28(body);
8164
8254
  if (value === null || !Object.keys(value).every((key) => BODY_KEYS3.has(key)))
8165
- return refuse45("processout_body_unsupported");
8255
+ return refuse46("processout_body_unsupported");
8166
8256
  if (!PROCESSOUT_CARD_KEYS.every((key) => typeof value[key] === "string"))
8167
- return refuse45("processout_body_unsupported");
8168
- if (!NUMBER9.test(value.number) || !luhn12(value.number) || !MONTH23.test(value.exp_month) || !YEAR24.test(value.exp_year) || !CODE9.test(value.cvc2))
8169
- return refuse45("processout_body_unsupported");
8257
+ return refuse46("processout_body_unsupported");
8258
+ if (!NUMBER10.test(value.number) || !luhn12(value.number) || !MONTH23.test(value.exp_month) || !YEAR24.test(value.exp_year) || !CODE9.test(value.cvc2))
8259
+ return refuse46("processout_body_unsupported");
8170
8260
  if (!soundPageData(value) || !soundDevice3(value))
8171
- return refuse45("processout_body_unsupported");
8172
- return CARD44;
8261
+ return refuse46("processout_body_unsupported");
8262
+ return CARD45;
8173
8263
  }
8174
8264
  var processout_default = /* @__PURE__ */ registerProcessor({
8175
8265
  psp: PROCESSOUT_PSP,
@@ -8212,15 +8302,15 @@ var USAEPAY_HOSTS = /* @__PURE__ */ Object.freeze({
8212
8302
  "sandbox.usaepay.com": "sandbox"
8213
8303
  });
8214
8304
  var USAEPAY_PAYMENT_KEYS_PATH = "/api/v2/pub/payment_keys";
8215
- var BODY_LIMIT45 = 512;
8305
+ var BODY_LIMIT46 = 512;
8216
8306
  var URL_LIMIT18 = 256;
8217
8307
  var CARD_NUMBER22 = /^[0-9]{13,19}$/;
8218
8308
  var EXPIRATION2 = /^(?:0[1-9]|1[0-2])[0-9]{2}$/;
8219
8309
  var SECURITY_CODE26 = /^(?:[0-9]{3,4})?$/;
8220
- var record38 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
8221
- var own20 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
8222
- var refuse46 = (code) => Object.freeze({ verdict: "refuse", code });
8223
- var CARD45 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
8310
+ var record39 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
8311
+ var own21 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
8312
+ var refuse47 = (code) => Object.freeze({ verdict: "refuse", code });
8313
+ var CARD46 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
8224
8314
  function usaepayPaymentKeysUrl(url) {
8225
8315
  if (typeof url !== "string" || url.length > URL_LIMIT18 || url.includes("?") || url.includes("#"))
8226
8316
  return null;
@@ -8231,7 +8321,7 @@ function usaepayPaymentKeysUrl(url) {
8231
8321
  catch {
8232
8322
  return null;
8233
8323
  }
8234
- if (parsed.href !== url || parsed.protocol !== "https:" || parsed.port || parsed.username || parsed.password || !own20(USAEPAY_HOSTS, parsed.hostname) || parsed.pathname !== USAEPAY_PAYMENT_KEYS_PATH)
8324
+ if (parsed.href !== url || parsed.protocol !== "https:" || parsed.port || parsed.username || parsed.password || !own21(USAEPAY_HOSTS, parsed.hostname) || parsed.pathname !== USAEPAY_PAYMENT_KEYS_PATH)
8235
8325
  return null;
8236
8326
  return Object.freeze({ host: parsed.hostname, environment: USAEPAY_HOSTS[parsed.hostname] });
8237
8327
  }
@@ -8246,23 +8336,23 @@ function luhn13(digits3) {
8246
8336
  }
8247
8337
  return sum % 10 === 0;
8248
8338
  }
8249
- function readBody28(body) {
8250
- if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT45)
8339
+ function readBody29(body) {
8340
+ if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT46)
8251
8341
  return null;
8252
8342
  try {
8253
8343
  const value = JSON.parse(body);
8254
- return record38(value) && JSON.stringify(value) === body ? value : null;
8344
+ return record39(value) && JSON.stringify(value) === body ? value : null;
8255
8345
  }
8256
8346
  catch {
8257
8347
  return null;
8258
8348
  }
8259
8349
  }
8260
8350
  function usaepayBodyVerdict(body) {
8261
- const value = readBody28(body);
8351
+ const value = readBody29(body);
8262
8352
  const card = value === null ? null : value.creditcard;
8263
- if (value === null || Object.keys(value).join() !== "creditcard" || !record38(card) || Object.keys(card).join() !== "number,expiration,cvc" || typeof card.number !== "string" || !CARD_NUMBER22.test(card.number) || !luhn13(card.number) || typeof card.expiration !== "string" || !EXPIRATION2.test(card.expiration) || typeof card.cvc !== "string" || !SECURITY_CODE26.test(card.cvc))
8264
- return refuse46("usaepay_body_unsupported");
8265
- return CARD45;
8353
+ if (value === null || Object.keys(value).join() !== "creditcard" || !record39(card) || Object.keys(card).join() !== "number,expiration,cvc" || typeof card.number !== "string" || !CARD_NUMBER22.test(card.number) || !luhn13(card.number) || typeof card.expiration !== "string" || !EXPIRATION2.test(card.expiration) || typeof card.cvc !== "string" || !SECURITY_CODE26.test(card.cvc))
8354
+ return refuse47("usaepay_body_unsupported");
8355
+ return CARD46;
8266
8356
  }
8267
8357
  var usaepay_default = /* @__PURE__ */ registerProcessor({
8268
8358
  psp: USAEPAY_PSP,
@@ -8294,7 +8384,7 @@ var usaepay_default = /* @__PURE__ */ registerProcessor({
8294
8384
  source: "https://help.usaepay.info/developer/payjs-v2/ , https://help.usaepay.info/api/rest/"
8295
8385
  },
8296
8386
  exactUrl: isUsaepayPaymentKeysUrl,
8297
- bodyGate: (url, body) => url !== void 0 && !isUsaepayPaymentKeysUrl(url) ? refuse46("usaepay_url_refused") : usaepayBodyVerdict(body)
8387
+ bodyGate: (url, body) => url !== void 0 && !isUsaepayPaymentKeysUrl(url) ? refuse47("usaepay_url_refused") : usaepayBodyVerdict(body)
8298
8388
  // No amount reader: the request names none, so the agent's pair is the figure the cardholder approves.
8299
8389
  });
8300
8390
  // src/processors/viva_wallet.js
@@ -8330,7 +8420,7 @@ var VIVA_WALLET_BODY_KEYS = /* @__PURE__ */ Object.freeze([
8330
8420
  "merchantTrns",
8331
8421
  "captchaToken"
8332
8422
  ]);
8333
- var BODY_LIMIT46 = 16384;
8423
+ var BODY_LIMIT47 = 16384;
8334
8424
  var URL_LIMIT19 = 256;
8335
8425
  var ORDER_CODE = /^[0-9]{16}$/;
8336
8426
  var CARD_NUMBER23 = /^[0-9]{13,19}$/;
@@ -8342,10 +8432,10 @@ var MEMBER_NAME = /^[A-Za-z][A-Za-z0-9]{0,31}$/;
8342
8432
  var SHORT_ID = /^[A-Za-z0-9_-]{1,64}$/;
8343
8433
  var TEXT4 = /^[^\u0000-\u001f\u007f]{0,200}$/;
8344
8434
  var CARD_DIGITS2 = /[0-9]{12,}/;
8345
- var record39 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
8346
- var own21 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
8347
- var refuse47 = (code) => Object.freeze({ verdict: "refuse", code });
8348
- var CARD46 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
8435
+ var record40 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
8436
+ var own22 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
8437
+ var refuse48 = (code) => Object.freeze({ verdict: "refuse", code });
8438
+ var CARD47 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
8349
8439
  var inOrder9 = (value, keys) => {
8350
8440
  let at = 0;
8351
8441
  for (const name of Object.keys(value)) {
@@ -8360,7 +8450,7 @@ var inOrder9 = (value, keys) => {
8360
8450
  var cardDigits2 = (text10) => CARD_DIGITS2.test(text10.replace(/[^0-9A-Za-z]/g, ""));
8361
8451
  var plainText8 = (value) => typeof value === "string" && TEXT4.test(value) && !cardDigits2(value);
8362
8452
  var scalar = (value) => value === null || typeof value === "boolean" || Number.isSafeInteger(value) && Math.abs(value) < 1e9 || plainText8(value);
8363
- var flatRecord = (value, limit) => record39(value) && Object.keys(value).length <= limit && Object.entries(value).every(([key, item]) => MEMBER_NAME.test(key) && scalar(item));
8453
+ var flatRecord = (value, limit) => record40(value) && Object.keys(value).length <= limit && Object.entries(value).every(([key, item]) => MEMBER_NAME.test(key) && scalar(item));
8364
8454
  function vivaWalletChargeTokensUrl(url) {
8365
8455
  if (typeof url !== "string" || url.length > URL_LIMIT19 || url.includes("?") || url.includes("#"))
8366
8456
  return null;
@@ -8371,7 +8461,7 @@ function vivaWalletChargeTokensUrl(url) {
8371
8461
  catch {
8372
8462
  return null;
8373
8463
  }
8374
- if (parsed.href !== url || parsed.protocol !== "https:" || parsed.port || parsed.username || parsed.password || !own21(VIVA_WALLET_HOSTS, parsed.hostname) || parsed.pathname !== VIVA_WALLET_CHARGE_TOKENS_PATH)
8464
+ if (parsed.href !== url || parsed.protocol !== "https:" || parsed.port || parsed.username || parsed.password || !own22(VIVA_WALLET_HOSTS, parsed.hostname) || parsed.pathname !== VIVA_WALLET_CHARGE_TOKENS_PATH)
8375
8465
  return null;
8376
8466
  return Object.freeze({ host: parsed.hostname, environment: VIVA_WALLET_HOSTS[parsed.hostname] });
8377
8467
  }
@@ -8389,12 +8479,12 @@ function luhn14(digits3) {
8389
8479
  function vivaWalletMaskedNumber(number) {
8390
8480
  return `${number.slice(0, 6)}${"X".repeat(Math.max(0, number.length - 10))}${number.slice(-4)}`;
8391
8481
  }
8392
- function readBody29(body) {
8393
- if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT46)
8482
+ function readBody30(body) {
8483
+ if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT47)
8394
8484
  return null;
8395
8485
  try {
8396
8486
  const value = JSON.parse(body);
8397
- return record39(value) && JSON.stringify(value) === body ? value : null;
8487
+ return record40(value) && JSON.stringify(value) === body ? value : null;
8398
8488
  }
8399
8489
  catch {
8400
8490
  return null;
@@ -8406,26 +8496,26 @@ function currencyNumber(value) {
8406
8496
  return typeof value === "string" && /^[0-9]{3}$/.test(value) ? Number(value) : null;
8407
8497
  }
8408
8498
  function vivaWalletBodyVerdict(body) {
8409
- const value = readBody29(body);
8499
+ const value = readBody30(body);
8410
8500
  if (value === null || !Object.keys(value).every((key) => VIVA_WALLET_BODY_KEYS.includes(key))) {
8411
- return value !== null && (own21(value, "creditCardId") || own21(value, "token")) ? refuse47("viva_wallet_stored_card") : refuse47("viva_wallet_body_unsupported");
8501
+ return value !== null && (own22(value, "creditCardId") || own22(value, "token")) ? refuse48("viva_wallet_stored_card") : refuse48("viva_wallet_body_unsupported");
8412
8502
  }
8413
8503
  if (value.rememberCard !== false)
8414
- return refuse47(value.rememberCard === true ? "viva_wallet_keep_on_file" : "viva_wallet_body_unsupported");
8504
+ return refuse48(value.rememberCard === true ? "viva_wallet_keep_on_file" : "viva_wallet_body_unsupported");
8415
8505
  if (value.dccAccepted === true)
8416
- return refuse47("viva_wallet_currency_conversion");
8417
- if (own21(value, "dccAccepted") && value.dccAccepted !== false)
8418
- return refuse47("viva_wallet_body_unsupported");
8419
- if (own21(value, "scaRequestedTransactionId"))
8420
- return refuse47("viva_wallet_retry_refused");
8506
+ return refuse48("viva_wallet_currency_conversion");
8507
+ if (own22(value, "dccAccepted") && value.dccAccepted !== false)
8508
+ return refuse48("viva_wallet_body_unsupported");
8509
+ if (own22(value, "scaRequestedTransactionId"))
8510
+ return refuse48("viva_wallet_retry_refused");
8421
8511
  if (!(value.installments === 0 || value.installments === 1)) {
8422
- return refuse47(Number.isSafeInteger(value.installments) && value.installments > 1 ? "viva_wallet_installments" : "viva_wallet_body_unsupported");
8512
+ return refuse48(Number.isSafeInteger(value.installments) && value.installments > 1 ? "viva_wallet_installments" : "viva_wallet_body_unsupported");
8423
8513
  }
8424
- if (!inOrder9(value, VIVA_WALLET_BODY_KEYS) || ["offerCodes", "loyaltySupported", "redeemedAmount", "retrievalReferenceNumber", "merchantTrns"].some((key) => own21(value, key)))
8425
- return refuse47("viva_wallet_body_unsupported");
8514
+ if (!inOrder9(value, VIVA_WALLET_BODY_KEYS) || ["offerCodes", "loyaltySupported", "redeemedAmount", "retrievalReferenceNumber", "merchantTrns"].some((key) => own22(value, key)))
8515
+ return refuse48("viva_wallet_body_unsupported");
8426
8516
  const number = value.number;
8427
- const sound = typeof value.orderCode === "string" && ORDER_CODE.test(value.orderCode) && Number.isSafeInteger(value.amount) && value.amount > 0 && currencyNumber(value.currencyCode) !== null && plainText8(value.holderName) && value.holderName.trim() !== "" && plainText8(value.holderMail) && (value.cvc === null || typeof value.cvc === "string" && SECURITY_CODE27.test(value.cvc)) && typeof number === "string" && CARD_NUMBER23.test(number) && luhn14(number) && typeof value.expirationMonth === "string" && MONTH24.test(value.expirationMonth) && typeof value.expirationYear === "string" && YEAR25.test(value.expirationYear) && flatRecord(value.customer, 12) && (!own21(value, "friendlyName") || plainText8(value.friendlyName)) && value.maskedNumber === vivaWalletMaskedNumber(number) && (!own21(value, "bankId") || typeof value.bankId === "string" && SHORT_ID.test(value.bankId) || Number.isSafeInteger(value.bankId) && value.bankId >= 0) && (!own21(value, "selectedBrand") || value.selectedBrand === null || flatRecord(value.selectedBrand, 16)) && (!own21(value, "cardholderBrandSelection") || typeof value.cardholderBrandSelection === "boolean") && (!own21(value, "dccOptions") || flatRecord(value.dccOptions, 16)) && (!own21(value, "captchaToken") || typeof value.captchaToken === "string" && CAPTCHA_TOKEN.test(value.captchaToken));
8428
- return sound ? CARD46 : refuse47("viva_wallet_body_unsupported");
8517
+ const sound = typeof value.orderCode === "string" && ORDER_CODE.test(value.orderCode) && Number.isSafeInteger(value.amount) && value.amount > 0 && currencyNumber(value.currencyCode) !== null && plainText8(value.holderName) && value.holderName.trim() !== "" && plainText8(value.holderMail) && (value.cvc === null || typeof value.cvc === "string" && SECURITY_CODE27.test(value.cvc)) && typeof number === "string" && CARD_NUMBER23.test(number) && luhn14(number) && typeof value.expirationMonth === "string" && MONTH24.test(value.expirationMonth) && typeof value.expirationYear === "string" && YEAR25.test(value.expirationYear) && flatRecord(value.customer, 12) && (!own22(value, "friendlyName") || plainText8(value.friendlyName)) && value.maskedNumber === vivaWalletMaskedNumber(number) && (!own22(value, "bankId") || typeof value.bankId === "string" && SHORT_ID.test(value.bankId) || Number.isSafeInteger(value.bankId) && value.bankId >= 0) && (!own22(value, "selectedBrand") || value.selectedBrand === null || flatRecord(value.selectedBrand, 16)) && (!own22(value, "cardholderBrandSelection") || typeof value.cardholderBrandSelection === "boolean") && (!own22(value, "dccOptions") || flatRecord(value.dccOptions, 16)) && (!own22(value, "captchaToken") || typeof value.captchaToken === "string" && CAPTCHA_TOKEN.test(value.captchaToken));
8518
+ return sound ? CARD47 : refuse48("viva_wallet_body_unsupported");
8429
8519
  }
8430
8520
  var VIVA_WALLET_CURRENCIES = /* @__PURE__ */ Object.freeze({
8431
8521
  978: "eur",
@@ -8488,9 +8578,9 @@ var viva_wallet_default = /* @__PURE__ */ registerProcessor({
8488
8578
  refusedOperations: [VIVA_WALLET_OPERATION],
8489
8579
  settlementReadback: "not_surveyed",
8490
8580
  exactUrl: isVivaWalletChargeTokensUrl,
8491
- bodyGate: (url, body) => url !== void 0 && !isVivaWalletChargeTokensUrl(url) ? refuse47("viva_wallet_url_refused") : vivaWalletBodyVerdict(body),
8581
+ bodyGate: (url, body) => url !== void 0 && !isVivaWalletChargeTokensUrl(url) ? refuse48("viva_wallet_url_refused") : vivaWalletBodyVerdict(body),
8492
8582
  // The body names the order's amount in cents and its numeric currency, which the page's card-free charge repeats.
8493
- amount: (template) => record39(template) && isVivaWalletChargeTokensUrl(template.url) ? vivaWalletAmount(template.body) : null
8583
+ amount: (template) => record40(template) && isVivaWalletChargeTokensUrl(template.url) ? vivaWalletAmount(template.body) : null
8494
8584
  });
8495
8585
  // src/processors/vtex_payments.js
8496
8586
  var VTEX_PAYMENTS_PSP = "vtex_payments";
@@ -8540,7 +8630,7 @@ var VTEX_PAYMENTS_MERCHANT_PINS = /* @__PURE__ */ Object.freeze([
8540
8630
  Object.freeze({ account: "alssports", origin: "https://www.als.com", merchant: "Al's Sporting Goods", currency: "USD" }),
8541
8631
  Object.freeze({ account: "roadrunnersports", origin: "https://www.roadrunnersports.com", merchant: "Road Runner Sports", currency: "USD" })
8542
8632
  ]);
8543
- var BODY_LIMIT47 = 16384;
8633
+ var BODY_LIMIT48 = 16384;
8544
8634
  var ACCOUNT_HOST = /^([a-z0-9]{1,63})\.vtexvault\.com$/;
8545
8635
  var PATH = /^\/api\/payments\/transactions\/([0-9A-Fa-f]{32})\/payments$/;
8546
8636
  var ORDER_GROUP = /^[0-9]{6,24}$/;
@@ -8548,7 +8638,7 @@ var BASE648 = /^[A-Za-z0-9+/]{4,1020}={0,2}$/;
8548
8638
  var CARD_NUMBER24 = /^[0-9]{12,19}$/;
8549
8639
  var SECURITY_CODE28 = /^[0-9]{3,4}$/;
8550
8640
  var DUE_DATE = /^(?:0[1-9]|1[0-2])\/[0-9]{2}$/;
8551
- var CURRENCY6 = /^[A-Z]{3}$/;
8641
+ var CURRENCY7 = /^[A-Z]{3}$/;
8552
8642
  var TRANSACTION_ID = /^[0-9A-Fa-f]{32}$/;
8553
8643
  var MERCHANT_NAME = /^[A-Za-z0-9_.-]{1,64}$/;
8554
8644
  var SHORT_ID2 = /^[A-Za-z0-9_-]{1,64}$/;
@@ -8556,10 +8646,10 @@ var FINGERPRINT4 = /^[A-Za-z0-9_.:=+/-]{1,256}$/;
8556
8646
  var TEXT5 = /^[^\u0000-\u001f\u007f]{1,200}$/;
8557
8647
  var CARD_DIGITS3 = /[0-9]{12,}/;
8558
8648
  var DEVICE_INFO_KEYS = Object.freeze(["sw", "sh", "cd", "tz", "lang", "java", "sourceApplication"]);
8559
- var record40 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
8560
- var own22 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
8561
- var refuse48 = (code) => Object.freeze({ verdict: "refuse", code });
8562
- var CARD47 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
8649
+ var record41 = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
8650
+ var own23 = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
8651
+ var refuse49 = (code) => Object.freeze({ verdict: "refuse", code });
8652
+ var CARD48 = /* @__PURE__ */ Object.freeze({ verdict: "card" });
8563
8653
  var inOrder10 = (value, keys) => {
8564
8654
  let at = 0;
8565
8655
  for (const name of Object.keys(value)) {
@@ -8609,18 +8699,18 @@ function deviceInfoSound(text10) {
8609
8699
  catch {
8610
8700
  return false;
8611
8701
  }
8612
- if (!record40(info) || !Object.keys(info).every((key) => DEVICE_INFO_KEYS.includes(key)))
8702
+ if (!record41(info) || !Object.keys(info).every((key) => DEVICE_INFO_KEYS.includes(key)))
8613
8703
  return false;
8614
8704
  for (const key of ["sw", "sh", "cd"])
8615
- if (own22(info, key) && !(count(info[key]) && info[key] <= 1e5))
8705
+ if (own23(info, key) && !(count(info[key]) && info[key] <= 1e5))
8616
8706
  return false;
8617
- if (own22(info, "tz") && !(Number.isSafeInteger(info.tz) && Math.abs(info.tz) <= 1440))
8707
+ if (own23(info, "tz") && !(Number.isSafeInteger(info.tz) && Math.abs(info.tz) <= 1440))
8618
8708
  return false;
8619
- if (own22(info, "lang") && !(typeof info.lang === "string" && /^[A-Za-z]{0,8}$/.test(info.lang)))
8709
+ if (own23(info, "lang") && !(typeof info.lang === "string" && /^[A-Za-z]{0,8}$/.test(info.lang)))
8620
8710
  return false;
8621
- if (own22(info, "java") && typeof info.java !== "boolean")
8711
+ if (own23(info, "java") && typeof info.java !== "boolean")
8622
8712
  return false;
8623
- return !own22(info, "sourceApplication") || typeof info.sourceApplication === "string" && /^[A-Za-z0-9_.-]{1,32}$/.test(info.sourceApplication);
8713
+ return !own23(info, "sourceApplication") || typeof info.sourceApplication === "string" && /^[A-Za-z0-9_.-]{1,32}$/.test(info.sourceApplication);
8624
8714
  }
8625
8715
  function vtexPaymentsCardTarget(url) {
8626
8716
  if (typeof url !== "string" || url.length > 8192)
@@ -8666,8 +8756,8 @@ function isVtexPaymentsCardUrl(url) {
8666
8756
  const target = vtexPaymentsCardTarget(url);
8667
8757
  return target !== null && !target.fallback;
8668
8758
  }
8669
- function readBody30(body) {
8670
- if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT47)
8759
+ function readBody31(body) {
8760
+ if (typeof body !== "string" || body === "" || body.length > BODY_LIMIT48)
8671
8761
  return null;
8672
8762
  let value;
8673
8763
  try {
@@ -8681,13 +8771,13 @@ function readBody30(body) {
8681
8771
  return value;
8682
8772
  }
8683
8773
  function cardLine(line) {
8684
- if (!record40(line))
8774
+ if (!record41(line))
8685
8775
  return false;
8686
- const fields = record40(line.fields) ? line.fields : {};
8687
- return line.groupName === "creditCardPaymentGroup" || line.groupName === "debitCardPaymentGroup" || own22(line, "accountId") || own22(fields, "accountId") || own22(fields, "cardNumber") || own22(fields, "validationCode") || own22(fields, "dueDate");
8776
+ const fields = record41(line.fields) ? line.fields : {};
8777
+ return line.groupName === "creditCardPaymentGroup" || line.groupName === "debitCardPaymentGroup" || own23(line, "accountId") || own23(fields, "accountId") || own23(fields, "cardNumber") || own23(fields, "validationCode") || own23(fields, "dueDate");
8688
8778
  }
8689
8779
  function addressSound(address2) {
8690
- if (!record40(address2) || !inOrder10(address2, VTEX_PAYMENTS_ADDRESS_KEYS))
8780
+ if (!record41(address2) || !inOrder10(address2, VTEX_PAYMENTS_ADDRESS_KEYS))
8691
8781
  return false;
8692
8782
  for (const [key, value] of Object.entries(address2)) {
8693
8783
  if (key === "addressType") {
@@ -8708,7 +8798,7 @@ function addressSound(address2) {
8708
8798
  return true;
8709
8799
  }
8710
8800
  function fieldsSound(fields) {
8711
- if (!record40(fields) || !inOrder10(fields, VTEX_PAYMENTS_FIELD_KEYS) || own22(fields, "metadata"))
8801
+ if (!record41(fields) || !inOrder10(fields, VTEX_PAYMENTS_FIELD_KEYS) || own23(fields, "metadata"))
8712
8802
  return false;
8713
8803
  if (!(typeof fields.cardNumber === "string" && CARD_NUMBER24.test(fields.cardNumber)))
8714
8804
  return false;
@@ -8718,38 +8808,38 @@ function fieldsSound(fields) {
8718
8808
  return false;
8719
8809
  if (!plainText9(fields.holderName))
8720
8810
  return false;
8721
- if (own22(fields, "document") && !(fields.document === "" || plainText9(fields.document) && fields.document.length <= 32))
8811
+ if (own23(fields, "document") && !(fields.document === "" || plainText9(fields.document) && fields.document.length <= 32))
8722
8812
  return false;
8723
- if (own22(fields, "address") && !addressSound(fields.address))
8813
+ if (own23(fields, "address") && !addressSound(fields.address))
8724
8814
  return false;
8725
- if (own22(fields, "deviceFingerprint") && !(typeof fields.deviceFingerprint === "string" && FINGERPRINT4.test(fields.deviceFingerprint)))
8815
+ if (own23(fields, "deviceFingerprint") && !(typeof fields.deviceFingerprint === "string" && FINGERPRINT4.test(fields.deviceFingerprint)))
8726
8816
  return false;
8727
- return !own22(fields, "addressId") || typeof fields.addressId === "string" && SHORT_ID2.test(fields.addressId);
8817
+ return !own23(fields, "addressId") || typeof fields.addressId === "string" && SHORT_ID2.test(fields.addressId);
8728
8818
  }
8729
8819
  function vtexPaymentsBodyVerdict(body, target) {
8730
- const lines = readBody30(body);
8731
- if (lines === null || lines.length === 0 || !lines.every(record40))
8732
- return refuse48("vtex_payments_body_unsupported");
8820
+ const lines = readBody31(body);
8821
+ if (lines === null || lines.length === 0 || !lines.every(record41))
8822
+ return refuse49("vtex_payments_body_unsupported");
8733
8823
  const cards = lines.filter(cardLine);
8734
- if (cards.some((line2) => own22(line2, "accountId") || own22(line2.fields ?? {}, "accountId")))
8735
- return refuse48("vtex_payments_saved_card");
8824
+ if (cards.some((line2) => own23(line2, "accountId") || own23(line2.fields ?? {}, "accountId")))
8825
+ return refuse49("vtex_payments_saved_card");
8736
8826
  if (cards.length === 0)
8737
- return refuse48("vtex_payments_body_unsupported");
8738
- if (lines.length !== 1 || own22(lines[0], "id"))
8739
- return refuse48("vtex_payments_split_payment");
8827
+ return refuse49("vtex_payments_body_unsupported");
8828
+ if (lines.length !== 1 || own23(lines[0], "id"))
8829
+ return refuse49("vtex_payments_split_payment");
8740
8830
  const line = lines[0];
8741
8831
  if (!inOrder10(line, VTEX_PAYMENTS_LINE_KEYS) || line.groupName !== "creditCardPaymentGroup")
8742
- return refuse48("vtex_payments_body_unsupported");
8743
- if (!(typeof line.currencyCode === "string" && CURRENCY6.test(line.currencyCode)) || !own22(VTEX_PAYMENTS_NETWORKS, line.paymentSystem) || !Number.isSafeInteger(line.paymentSystem) || !(count(line.value) && line.value > 0))
8744
- return refuse48("vtex_payments_body_unsupported");
8745
- if (line.installments !== 1 || line.referenceValue !== line.value || own22(line, "installmentsInterestRate") && line.installmentsInterestRate !== 0 || own22(line, "installmentsValue") && line.installmentsValue !== line.value)
8746
- return refuse48("vtex_payments_installments");
8832
+ return refuse49("vtex_payments_body_unsupported");
8833
+ if (!(typeof line.currencyCode === "string" && CURRENCY7.test(line.currencyCode)) || !own23(VTEX_PAYMENTS_NETWORKS, line.paymentSystem) || !Number.isSafeInteger(line.paymentSystem) || !(count(line.value) && line.value > 0))
8834
+ return refuse49("vtex_payments_body_unsupported");
8835
+ if (line.installments !== 1 || line.referenceValue !== line.value || own23(line, "installmentsInterestRate") && line.installmentsInterestRate !== 0 || own23(line, "installmentsValue") && line.installmentsValue !== line.value)
8836
+ return refuse49("vtex_payments_installments");
8747
8837
  const transaction = line.transaction;
8748
- if (!record40(transaction) || Object.keys(transaction).join() !== "id,merchantName" || !(typeof transaction.id === "string" && TRANSACTION_ID.test(transaction.id)) || !(typeof transaction.merchantName === "string" && MERCHANT_NAME.test(transaction.merchantName)))
8749
- return refuse48("vtex_payments_body_unsupported");
8838
+ if (!record41(transaction) || Object.keys(transaction).join() !== "id,merchantName" || !(typeof transaction.id === "string" && TRANSACTION_ID.test(transaction.id)) || !(typeof transaction.merchantName === "string" && MERCHANT_NAME.test(transaction.merchantName)))
8839
+ return refuse49("vtex_payments_body_unsupported");
8750
8840
  if (target && transaction.id.toUpperCase() !== target.transactionId.toUpperCase())
8751
- return refuse48("vtex_payments_split_payment");
8752
- return fieldsSound(line.fields) ? CARD47 : refuse48("vtex_payments_body_unsupported");
8841
+ return refuse49("vtex_payments_split_payment");
8842
+ return fieldsSound(line.fields) ? CARD48 : refuse49("vtex_payments_body_unsupported");
8753
8843
  }
8754
8844
  function vtexPaymentsAmount(body) {
8755
8845
  if (vtexPaymentsBodyVerdict(body).verdict !== "card")
@@ -8794,14 +8884,15 @@ var vtex_payments_default = /* @__PURE__ */ registerProcessor({
8794
8884
  return vtexPaymentsBodyVerdict(body);
8795
8885
  const target = vtexPaymentsCardTarget(url);
8796
8886
  if (target === null)
8797
- return refuse48("vtex_payments_url_refused");
8798
- return target.fallback ? refuse48("vtex_payments_fallback_refused") : vtexPaymentsBodyVerdict(body, target);
8887
+ return refuse49("vtex_payments_url_refused");
8888
+ return target.fallback ? refuse49("vtex_payments_fallback_refused") : vtexPaymentsBodyVerdict(body, target);
8799
8889
  },
8800
- amount: (template) => record40(template) && isVtexPaymentsCardUrl(template.url) ? vtexPaymentsAmount(template.body) : null
8890
+ amount: (template) => record41(template) && isVtexPaymentsCardUrl(template.url) ? vtexPaymentsAmount(template.body) : null
8801
8891
  });
8802
8892
  // src/processors/index.generated.js
8803
8893
  var REGISTERED_MODULES = Object.freeze({
8804
8894
  aurus: aurus_default,
8895
+ bigcommerce: bigcommerce_default,
8805
8896
  bluesnap: bluesnap_default,
8806
8897
  cardlink_vpos: cardlink_vpos_default,
8807
8898
  eghl: eghl_default,
@@ -9096,12 +9187,12 @@ function splitCardLeg(recognizer, body) {
9096
9187
  const absorb = list(split.absorb);
9097
9188
  const pass = list(split.pass);
9098
9189
  const sibling = list(split.siblingKeys);
9099
- const own23 = keys.filter((key) => !sibling.includes(key));
9100
- if (own23.length === 0)
9190
+ const own24 = keys.filter((key) => !sibling.includes(key));
9191
+ if (own24.length === 0)
9101
9192
  return null;
9102
- if (own23.every((key) => absorb.includes(key)))
9193
+ if (own24.every((key) => absorb.includes(key)))
9103
9194
  return "absorb";
9104
- if (own23.every((key) => pass.includes(key)))
9195
+ if (own24.every((key) => pass.includes(key)))
9105
9196
  return "pass";
9106
9197
  return null;
9107
9198
  }