@aranova/tracking-react 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.
- package/dist/client.d.mts +9 -3
- package/dist/client.d.ts +9 -3
- package/dist/client.js +549 -197
- package/dist/client.js.map +1 -1
- package/dist/client.mjs +549 -197
- package/dist/client.mjs.map +1 -1
- package/dist/index.d.mts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +206 -141
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +206 -141
- package/dist/index.mjs.map +1 -1
- package/dist/{ingest-typed-BdKmlouW.d.ts → ingest-typed-MBuMe9Pn.d.ts} +94 -2
- package/dist/{ingest-typed-Bo7WPmpU.d.mts → ingest-typed-UA13xTfI.d.mts} +94 -2
- package/dist/{phone-utils-CubQif9Z.d.mts → phone-utils-C0ds6cqZ.d.mts} +6 -0
- package/dist/{phone-utils-CubQif9Z.d.ts → phone-utils-C0ds6cqZ.d.ts} +6 -0
- package/dist/phone.d.mts +1 -1
- package/dist/phone.d.ts +1 -1
- package/dist/{sales-C7Xjsq-a.d.mts → sales-BuKD_bdo.d.mts} +1 -1
- package/dist/{sales-Bhh9mLBA.d.ts → sales-C3O_xxZ_.d.ts} +1 -1
- package/dist/sales.d.mts +2 -2
- package/dist/sales.d.ts +2 -2
- package/dist/sales.js +6 -1
- package/dist/sales.js.map +1 -1
- package/dist/sales.mjs +6 -1
- package/dist/sales.mjs.map +1 -1
- package/dist/{tracking-config-runtime-D7prdTE1.d.mts → tracking-config-runtime-C6H7ofmo.d.mts} +6 -0
- package/dist/{tracking-config-runtime-D7prdTE1.d.ts → tracking-config-runtime-C6H7ofmo.d.ts} +6 -0
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -226,6 +226,7 @@ var TRACKING_CAPABILITIES = [
|
|
|
226
226
|
"consent_controls",
|
|
227
227
|
"conversion_goals_auto",
|
|
228
228
|
"conversion_goals_manual",
|
|
229
|
+
"cross_site_linker",
|
|
229
230
|
"cta_click_capture",
|
|
230
231
|
"form_capture",
|
|
231
232
|
"phone_click_capture",
|
|
@@ -252,6 +253,9 @@ function readDomMarkers() {
|
|
|
252
253
|
return found;
|
|
253
254
|
}
|
|
254
255
|
|
|
256
|
+
// ../tracking-core/src/cross-site-link.ts
|
|
257
|
+
import * as z from "zod/mini";
|
|
258
|
+
|
|
255
259
|
// ../tracking-core/src/tracking.ts
|
|
256
260
|
var TRACKING_COOKIE_MAX_AGE_SECONDS = 7776e3;
|
|
257
261
|
var TRACKING_PARAM_KEYS = [
|
|
@@ -496,6 +500,43 @@ function buildLandingPayloadFields(sessionId, override) {
|
|
|
496
500
|
};
|
|
497
501
|
}
|
|
498
502
|
|
|
503
|
+
// ../tracking-core/src/cross-site-link.ts
|
|
504
|
+
var LINK_PARAM = "_arv";
|
|
505
|
+
var LINK_TOKEN_TTL_MS = 5 * 60 * 1e3;
|
|
506
|
+
var FUTURE_SKEW_MS = 60 * 1e3;
|
|
507
|
+
var CARRIED_KEYS = {
|
|
508
|
+
g: "gclid",
|
|
509
|
+
w: "wbraid",
|
|
510
|
+
gb: "gbraid",
|
|
511
|
+
f: "fbclid",
|
|
512
|
+
y: "ylpcid"
|
|
513
|
+
};
|
|
514
|
+
var CARRIED_ENTRIES = Object.entries(CARRIED_KEYS);
|
|
515
|
+
var identifier = z.string().check(z.minLength(1), z.maxLength(128));
|
|
516
|
+
var optionalIdentifier = z.optional(identifier);
|
|
517
|
+
var linkTokenSchema = z.object({
|
|
518
|
+
v: identifier,
|
|
519
|
+
s: identifier,
|
|
520
|
+
// Epoch ms in base36.
|
|
521
|
+
t: z.string().check(z.regex(/^[0-9a-z]{1,12}$/)),
|
|
522
|
+
g: optionalIdentifier,
|
|
523
|
+
w: optionalIdentifier,
|
|
524
|
+
gb: optionalIdentifier,
|
|
525
|
+
f: optionalIdentifier,
|
|
526
|
+
fc: optionalIdentifier,
|
|
527
|
+
y: optionalIdentifier
|
|
528
|
+
});
|
|
529
|
+
function stripLinkParam(url) {
|
|
530
|
+
try {
|
|
531
|
+
const parsed = new URL(url, typeof window === "undefined" ? void 0 : window.location.href);
|
|
532
|
+
if (!parsed.searchParams.has(LINK_PARAM)) return url;
|
|
533
|
+
parsed.searchParams.delete(LINK_PARAM);
|
|
534
|
+
return parsed.href;
|
|
535
|
+
} catch {
|
|
536
|
+
return url;
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
|
|
499
540
|
// ../tracking-core/src/payloads.ts
|
|
500
541
|
function createTrackingClientContext(surface, input = {}) {
|
|
501
542
|
return {
|
|
@@ -535,6 +576,7 @@ function createTrackingSessionUpsertPayload(trackingParams, input, context) {
|
|
|
535
576
|
};
|
|
536
577
|
}
|
|
537
578
|
function createTrackingEventCreatePayload(trackingParams, input, context) {
|
|
579
|
+
const pageUrl = input.pageUrl ?? (typeof window === "undefined" ? null : window.location.href);
|
|
538
580
|
return {
|
|
539
581
|
session_id: input.sessionId,
|
|
540
582
|
event_type: input.eventType,
|
|
@@ -545,7 +587,7 @@ function createTrackingEventCreatePayload(trackingParams, input, context) {
|
|
|
545
587
|
fbclid: trackingParams.fbclid,
|
|
546
588
|
fbc: getFbcCookie(),
|
|
547
589
|
fbp: getFbpCookie(),
|
|
548
|
-
page_url:
|
|
590
|
+
page_url: pageUrl === null ? null : stripLinkParam(pageUrl),
|
|
549
591
|
metadata: input.metadata ?? null,
|
|
550
592
|
context
|
|
551
593
|
};
|
|
@@ -657,7 +699,8 @@ function parseConversionConfig(raw) {
|
|
|
657
699
|
gtag_ids: isStringMap(obj.gtag_ids) ? obj.gtag_ids : {},
|
|
658
700
|
meta_pixel_ids: isStringMap(obj.meta_pixel_ids) ? obj.meta_pixel_ids : {},
|
|
659
701
|
services,
|
|
660
|
-
goals
|
|
702
|
+
goals,
|
|
703
|
+
linked_hostnames: Array.isArray(obj.linked_hostnames) ? obj.linked_hostnames.filter((h) => typeof h === "string" && h.length > 0) : []
|
|
661
704
|
};
|
|
662
705
|
}
|
|
663
706
|
var CACHE_PREFIX = "_aranova_cfg_";
|
|
@@ -741,6 +784,7 @@ function resolveConversionConfig(options) {
|
|
|
741
784
|
getFiring: (key) => goalsByKey.get(key)?.firing ?? null,
|
|
742
785
|
getGoal: (key) => goalsByKey.get(key) ?? null,
|
|
743
786
|
listGoals: () => [...goalsByKey.values()],
|
|
787
|
+
linkedHostnames: () => current?.linked_hostnames ?? [],
|
|
744
788
|
current: () => current,
|
|
745
789
|
isReady: () => current !== null,
|
|
746
790
|
onResolve: (listener) => {
|
|
@@ -948,7 +992,7 @@ function validateConfig(config, ref) {
|
|
|
948
992
|
function pageViewSnapshot() {
|
|
949
993
|
if (typeof window === "undefined" || typeof document === "undefined") return null;
|
|
950
994
|
return {
|
|
951
|
-
href: window.location.href,
|
|
995
|
+
href: stripLinkParam(window.location.href),
|
|
952
996
|
title: document.title || null,
|
|
953
997
|
referrer: document.referrer || null
|
|
954
998
|
};
|
|
@@ -1099,6 +1143,10 @@ var TrackingConfigRuntime = class {
|
|
|
1099
1143
|
listGoals() {
|
|
1100
1144
|
return this.current?.goals ?? [];
|
|
1101
1145
|
}
|
|
1146
|
+
/** Sibling hostnames for the linker — read from the cached object even while unconfirmed. */
|
|
1147
|
+
linkedHostnames() {
|
|
1148
|
+
return this.current?.linked_hostnames ?? [];
|
|
1149
|
+
}
|
|
1102
1150
|
async revalidateNow() {
|
|
1103
1151
|
try {
|
|
1104
1152
|
const headers = {};
|
|
@@ -1342,6 +1390,18 @@ var EVENT_SEMANTICS = {
|
|
|
1342
1390
|
category: "engagement",
|
|
1343
1391
|
outcomeRole: "engagement",
|
|
1344
1392
|
clientVisibility: "simple"
|
|
1393
|
+
},
|
|
1394
|
+
site_link_click: {
|
|
1395
|
+
label: "Left for sibling site",
|
|
1396
|
+
category: "page",
|
|
1397
|
+
outcomeRole: "navigation",
|
|
1398
|
+
clientVisibility: "detailed"
|
|
1399
|
+
},
|
|
1400
|
+
site_link_arrival: {
|
|
1401
|
+
label: "Arrived from sibling site",
|
|
1402
|
+
category: "page",
|
|
1403
|
+
outcomeRole: "navigation",
|
|
1404
|
+
clientVisibility: "simple"
|
|
1345
1405
|
}
|
|
1346
1406
|
};
|
|
1347
1407
|
function getEventSemantics(eventName) {
|
|
@@ -1583,11 +1643,11 @@ function createSalesClient(config) {
|
|
|
1583
1643
|
}
|
|
1584
1644
|
|
|
1585
1645
|
// ../tracking-core/src/resources/sales/schema.ts
|
|
1586
|
-
import * as
|
|
1646
|
+
import * as z3 from "zod/mini";
|
|
1587
1647
|
|
|
1588
1648
|
// ../tracking-core/src/resources/sales/generated/zod.gen.ts
|
|
1589
|
-
import * as
|
|
1590
|
-
var zErrorCode =
|
|
1649
|
+
import * as z2 from "zod/mini";
|
|
1650
|
+
var zErrorCode = z2.enum([
|
|
1591
1651
|
"missing_credentials",
|
|
1592
1652
|
"invalid_api_key",
|
|
1593
1653
|
"not_authenticated",
|
|
@@ -1612,36 +1672,36 @@ var zErrorCode = z.enum([
|
|
|
1612
1672
|
"rate_limited",
|
|
1613
1673
|
"internal_error"
|
|
1614
1674
|
]);
|
|
1615
|
-
var zSaleItemEntitySchema =
|
|
1616
|
-
category:
|
|
1617
|
-
external_item_id:
|
|
1618
|
-
id:
|
|
1619
|
-
name:
|
|
1620
|
-
quantity:
|
|
1621
|
-
unit_cost_cents:
|
|
1622
|
-
unit_price_cents:
|
|
1675
|
+
var zSaleItemEntitySchema = z2.object({
|
|
1676
|
+
category: z2.nullable(z2.string()),
|
|
1677
|
+
external_item_id: z2.nullable(z2.string()),
|
|
1678
|
+
id: z2.uuid(),
|
|
1679
|
+
name: z2.nullable(z2.string()),
|
|
1680
|
+
quantity: z2.string().check(z2.regex(/^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$/)),
|
|
1681
|
+
unit_cost_cents: z2.nullable(z2.int()),
|
|
1682
|
+
unit_price_cents: z2.int()
|
|
1623
1683
|
});
|
|
1624
|
-
var zSaleItemInputSchema =
|
|
1625
|
-
category:
|
|
1626
|
-
external_item_id:
|
|
1627
|
-
name:
|
|
1628
|
-
quantity:
|
|
1629
|
-
unit_cost_cents:
|
|
1630
|
-
unit_price_cents:
|
|
1684
|
+
var zSaleItemInputSchema = z2.strictObject({
|
|
1685
|
+
category: z2.nullish(z2.string()),
|
|
1686
|
+
external_item_id: z2.nullish(z2.string()),
|
|
1687
|
+
name: z2.nullish(z2.string()),
|
|
1688
|
+
quantity: z2.string().check(z2.regex(/^\d+(\.\d{1,3})?$/)),
|
|
1689
|
+
unit_cost_cents: z2.nullish(z2.int().check(z2.gte(0))),
|
|
1690
|
+
unit_price_cents: z2.int().check(z2.gte(0))
|
|
1631
1691
|
});
|
|
1632
|
-
var zSaleServiceEntitySchema =
|
|
1633
|
-
amount_cents:
|
|
1634
|
-
id:
|
|
1635
|
-
mapped:
|
|
1636
|
-
service_id:
|
|
1637
|
-
service_key:
|
|
1638
|
-
service_label:
|
|
1692
|
+
var zSaleServiceEntitySchema = z2.object({
|
|
1693
|
+
amount_cents: z2.int(),
|
|
1694
|
+
id: z2.uuid(),
|
|
1695
|
+
mapped: z2.nullable(z2.boolean()),
|
|
1696
|
+
service_id: z2.uuid(),
|
|
1697
|
+
service_key: z2.string(),
|
|
1698
|
+
service_label: z2.string()
|
|
1639
1699
|
});
|
|
1640
|
-
var zSaleServiceInputSchema =
|
|
1641
|
-
amount_cents:
|
|
1642
|
-
service:
|
|
1700
|
+
var zSaleServiceInputSchema = z2.strictObject({
|
|
1701
|
+
amount_cents: z2.int().check(z2.gte(0)),
|
|
1702
|
+
service: z2.string()
|
|
1643
1703
|
});
|
|
1644
|
-
var zSmsAutomationState =
|
|
1704
|
+
var zSmsAutomationState = z2.enum([
|
|
1645
1705
|
"needs_check",
|
|
1646
1706
|
"failed",
|
|
1647
1707
|
"undelivered",
|
|
@@ -1653,7 +1713,7 @@ var zSmsAutomationState = z.enum([
|
|
|
1653
1713
|
"eligible",
|
|
1654
1714
|
"not_applicable"
|
|
1655
1715
|
]);
|
|
1656
|
-
var zSmsWithheldReason =
|
|
1716
|
+
var zSmsWithheldReason = z2.enum([
|
|
1657
1717
|
"automation_disabled",
|
|
1658
1718
|
"sms_disabled",
|
|
1659
1719
|
"no_phone",
|
|
@@ -1666,77 +1726,82 @@ var zSmsWithheldReason = z.enum([
|
|
|
1666
1726
|
"sender_not_ready",
|
|
1667
1727
|
"missing_review_url",
|
|
1668
1728
|
"no_handler",
|
|
1669
|
-
"dispatch_already_recorded"
|
|
1729
|
+
"dispatch_already_recorded",
|
|
1730
|
+
"text_back_disabled",
|
|
1731
|
+
"number_not_active",
|
|
1732
|
+
"a2p_registration_required",
|
|
1733
|
+
"alert_recipient_cannot_receive_sms",
|
|
1734
|
+
"line_type_unresolved"
|
|
1670
1735
|
]);
|
|
1671
|
-
var zSaleSmsStatusSchema =
|
|
1672
|
-
can_send_now:
|
|
1673
|
-
last_message_at:
|
|
1674
|
-
reason_detail:
|
|
1736
|
+
var zSaleSmsStatusSchema = z2.object({
|
|
1737
|
+
can_send_now: z2._default(z2.boolean(), false),
|
|
1738
|
+
last_message_at: z2.nullable(z2.iso.datetime({ offset: true })),
|
|
1739
|
+
reason_detail: z2.nullable(z2.string()),
|
|
1675
1740
|
state: zSmsAutomationState,
|
|
1676
|
-
suppressed_by_other_sale:
|
|
1677
|
-
withheld_reason:
|
|
1741
|
+
suppressed_by_other_sale: z2._default(z2.boolean(), false),
|
|
1742
|
+
withheld_reason: z2.nullable(zSmsWithheldReason)
|
|
1678
1743
|
});
|
|
1679
|
-
var zSupportedCurrency =
|
|
1680
|
-
var zTrackingEnvironment =
|
|
1681
|
-
var zSaleCreateSchema =
|
|
1682
|
-
amount_total_cents:
|
|
1744
|
+
var zSupportedCurrency = z2.enum(["USD", "CAD"]);
|
|
1745
|
+
var zTrackingEnvironment = z2.enum(["production", "development"]);
|
|
1746
|
+
var zSaleCreateSchema = z2.strictObject({
|
|
1747
|
+
amount_total_cents: z2.nullish(z2.int().check(z2.gte(0))),
|
|
1683
1748
|
currency: zSupportedCurrency,
|
|
1684
|
-
customer_email:
|
|
1685
|
-
customer_name:
|
|
1686
|
-
customer_phone:
|
|
1687
|
-
description:
|
|
1688
|
-
environment:
|
|
1689
|
-
external_id:
|
|
1690
|
-
items:
|
|
1691
|
-
metadata:
|
|
1692
|
-
occurred_at:
|
|
1693
|
-
service:
|
|
1694
|
-
services:
|
|
1695
|
-
sms_consent:
|
|
1749
|
+
customer_email: z2.nullish(z2.email().check(z2.maxLength(320))),
|
|
1750
|
+
customer_name: z2.nullish(z2.string().check(z2.maxLength(200))),
|
|
1751
|
+
customer_phone: z2.nullish(z2.string().check(z2.maxLength(64))),
|
|
1752
|
+
description: z2.nullish(z2.string()),
|
|
1753
|
+
environment: z2._default(z2.optional(zTrackingEnvironment), "production"),
|
|
1754
|
+
external_id: z2.nullish(z2.string()),
|
|
1755
|
+
items: z2.optional(z2.array(zSaleItemInputSchema)),
|
|
1756
|
+
metadata: z2.nullish(z2.record(z2.string(), z2.unknown())),
|
|
1757
|
+
occurred_at: z2.iso.datetime({ offset: true }),
|
|
1758
|
+
service: z2.nullish(z2.string()),
|
|
1759
|
+
services: z2.nullish(z2.array(zSaleServiceInputSchema)),
|
|
1760
|
+
sms_consent: z2.nullish(z2.boolean())
|
|
1696
1761
|
});
|
|
1697
|
-
var zValidationError =
|
|
1698
|
-
ctx:
|
|
1699
|
-
input:
|
|
1700
|
-
loc:
|
|
1701
|
-
msg:
|
|
1702
|
-
type:
|
|
1762
|
+
var zValidationError = z2.object({
|
|
1763
|
+
ctx: z2.optional(z2.record(z2.string(), z2.unknown())),
|
|
1764
|
+
input: z2.optional(z2.unknown()),
|
|
1765
|
+
loc: z2.array(z2.union([z2.string(), z2.int()])),
|
|
1766
|
+
msg: z2.string(),
|
|
1767
|
+
type: z2.string()
|
|
1703
1768
|
});
|
|
1704
|
-
var zHttpValidationError =
|
|
1705
|
-
detail:
|
|
1769
|
+
var zHttpValidationError = z2.object({
|
|
1770
|
+
detail: z2.optional(z2.array(zValidationError))
|
|
1706
1771
|
});
|
|
1707
|
-
var zValidationErrorItem =
|
|
1708
|
-
loc:
|
|
1709
|
-
msg:
|
|
1710
|
-
type:
|
|
1772
|
+
var zValidationErrorItem = z2.object({
|
|
1773
|
+
loc: z2.array(z2.union([z2.string(), z2.int()])),
|
|
1774
|
+
msg: z2.string(),
|
|
1775
|
+
type: z2.string()
|
|
1711
1776
|
});
|
|
1712
|
-
var zApiErrorSchema =
|
|
1777
|
+
var zApiErrorSchema = z2.object({
|
|
1713
1778
|
code: zErrorCode,
|
|
1714
|
-
context:
|
|
1715
|
-
detail:
|
|
1716
|
-
errors:
|
|
1717
|
-
request_id:
|
|
1779
|
+
context: z2._default(z2.nullish(z2.record(z2.string(), z2.unknown())), null),
|
|
1780
|
+
detail: z2.string(),
|
|
1781
|
+
errors: z2._default(z2.nullish(z2.array(zValidationErrorItem)), null),
|
|
1782
|
+
request_id: z2._default(z2.nullish(z2.string()), null)
|
|
1718
1783
|
});
|
|
1719
|
-
var zWritebackEmailSource =
|
|
1720
|
-
var zWritebackEnrichmentStatus =
|
|
1721
|
-
var zWritebackSaleUploadCounts =
|
|
1722
|
-
failed:
|
|
1723
|
-
pending:
|
|
1724
|
-
skipped:
|
|
1725
|
-
submitted:
|
|
1726
|
-
total:
|
|
1727
|
-
uploaded:
|
|
1784
|
+
var zWritebackEmailSource = z2.enum(["NONE", "SALE", "CUSTOMER", "HARVESTED"]);
|
|
1785
|
+
var zWritebackEnrichmentStatus = z2.enum(["NONE", "MATCHED", "AMBIGUOUS"]);
|
|
1786
|
+
var zWritebackSaleUploadCounts = z2.object({
|
|
1787
|
+
failed: z2._default(z2.int(), 0),
|
|
1788
|
+
pending: z2._default(z2.int(), 0),
|
|
1789
|
+
skipped: z2._default(z2.int(), 0),
|
|
1790
|
+
submitted: z2._default(z2.int(), 0),
|
|
1791
|
+
total: z2._default(z2.int(), 0),
|
|
1792
|
+
uploaded: z2._default(z2.int(), 0)
|
|
1728
1793
|
});
|
|
1729
|
-
var zSaleWritebackStatusSchema =
|
|
1730
|
-
blocked_reason:
|
|
1731
|
-
can_dispatch:
|
|
1732
|
-
email_source:
|
|
1733
|
-
enrichment_status:
|
|
1734
|
-
gclid_attached:
|
|
1735
|
-
identifiers_sent:
|
|
1736
|
-
mapped_service_ids:
|
|
1737
|
-
matched_submit_count:
|
|
1738
|
-
needs_force:
|
|
1739
|
-
rollup:
|
|
1794
|
+
var zSaleWritebackStatusSchema = z2.object({
|
|
1795
|
+
blocked_reason: z2.nullable(z2.string()),
|
|
1796
|
+
can_dispatch: z2._default(z2.boolean(), false),
|
|
1797
|
+
email_source: z2.nullable(zWritebackEmailSource),
|
|
1798
|
+
enrichment_status: z2.nullable(zWritebackEnrichmentStatus),
|
|
1799
|
+
gclid_attached: z2._default(z2.boolean(), false),
|
|
1800
|
+
identifiers_sent: z2.nullable(z2.string()),
|
|
1801
|
+
mapped_service_ids: z2.array(z2.uuid()),
|
|
1802
|
+
matched_submit_count: z2.nullable(z2.int()),
|
|
1803
|
+
needs_force: z2._default(z2.boolean(), false),
|
|
1804
|
+
rollup: z2.enum([
|
|
1740
1805
|
"failed",
|
|
1741
1806
|
"skipped",
|
|
1742
1807
|
"pending",
|
|
@@ -1746,37 +1811,37 @@ var zSaleWritebackStatusSchema = z.object({
|
|
|
1746
1811
|
"out_of_window",
|
|
1747
1812
|
"blocked"
|
|
1748
1813
|
]),
|
|
1749
|
-
stale:
|
|
1750
|
-
uncovered_service_ids:
|
|
1814
|
+
stale: z2._default(z2.boolean(), false),
|
|
1815
|
+
uncovered_service_ids: z2.array(z2.uuid()),
|
|
1751
1816
|
uploads: zWritebackSaleUploadCounts
|
|
1752
1817
|
});
|
|
1753
|
-
var zSaleEntitySchema =
|
|
1754
|
-
amount_total_cents:
|
|
1755
|
-
business_id:
|
|
1756
|
-
business_name:
|
|
1757
|
-
created_at:
|
|
1758
|
-
currency:
|
|
1759
|
-
customer_email:
|
|
1760
|
-
customer_name:
|
|
1761
|
-
customer_name_placeholder_confirmed:
|
|
1762
|
-
customer_name_placeholder_confirmed_at:
|
|
1763
|
-
customer_phone:
|
|
1764
|
-
description:
|
|
1818
|
+
var zSaleEntitySchema = z2.object({
|
|
1819
|
+
amount_total_cents: z2.int(),
|
|
1820
|
+
business_id: z2.uuid(),
|
|
1821
|
+
business_name: z2.nullable(z2.string()),
|
|
1822
|
+
created_at: z2.iso.datetime({ offset: true }),
|
|
1823
|
+
currency: z2.string(),
|
|
1824
|
+
customer_email: z2.nullable(z2.string()),
|
|
1825
|
+
customer_name: z2.nullable(z2.string()),
|
|
1826
|
+
customer_name_placeholder_confirmed: z2._default(z2.boolean(), false),
|
|
1827
|
+
customer_name_placeholder_confirmed_at: z2.nullable(z2.iso.datetime({ offset: true })),
|
|
1828
|
+
customer_phone: z2.nullable(z2.string()),
|
|
1829
|
+
description: z2.nullable(z2.string()),
|
|
1765
1830
|
environment: zTrackingEnvironment,
|
|
1766
|
-
external_id:
|
|
1767
|
-
id:
|
|
1768
|
-
items:
|
|
1769
|
-
metadata:
|
|
1770
|
-
occurred_at:
|
|
1771
|
-
service_id:
|
|
1772
|
-
service_key:
|
|
1773
|
-
service_label:
|
|
1774
|
-
services:
|
|
1775
|
-
sms_automation:
|
|
1776
|
-
sms_consent:
|
|
1777
|
-
sms_consent_granted_at:
|
|
1778
|
-
updated_at:
|
|
1779
|
-
writeback:
|
|
1831
|
+
external_id: z2.nullable(z2.string()),
|
|
1832
|
+
id: z2.uuid(),
|
|
1833
|
+
items: z2.array(zSaleItemEntitySchema),
|
|
1834
|
+
metadata: z2.nullable(z2.record(z2.string(), z2.unknown())),
|
|
1835
|
+
occurred_at: z2.iso.datetime({ offset: true }),
|
|
1836
|
+
service_id: z2.nullable(z2.uuid()),
|
|
1837
|
+
service_key: z2.nullable(z2.string()),
|
|
1838
|
+
service_label: z2.nullable(z2.string()),
|
|
1839
|
+
services: z2.array(zSaleServiceEntitySchema),
|
|
1840
|
+
sms_automation: z2.nullable(zSaleSmsStatusSchema),
|
|
1841
|
+
sms_consent: z2._default(z2.boolean(), false),
|
|
1842
|
+
sms_consent_granted_at: z2.nullable(z2.iso.datetime({ offset: true })),
|
|
1843
|
+
updated_at: z2.iso.datetime({ offset: true }),
|
|
1844
|
+
writeback: z2.nullable(zSaleWritebackStatusSchema)
|
|
1780
1845
|
});
|
|
1781
1846
|
|
|
1782
1847
|
// ../tracking-core/src/resources/sales/schema.ts
|
|
@@ -1784,11 +1849,11 @@ var saleItemSchema = zSaleItemInputSchema;
|
|
|
1784
1849
|
var saleServiceSchema = zSaleServiceInputSchema;
|
|
1785
1850
|
var currencySchema = zSupportedCurrency;
|
|
1786
1851
|
var SUPPORTED_CURRENCIES = currencySchema.options;
|
|
1787
|
-
var centsSchema =
|
|
1788
|
-
var metadataSchema =
|
|
1789
|
-
var customerNameSchema =
|
|
1790
|
-
var customerPhoneSchema =
|
|
1791
|
-
var customerEmailSchema =
|
|
1852
|
+
var centsSchema = z3.int().check(z3.gte(0));
|
|
1853
|
+
var metadataSchema = z3.record(z3.string(), z3.unknown());
|
|
1854
|
+
var customerNameSchema = z3.string().check(z3.maxLength(200));
|
|
1855
|
+
var customerPhoneSchema = z3.string().check(z3.maxLength(64));
|
|
1856
|
+
var customerEmailSchema = z3.email().check(z3.maxLength(320));
|
|
1792
1857
|
function addIssue(ctx, path, message) {
|
|
1793
1858
|
ctx.issues.push({ code: "custom", input: ctx.value, path, message });
|
|
1794
1859
|
}
|
|
@@ -1822,24 +1887,24 @@ function refineServiceXor(val, ctx, { requireAmount }) {
|
|
|
1822
1887
|
);
|
|
1823
1888
|
}
|
|
1824
1889
|
}
|
|
1825
|
-
var saleCreateSchema =
|
|
1826
|
-
var saleUpdateSchema =
|
|
1827
|
-
description:
|
|
1828
|
-
service:
|
|
1829
|
-
services:
|
|
1830
|
-
currency:
|
|
1831
|
-
amount_total_cents:
|
|
1832
|
-
occurred_at:
|
|
1833
|
-
items:
|
|
1834
|
-
metadata:
|
|
1835
|
-
customer_name:
|
|
1890
|
+
var saleCreateSchema = z3.extend(zSaleCreateSchema, { items: z3._default(z3.array(saleItemSchema), []) }).check((ctx) => refineServiceXor(ctx.value, ctx, { requireAmount: true }));
|
|
1891
|
+
var saleUpdateSchema = z3.strictObject({
|
|
1892
|
+
description: z3.nullish(z3.string()),
|
|
1893
|
+
service: z3.nullish(z3.string()),
|
|
1894
|
+
services: z3.nullish(z3.array(saleServiceSchema)),
|
|
1895
|
+
currency: z3.optional(currencySchema),
|
|
1896
|
+
amount_total_cents: z3.optional(centsSchema),
|
|
1897
|
+
occurred_at: z3.optional(z3.iso.datetime()),
|
|
1898
|
+
items: z3.optional(z3.array(saleItemSchema)),
|
|
1899
|
+
metadata: z3.nullish(metadataSchema),
|
|
1900
|
+
customer_name: z3.nullish(customerNameSchema),
|
|
1836
1901
|
// Re-attest when changing a filler-looking name; the server clears the
|
|
1837
1902
|
// prior attestation whenever `customer_name` changes.
|
|
1838
|
-
customer_name_placeholder_confirmed:
|
|
1839
|
-
customer_phone:
|
|
1840
|
-
customer_email:
|
|
1903
|
+
customer_name_placeholder_confirmed: z3.optional(z3.boolean()),
|
|
1904
|
+
customer_phone: z3.nullish(customerPhoneSchema),
|
|
1905
|
+
customer_email: z3.nullish(customerEmailSchema),
|
|
1841
1906
|
// NOT NULL server-side: omit to leave unchanged (explicit null is rejected).
|
|
1842
|
-
sms_consent:
|
|
1907
|
+
sms_consent: z3.optional(z3.boolean())
|
|
1843
1908
|
}).check((ctx) => refineServiceXor(ctx.value, ctx, { requireAmount: false }));
|
|
1844
1909
|
var TRACKING_RANGES = ["24h", "7d", "30d"];
|
|
1845
1910
|
var NAMED_RANGES = [
|