@aranova/tracking-react 0.27.0 → 1.0.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.mjs CHANGED
@@ -595,10 +595,10 @@ function readStoredRecord() {
595
595
  return null;
596
596
  }
597
597
  }
598
- function writeRecord(record) {
599
- memoryRecord = record;
598
+ function writeRecord(record3) {
599
+ memoryRecord = record3;
600
600
  try {
601
- window.localStorage.setItem(LANDING_STORAGE_KEY, JSON.stringify(record));
601
+ window.localStorage.setItem(LANDING_STORAGE_KEY, JSON.stringify(record3));
602
602
  } catch {
603
603
  }
604
604
  }
@@ -620,9 +620,9 @@ function getOrCaptureLandingParams(sessionId, url) {
620
620
  if (memoryRecord && memoryRecord.session_id === sessionId) {
621
621
  return memoryRecord.params;
622
622
  }
623
- const record = { session_id: sessionId, params: captureFromUrl(url) };
624
- writeRecord(record);
625
- return record.params;
623
+ const record3 = { session_id: sessionId, params: captureFromUrl(url) };
624
+ writeRecord(record3);
625
+ return record3.params;
626
626
  }
627
627
  function buildLandingPayloadFields(sessionId, override) {
628
628
  const params = override ?? (typeof window === "undefined" ? null : getOrCaptureLandingParams(sessionId));
@@ -1454,25 +1454,32 @@ function getOrRotateSessionId(now = Date.now()) {
1454
1454
  return { id: fresh.id, isNew: true };
1455
1455
  }
1456
1456
 
1457
+ // ../tracking-core/src/page-view.ts
1458
+ import { parse } from "zod/mini";
1459
+
1457
1460
  // ../tracking-core/src/events/page-view.ts
1458
- import { z } from "zod";
1459
- var pageViewMetadataSchema = z.object({
1460
- page: z.object({
1461
- title: z.string().nullable(),
1461
+ import * as z from "zod/mini";
1462
+ var pageViewMetadataSchema = z.strictObject({
1463
+ page: z.strictObject({
1464
+ title: z.nullable(z.string()),
1462
1465
  path: z.string(),
1463
1466
  search: z.string(),
1464
1467
  hash: z.string()
1465
- }).strict(),
1466
- referrer: z.string().nullable(),
1467
- // `.nullable().optional()` — absent (undefined) OR explicit null OR a
1468
+ }),
1469
+ referrer: z.nullable(z.string()),
1470
+ // Optional + nullable — absent (undefined) OR explicit null OR a
1468
1471
  // real viewport object. Mirrors Pydantic's `_Viewport | None = None`
1469
1472
  // on the backend side so the drift test stays clean.
1470
- viewport: z.object({
1471
- w: z.number(),
1472
- h: z.number()
1473
- }).strict().nullable().optional()
1474
- }).strict();
1475
- var pageViewConfigSchema = z.object({}).strict();
1473
+ viewport: z.optional(
1474
+ z.nullable(
1475
+ z.strictObject({
1476
+ w: z.number(),
1477
+ h: z.number()
1478
+ })
1479
+ )
1480
+ )
1481
+ });
1482
+ var pageViewConfigSchema = z.strictObject({});
1476
1483
 
1477
1484
  // ../tracking-core/src/page-view.ts
1478
1485
  var LAST_FIRED_URL_STORAGE_KEY = "aranova_tracking_last_fired_url";
@@ -1508,7 +1515,7 @@ function setLastFiredUrl(url) {
1508
1515
  }
1509
1516
  function buildPageViewMetadata(referrerOverride) {
1510
1517
  if (typeof window === "undefined" || typeof document === "undefined") return null;
1511
- return pageViewMetadataSchema.parse({
1518
+ return parse(pageViewMetadataSchema, {
1512
1519
  page: {
1513
1520
  title: document.title || null,
1514
1521
  path: window.location.pathname,
@@ -2004,186 +2011,198 @@ function createTrackingClient(config) {
2004
2011
  };
2005
2012
  }
2006
2013
 
2014
+ // ../tracking-core/src/ingest-typed.ts
2015
+ import { parse as parse2 } from "zod/mini";
2016
+
2007
2017
  // ../tracking-core/src/events/cta-click.ts
2008
- import { z as z2 } from "zod";
2009
- var ctaClickMetadataSchema = z2.object({
2018
+ import * as z2 from "zod/mini";
2019
+ var ctaClickMetadataSchema = z2.strictObject({
2010
2020
  cta_name: z2.string(),
2011
- page: z2.object({
2021
+ page: z2.strictObject({
2012
2022
  path: z2.string()
2013
- }).strict(),
2014
- section: z2.string().nullable().optional(),
2015
- destination_url: z2.string().nullable().optional(),
2023
+ }),
2024
+ section: z2.optional(z2.nullable(z2.string())),
2025
+ destination_url: z2.optional(z2.nullable(z2.string())),
2016
2026
  // Set by auto-capture (and available to manual callers): the link target
2017
2027
  // and a short element descriptor (tag#id) for tying clicks to specific UI.
2018
- href: z2.string().nullable().optional(),
2019
- element: z2.string().nullable().optional()
2020
- }).strict();
2021
- var ctaClickConfigSchema = z2.object({
2022
- autoCapture: z2.object({
2023
- selector: z2.string().optional()
2024
- }).strict().optional()
2025
- }).strict();
2028
+ href: z2.optional(z2.nullable(z2.string())),
2029
+ element: z2.optional(z2.nullable(z2.string()))
2030
+ });
2031
+ var ctaClickConfigSchema = z2.strictObject({
2032
+ autoCapture: z2.optional(
2033
+ z2.strictObject({
2034
+ selector: z2.optional(z2.string())
2035
+ })
2036
+ )
2037
+ });
2026
2038
 
2027
2039
  // ../tracking-core/src/events/sdk-heartbeat.ts
2028
- import { z as z3 } from "zod";
2029
- var sdkHeartbeatTriggersSchema = z3.object({
2040
+ import * as z3 from "zod/mini";
2041
+ var sdkHeartbeatTriggersSchema = z3.strictObject({
2030
2042
  automatic: z3.array(z3.string()),
2031
2043
  manual: z3.array(z3.string())
2032
- }).strict();
2033
- var sdkHeartbeatMetadataSchema = z3.object({
2044
+ });
2045
+ var sdkHeartbeatMetadataSchema = z3.strictObject({
2034
2046
  sdk_version: z3.string(),
2035
- package_name: z3.string().nullable(),
2047
+ package_name: z3.nullable(z3.string()),
2036
2048
  surface: z3.enum(["next", "react", "script"]),
2037
2049
  triggers: sdkHeartbeatTriggersSchema,
2038
- trigger_config: z3.record(z3.string(), z3.record(z3.string(), z3.unknown())).nullable().optional(),
2039
- configured_gtag_ids: z3.record(z3.string(), z3.string()).nullable().optional(),
2050
+ trigger_config: z3.optional(z3.nullable(z3.record(z3.string(), z3.record(z3.string(), z3.unknown())))),
2051
+ configured_gtag_ids: z3.optional(z3.nullable(z3.record(z3.string(), z3.string()))),
2040
2052
  // Site whose config object the SDK resolves; null on a legacy business ref.
2041
- config_site_id: z3.string().uuid().nullable().optional()
2042
- }).strict();
2043
- var sdkHeartbeatConfigSchema = z3.object({}).strict();
2053
+ config_site_id: z3.optional(z3.nullable(z3.uuid()))
2054
+ });
2055
+ var sdkHeartbeatConfigSchema = z3.strictObject({});
2044
2056
 
2045
2057
  // ../tracking-core/src/events/form-start.ts
2046
- import { z as z4 } from "zod";
2047
- var formStartMetadataSchema = z4.object({
2048
- form: z4.object({
2058
+ import * as z4 from "zod/mini";
2059
+ var formStartMetadataSchema = z4.strictObject({
2060
+ form: z4.strictObject({
2049
2061
  id: z4.string(),
2050
- action: z4.string().nullable()
2051
- }).strict(),
2052
- page: z4.object({
2062
+ action: z4.nullable(z4.string())
2063
+ }),
2064
+ page: z4.strictObject({
2053
2065
  path: z4.string()
2054
- }).strict()
2055
- }).strict();
2056
- var formStartConfigSchema = z4.object({
2057
- selector: z4.string().optional()
2058
- }).strict();
2066
+ })
2067
+ });
2068
+ var formStartConfigSchema = z4.strictObject({
2069
+ selector: z4.optional(z4.string())
2070
+ });
2059
2071
 
2060
2072
  // ../tracking-core/src/events/form-submit.ts
2061
- import { z as z5 } from "zod";
2073
+ import * as z5 from "zod/mini";
2062
2074
  var jsonValueSchema = z5.lazy(
2063
2075
  () => z5.union([
2064
2076
  z5.string(),
2065
- z5.number().finite(),
2077
+ z5.number(),
2066
2078
  z5.boolean(),
2067
2079
  z5.null(),
2068
2080
  z5.array(jsonValueSchema),
2069
- z5.record(jsonValueSchema)
2081
+ z5.record(z5.string(), jsonValueSchema)
2070
2082
  ])
2071
- );
2072
- var formSubmitMetadataSchema = z5.object({
2073
- form: z5.object({
2083
+ ).register(z5.globalRegistry, { id: "JsonSerializableValue" });
2084
+ var formSubmitMetadataSchema = z5.strictObject({
2085
+ form: z5.strictObject({
2074
2086
  id: z5.string(),
2075
- action: z5.string().nullable(),
2076
- fields: z5.array(
2077
- z5.object({
2078
- name: z5.string(),
2079
- type: z5.string(),
2080
- label: z5.string().nullable(),
2081
- value: jsonValueSchema
2082
- }).strict()
2083
- ).optional()
2084
- }).strict(),
2085
- page: z5.object({
2087
+ action: z5.nullable(z5.string()),
2088
+ fields: z5.optional(
2089
+ z5.array(
2090
+ z5.strictObject({
2091
+ name: z5.string(),
2092
+ type: z5.string(),
2093
+ label: z5.nullable(z5.string()),
2094
+ value: jsonValueSchema
2095
+ })
2096
+ )
2097
+ )
2098
+ }),
2099
+ page: z5.strictObject({
2086
2100
  path: z5.string()
2087
- }).strict()
2088
- }).strict();
2089
- var formSubmitConfigSchema = z5.object({}).strict();
2101
+ })
2102
+ });
2103
+ var formSubmitConfigSchema = z5.strictObject({});
2090
2104
 
2091
2105
  // ../tracking-core/src/events/multi-page-session.ts
2092
- import { z as z6 } from "zod";
2093
- var multiPageSessionMetadataSchema = z6.object({
2094
- page_count: z6.number().int().min(2),
2095
- page: z6.object({
2106
+ import * as z6 from "zod/mini";
2107
+ var multiPageSessionMetadataSchema = z6.strictObject({
2108
+ page_count: z6.int().check(z6.gte(2)),
2109
+ page: z6.strictObject({
2096
2110
  path: z6.string()
2097
- }).strict()
2098
- }).strict();
2099
- var multiPageSessionConfigSchema = z6.object({
2100
- pageThreshold: z6.number().int().min(2)
2101
- }).strict();
2111
+ })
2112
+ });
2113
+ var multiPageSessionConfigSchema = z6.strictObject({
2114
+ pageThreshold: z6.int().check(z6.gte(2))
2115
+ });
2102
2116
 
2103
2117
  // ../tracking-core/src/events/page-exit.ts
2104
- import { z as z7 } from "zod";
2105
- var pageExitMetadataSchema = z7.object({
2106
- dwell_ms: z7.number().int().min(0),
2118
+ import * as z7 from "zod/mini";
2119
+ var pageExitMetadataSchema = z7.strictObject({
2120
+ dwell_ms: z7.int().check(z7.gte(0)),
2107
2121
  // null = left without any scroll signal; floor is 0 so a valid 0% is never
2108
2122
  // rejected (a single bad field 422s the whole keepalive beacon batch).
2109
- max_scroll_percent: z7.number().int().min(0).max(100).nullable(),
2123
+ max_scroll_percent: z7.nullable(z7.int().check(z7.gte(0), z7.lte(100))),
2110
2124
  // The gating baseline: the fraction of the page visible at load with
2111
2125
  // zero scrolling — or, for pages that grew after the post-paint snapshot
2112
2126
  // (skeleton/streaming renders), the first-scroll position that
2113
2127
  // established it. null = page had no scrollable range, or the segment
2114
- // ended before the snapshot. `.optional()` is load-bearing: SDK builds
2128
+ // ended before the snapshot. Optionality is load-bearing: SDK builds
2115
2129
  // predating this field keep POSTing page_exit without the key —
2116
2130
  // requiring it would 422 whole keepalive beacon batches.
2117
- scroll_baseline_percent: z7.number().int().min(0).max(100).nullable().optional(),
2118
- page: z7.object({
2131
+ scroll_baseline_percent: z7.optional(z7.nullable(z7.int().check(z7.gte(0), z7.lte(100)))),
2132
+ page: z7.strictObject({
2119
2133
  path: z7.string()
2120
- }).strict()
2121
- }).strict();
2122
- var pageExitConfigSchema = z7.object({}).strict();
2134
+ })
2135
+ });
2136
+ var pageExitConfigSchema = z7.strictObject({});
2123
2137
 
2124
2138
  // ../tracking-core/src/events/phone-click.ts
2125
- import { z as z8 } from "zod";
2126
- var phoneClickMetadataSchema = z8.object({
2139
+ import * as z8 from "zod/mini";
2140
+ var phoneClickMetadataSchema = z8.strictObject({
2127
2141
  phone_number: z8.string(),
2128
- page: z8.object({
2142
+ page: z8.strictObject({
2129
2143
  path: z8.string()
2130
- }).strict(),
2131
- section: z8.string().nullable().optional()
2132
- }).strict();
2133
- var phoneClickConfigSchema = z8.object({
2134
- autoCapture: z8.object({
2135
- selector: z8.string().optional()
2136
- }).strict().optional()
2137
- }).strict();
2144
+ }),
2145
+ section: z8.optional(z8.nullable(z8.string()))
2146
+ });
2147
+ var phoneClickConfigSchema = z8.strictObject({
2148
+ autoCapture: z8.optional(
2149
+ z8.strictObject({
2150
+ selector: z8.optional(z8.string())
2151
+ })
2152
+ )
2153
+ });
2138
2154
 
2139
2155
  // ../tracking-core/src/events/scroll-depth.ts
2140
- import { z as z9 } from "zod";
2141
- var scrollDepthMetadataSchema = z9.object({
2142
- depth_percent: z9.number().int().min(1).max(100),
2143
- page: z9.object({
2156
+ import * as z9 from "zod/mini";
2157
+ var scrollDepthMetadataSchema = z9.strictObject({
2158
+ depth_percent: z9.int().check(z9.gte(1), z9.lte(100)),
2159
+ page: z9.strictObject({
2144
2160
  path: z9.string()
2145
- }).strict()
2146
- }).strict();
2147
- var scrollDepthConfigSchema = z9.object({
2148
- thresholds: z9.array(z9.number().int().min(1).max(100)).min(1)
2149
- }).strict();
2161
+ })
2162
+ });
2163
+ var scrollDepthConfigSchema = z9.strictObject({
2164
+ thresholds: z9.array(z9.int().check(z9.gte(1), z9.lte(100))).check(z9.minLength(1))
2165
+ });
2150
2166
 
2151
2167
  // ../tracking-core/src/events/specific-page-visit.ts
2152
- import { z as z10 } from "zod";
2168
+ import * as z10 from "zod/mini";
2153
2169
  var PAGE_IDENTITY_MAX_LENGTH = 64;
2154
2170
  var PAGE_IDENTITY_PATTERN = /^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$/;
2155
- var pageIdentitySchema = z10.string().max(PAGE_IDENTITY_MAX_LENGTH).regex(PAGE_IDENTITY_PATTERN, {
2156
- message: "page identity must be lowercase snake_case, start with a letter, and contain at most 64 characters"
2157
- });
2171
+ var pageIdentitySchema = z10.string().check(
2172
+ z10.maxLength(PAGE_IDENTITY_MAX_LENGTH),
2173
+ z10.regex(PAGE_IDENTITY_PATTERN, {
2174
+ message: "page identity must be lowercase snake_case, start with a letter, and contain at most 64 characters"
2175
+ })
2176
+ );
2158
2177
  var specificPageNameSchema = pageIdentitySchema;
2159
- var specificPageVisitMetadataSchema = z10.object({
2178
+ var specificPageVisitMetadataSchema = z10.strictObject({
2160
2179
  page_name: specificPageNameSchema,
2161
- page: z10.object({
2180
+ page: z10.strictObject({
2162
2181
  path: z10.string()
2163
- }).strict()
2164
- }).strict();
2165
- var specificPageVisitConfigSchema = z10.object({
2182
+ })
2183
+ });
2184
+ var specificPageVisitConfigSchema = z10.strictObject({
2166
2185
  pages: z10.array(
2167
- z10.object({
2186
+ z10.strictObject({
2168
2187
  name: specificPageNameSchema,
2169
2188
  pathPattern: z10.custom((value) => value instanceof RegExp, {
2170
2189
  message: "pathPattern must be a RegExp"
2171
2190
  })
2172
- }).strict()
2173
- ).min(1)
2174
- }).strict();
2191
+ })
2192
+ ).check(z10.minLength(1))
2193
+ });
2175
2194
 
2176
2195
  // ../tracking-core/src/events/time-on-site.ts
2177
- import { z as z11 } from "zod";
2178
- var timeOnSiteMetadataSchema = z11.object({
2179
- duration_ms: z11.number().int().nonnegative(),
2180
- page: z11.object({
2196
+ import * as z11 from "zod/mini";
2197
+ var timeOnSiteMetadataSchema = z11.strictObject({
2198
+ duration_ms: z11.int().check(z11.nonnegative()),
2199
+ page: z11.strictObject({
2181
2200
  path: z11.string()
2182
- }).strict()
2183
- }).strict();
2184
- var timeOnSiteConfigSchema = z11.object({
2185
- thresholdSeconds: z11.number().int().positive()
2186
- }).strict();
2201
+ })
2202
+ });
2203
+ var timeOnSiteConfigSchema = z11.strictObject({
2204
+ thresholdSeconds: z11.int().check(z11.positive())
2205
+ });
2187
2206
 
2188
2207
  // ../tracking-core/src/events/semantics.ts
2189
2208
  var EVENT_SEMANTICS = {
@@ -2342,7 +2361,7 @@ function createTypedClient(raw, registry, options = {}) {
2342
2361
  trackEvent(eventType, metadata, opts) {
2343
2362
  if (debug) {
2344
2363
  const def = getEventDefinition(eventType);
2345
- def.metadataSchema.parse(metadata);
2364
+ parse2(def.metadataSchema, metadata);
2346
2365
  }
2347
2366
  raw.trackEvent({
2348
2367
  eventType,
@@ -2966,117 +2985,6 @@ function attachPhoneClickCapture(client, config) {
2966
2985
  };
2967
2986
  }
2968
2987
 
2969
- // ../tracking-core/src/resources/sales/schema.ts
2970
- import { z as z12 } from "zod";
2971
- var SUPPORTED_CURRENCIES = ["USD", "CAD"];
2972
- var TRACKING_ENVIRONMENTS = ["production", "development"];
2973
- var currencySchema = z12.enum(SUPPORTED_CURRENCIES);
2974
- var centsSchema = z12.number().int().nonnegative();
2975
- var quantitySchema = z12.string().regex(/^\d+(\.\d{1,3})?$/);
2976
- var metadataSchema = z12.record(z12.unknown());
2977
- var saleItemSchema = z12.object({
2978
- external_item_id: z12.string().nullable().optional(),
2979
- name: z12.string().nullable().optional(),
2980
- category: z12.string().nullable().optional(),
2981
- quantity: quantitySchema,
2982
- unit_price_cents: centsSchema,
2983
- // Non-negativity validated on the wire — same contract as the other cents
2984
- // fields — and backstopped by the DB CHECK.
2985
- unit_cost_cents: centsSchema.nullable().optional()
2986
- }).strict();
2987
- var saleServiceSchema = z12.object({
2988
- service: z12.string(),
2989
- amount_cents: centsSchema
2990
- }).strict();
2991
- var customerNameSchema = z12.string().max(200);
2992
- var customerPhoneSchema = z12.string().max(64);
2993
- var customerEmailSchema = z12.string().max(320).email();
2994
- function refineServiceXor(val, ctx, { requireAmount }) {
2995
- if (val.services != null) {
2996
- if (val.service != null) {
2997
- ctx.addIssue({
2998
- code: z12.ZodIssueCode.custom,
2999
- message: "pass either `service` or `services`, not both",
3000
- path: ["services"]
3001
- });
3002
- }
3003
- if (val.services.length === 0) {
3004
- ctx.addIssue({
3005
- code: z12.ZodIssueCode.custom,
3006
- message: "`services` must not be empty",
3007
- path: ["services"]
3008
- });
3009
- }
3010
- const keys = val.services.map((s) => s.service);
3011
- if (new Set(keys).size !== keys.length) {
3012
- ctx.addIssue({
3013
- code: z12.ZodIssueCode.custom,
3014
- message: "`services` must not list the same service more than once",
3015
- path: ["services"]
3016
- });
3017
- }
3018
- if (val.amount_total_cents != null) {
3019
- const sum = val.services.reduce((acc, s) => acc + s.amount_cents, 0);
3020
- if (val.amount_total_cents !== sum) {
3021
- ctx.addIssue({
3022
- code: z12.ZodIssueCode.custom,
3023
- message: "amount_total_cents must equal the sum of the services amounts (omit it to derive it automatically)",
3024
- path: ["amount_total_cents"]
3025
- });
3026
- }
3027
- }
3028
- } else if (requireAmount && val.amount_total_cents == null) {
3029
- ctx.addIssue({
3030
- code: z12.ZodIssueCode.custom,
3031
- message: "amount_total_cents is required unless `services` is provided",
3032
- path: ["amount_total_cents"]
3033
- });
3034
- }
3035
- }
3036
- var saleCreateSchema = z12.object({
3037
- external_id: z12.string().nullable().optional(),
3038
- description: z12.string().nullable().optional(),
3039
- service: z12.string().nullable().optional(),
3040
- services: z12.array(saleServiceSchema).nullable().optional(),
3041
- currency: currencySchema,
3042
- // Optional only because the plural `services` form derives it from the sum
3043
- // (see refineServiceXor); the singular/serviceless path still requires it.
3044
- amount_total_cents: centsSchema.nullable().optional(),
3045
- occurred_at: z12.string().datetime(),
3046
- environment: z12.enum(TRACKING_ENVIRONMENTS).default("production"),
3047
- items: z12.array(saleItemSchema).default([]),
3048
- metadata: metadataSchema.nullable().optional(),
3049
- customer_name: customerNameSchema.nullable().optional(),
3050
- customer_phone: customerPhoneSchema.nullable().optional(),
3051
- customer_email: customerEmailSchema.nullable().optional(),
3052
- // CASL consent attestation: the customer agreed to receive SMS. Recorded
3053
- // with a timestamp server-side; every SMS send path gates on it.
3054
- //
3055
- // Tri-state: omit it (or send null) to let the server apply the business's
3056
- // configured default-opt-in policy, honouring a returning customer's
3057
- // remembered preference. Send an explicit boolean to assert consent state
3058
- // yourself — `false` records a deliberate opt-out.
3059
- sms_consent: z12.boolean().nullable().optional()
3060
- }).strict().superRefine((val, ctx) => refineServiceXor(val, ctx, { requireAmount: true }));
3061
- var saleUpdateSchema = z12.object({
3062
- description: z12.string().nullable().optional(),
3063
- service: z12.string().nullable().optional(),
3064
- services: z12.array(saleServiceSchema).nullable().optional(),
3065
- currency: currencySchema.optional(),
3066
- amount_total_cents: centsSchema.optional(),
3067
- occurred_at: z12.string().datetime().optional(),
3068
- items: z12.array(saleItemSchema).optional(),
3069
- metadata: metadataSchema.nullable().optional(),
3070
- customer_name: customerNameSchema.nullable().optional(),
3071
- // Re-attest when changing a filler-looking name; the server clears the
3072
- // prior attestation whenever `customer_name` changes.
3073
- customer_name_placeholder_confirmed: z12.boolean().optional(),
3074
- customer_phone: customerPhoneSchema.nullable().optional(),
3075
- customer_email: customerEmailSchema.nullable().optional(),
3076
- // NOT NULL server-side: omit to leave unchanged (explicit null is rejected).
3077
- sms_consent: z12.boolean().optional()
3078
- }).strict().superRefine((val, ctx) => refineServiceXor(val, ctx, { requireAmount: false }));
3079
-
3080
2988
  // src/hooks.ts
3081
2989
  function useGclid() {
3082
2990
  const [gclid, setGclid] = useState(null);
@@ -3408,7 +3316,7 @@ function GoogleAdsTracking(props) {
3408
3316
  import { createContext as createContext2, useContext as useContext2, useEffect as useEffect5, useMemo as useMemo4 } from "react";
3409
3317
 
3410
3318
  // package.json
3411
- var version = "0.27.0";
3319
+ var version = "1.0.0";
3412
3320
 
3413
3321
  // ../tracking-core/src/phone-react.tsx
3414
3322
  import {