@agent-cards/sdk 0.23.3 → 0.23.5

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: 6209fa4a22c349d03eed24ea4ff9e626334c5975ec515a4b7f6a83592343274f
3
+ // artifact-sha256: a1b7d280655947da8bb1d465d17c3436504ee350dd0be7f345d524eea0f2f374
4
4
  // src/adyen-jwe.js
5
5
  var ADYEN_JWE_HEADER = { alg: "RSA-OAEP-256", enc: "A256GCM", version: "1" };
6
6
  var BASE64URL = /^[A-Za-z0-9_-]+$/;
@@ -277,6 +277,118 @@ function merchantBodyAmountPaths(profile) {
277
277
  return isPlainObject(amount) ? [amount.value, amount.currency].filter(Array.isArray) : [];
278
278
  }
279
279
  // src/merchant-profiles.js
280
+ var DSG_PAYGATE_V2 = /* @__PURE__ */ deepFreeze({
281
+ method: "POST",
282
+ path: "/prod/api/paygate/v2/authorization",
283
+ query: {},
284
+ // The page sends true for every checkout its translator read, the only checkouts
285
+ // the amount source below maps; a legacy checkout is not this card request.
286
+ requires: [{ path: ["isModernOrder"], equals: true }],
287
+ holder: ["tenders", "encryptedCardTenders", 0],
288
+ fields: {
289
+ encryptedCardNumber: "cardNumber",
290
+ encryptedExpiryMonth: "expirationMonth",
291
+ encryptedExpiryYear: "expirationYear",
292
+ encryptedSecurityCode: "cvv"
293
+ },
294
+ // cardType and vinBalue describe the dummy the agent typed: the facts below
295
+ // write the approved card's instead, so nothing is removed.
296
+ remove: [],
297
+ refuse: [
298
+ { path: ["tenders", "encryptedCardTenders", 0, "saveForLater"], when: "true" },
299
+ // A saved card, or a second card tender the Vault never encrypted.
300
+ { path: ["tenders", "savedCardTender"], when: "present" },
301
+ { path: ["tenders", "encryptedCardTenders", 1], when: "present" },
302
+ // A gift card pays part of the order, so the card pays less than the total.
303
+ { path: ["tenders", "giftCardTenders"], when: "present" }
304
+ ],
305
+ amount: null,
306
+ // Read Sep 25, 2026 (research amount_source/dickssportinggoods). Every checkout call
307
+ // on the checkout page answers the whole checkout, camelCase on the wire: the page
308
+ // load's PATCH (or the create), then every address, shipping, promotion, gift card,
309
+ // tip and ScoreCard change. pricing.totalRemaining is what the card pays, a string
310
+ // with exactly two decimals ("123.45"; the page itself drops the dot for minor
311
+ // units). transactionReference is the checkout key, in the body and the URL. After
312
+ // payment the order submit and the confirmation read return the placed checkout.
313
+ amountSource: {
314
+ id: "dsg_checkout_pricing",
315
+ origin: "checkout",
316
+ format: "json",
317
+ responses: [
318
+ { method: "PATCH", path: "/api/v1/checkouts/:checkoutKey", query: {} },
319
+ { method: "POST", path: "/api/v1/checkouts", query: {} },
320
+ { method: "POST", path: "/api/v1/checkouts/:checkoutKey/addresses", queries: [{}, { type: "billing" }, { type: "shipping" }] },
321
+ { method: "PUT", path: "/api/v1/checkouts/:checkoutKey/shipping/selected/groups/:groupNumber/mode", query: {} },
322
+ { method: "PUT", path: "/api/v2/checkouts/:checkoutKey/promotion/cart", query: {} },
323
+ { method: "DELETE", path: "/api/v2/checkouts/:checkoutKey/promotion/cart", query: {} },
324
+ { method: "POST", path: "/api/v1/checkouts/:checkoutKey/gift-cards", query: {} },
325
+ { method: "DELETE", path: "/api/v1/checkouts/:checkoutKey/gift-cards/:giftCardIndex", query: {} },
326
+ { method: "PUT", path: "/api/v1/checkouts/:checkoutKey/tip", query: {} },
327
+ { method: "PUT", path: "/api/v1/checkouts/:checkoutKey/scorecard", query: {} },
328
+ { method: "DELETE", path: "/api/v1/checkouts/:checkoutKey/scorecard", query: {} },
329
+ { method: "DELETE", path: "/api/v1/checkouts/:checkoutKey/v2/gifts", query: {} }
330
+ ],
331
+ total: { path: ["pricing", "totalRemaining"], format: "decimal2" },
332
+ unit: "major",
333
+ currency: "USD",
334
+ currencyPath: ["pricing", "currency"],
335
+ bind: [
336
+ { source: ["checkoutKey"], card: ["transactionReference"] },
337
+ { placeholder: "checkoutKey", card: ["transactionReference"] }
338
+ ],
339
+ // The order total and the card's share are the same text. Anything that lowers the
340
+ // share below the total (a gift card, ScoreCard rewards) or lands in only one of them
341
+ // (a tip, a donation) is refused until a HAR shows which one the charge follows, so
342
+ // the approved amount and the placed checkout's total read after payment agree.
343
+ requires: [{ path: ["pricing", "total"], equalsPath: ["pricing", "totalRemaining"] }],
344
+ refuse: [
345
+ // A placed checkout is not the one being paid.
346
+ { path: ["orderPlacedTime"], when: "true" },
347
+ // Gift cards and a checkout with no address yet (tax not estimated) wait for a HAR.
348
+ { path: ["payment", "giftCards"], when: "nonEmpty" },
349
+ { path: ["addresses"], when: "empty" }
350
+ ],
351
+ maxAgeMs: 9e5,
352
+ afterPayment: {
353
+ origin: "checkout",
354
+ format: "json",
355
+ responses: [
356
+ { method: "POST", path: "/api/v1/checkouts/:checkoutKey", query: {} },
357
+ { method: "GET", path: "/api/v1/checkouts/submitted/:checkoutKey", query: {} }
358
+ ],
359
+ // The order total, which the requires rule above held equal to the card's share
360
+ // before payment. totalRemaining is not read here: after placement it can drop to
361
+ // what is still unpaid, which would hide a higher charge.
362
+ total: { path: ["pricing", "total"], format: "decimal2" },
363
+ unit: "major",
364
+ currency: "USD",
365
+ currencyPath: ["pricing", "currency"],
366
+ bind: [
367
+ { source: ["checkoutKey"], card: ["transactionReference"] },
368
+ { placeholder: "checkoutKey", card: ["transactionReference"] }
369
+ ],
370
+ refuse: [{ path: ["orderPlacedTime"], when: "unset" }]
371
+ }
372
+ },
373
+ facts: [
374
+ // adyen-web's brand codes, the ones the page's supported list names; Dick's own
375
+ // private-label (plcc, comc) cards have no Agentcard brand and are refused.
376
+ {
377
+ path: ["tenders", "encryptedCardTenders", 0, "cardType"],
378
+ fact: "brand",
379
+ map: { visa: "visa", mastercard: "mc", amex: "amex", discover: "discover", diners: "diners", jcb: "jcb" }
380
+ },
381
+ { path: ["tenders", "encryptedCardTenders", 0, "vinBalue"], fact: "bin6" }
382
+ ],
383
+ adyen: {
384
+ environment: "live",
385
+ clientKey: "live_YJLFKT47JJG2RI7QIYX6HTKKDEDOEGOH",
386
+ publicKeySha256: "da33611149dff3ab715be8671c0550bb8aec6112983b2473db9ee7afb829c110"
387
+ }
388
+ });
389
+ function dsgPaygateProfile(own) {
390
+ return { ...own, ...DSG_PAYGATE_V2 };
391
+ }
280
392
  var MERCHANT_HOSTED_PROFILES = /* @__PURE__ */ deepFreeze([
281
393
  {
282
394
  // Read Sep 23, 2026. assets.dunelm.com checkout-page bundle: submitPayment
@@ -372,10 +484,13 @@ var MERCHANT_HOSTED_PROFILES = /* @__PURE__ */ deepFreeze([
372
484
  // client key from the three securedFields iframes on
373
485
  // checkoutshopper-live-us.adyen.com (adyen-web 6.x). The request body itself
374
486
  // was not captured: the guest email gate stopped the run before Pay. Public
375
- // key read from checkoutshopper-live-us.adyen.com on 2026-09-25 (UTC).
487
+ // key read from checkoutshopper-live-us.adyen.com on 2026-09-25 (UTC). Enabled
488
+ // Oct 7, 2026 under D1 (amountSource, above): live checks on Sep 30 and Oct 6
489
+ // matched its key pin, its card request as the page's script builds it, and its
490
+ // checkout total.
376
491
  id: "cinemark_initiate",
377
492
  merchant: "Cinemark",
378
- status: "observe",
493
+ status: "enabled",
379
494
  origins: [{ checkout: "https://www.cinemark.com", endpoint: "https://www.cinemark.com" }],
380
495
  method: "POST",
381
496
  path: "/api/adyen/initiatePayment",
@@ -448,137 +563,29 @@ var MERCHANT_HOSTED_PROFILES = /* @__PURE__ */ deepFreeze([
448
563
  publicKeySha256: "9dd5ef549c7454d60ca970ff76c8f4cac36d79f2961e59eca9116791e86cbcc5"
449
564
  }
450
565
  },
451
- {
452
- // Read Sep 23, 2026. payments.dickssportinggoods.com/library/dppjs/index-v2.js
453
- // (adyen-web 6.39.0): Dd() builds tenders.encryptedCardTenders[0] from the Card
454
- // component's four JWEs as cardNumber, expirationMonth, expirationYear and cvv,
455
- // beside cardType (adyen-web's first detected brand), saveForLater (the save-card
456
- // box) and vinBalue (the six digits onBinValue reports). The page posts it with
457
- // transactionReference, customer.device and any giftCardTenders to
458
- // <payments host>/prod/api/paygate/v2/authorization, the host picked from the
459
- // page's own (Dick's, Golf Galaxy, Public Lands, Going Going Gone). The same slot
460
- // carries Afterpay, CashApp and Affirm tenders with literal strings where the JWEs
461
- // go, and a saved card goes to tenders.savedCardTender instead. The body names no
462
- // amount: the paygate charges the cart it holds for transactionReference.
463
- // mountCCForm names the client key and environment 'live'. Public key read from
464
- // checkoutshopper-live.adyen.com on 2026-09-25 (UTC).
566
+ /* @__PURE__ */ dsgPaygateProfile({
567
+ // Dick's own storefront, the one live checks read on Sep 30 and Oct 6, 2026: its key
568
+ // pin, its card request as the page's code builds it, its card facts and its checkout
569
+ // pricing matched DSG_PAYGATE_V2. Enabled Oct 7, 2026 under D1 (amountSource, above).
465
570
  id: "dsg_paygate_v2",
466
571
  merchant: "Dick's Sporting Goods",
572
+ status: "enabled",
573
+ origins: [
574
+ { checkout: "https://www.dickssportinggoods.com", endpoint: "https://payments.dickssportinggoods.com" }
575
+ ]
576
+ }),
577
+ /* @__PURE__ */ dsgPaygateProfile({
578
+ // The same paygate on the three other storefronts its page names. No live check has
579
+ // read them, so their card requests stay paused and aborted in observe.
580
+ id: "dsg_other_stores_paygate_v2",
581
+ merchant: "Golf Galaxy, Public Lands and Going Going Gone",
467
582
  status: "observe",
468
583
  origins: [
469
- { checkout: "https://www.dickssportinggoods.com", endpoint: "https://payments.dickssportinggoods.com" },
470
584
  { checkout: "https://www.golfgalaxy.com", endpoint: "https://payments.golfgalaxy.com" },
471
585
  { checkout: "https://www.publiclands.com", endpoint: "https://payments.publiclands.com" },
472
586
  { checkout: "https://www.goinggoinggone.com", endpoint: "https://payments.goinggoinggone.com" }
473
- ],
474
- method: "POST",
475
- path: "/prod/api/paygate/v2/authorization",
476
- query: {},
477
- // The page sends true for every checkout its translator read, the only checkouts
478
- // the amount source below maps; a legacy checkout is not this card request.
479
- requires: [{ path: ["isModernOrder"], equals: true }],
480
- holder: ["tenders", "encryptedCardTenders", 0],
481
- fields: {
482
- encryptedCardNumber: "cardNumber",
483
- encryptedExpiryMonth: "expirationMonth",
484
- encryptedExpiryYear: "expirationYear",
485
- encryptedSecurityCode: "cvv"
486
- },
487
- // cardType and vinBalue describe the dummy the agent typed: the facts below
488
- // write the approved card's instead, so nothing is removed.
489
- remove: [],
490
- refuse: [
491
- { path: ["tenders", "encryptedCardTenders", 0, "saveForLater"], when: "true" },
492
- // A saved card, or a second card tender the Vault never encrypted.
493
- { path: ["tenders", "savedCardTender"], when: "present" },
494
- { path: ["tenders", "encryptedCardTenders", 1], when: "present" },
495
- // A gift card pays part of the order, so the card pays less than the total.
496
- { path: ["tenders", "giftCardTenders"], when: "present" }
497
- ],
498
- amount: null,
499
- // Read Sep 25, 2026 (research amount_source/dickssportinggoods). Every checkout call
500
- // on the checkout page answers the whole checkout, camelCase on the wire: the page
501
- // load's PATCH (or the create), then every address, shipping, promotion, gift card,
502
- // tip and ScoreCard change. pricing.totalRemaining is what the card pays, a string
503
- // with exactly two decimals ("123.45"; the page itself drops the dot for minor
504
- // units). transactionReference is the checkout key, in the body and the URL. After
505
- // payment the order submit and the confirmation read return the placed checkout.
506
- amountSource: {
507
- id: "dsg_checkout_pricing",
508
- origin: "checkout",
509
- format: "json",
510
- responses: [
511
- { method: "PATCH", path: "/api/v1/checkouts/:checkoutKey", query: {} },
512
- { method: "POST", path: "/api/v1/checkouts", query: {} },
513
- { method: "POST", path: "/api/v1/checkouts/:checkoutKey/addresses", queries: [{}, { type: "billing" }, { type: "shipping" }] },
514
- { method: "PUT", path: "/api/v1/checkouts/:checkoutKey/shipping/selected/groups/:groupNumber/mode", query: {} },
515
- { method: "PUT", path: "/api/v2/checkouts/:checkoutKey/promotion/cart", query: {} },
516
- { method: "DELETE", path: "/api/v2/checkouts/:checkoutKey/promotion/cart", query: {} },
517
- { method: "POST", path: "/api/v1/checkouts/:checkoutKey/gift-cards", query: {} },
518
- { method: "DELETE", path: "/api/v1/checkouts/:checkoutKey/gift-cards/:giftCardIndex", query: {} },
519
- { method: "PUT", path: "/api/v1/checkouts/:checkoutKey/tip", query: {} },
520
- { method: "PUT", path: "/api/v1/checkouts/:checkoutKey/scorecard", query: {} },
521
- { method: "DELETE", path: "/api/v1/checkouts/:checkoutKey/scorecard", query: {} },
522
- { method: "DELETE", path: "/api/v1/checkouts/:checkoutKey/v2/gifts", query: {} }
523
- ],
524
- total: { path: ["pricing", "totalRemaining"], format: "decimal2" },
525
- unit: "major",
526
- currency: "USD",
527
- currencyPath: ["pricing", "currency"],
528
- bind: [
529
- { source: ["checkoutKey"], card: ["transactionReference"] },
530
- { placeholder: "checkoutKey", card: ["transactionReference"] }
531
- ],
532
- // The order total and the card's share are the same text. Anything that lowers the
533
- // share below the total (a gift card, ScoreCard rewards) or lands in only one of them
534
- // (a tip, a donation) is refused until a HAR shows which one the charge follows, so
535
- // the approved amount and the placed checkout's total read after payment agree.
536
- requires: [{ path: ["pricing", "total"], equalsPath: ["pricing", "totalRemaining"] }],
537
- refuse: [
538
- // A placed checkout is not the one being paid.
539
- { path: ["orderPlacedTime"], when: "true" },
540
- // Gift cards and a checkout with no address yet (tax not estimated) wait for a HAR.
541
- { path: ["payment", "giftCards"], when: "nonEmpty" },
542
- { path: ["addresses"], when: "empty" }
543
- ],
544
- maxAgeMs: 9e5,
545
- afterPayment: {
546
- origin: "checkout",
547
- format: "json",
548
- responses: [
549
- { method: "POST", path: "/api/v1/checkouts/:checkoutKey", query: {} },
550
- { method: "GET", path: "/api/v1/checkouts/submitted/:checkoutKey", query: {} }
551
- ],
552
- // The order total, which the requires rule above held equal to the card's share
553
- // before payment. totalRemaining is not read here: after placement it can drop to
554
- // what is still unpaid, which would hide a higher charge.
555
- total: { path: ["pricing", "total"], format: "decimal2" },
556
- unit: "major",
557
- currency: "USD",
558
- currencyPath: ["pricing", "currency"],
559
- bind: [
560
- { source: ["checkoutKey"], card: ["transactionReference"] },
561
- { placeholder: "checkoutKey", card: ["transactionReference"] }
562
- ],
563
- refuse: [{ path: ["orderPlacedTime"], when: "unset" }]
564
- }
565
- },
566
- facts: [
567
- // adyen-web's brand codes, the ones the page's supported list names; Dick's own
568
- // private-label (plcc, comc) cards have no Agentcard brand and are refused.
569
- {
570
- path: ["tenders", "encryptedCardTenders", 0, "cardType"],
571
- fact: "brand",
572
- map: { visa: "visa", mastercard: "mc", amex: "amex", discover: "discover", diners: "diners", jcb: "jcb" }
573
- },
574
- { path: ["tenders", "encryptedCardTenders", 0, "vinBalue"], fact: "bin6" }
575
- ],
576
- adyen: {
577
- environment: "live",
578
- clientKey: "live_YJLFKT47JJG2RI7QIYX6HTKKDEDOEGOH",
579
- publicKeySha256: "da33611149dff3ab715be8671c0550bb8aec6112983b2473db9ee7afb829c110"
580
- }
581
- },
587
+ ]
588
+ }),
582
589
  {
583
590
  // Read Sep 25, 2026, from public code only: the WooCommerce plugin super-payments 1.40.1 and
584
591
  // cdn.superpayments.com/js/v2/payment.webcomponents.script.js as it stood on Sep 19.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema_version": 1,
3
3
  "catalog_version": "2026-09-15.1",
4
- "catalog_sha256": "e570ccbce59b77166e6faef140042c068130bfe2cc4355c054e52ea2aed756e2",
4
+ "catalog_sha256": "a1bfa3f9da2942711afca14cfc7158a49274869c66e685abc0d36839d2e96454",
5
5
  "baseline_version": "kernel-native-docs-2026-09-11.1",
6
6
  "baseline_sha256": "d86722f49633d8223fccae54cd3d485df4375aee06aa156a273cc689b7c8507c",
7
7
  "native_build": null,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-cards/sdk",
3
- "version": "0.23.3",
3
+ "version": "0.23.5",
4
4
  "description": "Agentcard's SDK: one client, Agentcard, with two modules. checkout pauses a browser purchase and pays it with the person's own card; voice connects a person to your product once and approves a purchase by voice inside it. Card data never enters your process.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -27,8 +27,8 @@
27
27
  "_comment_build": "The public SDK keeps zero runtime dependencies. Its build vendors deterministic metadata and substitution artifacts from the internal payment core, and the voice streaming door from packages/voice/src/core (the phone package, @agent-cards/voice, ships it to phones); TypeScript remains pinned.",
28
28
  "build": "node ../payment-core/scripts/build.mjs && node scripts/generate-payment-core.mjs && node scripts/generate-voice-stream.mjs && npx -y -p typescript@5.9.3 tsc && node scripts/generate-preflight-contract.mjs",
29
29
  "prepublishOnly": "pnpm build",
30
- "test": "node test.mjs && node --test lifecycle.test.mjs merchant-abort.test.mjs preparation.test.mjs braintree.test.mjs pre-claim.test.mjs ekashu.test.mjs paypal-hosted-fields.test.mjs autopilot.test.mjs stripe-checkout.test.mjs stripe-setup.test.mjs stripe-legacy-checkout.test.mjs payment-core.test.mjs prepared-processor.test.mjs merchant-hosted.test.mjs merchant-total.test.mjs sandbox-declaration.test.mjs minimum-delay.test.mjs paysafe.test.mjs payu.test.mjs attachment.test.mjs worker-targets.test.mjs mercado-checkout.test.mjs mercado-polling.test.mjs amadeus.test.mjs pelecard.test.mjs aci.test.mjs primer.test.mjs payrails.test.mjs elavon-converge.test.mjs voice.test.mjs agentcard.test.mjs buy.test.mjs readme.test.mjs gmo.test.mjs cybersource-flex.test.mjs juspay-gate.test.mjs card-endpoint.test.mjs card-endpoint-fastspring.test.mjs card-endpoint-navigation.test.mjs merchant-session-probe.test.mjs datatrans.test.mjs authorize-net-dpm.test.mjs creditguard.test.mjs eprotect.test.mjs wspay.test.mjs shiji-sts.test.mjs worldline-mycheckout.test.mjs verifone.test.mjs && node --test preflight-package.test.mjs preflight-collector.test.mjs && node --test kernel-native-qualification.test.mjs && node --test ../vault/scripts/recurly-validation/watch-duty-sdk-result.test.mjs",
31
- "test:browser": "node browser.test.mjs && node stripe-browser.test.mjs && node preparation-browser.test.mjs && node checkout-com-browser.test.mjs && node paysafe-preparation-browser.test.mjs && node owned-shop-browser.test.mjs && node spreedly-browser.test.mjs && node worker-browser.test.mjs && node amadeus-browser.test.mjs && node adyen-merchant-hosted-browser.test.mjs && node adyen-merchant-frames-browser.test.mjs && node fiserv-browser.test.mjs && node gmo-browser.test.mjs && node cybersource-flex-browser.test.mjs && node juspay-browser.test.mjs && node card-endpoint-browser.test.mjs && node datatrans-browser.test.mjs && node authorize-net-dpm-browser.test.mjs && node pelecard-browser.test.mjs && node aci-browser.test.mjs && node creditguard-browser.test.mjs && node primer-browser.test.mjs && node payrails-browser.test.mjs && node elavon-converge-browser.test.mjs && node eprotect-browser.test.mjs && node wspay-browser.test.mjs && node shiji-sts-browser.test.mjs && node worldline-mycheckout-browser.test.mjs && node paypal-hosted-fields-browser.test.mjs",
30
+ "test": "node test.mjs && node --test lifecycle.test.mjs merchant-abort.test.mjs preparation.test.mjs braintree.test.mjs pre-claim.test.mjs ekashu.test.mjs paypal-hosted-fields.test.mjs cybersource-secure-acceptance.test.mjs autopilot.test.mjs stripe-checkout.test.mjs stripe-setup.test.mjs stripe-legacy-checkout.test.mjs payment-core.test.mjs prepared-processor.test.mjs merchant-hosted.test.mjs merchant-total.test.mjs sandbox-declaration.test.mjs minimum-delay.test.mjs paysafe.test.mjs payu.test.mjs attachment.test.mjs worker-targets.test.mjs mercado-checkout.test.mjs mercado-polling.test.mjs amadeus.test.mjs pelecard.test.mjs aci.test.mjs primer.test.mjs payrails.test.mjs elavon-converge.test.mjs voice.test.mjs agentcard.test.mjs buy.test.mjs readme.test.mjs gmo.test.mjs cybersource-flex.test.mjs juspay-gate.test.mjs card-endpoint.test.mjs card-endpoint-fastspring.test.mjs card-endpoint-navigation.test.mjs merchant-session-probe.test.mjs datatrans.test.mjs authorize-net-dpm.test.mjs creditguard.test.mjs eprotect.test.mjs wspay.test.mjs shiji-sts.test.mjs worldline-mycheckout.test.mjs verifone.test.mjs && node --test preflight-package.test.mjs preflight-collector.test.mjs && node --test kernel-native-qualification.test.mjs && node --test ../vault/scripts/recurly-validation/watch-duty-sdk-result.test.mjs",
31
+ "test:browser": "node browser.test.mjs && node stripe-browser.test.mjs && node preparation-browser.test.mjs && node checkout-com-browser.test.mjs && node paysafe-preparation-browser.test.mjs && node owned-shop-browser.test.mjs && node spreedly-browser.test.mjs && node worker-browser.test.mjs && node amadeus-browser.test.mjs && node adyen-merchant-hosted-browser.test.mjs && node adyen-merchant-frames-browser.test.mjs && node fiserv-browser.test.mjs && node gmo-browser.test.mjs && node cybersource-flex-browser.test.mjs && node juspay-browser.test.mjs && node card-endpoint-browser.test.mjs && node datatrans-browser.test.mjs && node authorize-net-dpm-browser.test.mjs && node pelecard-browser.test.mjs && node aci-browser.test.mjs && node creditguard-browser.test.mjs && node primer-browser.test.mjs && node payrails-browser.test.mjs && node elavon-converge-browser.test.mjs && node eprotect-browser.test.mjs && node wspay-browser.test.mjs && node shiji-sts-browser.test.mjs && node worldline-mycheckout-browser.test.mjs && node paypal-hosted-fields-browser.test.mjs && node cybersource-secure-acceptance-browser.test.mjs",
32
32
  "check:payment-core": "node scripts/generate-payment-core.mjs --check",
33
33
  "check:voice-stream": "node scripts/generate-voice-stream.mjs --check",
34
34
  "test:preflight": "node --test preflight-package.test.mjs preflight-collector.test.mjs kernel-native-qualification.test.mjs",