@aranova/tracking-next 1.0.0 → 1.1.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.
Files changed (39) hide show
  1. package/dist/blog-server.js.map +1 -1
  2. package/dist/blog-server.mjs.map +1 -1
  3. package/dist/blog.js.map +1 -1
  4. package/dist/blog.mjs.map +1 -1
  5. package/dist/calendar-server.js.map +1 -1
  6. package/dist/calendar-server.mjs.map +1 -1
  7. package/dist/calendar.js.map +1 -1
  8. package/dist/calendar.mjs.map +1 -1
  9. package/dist/client.d.mts +9 -3
  10. package/dist/client.d.ts +9 -3
  11. package/dist/client.js +550 -194
  12. package/dist/client.js.map +1 -1
  13. package/dist/client.mjs +550 -194
  14. package/dist/client.mjs.map +1 -1
  15. package/dist/index.d.mts +5 -5
  16. package/dist/index.d.ts +5 -5
  17. package/dist/index.js +336 -271
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +336 -271
  20. package/dist/index.mjs.map +1 -1
  21. package/dist/{ingest-typed-BdKmlouW.d.ts → ingest-typed-MBuMe9Pn.d.ts} +94 -2
  22. package/dist/{ingest-typed-Bo7WPmpU.d.mts → ingest-typed-UA13xTfI.d.mts} +94 -2
  23. package/dist/{phone-utils-CubQif9Z.d.mts → phone-utils-C0ds6cqZ.d.mts} +6 -0
  24. package/dist/{phone-utils-CubQif9Z.d.ts → phone-utils-C0ds6cqZ.d.ts} +6 -0
  25. package/dist/phone.d.mts +1 -1
  26. package/dist/phone.d.ts +1 -1
  27. package/dist/{sales-DG150g3o.d.ts → sales-DQC815f3.d.ts} +1 -1
  28. package/dist/{sales-D7KstKA-.d.mts → sales-w1reW_Y3.d.mts} +1 -1
  29. package/dist/sales.d.mts +2 -2
  30. package/dist/sales.d.ts +2 -2
  31. package/dist/sales.js +6 -1
  32. package/dist/sales.js.map +1 -1
  33. package/dist/sales.mjs +6 -1
  34. package/dist/sales.mjs.map +1 -1
  35. package/dist/server.d.mts +1 -1
  36. package/dist/server.d.ts +1 -1
  37. package/dist/{tracking-config-runtime-D7prdTE1.d.mts → tracking-config-runtime-C6H7ofmo.d.mts} +6 -0
  38. package/dist/{tracking-config-runtime-D7prdTE1.d.ts → tracking-config-runtime-C6H7ofmo.d.ts} +6 -0
  39. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -213,6 +213,7 @@ var TRACKING_CAPABILITIES = [
213
213
  "consent_controls",
214
214
  "conversion_goals_auto",
215
215
  "conversion_goals_manual",
216
+ "cross_site_linker",
216
217
  "cta_click_capture",
217
218
  "form_capture",
218
219
  "phone_click_capture",
@@ -239,6 +240,9 @@ function readDomMarkers() {
239
240
  return found;
240
241
  }
241
242
 
243
+ // ../tracking-core/src/cross-site-link.ts
244
+ import * as z from "zod/mini";
245
+
242
246
  // ../tracking-core/src/tracking.ts
243
247
  var TRACKING_COOKIE_MAX_AGE_SECONDS = 7776e3;
244
248
  var TRACKING_PARAM_KEYS = [
@@ -483,6 +487,43 @@ function buildLandingPayloadFields(sessionId, override) {
483
487
  };
484
488
  }
485
489
 
490
+ // ../tracking-core/src/cross-site-link.ts
491
+ var LINK_PARAM = "_arv";
492
+ var LINK_TOKEN_TTL_MS = 5 * 60 * 1e3;
493
+ var FUTURE_SKEW_MS = 60 * 1e3;
494
+ var CARRIED_KEYS = {
495
+ g: "gclid",
496
+ w: "wbraid",
497
+ gb: "gbraid",
498
+ f: "fbclid",
499
+ y: "ylpcid"
500
+ };
501
+ var CARRIED_ENTRIES = Object.entries(CARRIED_KEYS);
502
+ var identifier = z.string().check(z.minLength(1), z.maxLength(128));
503
+ var optionalIdentifier = z.optional(identifier);
504
+ var linkTokenSchema = z.object({
505
+ v: identifier,
506
+ s: identifier,
507
+ // Epoch ms in base36.
508
+ t: z.string().check(z.regex(/^[0-9a-z]{1,12}$/)),
509
+ g: optionalIdentifier,
510
+ w: optionalIdentifier,
511
+ gb: optionalIdentifier,
512
+ f: optionalIdentifier,
513
+ fc: optionalIdentifier,
514
+ y: optionalIdentifier
515
+ });
516
+ function stripLinkParam(url) {
517
+ try {
518
+ const parsed = new URL(url, typeof window === "undefined" ? void 0 : window.location.href);
519
+ if (!parsed.searchParams.has(LINK_PARAM)) return url;
520
+ parsed.searchParams.delete(LINK_PARAM);
521
+ return parsed.href;
522
+ } catch {
523
+ return url;
524
+ }
525
+ }
526
+
486
527
  // ../tracking-core/src/payloads.ts
487
528
  function createTrackingClientContext(surface, input = {}) {
488
529
  return {
@@ -522,6 +563,7 @@ function createTrackingSessionUpsertPayload(trackingParams, input, context) {
522
563
  };
523
564
  }
524
565
  function createTrackingEventCreatePayload(trackingParams, input, context) {
566
+ const pageUrl = input.pageUrl ?? (typeof window === "undefined" ? null : window.location.href);
525
567
  return {
526
568
  session_id: input.sessionId,
527
569
  event_type: input.eventType,
@@ -532,7 +574,7 @@ function createTrackingEventCreatePayload(trackingParams, input, context) {
532
574
  fbclid: trackingParams.fbclid,
533
575
  fbc: getFbcCookie(),
534
576
  fbp: getFbpCookie(),
535
- page_url: input.pageUrl ?? (typeof window === "undefined" ? null : window.location.href),
577
+ page_url: pageUrl === null ? null : stripLinkParam(pageUrl),
536
578
  metadata: input.metadata ?? null,
537
579
  context
538
580
  };
@@ -644,7 +686,8 @@ function parseConversionConfig(raw) {
644
686
  gtag_ids: isStringMap(obj.gtag_ids) ? obj.gtag_ids : {},
645
687
  meta_pixel_ids: isStringMap(obj.meta_pixel_ids) ? obj.meta_pixel_ids : {},
646
688
  services,
647
- goals
689
+ goals,
690
+ linked_hostnames: Array.isArray(obj.linked_hostnames) ? obj.linked_hostnames.filter((h) => typeof h === "string" && h.length > 0) : []
648
691
  };
649
692
  }
650
693
  var CACHE_PREFIX = "_aranova_cfg_";
@@ -728,6 +771,7 @@ function resolveConversionConfig(options) {
728
771
  getFiring: (key) => goalsByKey.get(key)?.firing ?? null,
729
772
  getGoal: (key) => goalsByKey.get(key) ?? null,
730
773
  listGoals: () => [...goalsByKey.values()],
774
+ linkedHostnames: () => current?.linked_hostnames ?? [],
731
775
  current: () => current,
732
776
  isReady: () => current !== null,
733
777
  onResolve: (listener) => {
@@ -935,7 +979,7 @@ function validateConfig(config, ref) {
935
979
  function pageViewSnapshot() {
936
980
  if (typeof window === "undefined" || typeof document === "undefined") return null;
937
981
  return {
938
- href: window.location.href,
982
+ href: stripLinkParam(window.location.href),
939
983
  title: document.title || null,
940
984
  referrer: document.referrer || null
941
985
  };
@@ -1086,6 +1130,10 @@ var TrackingConfigRuntime = class {
1086
1130
  listGoals() {
1087
1131
  return this.current?.goals ?? [];
1088
1132
  }
1133
+ /** Sibling hostnames for the linker — read from the cached object even while unconfirmed. */
1134
+ linkedHostnames() {
1135
+ return this.current?.linked_hostnames ?? [];
1136
+ }
1089
1137
  async revalidateNow() {
1090
1138
  try {
1091
1139
  const headers = {};
@@ -1329,6 +1377,18 @@ var EVENT_SEMANTICS = {
1329
1377
  category: "engagement",
1330
1378
  outcomeRole: "engagement",
1331
1379
  clientVisibility: "simple"
1380
+ },
1381
+ site_link_click: {
1382
+ label: "Left for sibling site",
1383
+ category: "page",
1384
+ outcomeRole: "navigation",
1385
+ clientVisibility: "detailed"
1386
+ },
1387
+ site_link_arrival: {
1388
+ label: "Arrived from sibling site",
1389
+ category: "page",
1390
+ outcomeRole: "navigation",
1391
+ clientVisibility: "simple"
1332
1392
  }
1333
1393
  };
1334
1394
  function getEventSemantics(eventName) {
@@ -1570,11 +1630,11 @@ function createSalesClient(config) {
1570
1630
  }
1571
1631
 
1572
1632
  // ../tracking-core/src/resources/sales/schema.ts
1573
- import * as z2 from "zod/mini";
1633
+ import * as z3 from "zod/mini";
1574
1634
 
1575
1635
  // ../tracking-core/src/resources/sales/generated/zod.gen.ts
1576
- import * as z from "zod/mini";
1577
- var zErrorCode = z.enum([
1636
+ import * as z2 from "zod/mini";
1637
+ var zErrorCode = z2.enum([
1578
1638
  "missing_credentials",
1579
1639
  "invalid_api_key",
1580
1640
  "not_authenticated",
@@ -1599,36 +1659,36 @@ var zErrorCode = z.enum([
1599
1659
  "rate_limited",
1600
1660
  "internal_error"
1601
1661
  ]);
1602
- var zSaleItemEntitySchema = z.object({
1603
- category: z.nullable(z.string()),
1604
- external_item_id: z.nullable(z.string()),
1605
- id: z.uuid(),
1606
- name: z.nullable(z.string()),
1607
- quantity: z.string().check(z.regex(/^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$/)),
1608
- unit_cost_cents: z.nullable(z.int()),
1609
- unit_price_cents: z.int()
1662
+ var zSaleItemEntitySchema = z2.object({
1663
+ category: z2.nullable(z2.string()),
1664
+ external_item_id: z2.nullable(z2.string()),
1665
+ id: z2.uuid(),
1666
+ name: z2.nullable(z2.string()),
1667
+ quantity: z2.string().check(z2.regex(/^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$/)),
1668
+ unit_cost_cents: z2.nullable(z2.int()),
1669
+ unit_price_cents: z2.int()
1610
1670
  });
1611
- var zSaleItemInputSchema = z.strictObject({
1612
- category: z.nullish(z.string()),
1613
- external_item_id: z.nullish(z.string()),
1614
- name: z.nullish(z.string()),
1615
- quantity: z.string().check(z.regex(/^\d+(\.\d{1,3})?$/)),
1616
- unit_cost_cents: z.nullish(z.int().check(z.gte(0))),
1617
- unit_price_cents: z.int().check(z.gte(0))
1671
+ var zSaleItemInputSchema = z2.strictObject({
1672
+ category: z2.nullish(z2.string()),
1673
+ external_item_id: z2.nullish(z2.string()),
1674
+ name: z2.nullish(z2.string()),
1675
+ quantity: z2.string().check(z2.regex(/^\d+(\.\d{1,3})?$/)),
1676
+ unit_cost_cents: z2.nullish(z2.int().check(z2.gte(0))),
1677
+ unit_price_cents: z2.int().check(z2.gte(0))
1618
1678
  });
1619
- var zSaleServiceEntitySchema = z.object({
1620
- amount_cents: z.int(),
1621
- id: z.uuid(),
1622
- mapped: z.nullable(z.boolean()),
1623
- service_id: z.uuid(),
1624
- service_key: z.string(),
1625
- service_label: z.string()
1679
+ var zSaleServiceEntitySchema = z2.object({
1680
+ amount_cents: z2.int(),
1681
+ id: z2.uuid(),
1682
+ mapped: z2.nullable(z2.boolean()),
1683
+ service_id: z2.uuid(),
1684
+ service_key: z2.string(),
1685
+ service_label: z2.string()
1626
1686
  });
1627
- var zSaleServiceInputSchema = z.strictObject({
1628
- amount_cents: z.int().check(z.gte(0)),
1629
- service: z.string()
1687
+ var zSaleServiceInputSchema = z2.strictObject({
1688
+ amount_cents: z2.int().check(z2.gte(0)),
1689
+ service: z2.string()
1630
1690
  });
1631
- var zSmsAutomationState = z.enum([
1691
+ var zSmsAutomationState = z2.enum([
1632
1692
  "needs_check",
1633
1693
  "failed",
1634
1694
  "undelivered",
@@ -1640,7 +1700,7 @@ var zSmsAutomationState = z.enum([
1640
1700
  "eligible",
1641
1701
  "not_applicable"
1642
1702
  ]);
1643
- var zSmsWithheldReason = z.enum([
1703
+ var zSmsWithheldReason = z2.enum([
1644
1704
  "automation_disabled",
1645
1705
  "sms_disabled",
1646
1706
  "no_phone",
@@ -1653,77 +1713,82 @@ var zSmsWithheldReason = z.enum([
1653
1713
  "sender_not_ready",
1654
1714
  "missing_review_url",
1655
1715
  "no_handler",
1656
- "dispatch_already_recorded"
1716
+ "dispatch_already_recorded",
1717
+ "text_back_disabled",
1718
+ "number_not_active",
1719
+ "a2p_registration_required",
1720
+ "alert_recipient_cannot_receive_sms",
1721
+ "line_type_unresolved"
1657
1722
  ]);
1658
- var zSaleSmsStatusSchema = z.object({
1659
- can_send_now: z._default(z.boolean(), false),
1660
- last_message_at: z.nullable(z.iso.datetime({ offset: true })),
1661
- reason_detail: z.nullable(z.string()),
1723
+ var zSaleSmsStatusSchema = z2.object({
1724
+ can_send_now: z2._default(z2.boolean(), false),
1725
+ last_message_at: z2.nullable(z2.iso.datetime({ offset: true })),
1726
+ reason_detail: z2.nullable(z2.string()),
1662
1727
  state: zSmsAutomationState,
1663
- suppressed_by_other_sale: z._default(z.boolean(), false),
1664
- withheld_reason: z.nullable(zSmsWithheldReason)
1728
+ suppressed_by_other_sale: z2._default(z2.boolean(), false),
1729
+ withheld_reason: z2.nullable(zSmsWithheldReason)
1665
1730
  });
1666
- var zSupportedCurrency = z.enum(["USD", "CAD"]);
1667
- var zTrackingEnvironment = z.enum(["production", "development"]);
1668
- var zSaleCreateSchema = z.strictObject({
1669
- amount_total_cents: z.nullish(z.int().check(z.gte(0))),
1731
+ var zSupportedCurrency = z2.enum(["USD", "CAD"]);
1732
+ var zTrackingEnvironment = z2.enum(["production", "development"]);
1733
+ var zSaleCreateSchema = z2.strictObject({
1734
+ amount_total_cents: z2.nullish(z2.int().check(z2.gte(0))),
1670
1735
  currency: zSupportedCurrency,
1671
- customer_email: z.nullish(z.email().check(z.maxLength(320))),
1672
- customer_name: z.nullish(z.string().check(z.maxLength(200))),
1673
- customer_phone: z.nullish(z.string().check(z.maxLength(64))),
1674
- description: z.nullish(z.string()),
1675
- environment: z._default(z.optional(zTrackingEnvironment), "production"),
1676
- external_id: z.nullish(z.string()),
1677
- items: z.optional(z.array(zSaleItemInputSchema)),
1678
- metadata: z.nullish(z.record(z.string(), z.unknown())),
1679
- occurred_at: z.iso.datetime({ offset: true }),
1680
- service: z.nullish(z.string()),
1681
- services: z.nullish(z.array(zSaleServiceInputSchema)),
1682
- sms_consent: z.nullish(z.boolean())
1736
+ customer_email: z2.nullish(z2.email().check(z2.maxLength(320))),
1737
+ customer_name: z2.nullish(z2.string().check(z2.maxLength(200))),
1738
+ customer_phone: z2.nullish(z2.string().check(z2.maxLength(64))),
1739
+ description: z2.nullish(z2.string()),
1740
+ environment: z2._default(z2.optional(zTrackingEnvironment), "production"),
1741
+ external_id: z2.nullish(z2.string()),
1742
+ items: z2.optional(z2.array(zSaleItemInputSchema)),
1743
+ metadata: z2.nullish(z2.record(z2.string(), z2.unknown())),
1744
+ occurred_at: z2.iso.datetime({ offset: true }),
1745
+ service: z2.nullish(z2.string()),
1746
+ services: z2.nullish(z2.array(zSaleServiceInputSchema)),
1747
+ sms_consent: z2.nullish(z2.boolean())
1683
1748
  });
1684
- var zValidationError = z.object({
1685
- ctx: z.optional(z.record(z.string(), z.unknown())),
1686
- input: z.optional(z.unknown()),
1687
- loc: z.array(z.union([z.string(), z.int()])),
1688
- msg: z.string(),
1689
- type: z.string()
1749
+ var zValidationError = z2.object({
1750
+ ctx: z2.optional(z2.record(z2.string(), z2.unknown())),
1751
+ input: z2.optional(z2.unknown()),
1752
+ loc: z2.array(z2.union([z2.string(), z2.int()])),
1753
+ msg: z2.string(),
1754
+ type: z2.string()
1690
1755
  });
1691
- var zHttpValidationError = z.object({
1692
- detail: z.optional(z.array(zValidationError))
1756
+ var zHttpValidationError = z2.object({
1757
+ detail: z2.optional(z2.array(zValidationError))
1693
1758
  });
1694
- var zValidationErrorItem = z.object({
1695
- loc: z.array(z.union([z.string(), z.int()])),
1696
- msg: z.string(),
1697
- type: z.string()
1759
+ var zValidationErrorItem = z2.object({
1760
+ loc: z2.array(z2.union([z2.string(), z2.int()])),
1761
+ msg: z2.string(),
1762
+ type: z2.string()
1698
1763
  });
1699
- var zApiErrorSchema = z.object({
1764
+ var zApiErrorSchema = z2.object({
1700
1765
  code: zErrorCode,
1701
- context: z._default(z.nullish(z.record(z.string(), z.unknown())), null),
1702
- detail: z.string(),
1703
- errors: z._default(z.nullish(z.array(zValidationErrorItem)), null),
1704
- request_id: z._default(z.nullish(z.string()), null)
1766
+ context: z2._default(z2.nullish(z2.record(z2.string(), z2.unknown())), null),
1767
+ detail: z2.string(),
1768
+ errors: z2._default(z2.nullish(z2.array(zValidationErrorItem)), null),
1769
+ request_id: z2._default(z2.nullish(z2.string()), null)
1705
1770
  });
1706
- var zWritebackEmailSource = z.enum(["NONE", "SALE", "CUSTOMER", "HARVESTED"]);
1707
- var zWritebackEnrichmentStatus = z.enum(["NONE", "MATCHED", "AMBIGUOUS"]);
1708
- var zWritebackSaleUploadCounts = z.object({
1709
- failed: z._default(z.int(), 0),
1710
- pending: z._default(z.int(), 0),
1711
- skipped: z._default(z.int(), 0),
1712
- submitted: z._default(z.int(), 0),
1713
- total: z._default(z.int(), 0),
1714
- uploaded: z._default(z.int(), 0)
1771
+ var zWritebackEmailSource = z2.enum(["NONE", "SALE", "CUSTOMER", "HARVESTED"]);
1772
+ var zWritebackEnrichmentStatus = z2.enum(["NONE", "MATCHED", "AMBIGUOUS"]);
1773
+ var zWritebackSaleUploadCounts = z2.object({
1774
+ failed: z2._default(z2.int(), 0),
1775
+ pending: z2._default(z2.int(), 0),
1776
+ skipped: z2._default(z2.int(), 0),
1777
+ submitted: z2._default(z2.int(), 0),
1778
+ total: z2._default(z2.int(), 0),
1779
+ uploaded: z2._default(z2.int(), 0)
1715
1780
  });
1716
- var zSaleWritebackStatusSchema = z.object({
1717
- blocked_reason: z.nullable(z.string()),
1718
- can_dispatch: z._default(z.boolean(), false),
1719
- email_source: z.nullable(zWritebackEmailSource),
1720
- enrichment_status: z.nullable(zWritebackEnrichmentStatus),
1721
- gclid_attached: z._default(z.boolean(), false),
1722
- identifiers_sent: z.nullable(z.string()),
1723
- mapped_service_ids: z.array(z.uuid()),
1724
- matched_submit_count: z.nullable(z.int()),
1725
- needs_force: z._default(z.boolean(), false),
1726
- rollup: z.enum([
1781
+ var zSaleWritebackStatusSchema = z2.object({
1782
+ blocked_reason: z2.nullable(z2.string()),
1783
+ can_dispatch: z2._default(z2.boolean(), false),
1784
+ email_source: z2.nullable(zWritebackEmailSource),
1785
+ enrichment_status: z2.nullable(zWritebackEnrichmentStatus),
1786
+ gclid_attached: z2._default(z2.boolean(), false),
1787
+ identifiers_sent: z2.nullable(z2.string()),
1788
+ mapped_service_ids: z2.array(z2.uuid()),
1789
+ matched_submit_count: z2.nullable(z2.int()),
1790
+ needs_force: z2._default(z2.boolean(), false),
1791
+ rollup: z2.enum([
1727
1792
  "failed",
1728
1793
  "skipped",
1729
1794
  "pending",
@@ -1733,37 +1798,37 @@ var zSaleWritebackStatusSchema = z.object({
1733
1798
  "out_of_window",
1734
1799
  "blocked"
1735
1800
  ]),
1736
- stale: z._default(z.boolean(), false),
1737
- uncovered_service_ids: z.array(z.uuid()),
1801
+ stale: z2._default(z2.boolean(), false),
1802
+ uncovered_service_ids: z2.array(z2.uuid()),
1738
1803
  uploads: zWritebackSaleUploadCounts
1739
1804
  });
1740
- var zSaleEntitySchema = z.object({
1741
- amount_total_cents: z.int(),
1742
- business_id: z.uuid(),
1743
- business_name: z.nullable(z.string()),
1744
- created_at: z.iso.datetime({ offset: true }),
1745
- currency: z.string(),
1746
- customer_email: z.nullable(z.string()),
1747
- customer_name: z.nullable(z.string()),
1748
- customer_name_placeholder_confirmed: z._default(z.boolean(), false),
1749
- customer_name_placeholder_confirmed_at: z.nullable(z.iso.datetime({ offset: true })),
1750
- customer_phone: z.nullable(z.string()),
1751
- description: z.nullable(z.string()),
1805
+ var zSaleEntitySchema = z2.object({
1806
+ amount_total_cents: z2.int(),
1807
+ business_id: z2.uuid(),
1808
+ business_name: z2.nullable(z2.string()),
1809
+ created_at: z2.iso.datetime({ offset: true }),
1810
+ currency: z2.string(),
1811
+ customer_email: z2.nullable(z2.string()),
1812
+ customer_name: z2.nullable(z2.string()),
1813
+ customer_name_placeholder_confirmed: z2._default(z2.boolean(), false),
1814
+ customer_name_placeholder_confirmed_at: z2.nullable(z2.iso.datetime({ offset: true })),
1815
+ customer_phone: z2.nullable(z2.string()),
1816
+ description: z2.nullable(z2.string()),
1752
1817
  environment: zTrackingEnvironment,
1753
- external_id: z.nullable(z.string()),
1754
- id: z.uuid(),
1755
- items: z.array(zSaleItemEntitySchema),
1756
- metadata: z.nullable(z.record(z.string(), z.unknown())),
1757
- occurred_at: z.iso.datetime({ offset: true }),
1758
- service_id: z.nullable(z.uuid()),
1759
- service_key: z.nullable(z.string()),
1760
- service_label: z.nullable(z.string()),
1761
- services: z.array(zSaleServiceEntitySchema),
1762
- sms_automation: z.nullable(zSaleSmsStatusSchema),
1763
- sms_consent: z._default(z.boolean(), false),
1764
- sms_consent_granted_at: z.nullable(z.iso.datetime({ offset: true })),
1765
- updated_at: z.iso.datetime({ offset: true }),
1766
- writeback: z.nullable(zSaleWritebackStatusSchema)
1818
+ external_id: z2.nullable(z2.string()),
1819
+ id: z2.uuid(),
1820
+ items: z2.array(zSaleItemEntitySchema),
1821
+ metadata: z2.nullable(z2.record(z2.string(), z2.unknown())),
1822
+ occurred_at: z2.iso.datetime({ offset: true }),
1823
+ service_id: z2.nullable(z2.uuid()),
1824
+ service_key: z2.nullable(z2.string()),
1825
+ service_label: z2.nullable(z2.string()),
1826
+ services: z2.array(zSaleServiceEntitySchema),
1827
+ sms_automation: z2.nullable(zSaleSmsStatusSchema),
1828
+ sms_consent: z2._default(z2.boolean(), false),
1829
+ sms_consent_granted_at: z2.nullable(z2.iso.datetime({ offset: true })),
1830
+ updated_at: z2.iso.datetime({ offset: true }),
1831
+ writeback: z2.nullable(zSaleWritebackStatusSchema)
1767
1832
  });
1768
1833
 
1769
1834
  // ../tracking-core/src/resources/sales/schema.ts
@@ -1771,11 +1836,11 @@ var saleItemSchema = zSaleItemInputSchema;
1771
1836
  var saleServiceSchema = zSaleServiceInputSchema;
1772
1837
  var currencySchema = zSupportedCurrency;
1773
1838
  var SUPPORTED_CURRENCIES = currencySchema.options;
1774
- var centsSchema = z2.int().check(z2.gte(0));
1775
- var metadataSchema = z2.record(z2.string(), z2.unknown());
1776
- var customerNameSchema = z2.string().check(z2.maxLength(200));
1777
- var customerPhoneSchema = z2.string().check(z2.maxLength(64));
1778
- var customerEmailSchema = z2.email().check(z2.maxLength(320));
1839
+ var centsSchema = z3.int().check(z3.gte(0));
1840
+ var metadataSchema = z3.record(z3.string(), z3.unknown());
1841
+ var customerNameSchema = z3.string().check(z3.maxLength(200));
1842
+ var customerPhoneSchema = z3.string().check(z3.maxLength(64));
1843
+ var customerEmailSchema = z3.email().check(z3.maxLength(320));
1779
1844
  function addIssue(ctx, path, message) {
1780
1845
  ctx.issues.push({ code: "custom", input: ctx.value, path, message });
1781
1846
  }
@@ -1809,24 +1874,24 @@ function refineServiceXor(val, ctx, { requireAmount }) {
1809
1874
  );
1810
1875
  }
1811
1876
  }
1812
- var saleCreateSchema = z2.extend(zSaleCreateSchema, { items: z2._default(z2.array(saleItemSchema), []) }).check((ctx) => refineServiceXor(ctx.value, ctx, { requireAmount: true }));
1813
- var saleUpdateSchema = z2.strictObject({
1814
- description: z2.nullish(z2.string()),
1815
- service: z2.nullish(z2.string()),
1816
- services: z2.nullish(z2.array(saleServiceSchema)),
1817
- currency: z2.optional(currencySchema),
1818
- amount_total_cents: z2.optional(centsSchema),
1819
- occurred_at: z2.optional(z2.iso.datetime()),
1820
- items: z2.optional(z2.array(saleItemSchema)),
1821
- metadata: z2.nullish(metadataSchema),
1822
- customer_name: z2.nullish(customerNameSchema),
1877
+ var saleCreateSchema = z3.extend(zSaleCreateSchema, { items: z3._default(z3.array(saleItemSchema), []) }).check((ctx) => refineServiceXor(ctx.value, ctx, { requireAmount: true }));
1878
+ var saleUpdateSchema = z3.strictObject({
1879
+ description: z3.nullish(z3.string()),
1880
+ service: z3.nullish(z3.string()),
1881
+ services: z3.nullish(z3.array(saleServiceSchema)),
1882
+ currency: z3.optional(currencySchema),
1883
+ amount_total_cents: z3.optional(centsSchema),
1884
+ occurred_at: z3.optional(z3.iso.datetime()),
1885
+ items: z3.optional(z3.array(saleItemSchema)),
1886
+ metadata: z3.nullish(metadataSchema),
1887
+ customer_name: z3.nullish(customerNameSchema),
1823
1888
  // Re-attest when changing a filler-looking name; the server clears the
1824
1889
  // prior attestation whenever `customer_name` changes.
1825
- customer_name_placeholder_confirmed: z2.optional(z2.boolean()),
1826
- customer_phone: z2.nullish(customerPhoneSchema),
1827
- customer_email: z2.nullish(customerEmailSchema),
1890
+ customer_name_placeholder_confirmed: z3.optional(z3.boolean()),
1891
+ customer_phone: z3.nullish(customerPhoneSchema),
1892
+ customer_email: z3.nullish(customerEmailSchema),
1828
1893
  // NOT NULL server-side: omit to leave unchanged (explicit null is rejected).
1829
- sms_consent: z2.optional(z2.boolean())
1894
+ sms_consent: z3.optional(z3.boolean())
1830
1895
  }).check((ctx) => refineServiceXor(ctx.value, ctx, { requireAmount: false }));
1831
1896
  var TRACKING_RANGES = ["24h", "7d", "30d"];
1832
1897
  var NAMED_RANGES = [
@@ -1964,80 +2029,80 @@ function isCalendarError(error, code) {
1964
2029
  }
1965
2030
 
1966
2031
  // ../tracking-core/src/resources/calendar/schema.ts
1967
- import * as z4 from "zod/mini";
2032
+ import * as z5 from "zod/mini";
1968
2033
 
1969
2034
  // ../tracking-core/src/resources/calendar/generated/zod.gen.ts
1970
- import * as z3 from "zod/mini";
1971
- var zBookingAttendee = z3.strictObject({
1972
- display_name: z3.nullish(z3.string().check(z3.maxLength(200))),
1973
- email: z3.email().check(z3.maxLength(320)),
1974
- optional: z3._default(z3.optional(z3.boolean()), false)
2035
+ import * as z4 from "zod/mini";
2036
+ var zBookingAttendee = z4.strictObject({
2037
+ display_name: z4.nullish(z4.string().check(z4.maxLength(200))),
2038
+ email: z4.email().check(z4.maxLength(320)),
2039
+ optional: z4._default(z4.optional(z4.boolean()), false)
1975
2040
  });
1976
- var zBookingCancelSchema = z3.strictObject({
1977
- notify_attendees: z3._default(z3.optional(z3.boolean()), true),
1978
- reason: z3.nullish(z3.string().check(z3.maxLength(500)))
2041
+ var zBookingCancelSchema = z4.strictObject({
2042
+ notify_attendees: z4._default(z4.optional(z4.boolean()), true),
2043
+ reason: z4.nullish(z4.string().check(z4.maxLength(500)))
1979
2044
  });
1980
- var zBookingCustomerInput = z3.strictObject({
1981
- email: z3.email().check(z3.maxLength(320)),
1982
- name: z3.nullish(z3.string().check(z3.maxLength(200))),
1983
- phone: z3.nullish(z3.string().check(z3.maxLength(64))),
1984
- sms_consent: z3._default(z3.optional(z3.boolean()), false)
2045
+ var zBookingCustomerInput = z4.strictObject({
2046
+ email: z4.email().check(z4.maxLength(320)),
2047
+ name: z4.nullish(z4.string().check(z4.maxLength(200))),
2048
+ phone: z4.nullish(z4.string().check(z4.maxLength(64))),
2049
+ sms_consent: z4._default(z4.optional(z4.boolean()), false)
1985
2050
  });
1986
- var zBookingCustomerOutput = z3.strictObject({
1987
- email: z3.email().check(z3.maxLength(320)),
1988
- name: z3.nullable(z3.string().check(z3.maxLength(200))),
1989
- phone: z3.nullable(z3.string().check(z3.maxLength(64))),
1990
- sms_consent: z3._default(z3.boolean(), false)
2051
+ var zBookingCustomerOutput = z4.strictObject({
2052
+ email: z4.email().check(z4.maxLength(320)),
2053
+ name: z4.nullable(z4.string().check(z4.maxLength(200))),
2054
+ phone: z4.nullable(z4.string().check(z4.maxLength(64))),
2055
+ sms_consent: z4._default(z4.boolean(), false)
1991
2056
  });
1992
- var zBookingRescheduleSchema = z3.strictObject({
1993
- duration_minutes: z3.nullish(z3.int().check(z3.gt(0), z3.lte(1440))),
1994
- end_at: z3.nullish(z3.iso.datetime({ offset: true })),
1995
- notify_attendees: z3._default(z3.optional(z3.boolean()), true),
1996
- reason: z3.nullish(z3.string().check(z3.maxLength(500))),
1997
- start_at: z3.iso.datetime({ offset: true }),
1998
- time_zone: z3.string().check(z3.minLength(1), z3.maxLength(64), z3.regex(/^[A-Za-z0-9_+\-\/]+$/))
2057
+ var zBookingRescheduleSchema = z4.strictObject({
2058
+ duration_minutes: z4.nullish(z4.int().check(z4.gt(0), z4.lte(1440))),
2059
+ end_at: z4.nullish(z4.iso.datetime({ offset: true })),
2060
+ notify_attendees: z4._default(z4.optional(z4.boolean()), true),
2061
+ reason: z4.nullish(z4.string().check(z4.maxLength(500))),
2062
+ start_at: z4.iso.datetime({ offset: true }),
2063
+ time_zone: z4.string().check(z4.minLength(1), z4.maxLength(64), z4.regex(/^[A-Za-z0-9_+\-\/]+$/))
1999
2064
  });
2000
- var zBookingResponse = z3.strictObject({
2001
- appointment_type: z3.nullable(z3.string()),
2002
- calendar_key: z3.string(),
2065
+ var zBookingResponse = z4.strictObject({
2066
+ appointment_type: z4.nullable(z4.string()),
2067
+ calendar_key: z4.string(),
2003
2068
  customer: zBookingCustomerOutput,
2004
- end_at: z3.iso.datetime({ offset: true }),
2005
- google_html_link: z3.nullable(z3.string()),
2006
- google_sync_state: z3.string(),
2007
- id: z3.string(),
2008
- manage_token: z3.nullable(z3.string()),
2009
- meet_url: z3.nullable(z3.string()),
2010
- start_at: z3.iso.datetime({ offset: true }),
2011
- status: z3.string(),
2012
- time_zone: z3.string(),
2013
- title: z3.string()
2069
+ end_at: z4.iso.datetime({ offset: true }),
2070
+ google_html_link: z4.nullable(z4.string()),
2071
+ google_sync_state: z4.string(),
2072
+ id: z4.string(),
2073
+ manage_token: z4.nullable(z4.string()),
2074
+ meet_url: z4.nullable(z4.string()),
2075
+ start_at: z4.iso.datetime({ offset: true }),
2076
+ status: z4.string(),
2077
+ time_zone: z4.string(),
2078
+ title: z4.string()
2014
2079
  });
2015
- var zBookingSource = z3.enum(["website", "phone", "walk_in", "import", "operator"]);
2016
- var zBookingMetadata = z3.strictObject({
2017
- custom: z3.nullish(
2018
- z3.record(z3.string(), z3.nullable(z3.union([z3.string(), z3.int(), z3.number(), z3.boolean()])))
2080
+ var zBookingSource = z4.enum(["website", "phone", "walk_in", "import", "operator"]);
2081
+ var zBookingMetadata = z4.strictObject({
2082
+ custom: z4.nullish(
2083
+ z4.record(z4.string(), z4.nullable(z4.union([z4.string(), z4.int(), z4.number(), z4.boolean()])))
2019
2084
  ),
2020
- fbclid: z3.nullish(z3.string().check(z3.maxLength(256))),
2021
- gclid: z3.nullish(z3.string().check(z3.maxLength(256))),
2022
- landing_page: z3.nullish(z3.string().check(z3.maxLength(2048))),
2023
- notes: z3.nullish(z3.string().check(z3.maxLength(2e3))),
2024
- referrer: z3.nullish(z3.string().check(z3.maxLength(2048))),
2025
- schema_version: z3._default(z3.optional(z3.int()), 1),
2026
- service: z3.nullish(z3.string().check(z3.maxLength(64))),
2027
- session_id: z3.nullish(z3.string().check(z3.maxLength(64))),
2028
- source: z3.nullish(zBookingSource),
2029
- utm_campaign: z3.nullish(z3.string().check(z3.maxLength(128))),
2030
- utm_content: z3.nullish(z3.string().check(z3.maxLength(128))),
2031
- utm_medium: z3.nullish(z3.string().check(z3.maxLength(128))),
2032
- utm_source: z3.nullish(z3.string().check(z3.maxLength(128))),
2033
- utm_term: z3.nullish(z3.string().check(z3.maxLength(128))),
2034
- visitor_id: z3.nullish(z3.string().check(z3.maxLength(64)))
2085
+ fbclid: z4.nullish(z4.string().check(z4.maxLength(256))),
2086
+ gclid: z4.nullish(z4.string().check(z4.maxLength(256))),
2087
+ landing_page: z4.nullish(z4.string().check(z4.maxLength(2048))),
2088
+ notes: z4.nullish(z4.string().check(z4.maxLength(2e3))),
2089
+ referrer: z4.nullish(z4.string().check(z4.maxLength(2048))),
2090
+ schema_version: z4._default(z4.optional(z4.int()), 1),
2091
+ service: z4.nullish(z4.string().check(z4.maxLength(64))),
2092
+ session_id: z4.nullish(z4.string().check(z4.maxLength(64))),
2093
+ source: z4.nullish(zBookingSource),
2094
+ utm_campaign: z4.nullish(z4.string().check(z4.maxLength(128))),
2095
+ utm_content: z4.nullish(z4.string().check(z4.maxLength(128))),
2096
+ utm_medium: z4.nullish(z4.string().check(z4.maxLength(128))),
2097
+ utm_source: z4.nullish(z4.string().check(z4.maxLength(128))),
2098
+ utm_term: z4.nullish(z4.string().check(z4.maxLength(128))),
2099
+ visitor_id: z4.nullish(z4.string().check(z4.maxLength(64)))
2035
2100
  });
2036
- var zCustomLocation = z3.strictObject({
2037
- kind: z3.literal("custom"),
2038
- text: z3.string().check(z3.maxLength(1024))
2101
+ var zCustomLocation = z4.strictObject({
2102
+ kind: z4.literal("custom"),
2103
+ text: z4.string().check(z4.maxLength(1024))
2039
2104
  });
2040
- var zErrorCode2 = z3.enum([
2105
+ var zErrorCode2 = z4.enum([
2041
2106
  "missing_credentials",
2042
2107
  "invalid_api_key",
2043
2108
  "not_authenticated",
@@ -2062,66 +2127,66 @@ var zErrorCode2 = z3.enum([
2062
2127
  "rate_limited",
2063
2128
  "internal_error"
2064
2129
  ]);
2065
- var zMeetLocation = z3.strictObject({
2066
- kind: z3.literal("google_meet")
2130
+ var zMeetLocation = z4.strictObject({
2131
+ kind: z4.literal("google_meet")
2067
2132
  });
2068
- var zPhoneLocation = z3.strictObject({
2069
- kind: z3.literal("phone"),
2070
- phone: z3.string().check(z3.maxLength(64))
2133
+ var zPhoneLocation = z4.strictObject({
2134
+ kind: z4.literal("phone"),
2135
+ phone: z4.string().check(z4.maxLength(64))
2071
2136
  });
2072
- var zPhysicalLocation = z3.strictObject({
2073
- address: z3.string().check(z3.maxLength(1024)),
2074
- kind: z3.literal("physical")
2137
+ var zPhysicalLocation = z4.strictObject({
2138
+ address: z4.string().check(z4.maxLength(1024)),
2139
+ kind: z4.literal("physical")
2075
2140
  });
2076
- var zReminderMethod = z3.enum(["email", "popup"]);
2077
- var zBookingReminder = z3.strictObject({
2141
+ var zReminderMethod = z4.enum(["email", "popup"]);
2142
+ var zBookingReminder = z4.strictObject({
2078
2143
  method: zReminderMethod,
2079
- minutes_before: z3.int().check(z3.gte(0), z3.lte(40320))
2144
+ minutes_before: z4.int().check(z4.gte(0), z4.lte(40320))
2080
2145
  });
2081
- var zBookingReminders = z3.strictObject({
2082
- overrides: z3.optional(z3.array(zBookingReminder).check(z3.maxLength(5))),
2083
- use_calendar_defaults: z3._default(z3.optional(z3.boolean()), true)
2146
+ var zBookingReminders = z4.strictObject({
2147
+ overrides: z4.optional(z4.array(zBookingReminder).check(z4.maxLength(5))),
2148
+ use_calendar_defaults: z4._default(z4.optional(z4.boolean()), true)
2084
2149
  });
2085
- var zBookingCreateSchema = z3.strictObject({
2086
- appointment_type: z3.nullish(z3.string().check(z3.maxLength(64))),
2087
- attendees: z3.optional(z3.array(zBookingAttendee).check(z3.maxLength(20))),
2088
- buffer_after_minutes: z3._default(z3.optional(z3.int().check(z3.gte(0), z3.lte(1440))), 0),
2089
- buffer_before_minutes: z3._default(z3.optional(z3.int().check(z3.gte(0), z3.lte(1440))), 0),
2090
- calendar_key: z3.string().check(z3.minLength(1), z3.maxLength(64)),
2150
+ var zBookingCreateSchema = z4.strictObject({
2151
+ appointment_type: z4.nullish(z4.string().check(z4.maxLength(64))),
2152
+ attendees: z4.optional(z4.array(zBookingAttendee).check(z4.maxLength(20))),
2153
+ buffer_after_minutes: z4._default(z4.optional(z4.int().check(z4.gte(0), z4.lte(1440))), 0),
2154
+ buffer_before_minutes: z4._default(z4.optional(z4.int().check(z4.gte(0), z4.lte(1440))), 0),
2155
+ calendar_key: z4.string().check(z4.minLength(1), z4.maxLength(64)),
2091
2156
  customer: zBookingCustomerInput,
2092
- description: z3.nullish(z3.string().check(z3.maxLength(8e3))),
2093
- duration_minutes: z3.nullish(z3.int().check(z3.gt(0), z3.lte(1440))),
2094
- end_at: z3.nullish(z3.iso.datetime({ offset: true })),
2095
- idempotency_key: z3.nullish(z3.string().check(z3.maxLength(128))),
2096
- location: z3.nullish(z3.union([zMeetLocation, zPhysicalLocation, zPhoneLocation, zCustomLocation])),
2097
- metadata: z3.nullish(zBookingMetadata),
2098
- reminders: z3.nullish(zBookingReminders),
2099
- send_invites: z3._default(z3.optional(z3.boolean()), true),
2100
- start_at: z3.iso.datetime({ offset: true }),
2101
- time_zone: z3.string().check(z3.minLength(1), z3.maxLength(64), z3.regex(/^[A-Za-z0-9_+\-\/]+$/)),
2102
- title: z3.nullish(z3.string().check(z3.maxLength(300)))
2157
+ description: z4.nullish(z4.string().check(z4.maxLength(8e3))),
2158
+ duration_minutes: z4.nullish(z4.int().check(z4.gt(0), z4.lte(1440))),
2159
+ end_at: z4.nullish(z4.iso.datetime({ offset: true })),
2160
+ idempotency_key: z4.nullish(z4.string().check(z4.maxLength(128))),
2161
+ location: z4.nullish(z4.union([zMeetLocation, zPhysicalLocation, zPhoneLocation, zCustomLocation])),
2162
+ metadata: z4.nullish(zBookingMetadata),
2163
+ reminders: z4.nullish(zBookingReminders),
2164
+ send_invites: z4._default(z4.optional(z4.boolean()), true),
2165
+ start_at: z4.iso.datetime({ offset: true }),
2166
+ time_zone: z4.string().check(z4.minLength(1), z4.maxLength(64), z4.regex(/^[A-Za-z0-9_+\-\/]+$/)),
2167
+ title: z4.nullish(z4.string().check(z4.maxLength(300)))
2103
2168
  });
2104
- var zValidationError2 = z3.object({
2105
- ctx: z3.optional(z3.record(z3.string(), z3.unknown())),
2106
- input: z3.optional(z3.unknown()),
2107
- loc: z3.array(z3.union([z3.string(), z3.int()])),
2108
- msg: z3.string(),
2109
- type: z3.string()
2169
+ var zValidationError2 = z4.object({
2170
+ ctx: z4.optional(z4.record(z4.string(), z4.unknown())),
2171
+ input: z4.optional(z4.unknown()),
2172
+ loc: z4.array(z4.union([z4.string(), z4.int()])),
2173
+ msg: z4.string(),
2174
+ type: z4.string()
2110
2175
  });
2111
- var zHttpValidationError2 = z3.object({
2112
- detail: z3.optional(z3.array(zValidationError2))
2176
+ var zHttpValidationError2 = z4.object({
2177
+ detail: z4.optional(z4.array(zValidationError2))
2113
2178
  });
2114
- var zValidationErrorItem2 = z3.object({
2115
- loc: z3.array(z3.union([z3.string(), z3.int()])),
2116
- msg: z3.string(),
2117
- type: z3.string()
2179
+ var zValidationErrorItem2 = z4.object({
2180
+ loc: z4.array(z4.union([z4.string(), z4.int()])),
2181
+ msg: z4.string(),
2182
+ type: z4.string()
2118
2183
  });
2119
- var zApiErrorSchema2 = z3.object({
2184
+ var zApiErrorSchema2 = z4.object({
2120
2185
  code: zErrorCode2,
2121
- context: z3._default(z3.nullish(z3.record(z3.string(), z3.unknown())), null),
2122
- detail: z3.string(),
2123
- errors: z3._default(z3.nullish(z3.array(zValidationErrorItem2)), null),
2124
- request_id: z3._default(z3.nullish(z3.string()), null)
2186
+ context: z4._default(z4.nullish(z4.record(z4.string(), z4.unknown())), null),
2187
+ detail: z4.string(),
2188
+ errors: z4._default(z4.nullish(z4.array(zValidationErrorItem2)), null),
2189
+ request_id: z4._default(z4.nullish(z4.string()), null)
2125
2190
  });
2126
2191
 
2127
2192
  // ../tracking-core/src/resources/calendar/schema.ts
@@ -2158,29 +2223,29 @@ function isKnownTimeZone(timeZone) {
2158
2223
  return false;
2159
2224
  }
2160
2225
  }
2161
- var ianaTz = z4.string().check(
2162
- z4.minLength(1),
2163
- z4.maxLength(64),
2164
- z4.regex(/^[A-Za-z0-9_+\-/]+$/),
2165
- z4.refine(isKnownTimeZone, { error: "unknown IANA time zone" })
2226
+ var ianaTz = z5.string().check(
2227
+ z5.minLength(1),
2228
+ z5.maxLength(64),
2229
+ z5.regex(/^[A-Za-z0-9_+\-/]+$/),
2230
+ z5.refine(isKnownTimeZone, { error: "unknown IANA time zone" })
2166
2231
  );
2167
2232
  var bookingAttendeeSchema = zBookingAttendee;
2168
2233
  var bookingReminderSchema = zBookingReminder;
2169
2234
  var bookingCustomerSchema = zBookingCustomerInput;
2170
- var bookingMetadataSchema = z4.extend(zBookingMetadata, {
2171
- custom: z4.nullish(
2172
- z4.record(z4.string(), z4.union([z4.string(), z4.int(), z4.number(), z4.boolean(), z4.null()]))
2235
+ var bookingMetadataSchema = z5.extend(zBookingMetadata, {
2236
+ custom: z5.nullish(
2237
+ z5.record(z5.string(), z5.union([z5.string(), z5.int(), z5.number(), z5.boolean(), z5.null()]))
2173
2238
  )
2174
2239
  });
2175
- var bookingLocationSchema = z4.union([
2240
+ var bookingLocationSchema = z5.union([
2176
2241
  zMeetLocation,
2177
2242
  zPhysicalLocation,
2178
2243
  zPhoneLocation,
2179
2244
  zCustomLocation
2180
2245
  ]);
2181
- var bookingLocationNullableSchema = z4.union([
2246
+ var bookingLocationNullableSchema = z5.union([
2182
2247
  ...bookingLocationSchema.def.options,
2183
- z4.null()
2248
+ z5.null()
2184
2249
  ]);
2185
2250
  function addIssue2(ctx, path, message) {
2186
2251
  ctx.issues.push({ code: "custom", input: ctx.value, path, message });
@@ -2196,26 +2261,26 @@ function refineEndXor(value, ctx) {
2196
2261
  addIssue2(ctx, ["end_at"], "end_at must be after start_at");
2197
2262
  }
2198
2263
  }
2199
- var bookingRemindersSchema = z4.extend(zBookingReminders, {
2200
- overrides: z4._default(
2201
- z4.array(bookingReminderSchema).check(z4.maxLength(MAX_REMINDER_OVERRIDES)),
2264
+ var bookingRemindersSchema = z5.extend(zBookingReminders, {
2265
+ overrides: z5._default(
2266
+ z5.array(bookingReminderSchema).check(z5.maxLength(MAX_REMINDER_OVERRIDES)),
2202
2267
  []
2203
2268
  )
2204
2269
  });
2205
- var bookingCreateSchema = z4.extend(zBookingCreateSchema, {
2270
+ var bookingCreateSchema = z5.extend(zBookingCreateSchema, {
2206
2271
  time_zone: ianaTz,
2207
2272
  // The generated field is `z.union([...variants]).nullish()`, which nests one
2208
2273
  // `anyOf` inside another; Pydantic's `BookingLocation | None` flattens to a
2209
2274
  // single list and the drift snapshot compares structure. Override with the
2210
2275
  // flattened union.
2211
- location: z4.optional(bookingLocationNullableSchema),
2212
- attendees: z4._default(z4.array(bookingAttendeeSchema).check(z4.maxLength(MAX_ATTENDEES)), []),
2276
+ location: z5.optional(bookingLocationNullableSchema),
2277
+ attendees: z5._default(z5.array(bookingAttendeeSchema).check(z5.maxLength(MAX_ATTENDEES)), []),
2213
2278
  // These reference the un-composed generated schemas; generation can't nest
2214
2279
  // our compositions into its own output.
2215
- reminders: z4.nullish(bookingRemindersSchema),
2216
- metadata: z4.nullish(bookingMetadataSchema)
2280
+ reminders: z5.nullish(bookingRemindersSchema),
2281
+ metadata: z5.nullish(bookingMetadataSchema)
2217
2282
  }).check((ctx) => refineEndXor(ctx.value, ctx));
2218
- var bookingRescheduleSchema = z4.extend(zBookingRescheduleSchema, { time_zone: ianaTz }).check((ctx) => refineEndXor(ctx.value, ctx));
2283
+ var bookingRescheduleSchema = z5.extend(zBookingRescheduleSchema, { time_zone: ianaTz }).check((ctx) => refineEndXor(ctx.value, ctx));
2219
2284
  var bookingCancelSchema = zBookingCancelSchema;
2220
2285
 
2221
2286
  // ../tracking-core/src/resources/calendar/slots.ts