brainerce 1.58.0 → 1.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1480,6 +1480,16 @@ interface CreateProductDto {
1480
1480
  gtin?: string;
1481
1481
  /** Manufacturer Part Number — used by Google Shopping (with brand) when no GTIN exists. */
1482
1482
  mpn?: string;
1483
+ /**
1484
+ * Your own stable identifier for this product in the SOURCE system (supplier
1485
+ * feed, legacy store, ERP). Unique per store.
1486
+ *
1487
+ * Exists for retry-safety on imports: re-sending a batch after a timeout
1488
+ * matches on this value and skips the product instead of creating a
1489
+ * duplicate. Set it on rows that have no SKU, which would otherwise have
1490
+ * nothing to dedup on.
1491
+ */
1492
+ externalId?: string;
1483
1493
  description?: string;
1484
1494
  basePrice: number;
1485
1495
  salePrice?: number;
@@ -1509,6 +1519,103 @@ interface CreateProductDto {
1509
1519
  /** Unit shared by shippingLengthValue/shippingWidthValue/shippingHeightValue. */
1510
1520
  shippingDimensionUnit?: 'cm' | 'in';
1511
1521
  }
1522
+ /**
1523
+ * Payload for `bulkCreateProducts`.
1524
+ *
1525
+ * Each entry in `products` accepts everything `createProduct` accepts. The call
1526
+ * is QUEUED — it returns a job id, not the created products.
1527
+ */
1528
+ interface BulkCreateProductsDto {
1529
+ /**
1530
+ * The products to create. At most 1000 per request (500 is the comfortable
1531
+ * size). Split a larger catalog across several calls carrying the same
1532
+ * `importId`.
1533
+ *
1534
+ * Rows are validated INDIVIDUALLY on the server: an invalid row is reported
1535
+ * as a row failure in `getBulkCreateProductsErrors`, it does not reject the
1536
+ * batch. So a supplier file with a few bad rows still imports the good ones.
1537
+ */
1538
+ products: CreateProductDto[];
1539
+ /**
1540
+ * Ties several calls together as ONE logical import, so a 50,000-product
1541
+ * catalog sent as 100 requests is polled once via
1542
+ * `getBulkCreateProductsImportStatus` rather than 100 times.
1543
+ */
1544
+ importId?: string;
1545
+ /**
1546
+ * What to do with a row whose `sku` or `externalId` already exists in the
1547
+ * store. `'skip'` (default) counts it under `skipped`; `'error'` records it
1548
+ * as a failure instead.
1549
+ */
1550
+ conflictStrategy?: 'skip' | 'error';
1551
+ /**
1552
+ * Channel sync behaviour. `'coalesced'` (default) suppresses the per-product
1553
+ * connector push and files one sync per affected sales channel once the
1554
+ * import finishes. `'none'` writes to Brainerce only.
1555
+ */
1556
+ syncMode?: 'coalesced' | 'none';
1557
+ /**
1558
+ * Durable dedup key for this batch. Re-sending the same key returns the
1559
+ * ORIGINAL job id instead of importing again. The `Idempotency-Key` header
1560
+ * does the same thing over HTTP; this field is stored in the database rather
1561
+ * than Redis, so it outlives the header's 24h window.
1562
+ */
1563
+ idempotencyKey?: string;
1564
+ }
1565
+ /** What `bulkCreateProducts` returns. The import has been accepted, not finished. */
1566
+ interface BulkCreateProductsJob {
1567
+ jobId: string;
1568
+ importId: string | null;
1569
+ status: BulkCreateProductsStatus['status'];
1570
+ total: number;
1571
+ /** True when an existing job was returned because the idempotency key matched. */
1572
+ replayed: boolean;
1573
+ }
1574
+ /**
1575
+ * Progress of a queued product import.
1576
+ *
1577
+ * `skipped` counts rows that already existed and were NOT created — they are
1578
+ * neither successes nor failures, so `succeeded` alone is the number of
1579
+ * products this import added.
1580
+ */
1581
+ interface BulkCreateProductsStatus {
1582
+ jobId: string;
1583
+ importId: string | null;
1584
+ /**
1585
+ * `COMPLETED_WITH_ERRORS` means every row was attempted and some failed —
1586
+ * nothing to retry wholesale; read the failures with
1587
+ * `getBulkCreateProductsErrors`. `FAILED` means the job itself died and the
1588
+ * batch can be re-sent.
1589
+ */
1590
+ status: 'QUEUED' | 'RUNNING' | 'COMPLETED' | 'COMPLETED_WITH_ERRORS' | 'FAILED' | 'CANCELLED';
1591
+ total: number;
1592
+ processed: number;
1593
+ succeeded: number;
1594
+ failed: number;
1595
+ skipped: number;
1596
+ /** `total - processed`. */
1597
+ pending: number;
1598
+ conflictStrategy: string;
1599
+ syncMode: string;
1600
+ /** Set only when the JOB failed (infrastructure), never for a row failure. */
1601
+ errorMessage: string | null;
1602
+ startedAt: string | null;
1603
+ /** On an aggregate read, stays null until every chunk has finished. */
1604
+ finishedAt: string | null;
1605
+ createdAt: string;
1606
+ /** Present only on an aggregate (importId) read: how many chunks rolled up. */
1607
+ jobCount?: number;
1608
+ }
1609
+ /** One failed row from a product import. */
1610
+ interface BulkCreateProductsError {
1611
+ /** 1-indexed position in the `products` array you submitted. */
1612
+ row: number;
1613
+ sku: string | null;
1614
+ externalId: string | null;
1615
+ productName: string | null;
1616
+ code: 'VALIDATION' | 'DUPLICATE' | 'PLAN_LIMIT' | 'INTERNAL' | string;
1617
+ message: string;
1618
+ }
1512
1619
  interface UpdateProductDto {
1513
1620
  name?: string;
1514
1621
  slug?: string;
@@ -2558,7 +2665,8 @@ interface AddToCartDto {
2558
2665
  * Modifier-group selections for restaurant / customizable products
2559
2666
  * (e.g., toppings, sauces, sides). The server validates against effective
2560
2667
  * group rules and rejects invalid payloads with a `MODIFIER_VALIDATION_FAILED`
2561
- * envelope (`BrainerceError.errorData`).
2668
+ * envelope, readable at `BrainerceError.details` — see
2669
+ * {@link ModifierValidationFailedError}.
2562
2670
  */
2563
2671
  selections?: ModifierSelection[];
2564
2672
  /**
@@ -3782,19 +3890,99 @@ interface StockAvailabilityResponse {
3782
3890
  allAvailable: boolean;
3783
3891
  results: StockAvailabilityResult[];
3784
3892
  }
3893
+ /**
3894
+ * Body of a `409`/`400` stock rejection, as it actually arrives on the wire.
3895
+ *
3896
+ * This is the shape of `BrainerceError.details` — the SDK puts the **whole
3897
+ * parsed response body** there, so you read `err.details.code` and the
3898
+ * quantities under `err.details.details`:
3899
+ *
3900
+ * ```typescript
3901
+ * try {
3902
+ * await client.addToCart(cartId, { productId, quantity: 5 });
3903
+ * } catch (err) {
3904
+ * const body = (err as BrainerceError).details as InsufficientStockError;
3905
+ * if (body?.code === 'INSUFFICIENT_STOCK') {
3906
+ * // single-line rejection (add-to-cart, reservation)
3907
+ * console.log(body.details.available, body.details.requested);
3908
+ * // multi-line rejection (checkout) — every offending line
3909
+ * body.details.items?.forEach((i) => console.log(i.productId, i.available));
3910
+ * }
3911
+ * }
3912
+ * ```
3913
+ *
3914
+ * Which keys are populated depends on where the error came from:
3915
+ * - Cart add/update and inventory reservation reject **one** line, so they
3916
+ * send `available` + `requested`.
3917
+ * - Checkout validates the **whole** cart, so it sends `items[]`.
3918
+ * Treat every key as optional and branch on what is present.
3919
+ */
3785
3920
  interface InsufficientStockError {
3786
3921
  code: 'INSUFFICIENT_STOCK';
3787
3922
  message: string;
3788
- available: number;
3789
- requested: number;
3790
- productId?: string;
3791
- variantId?: string;
3792
- items?: Array<{
3793
- productId: string;
3794
- variantId?: string;
3795
- available: number;
3796
- requested: number;
3797
- }>;
3923
+ details: {
3924
+ /** Units actually purchasable. Single-line rejections only. */
3925
+ available?: number;
3926
+ /** Units the request asked for. Single-line rejections only. */
3927
+ requested?: number;
3928
+ productId?: string;
3929
+ variantId?: string | null;
3930
+ /** Per-line breakdown. Checkout-time rejections only. */
3931
+ items?: Array<{
3932
+ productId: string;
3933
+ variantId?: string | null;
3934
+ available?: number;
3935
+ requested?: number;
3936
+ }>;
3937
+ };
3938
+ }
3939
+ /**
3940
+ * Body of a `400` modifier-selection rejection (`MODIFIER_VALIDATION_FAILED`).
3941
+ *
3942
+ * Like every error body, this is what lands in `BrainerceError.details`, so
3943
+ * the issue list is `err.details.details.errors`. Render each entry inline
3944
+ * next to the group or modifier it names.
3945
+ */
3946
+ interface ModifierValidationFailedError {
3947
+ code: 'MODIFIER_VALIDATION_FAILED';
3948
+ message: string;
3949
+ details: {
3950
+ errors: ModifierValidationError[];
3951
+ };
3952
+ }
3953
+ /**
3954
+ * Body of a `400` price-drift rejection (`PRICE_DRIFT`), raised by
3955
+ * `createCheckout` when a cart line's snapshot price no longer matches the
3956
+ * live price. Recover with `refreshCartSnapshots()` or by removing the lines.
3957
+ */
3958
+ interface PriceDriftError {
3959
+ code: 'PRICE_DRIFT';
3960
+ message: string;
3961
+ details: {
3962
+ items: Array<{
3963
+ itemId: string;
3964
+ productId: string;
3965
+ variantId?: string | null;
3966
+ oldUnitPrice: string;
3967
+ newUnitPrice: string;
3968
+ delta: string;
3969
+ direction: 'increased' | 'decreased';
3970
+ }>;
3971
+ };
3972
+ }
3973
+ /**
3974
+ * Body of a `400` `PRODUCT_UNAVAILABLE` rejection — a line's product was
3975
+ * deleted, unpublished, or has inventory tracking disabled.
3976
+ */
3977
+ interface ProductUnavailableError {
3978
+ code: 'PRODUCT_UNAVAILABLE';
3979
+ message: string;
3980
+ details?: {
3981
+ items?: Array<{
3982
+ productId: string;
3983
+ variantId?: string | null;
3984
+ }>;
3985
+ };
3798
3986
  }
3799
3987
  interface PublishProductResponse {
3800
3988
  productId: string;
@@ -4575,7 +4763,8 @@ interface ShippingRateConfig {
4575
4763
  minDeliveryDays?: number | null;
4576
4764
  maxDeliveryDays?: number | null;
4577
4765
  handlingTime?: number | null;
4578
- taxStatus: 'TAXABLE' | 'NOT_TAXABLE';
4766
+ /** Whether the delivery charge itself is taxed. `NONE` leaves postage untaxed; omitted (or `TAXABLE`) taxes it at the store's standard rate. */
4767
+ taxStatus: 'TAXABLE' | 'NONE';
4579
4768
  minOrderAmount?: number | null;
4580
4769
  maxCost?: number | null;
4581
4770
  isActive: boolean;
@@ -4625,7 +4814,8 @@ interface CreateShippingRateDto {
4625
4814
  minDeliveryDays?: number;
4626
4815
  maxDeliveryDays?: number;
4627
4816
  handlingTime?: number;
4628
- taxStatus?: 'TAXABLE' | 'NOT_TAXABLE';
4817
+ /** Whether the delivery charge itself is taxed. `NONE` leaves postage untaxed; omitted (or `TAXABLE`) taxes it at the store's standard rate. */
4818
+ taxStatus?: 'TAXABLE' | 'NONE';
4629
4819
  minOrderAmount?: number;
4630
4820
  maxCost?: number;
4631
4821
  isActive?: boolean;
@@ -4638,7 +4828,8 @@ interface UpdateShippingRateDto {
4638
4828
  minDeliveryDays?: number | null;
4639
4829
  maxDeliveryDays?: number | null;
4640
4830
  handlingTime?: number | null;
4641
- taxStatus?: 'TAXABLE' | 'NOT_TAXABLE';
4831
+ /** Whether the delivery charge itself is taxed. `NONE` leaves postage untaxed; omitted (or `TAXABLE`) taxes it at the store's standard rate. */
4832
+ taxStatus?: 'TAXABLE' | 'NONE';
4642
4833
  minOrderAmount?: number | null;
4643
4834
  maxCost?: number | null;
4644
4835
  isActive?: boolean;
@@ -4660,16 +4851,29 @@ interface TaxRate {
4660
4851
  accountId: string;
4661
4852
  storeId: string;
4662
4853
  name: string;
4663
- /** Tax rate as decimal (e.g., 0.17 for 17%) */
4854
+ /**
4855
+ * Tax rate as a **percentage**, e.g. `"8.5"` for 8.5%. Range 0–100.
4856
+ *
4857
+ * Note this differs from {@link TaxBreakdownItem.rate}, which is a decimal
4858
+ * fraction (`0.085`) because it is computed rather than stored.
4859
+ */
4664
4860
  rate: string;
4665
4861
  /** ISO country code */
4666
4862
  country?: string | null;
4667
4863
  /** Region/state code */
4668
4864
  region?: string | null;
4669
- /** Postal code pattern */
4865
+ /**
4866
+ * Postal code, matched **exactly** (case-insensitive, spaces and hyphens
4867
+ * ignored). Wildcards, prefixes and ranges are NOT supported — `941*` and
4868
+ * `94100-94199` match nothing.
4869
+ */
4670
4870
  postalCode?: string | null;
4671
4871
  taxType: string;
4672
- /** Whether this rate compounds on other rates */
4872
+ /**
4873
+ * @deprecated Not implemented. There is no `isCompound` column, nothing
4874
+ * reads this value, and rates never compound. Sending it on a create or
4875
+ * update request is rejected with a 400.
4876
+ */
4673
4877
  isCompound: boolean;
4674
4878
  /** Whether tax is included in prices */
4675
4879
  isInclusive: boolean;
@@ -4684,11 +4888,17 @@ interface TaxRate {
4684
4888
  }
4685
4889
  interface CreateTaxRateDto {
4686
4890
  name: string;
4891
+ /** Tax rate as a **percentage**, e.g. `8.5` for 8.5%. Range 0–100. */
4687
4892
  rate: number;
4688
4893
  country?: string;
4689
4894
  region?: string;
4895
+ /** Matched exactly — wildcards, prefixes and ranges are NOT supported. */
4690
4896
  postalCode?: string;
4691
4897
  taxType?: string;
4898
+ /**
4899
+ * @deprecated Not implemented — the backend rejects this field with a 400.
4900
+ * Rates never compound. Omit it.
4901
+ */
4692
4902
  isCompound?: boolean;
4693
4903
  isInclusive?: boolean;
4694
4904
  /** Tax class this rate applies to. Omit/null = Standard. */
@@ -4699,11 +4909,17 @@ interface CreateTaxRateDto {
4699
4909
  }
4700
4910
  interface UpdateTaxRateDto {
4701
4911
  name?: string;
4912
+ /** Tax rate as a **percentage**, e.g. `8.5` for 8.5%. Range 0–100. */
4702
4913
  rate?: number;
4703
4914
  country?: string | null;
4704
4915
  region?: string | null;
4916
+ /** Matched exactly — wildcards, prefixes and ranges are NOT supported. */
4705
4917
  postalCode?: string | null;
4706
4918
  taxType?: string;
4919
+ /**
4920
+ * @deprecated Not implemented — the backend rejects this field with a 400.
4921
+ * Rates never compound. Omit it.
4922
+ */
4707
4923
  isCompound?: boolean;
4708
4924
  isInclusive?: boolean;
4709
4925
  priority?: number;
@@ -6530,11 +6746,13 @@ declare function getDirectionForLocale(locale: string | undefined | null): 'ltr'
6530
6746
  *
6531
6747
  * Three modes of operation:
6532
6748
  *
6533
- * **Vibe-Coded Mode (Simplest)** - Use connectionId for vibe-coded sites:
6749
+ * **Sales-Channel Mode (Simplest)** - Use salesChannelId for vibe-coded sites:
6534
6750
  * ```typescript
6535
- * const client = new BrainerceClient({ connectionId: 'vc_abc123...' });
6751
+ * const client = new BrainerceClient({ salesChannelId: 'vc_abc123...' });
6536
6752
  * const products = await client.getProducts();
6537
6753
  * ```
6754
+ * (`connectionId` is a deprecated alias of `salesChannelId`. It still works but
6755
+ * logs a deprecation warning on every construction and is removed in SDK 2.0.)
6538
6756
  *
6539
6757
  * **Storefront Mode (Frontend)** - Use storeId for public access:
6540
6758
  * ```typescript
@@ -7102,6 +7320,82 @@ declare class BrainerceClient {
7102
7320
  * Create a new product
7103
7321
  */
7104
7322
  createProduct(data: CreateProductDto): Promise<Product>;
7323
+ /**
7324
+ * Create many products in one call.
7325
+ *
7326
+ * QUEUED, not immediate: this returns a job id straight away and the products
7327
+ * appear over the following seconds or minutes. It does NOT return the
7328
+ * created products — poll {@link getBulkCreateProductsStatus} with the
7329
+ * returned `jobId`.
7330
+ *
7331
+ * Every field {@link createProduct} accepts is accepted per row, including
7332
+ * variants, categories, brands, tags, images, translations and tax behaviour.
7333
+ *
7334
+ * At most 1000 products per call (500 is the comfortable size). For a
7335
+ * 3,000-50,000 product catalog, send several calls carrying the same
7336
+ * `importId` and poll {@link getBulkCreateProductsImportStatus} once for the
7337
+ * whole import.
7338
+ *
7339
+ * Retry-safe: a row whose `sku` or `externalId` already exists is skipped
7340
+ * rather than duplicated, so re-sending a batch after a timeout cannot create
7341
+ * the catalog twice. Pass `idempotencyKey` to have an identical re-send
7342
+ * return the original job instead of starting a second import.
7343
+ *
7344
+ * @example
7345
+ * ```typescript
7346
+ * const job = await client.bulkCreateProducts({
7347
+ * products: rows.map((r) => ({
7348
+ * name: r.title,
7349
+ * sku: r.sku,
7350
+ * externalId: r.supplier_id,
7351
+ * basePrice: Number(r.price),
7352
+ * type: 'SIMPLE',
7353
+ * categoryNames: [r.category],
7354
+ * })),
7355
+ * importId: 'supplier-catalog-2026-08-21',
7356
+ * });
7357
+ *
7358
+ * let status = await client.getBulkCreateProductsStatus(job.jobId);
7359
+ * while (status.status === 'QUEUED' || status.status === 'RUNNING') {
7360
+ * await new Promise((r) => setTimeout(r, 2000));
7361
+ * status = await client.getBulkCreateProductsStatus(job.jobId);
7362
+ * }
7363
+ * // `succeeded` is what was created; `skipped` already existed.
7364
+ * console.log(status.succeeded, status.skipped, status.failed);
7365
+ * ```
7366
+ */
7367
+ bulkCreateProducts(data: BulkCreateProductsDto): Promise<BulkCreateProductsJob>;
7368
+ /**
7369
+ * Progress of one queued product import.
7370
+ *
7371
+ * Read the counters literally: `skipped` rows already existed and were NOT
7372
+ * created, so `succeeded` alone is what this import added.
7373
+ *
7374
+ * `COMPLETED_WITH_ERRORS` means the import finished with some rows failing —
7375
+ * that is not something to re-run; read the failures with
7376
+ * {@link getBulkCreateProductsErrors}.
7377
+ */
7378
+ getBulkCreateProductsStatus(jobId: string): Promise<BulkCreateProductsStatus>;
7379
+ /**
7380
+ * Aggregate progress across every batch that shared an `importId`.
7381
+ *
7382
+ * The status is the least-complete state across the chunks, and `finishedAt`
7383
+ * stays null until all of them have finished — so a caller cannot mistake
7384
+ * "the first 500 landed" for "the catalog is imported".
7385
+ */
7386
+ getBulkCreateProductsImportStatus(importId: string): Promise<BulkCreateProductsStatus>;
7387
+ /**
7388
+ * Per-row failures for a product import, paginated.
7389
+ *
7390
+ * Every failure is recorded — nothing is truncated — so walk the pages when
7391
+ * `meta.totalPages > 1`. Each entry carries the 1-indexed `row` from the
7392
+ * array you submitted, so a failure maps back to the line of the source
7393
+ * spreadsheet.
7394
+ */
7395
+ getBulkCreateProductsErrors(jobId: string, options?: {
7396
+ page?: number;
7397
+ limit?: number;
7398
+ }): Promise<PaginatedResponse<BulkCreateProductsError>>;
7105
7399
  /**
7106
7400
  * Update an existing product
7107
7401
  */
@@ -8039,11 +8333,18 @@ declare class BrainerceClient {
8039
8333
  * @param options.redirectUrl - Where to send the browser once OAuth finishes —
8040
8334
  * on success *and* on failure. Validated server-side against the sales
8041
8335
  * channel's trusted origins, so what is accepted depends on the mode:
8042
- * - vibe-coded (`salesChannelId: 'vc_*'`): an absolute URL on the channel's
8043
- * registered `domain` or one of its `allowedOrigins`; in TEST mode, any
8044
- * `localhost`/`127.0.0.1` port. A relative path (`/auth/callback`) also
8045
- * works it is resolved against the channel's `domain` on the way back,
8046
- * so the channel must have one registered.
8336
+ * - vibe-coded (`salesChannelId: 'vc_*'`), **LIVE**: an `https` URL on the
8337
+ * channel's registered `domain`, or on a subdomain of it. Nothing else
8338
+ * `allowedOrigins` grants no OAuth redirect on a LIVE channel, and an
8339
+ * `http://` target is refused even on the registered domain. You
8340
+ * therefore cannot complete social login from `localhost` against a LIVE
8341
+ * channel; use a TEST channel for that.
8342
+ * - vibe-coded, **TEST**: the above, plus an **exact** match (scheme, host
8343
+ * and port) against one of the channel's `allowedOrigins`, plus any
8344
+ * `localhost`/`127.0.0.1`/`[::1]` port.
8345
+ * - Either mode: a relative path (`/auth/callback`) also works — it is
8346
+ * resolved against the channel's `domain` on the way back, so the channel
8347
+ * must have one registered.
8047
8348
  * - storefront (`storeId`): **social login cannot round-trip in this mode.**
8048
8349
  * No channel is bound to the request, so an absolute URL has no
8049
8350
  * trusted-origin list to match (400 at this call) and a relative path has
@@ -8662,7 +8963,9 @@ declare class BrainerceClient {
8662
8963
  * try {
8663
8964
  * await client.createCheckout(cartId);
8664
8965
  * } catch (err) {
8665
- * if (err.code === 'PRICE_DRIFT') {
8966
+ * // BrainerceError.details is the whole response body — the code lives
8967
+ * // there, NOT on the error object itself.
8968
+ * if ((err as BrainerceError).details?.code === 'PRICE_DRIFT') {
8666
8969
  * // ask user to confirm new prices, then:
8667
8970
  * await client.refreshCartSnapshots(cartId);
8668
8971
  * await client.createCheckout(cartId);
@@ -9443,12 +9746,18 @@ declare class BrainerceClient {
9443
9746
  * Get applicable custom field definitions for a checkout.
9444
9747
  * Returns fields filtered by visibility conditions (delivery type, products in cart).
9445
9748
  * Use these to render dynamic input fields in the checkout flow.
9749
+ *
9750
+ * **Vibe-coded or storefront mode only.** There is no checkout custom-field
9751
+ * route on the API-key `/v1` surface; in admin mode this throws.
9446
9752
  */
9447
9753
  getCheckoutCustomFields(checkoutId: string): Promise<CheckoutCustomFieldDefinition[]>;
9448
9754
  /**
9449
9755
  * Set checkout custom field values and recalculate surcharges.
9450
9756
  * The checkout total is automatically updated to include surcharges.
9451
9757
  *
9758
+ * **Vibe-coded or storefront mode only.** There is no checkout custom-field
9759
+ * route on the API-key `/v1` surface; in admin mode this throws.
9760
+ *
9452
9761
  * @example
9453
9762
  * ```typescript
9454
9763
  * const checkout = await client.setCheckoutCustomFields(checkoutId, {
@@ -11224,31 +11533,38 @@ declare class BrainerceClient {
11224
11533
  key: string;
11225
11534
  }>;
11226
11535
  /**
11227
- * @deprecated Use `getStoreTeam(storeId)` instead.
11536
+ * @deprecated Retiring, but there is no API-key replacement yet: `getStoreTeam`
11537
+ * is dashboard-only (403 for api_key). Keep using this until one ships.
11228
11538
  */
11229
11539
  getTeamMembers(): Promise<TeamMembersResponse>;
11230
11540
  /**
11231
- * @deprecated Use `getStoreTeam(storeId)` instead.
11541
+ * @deprecated Retiring, but there is no API-key replacement yet: `getStoreTeam`
11542
+ * is dashboard-only (403 for api_key). Keep using this until one ships.
11232
11543
  */
11233
11544
  getTeamInvitations(): Promise<TeamInvitationsResponse>;
11234
11545
  /**
11235
- * @deprecated Use `inviteStoreMember(storeId, data)` instead.
11546
+ * @deprecated Retiring, but there is no API-key replacement yet: `inviteStoreMember`
11547
+ * is dashboard-only (403 for api_key). Keep using this until one ships.
11236
11548
  */
11237
11549
  inviteTeamMember(data: InviteMemberDto): Promise<TeamInvitation>;
11238
11550
  /**
11239
- * @deprecated Use `resendStoreInvitation(storeId, invitationId)` instead.
11551
+ * @deprecated Retiring, but there is no API-key replacement yet: `resendStoreInvitation`
11552
+ * is dashboard-only (403 for api_key). Keep using this until one ships.
11240
11553
  */
11241
11554
  resendTeamInvitation(invitationId: string): Promise<TeamInvitation>;
11242
11555
  /**
11243
- * @deprecated Use `revokeStoreInvitation(storeId, invitationId)` instead.
11556
+ * @deprecated Retiring, but there is no API-key replacement yet: `revokeStoreInvitation`
11557
+ * is dashboard-only (403 for api_key). Keep using this until one ships.
11244
11558
  */
11245
11559
  revokeTeamInvitation(invitationId: string): Promise<void>;
11246
11560
  /**
11247
- * @deprecated Use `updateStoreMember(storeId, memberId, data)` instead.
11561
+ * @deprecated Retiring, but there is no API-key replacement yet: `updateStoreMember`
11562
+ * is dashboard-only (403 for api_key). Keep using this until one ships.
11248
11563
  */
11249
11564
  updateTeamMemberRole(memberId: string, data: UpdateMemberRoleDto): Promise<TeamMember>;
11250
11565
  /**
11251
- * @deprecated Use `removeStoreMember(storeId, memberId)` instead.
11566
+ * @deprecated Retiring, but there is no API-key replacement yet: `removeStoreMember`
11567
+ * is dashboard-only (403 for api_key). Keep using this until one ships.
11252
11568
  */
11253
11569
  removeTeamMember(memberId: string): Promise<void>;
11254
11570
  /**
@@ -11963,4 +12279,4 @@ interface CategorySitemapOptions {
11963
12279
  */
11964
12280
  declare function getCategorySitemapEntries(client: BrainerceClient, opts: CategorySitemapOptions): Promise<SitemapEntry[]>;
11965
12281
 
11966
- export { type AddToCartDto, type AddressDetailsResult, type AddressSuggestion, type AnnouncementContent, type AnnouncementSeverity, type AppliedDiscount, type ApplyCouponDto, type AttachModifierGroupInput, type Attribute, type AttributeOption, type AttributeSource, type BlogPost, type BlogPostListParams, type BlogPostListResponse, type BlogSitemapOptions, type BrainerceApiError, BrainerceClient, type BrainerceClientOptions, BrainerceError, type Brand, type BulkInventoryResponse, type BulkSaveVariantsDto, type BulkSaveVariantsResponse, type BulkVariantInput, type BusinessHoursWindow, type Cart, type CartAppliedDiscount, type CartBundleOffer, type CartBundlesResponse, type CartIncludeOption, type CartIncludeOptions, type CartItem, type CartItemModifierLine, type CartNudge, type CartRecommendationsResponse, type CartStatus, type CartUpgradeSuggestion, type CartUpgradesResponse, type CartWithIncludes, type Category, type CategoryDetail, type CategoryNode, type CategorySitemapOptions, type CategorySuggestion, type Checkout, type CheckoutAddress, type CheckoutBumpsResponse, type CheckoutCustomFieldDefinition, type CheckoutFieldPricing, type CheckoutFieldVisibility, type CheckoutLineItem, type CheckoutPrefillData, type CheckoutStatus, type CompleteCheckoutResponse, type CompleteDraftDto, type ConfigureOAuthProviderDto as ConfigureOAuthProviderInput, type ConflictStatus, type ConnectorPlatform, type ContactFormFieldType, type ContactFormFieldValidation, type ContactFormPublic, type ContactFormPublicField, type ContactFormSummary, type Content, type ContentDataMap, type ContentStatus, type ContentSummary, type ContentType, type Coupon, type CouponCreateResponse, type CouponQueryParams, type CouponStatus, type CouponType, type CouponValidationWarning, type CreateAddressDto, type CreateAttributeDto as CreateAttributeInput, type CreateAttributeOptionDto as CreateAttributeOptionInput, type CreateBrandDto as CreateBrandInput, type CreateCategoryDto as CreateCategoryInput, type CreateCheckoutDto, type CreateContentInput, type CreateCouponDto, type CreateCustomApiDto, type CreateCustomerDto, type CreateEmailTemplateDto as CreateEmailTemplateInput, type CreateGuestOrderDto, type CreateInquiryInput, type CreateInquiryResponse, type CreateMetafieldDefinitionDto as CreateMetafieldDefinitionInput, type CreateModifierGroupInput, type CreateModifierInput, type CreateOrderDto, type CreateProductDto, type CreateRefundDto, type CreateShippingRateDto as CreateShippingRateInput, type CreateShippingZoneDto as CreateShippingZoneInput, type CreateTagDto as CreateTagInput, type CreateTaxRateDto as CreateTaxRateInput, type CreateVariantDto, type CustomApiAuthType, type CustomApiConnectionStatus, type CustomApiCredentials, type CustomApiIntegration, type CustomApiSyncConfig, type CustomApiSyncDirection, type CustomApiTestResult, type Customer, type CustomerAddress, type CustomerAuthResponse, type CustomerOAuthProvider, type CustomerProfile, type CustomerQueryParams, type DateAvailabilityConstraints, type DateFieldParseResult, type DeleteProductResponse, type DiscountBanner, type DiscountRuleType, type DownloadFile, type DraftLineItem, type EditInventoryDto, type EmailDomain, type EmailEventSettings, type EmailEventType, type EmailSettings, type EmailTemplate, type EmailTemplatePreview, type EmailTemplatesResponse, type EmailVerificationResponse, type ExtendReservationResponse, type FaqContent, type FaqItem, type FooterColumn, type FooterContent, type FooterLink, type FooterSocialLink, type FormatPriceOptions, type FormatProductPriceOptions, type FreeAllocationPolicy, type FulfillOrderDto, type GuestCheckoutStartResponse, type GuestOrderResponse, type HeaderContent, type HeaderCta, type HeaderLogo, type HeaderNavItem, type InsufficientStockError, type InventoryInfo, type InventoryReservationStrategy, type InventorySyncStatus, type InventoryTrackingMode, type InvitationStatus, type InviteMemberDto as InviteMemberInput, type InviteStoreMemberDto as InviteStoreMemberInput, type JsonLdOptions, type ListModifierGroupsParams, type LocalCart, type LocalCartItem, type LockedVariant, type LoyaltyNextTierSummary, type LoyaltyReward, type LoyaltyStatus, type LoyaltyTierSummary, type MergeCartsDto, type MetafieldConflict, type MetafieldConflictResolution, type MetafieldDefinition, type MetafieldFilter, type MetafieldFilterValue, type MetafieldFiltersResponse, type MetafieldType, type Modifier, type ModifierGroup, type ModifierSelection, type ModifierSelectionType, type ModifierValidationCode, type ModifierValidationError, type MyProductReview, type OAuthAuthorizeResponse, type OAuthCallbackResponse, type OAuthConnection, type OAuthConnectionsResponse, type OAuthProviderConfig, type OAuthProviderType, type OAuthProvidersResponse, type Order, type OrderAddress, type OrderBump, type OrderCustomer, type OrderDownloadLink, type OrderItem, type OrderQueryParams, type OrderStatus, type OrderStatusChange, type PageContent, type PageSeo, type PaginatedResponse, type ParsedDateFieldValue, type PaymentClientSdk, type PaymentConfig, type PaymentIntent, type PaymentProvider, type PaymentProviderConfig, type PaymentProvidersConfig, type PaymentStatus, type PaymentUrlOptions, type PickupLocation, type PlatformCouponCapabilities, type PlatformMetafieldMetadata, type PreviewEmailTemplateDto as PreviewEmailTemplateInput, type Product, type ProductAttributeInput, type ProductAvailability, type ProductCustomizationField, type ProductDiscount, type ProductDiscountBadge, type ProductImage, type ProductMetafield, type ProductMetafieldValue, type ProductModifierGroupAttachment, type ProductQueryParams, type ProductRecommendation, type ProductRecommendationsResponse, type ProductRelationType, type ProductReview, type ProductReviewAdmin, type ProductSitemapOptions, type ProductSuggestion, type ProductVariant, type PublicMetafieldDefinition, type PublishProductResponse, RTL_LOCALES, type RecommendationVariant, type ReconcileInventoryResponse, type RedeemRewardResult, type ReferralInfo, type Refund, type RefundLineItem, type RefundLineItemResponse, type RefundType, type RegisterCustomerDto, type ReservationInfo, type ResolveMetafieldConflictDto as ResolveMetafieldConflictInput, type ResolveSyncConflictDto as ResolveSyncConflictInput, type RichTextContent, SDK_VERSION, type SearchSuggestions, type SelectPickupLocationDto, type SelectShippingMethodDto, type SendInvoiceDto, type SessionCartRef, type SetBillingAddressDto, type SetCheckoutCustomFieldsDto, type SetCheckoutCustomerDto, type SetDefinitionProductsDto as SetDefinitionProductsInput, type SetMetafieldPlatformsDto as SetMetafieldPlatformsInput, type SetShippingAddressDto, type SetShippingAddressResponse, type ShippingDestinations, type ShippingLine, type ShippingRate, type ShippingRateConfig, type ShippingRateType, type ShippingSummaryEntry, type ShippingZone, type ShippingZoneQueryParams, type SitemapEntry, type StockAvailabilityRequest, type StockAvailabilityResponse, type StockAvailabilityResult, type StoreInfo, type StoreInvitation, type StoreInvitationDetails, type StoreMember, type StorePermission, type StoreRole, type StoreTeamResponse, type StoreTracking, type SubmitProductReviewInput, type SupportedLocaleObject, type SyncConflict, type SyncConflictResolution, type SyncJob, type Tag, type TaxBreakdown, type TaxBreakdownItem, type TaxRate, type TaxonomyQueryParams, type TeamInvitation, type TeamInvitationsResponse, type TeamMember, type TeamMembersResponse, type TeamRole, type TrackingEventItem, type TrackingEventName, type TrackingEventPayload, type UpdateAddressDto, type UpdateAttachmentInput, type UpdateAttributeDto as UpdateAttributeInput, type UpdateAttributeOptionDto as UpdateAttributeOptionInput, type UpdateBrandDto as UpdateBrandInput, type UpdateCartItemDto, type UpdateCategoryDto as UpdateCategoryInput, type UpdateContentInput, type UpdateCouponDto, type UpdateCustomApiDto, type UpdateCustomerDto, type UpdateDraftDto, type UpdateEmailSettingsDto as UpdateEmailSettingsInput, type UpdateEmailTemplateDto as UpdateEmailTemplateInput, type UpdateInventoryDto, type UpdateMemberRoleDto as UpdateMemberRoleInput, type UpdateMetafieldDefinitionDto as UpdateMetafieldDefinitionInput, type UpdateModifierGroupInput, type UpdateModifierInput, type UpdateOAuthProviderDto as UpdateOAuthProviderInput, type UpdateOrderDto, type UpdateOrderShippingDto, type UpdateProductDto, type UpdateShippingRateDto as UpdateShippingRateInput, type UpdateShippingZoneDto as UpdateShippingZoneInput, type UpdateStoreMemberDto as UpdateStoreMemberInput, type UpdateTagDto as UpdateTagInput, type UpdateTaxRateDto as UpdateTaxRateInput, type UpdateVariantDto, type UpdateVariantInventoryDto, type UpsertProductMetafieldDto as UpsertProductMetafieldInput, type UserStore, type UserStorePermissions, type VariantInventoryResponse, type VariantPlatformOverlay, type VariantStatus, type WaitForOrderOptions, type WaitForOrderResult, type WebhookEvent, type WebhookEventType, type WriteProductReviewInput, buildArticleJsonLd, buildBreadcrumbJsonLd, buildCollectionPageJsonLd, buildOrganizationJsonLd, buildProductFaqJsonLd, buildProductJsonLd, buildWebsiteJsonLd, computeAvailableSlots, createWebhookHandler, deriveSeoDescription, enableDevGuards, formatMoney, formatPrice, formatProductPrice, formatVariantPrice, getBlogSitemapEntries, getBusinessHoursForDate, getCartItemImage, getCartItemName, getCartTotals, getCategorySitemapEntries, getDescriptionContent, getDirectionForLocale, formatPrice as getPriceDisplay, getProductCustomizationFields, getProductMetafield, getProductMetafieldValue, getProductMetafieldsByType, getProductPrice, getProductPriceInfo, getProductSitemapEntries, getProductSwatches, getStockStatus, getVariantOptions, getVariantPrice, isAllowedPaymentUrl, isCalendarDateAllowed, isCouponApplicableToProduct, isDateValueAllowed, isHtmlDescription, isWebhookEventType, jsonLdScriptProps, parseDateFieldValue, parseWebhookEvent, resolveStoreLocalParts, safePaymentRedirect, stripHtml, validateDateAvailabilityConfig, verifyWebhook };
12282
+ export { type AddToCartDto, type AddressDetailsResult, type AddressSuggestion, type AnnouncementContent, type AnnouncementSeverity, type AppliedDiscount, type ApplyCouponDto, type AttachModifierGroupInput, type Attribute, type AttributeOption, type AttributeSource, type BlogPost, type BlogPostListParams, type BlogPostListResponse, type BlogSitemapOptions, type BrainerceApiError, BrainerceClient, type BrainerceClientOptions, BrainerceError, type Brand, type BulkCreateProductsDto, type BulkCreateProductsError, type BulkCreateProductsJob, type BulkCreateProductsStatus, type BulkInventoryResponse, type BulkSaveVariantsDto, type BulkSaveVariantsResponse, type BulkVariantInput, type BusinessHoursWindow, type Cart, type CartAppliedDiscount, type CartBundleOffer, type CartBundlesResponse, type CartIncludeOption, type CartIncludeOptions, type CartItem, type CartItemModifierLine, type CartNudge, type CartRecommendationsResponse, type CartStatus, type CartUpgradeSuggestion, type CartUpgradesResponse, type CartWithIncludes, type Category, type CategoryDetail, type CategoryNode, type CategorySitemapOptions, type CategorySuggestion, type Checkout, type CheckoutAddress, type CheckoutBumpsResponse, type CheckoutCustomFieldDefinition, type CheckoutFieldPricing, type CheckoutFieldVisibility, type CheckoutLineItem, type CheckoutPrefillData, type CheckoutStatus, type CompleteCheckoutResponse, type CompleteDraftDto, type ConfigureOAuthProviderDto as ConfigureOAuthProviderInput, type ConflictStatus, type ConnectorPlatform, type ContactFormFieldType, type ContactFormFieldValidation, type ContactFormPublic, type ContactFormPublicField, type ContactFormSummary, type Content, type ContentDataMap, type ContentStatus, type ContentSummary, type ContentType, type Coupon, type CouponCreateResponse, type CouponQueryParams, type CouponStatus, type CouponType, type CouponValidationWarning, type CreateAddressDto, type CreateAttributeDto as CreateAttributeInput, type CreateAttributeOptionDto as CreateAttributeOptionInput, type CreateBrandDto as CreateBrandInput, type CreateCategoryDto as CreateCategoryInput, type CreateCheckoutDto, type CreateContentInput, type CreateCouponDto, type CreateCustomApiDto, type CreateCustomerDto, type CreateEmailTemplateDto as CreateEmailTemplateInput, type CreateGuestOrderDto, type CreateInquiryInput, type CreateInquiryResponse, type CreateMetafieldDefinitionDto as CreateMetafieldDefinitionInput, type CreateModifierGroupInput, type CreateModifierInput, type CreateOrderDto, type CreateProductDto, type CreateRefundDto, type CreateShippingRateDto as CreateShippingRateInput, type CreateShippingZoneDto as CreateShippingZoneInput, type CreateTagDto as CreateTagInput, type CreateTaxRateDto as CreateTaxRateInput, type CreateVariantDto, type CustomApiAuthType, type CustomApiConnectionStatus, type CustomApiCredentials, type CustomApiIntegration, type CustomApiSyncConfig, type CustomApiSyncDirection, type CustomApiTestResult, type Customer, type CustomerAddress, type CustomerAuthResponse, type CustomerOAuthProvider, type CustomerProfile, type CustomerQueryParams, type DateAvailabilityConstraints, type DateFieldParseResult, type DeleteProductResponse, type DiscountBanner, type DiscountRuleType, type DownloadFile, type DraftLineItem, type EditInventoryDto, type EmailDomain, type EmailEventSettings, type EmailEventType, type EmailSettings, type EmailTemplate, type EmailTemplatePreview, type EmailTemplatesResponse, type EmailVerificationResponse, type ExtendReservationResponse, type FaqContent, type FaqItem, type FooterColumn, type FooterContent, type FooterLink, type FooterSocialLink, type FormatPriceOptions, type FormatProductPriceOptions, type FreeAllocationPolicy, type FulfillOrderDto, type GuestCheckoutStartResponse, type GuestOrderResponse, type HeaderContent, type HeaderCta, type HeaderLogo, type HeaderNavItem, type InsufficientStockError, type InventoryInfo, type InventoryReservationStrategy, type InventorySyncStatus, type InventoryTrackingMode, type InvitationStatus, type InviteMemberDto as InviteMemberInput, type InviteStoreMemberDto as InviteStoreMemberInput, type JsonLdOptions, type ListModifierGroupsParams, type LocalCart, type LocalCartItem, type LockedVariant, type LoyaltyNextTierSummary, type LoyaltyReward, type LoyaltyStatus, type LoyaltyTierSummary, type MergeCartsDto, type MetafieldConflict, type MetafieldConflictResolution, type MetafieldDefinition, type MetafieldFilter, type MetafieldFilterValue, type MetafieldFiltersResponse, type MetafieldType, type Modifier, type ModifierGroup, type ModifierSelection, type ModifierSelectionType, type ModifierValidationCode, type ModifierValidationError, type ModifierValidationFailedError, type MyProductReview, type OAuthAuthorizeResponse, type OAuthCallbackResponse, type OAuthConnection, type OAuthConnectionsResponse, type OAuthProviderConfig, type OAuthProviderType, type OAuthProvidersResponse, type Order, type OrderAddress, type OrderBump, type OrderCustomer, type OrderDownloadLink, type OrderItem, type OrderQueryParams, type OrderStatus, type OrderStatusChange, type PageContent, type PageSeo, type PaginatedResponse, type ParsedDateFieldValue, type PaymentClientSdk, type PaymentConfig, type PaymentIntent, type PaymentProvider, type PaymentProviderConfig, type PaymentProvidersConfig, type PaymentStatus, type PaymentUrlOptions, type PickupLocation, type PlatformCouponCapabilities, type PlatformMetafieldMetadata, type PreviewEmailTemplateDto as PreviewEmailTemplateInput, type PriceDriftError, type Product, type ProductAttributeInput, type ProductAvailability, type ProductCustomizationField, type ProductDiscount, type ProductDiscountBadge, type ProductImage, type ProductMetafield, type ProductMetafieldValue, type ProductModifierGroupAttachment, type ProductQueryParams, type ProductRecommendation, type ProductRecommendationsResponse, type ProductRelationType, type ProductReview, type ProductReviewAdmin, type ProductSitemapOptions, type ProductSuggestion, type ProductUnavailableError, type ProductVariant, type PublicMetafieldDefinition, type PublishProductResponse, RTL_LOCALES, type RecommendationVariant, type ReconcileInventoryResponse, type RedeemRewardResult, type ReferralInfo, type Refund, type RefundLineItem, type RefundLineItemResponse, type RefundType, type RegisterCustomerDto, type ReservationInfo, type ResolveMetafieldConflictDto as ResolveMetafieldConflictInput, type ResolveSyncConflictDto as ResolveSyncConflictInput, type RichTextContent, SDK_VERSION, type SearchSuggestions, type SelectPickupLocationDto, type SelectShippingMethodDto, type SendInvoiceDto, type SessionCartRef, type SetBillingAddressDto, type SetCheckoutCustomFieldsDto, type SetCheckoutCustomerDto, type SetDefinitionProductsDto as SetDefinitionProductsInput, type SetMetafieldPlatformsDto as SetMetafieldPlatformsInput, type SetShippingAddressDto, type SetShippingAddressResponse, type ShippingDestinations, type ShippingLine, type ShippingRate, type ShippingRateConfig, type ShippingRateType, type ShippingSummaryEntry, type ShippingZone, type ShippingZoneQueryParams, type SitemapEntry, type StockAvailabilityRequest, type StockAvailabilityResponse, type StockAvailabilityResult, type StoreInfo, type StoreInvitation, type StoreInvitationDetails, type StoreMember, type StorePermission, type StoreRole, type StoreTeamResponse, type StoreTracking, type SubmitProductReviewInput, type SupportedLocaleObject, type SyncConflict, type SyncConflictResolution, type SyncJob, type Tag, type TaxBreakdown, type TaxBreakdownItem, type TaxRate, type TaxonomyQueryParams, type TeamInvitation, type TeamInvitationsResponse, type TeamMember, type TeamMembersResponse, type TeamRole, type TrackingEventItem, type TrackingEventName, type TrackingEventPayload, type UpdateAddressDto, type UpdateAttachmentInput, type UpdateAttributeDto as UpdateAttributeInput, type UpdateAttributeOptionDto as UpdateAttributeOptionInput, type UpdateBrandDto as UpdateBrandInput, type UpdateCartItemDto, type UpdateCategoryDto as UpdateCategoryInput, type UpdateContentInput, type UpdateCouponDto, type UpdateCustomApiDto, type UpdateCustomerDto, type UpdateDraftDto, type UpdateEmailSettingsDto as UpdateEmailSettingsInput, type UpdateEmailTemplateDto as UpdateEmailTemplateInput, type UpdateInventoryDto, type UpdateMemberRoleDto as UpdateMemberRoleInput, type UpdateMetafieldDefinitionDto as UpdateMetafieldDefinitionInput, type UpdateModifierGroupInput, type UpdateModifierInput, type UpdateOAuthProviderDto as UpdateOAuthProviderInput, type UpdateOrderDto, type UpdateOrderShippingDto, type UpdateProductDto, type UpdateShippingRateDto as UpdateShippingRateInput, type UpdateShippingZoneDto as UpdateShippingZoneInput, type UpdateStoreMemberDto as UpdateStoreMemberInput, type UpdateTagDto as UpdateTagInput, type UpdateTaxRateDto as UpdateTaxRateInput, type UpdateVariantDto, type UpdateVariantInventoryDto, type UpsertProductMetafieldDto as UpsertProductMetafieldInput, type UserStore, type UserStorePermissions, type VariantInventoryResponse, type VariantPlatformOverlay, type VariantStatus, type WaitForOrderOptions, type WaitForOrderResult, type WebhookEvent, type WebhookEventType, type WriteProductReviewInput, buildArticleJsonLd, buildBreadcrumbJsonLd, buildCollectionPageJsonLd, buildOrganizationJsonLd, buildProductFaqJsonLd, buildProductJsonLd, buildWebsiteJsonLd, computeAvailableSlots, createWebhookHandler, deriveSeoDescription, enableDevGuards, formatMoney, formatPrice, formatProductPrice, formatVariantPrice, getBlogSitemapEntries, getBusinessHoursForDate, getCartItemImage, getCartItemName, getCartTotals, getCategorySitemapEntries, getDescriptionContent, getDirectionForLocale, formatPrice as getPriceDisplay, getProductCustomizationFields, getProductMetafield, getProductMetafieldValue, getProductMetafieldsByType, getProductPrice, getProductPriceInfo, getProductSitemapEntries, getProductSwatches, getStockStatus, getVariantOptions, getVariantPrice, isAllowedPaymentUrl, isCalendarDateAllowed, isCouponApplicableToProduct, isDateValueAllowed, isHtmlDescription, isWebhookEventType, jsonLdScriptProps, parseDateFieldValue, parseWebhookEvent, resolveStoreLocalParts, safePaymentRedirect, stripHtml, validateDateAvailabilityConfig, verifyWebhook };