@appfunnel-dev/sdk 2.0.0-canary.2 → 2.0.0-canary.4

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 (37) hide show
  1. package/dist/{checkout-DiQvRT5q.d.ts → checkout-7Dy6IedP.d.ts} +3 -0
  2. package/dist/{checkout-CZmEvWfC.d.cts → checkout-Dz8cGkB_.d.cts} +3 -0
  3. package/dist/{chunk-7UC5VXOR.js → chunk-AKO6XKXP.js} +28 -8
  4. package/dist/chunk-AKO6XKXP.js.map +1 -0
  5. package/dist/{chunk-VQOD2Z6Q.cjs → chunk-CY4VBSMX.cjs} +5 -3
  6. package/dist/chunk-CY4VBSMX.cjs.map +1 -0
  7. package/dist/{chunk-Z3TWO2PW.cjs → chunk-JSRKA375.cjs} +29 -7
  8. package/dist/chunk-JSRKA375.cjs.map +1 -0
  9. package/dist/{chunk-UIR6TGEW.js → chunk-M6U3FNRW.js} +5 -3
  10. package/dist/chunk-M6U3FNRW.js.map +1 -0
  11. package/dist/driver-paddle.cjs +14 -14
  12. package/dist/driver-paddle.d.cts +1 -1
  13. package/dist/driver-paddle.d.ts +1 -1
  14. package/dist/driver-paddle.js +1 -1
  15. package/dist/driver-stripe.cjs +13 -13
  16. package/dist/driver-stripe.d.cts +1 -1
  17. package/dist/driver-stripe.d.ts +1 -1
  18. package/dist/driver-stripe.js +1 -1
  19. package/dist/index.cjs +93 -54
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.cts +29 -6
  22. package/dist/index.d.ts +29 -6
  23. package/dist/index.js +55 -16
  24. package/dist/index.js.map +1 -1
  25. package/dist/{manifest-DQThneiG.d.cts → manifest-Cr2y1op6.d.cts} +40 -3
  26. package/dist/{manifest-DQThneiG.d.ts → manifest-Cr2y1op6.d.ts} +40 -3
  27. package/dist/manifest-entry.cjs +129 -20
  28. package/dist/manifest-entry.cjs.map +1 -1
  29. package/dist/manifest-entry.d.cts +28 -3
  30. package/dist/manifest-entry.d.ts +28 -3
  31. package/dist/manifest-entry.js +105 -5
  32. package/dist/manifest-entry.js.map +1 -1
  33. package/package.json +1 -1
  34. package/dist/chunk-7UC5VXOR.js.map +0 -1
  35. package/dist/chunk-UIR6TGEW.js.map +0 -1
  36. package/dist/chunk-VQOD2Z6Q.cjs.map +0 -1
  37. package/dist/chunk-Z3TWO2PW.cjs.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkZ3TWO2PW_cjs = require('./chunk-Z3TWO2PW.cjs');
3
+ var chunkJSRKA375_cjs = require('./chunk-JSRKA375.cjs');
4
4
  var chunkLJYLGLFS_cjs = require('./chunk-LJYLGLFS.cjs');
5
5
  var React = require('react');
6
6
  var ReactDOM = require('react-dom');
@@ -452,9 +452,9 @@ function LocaleProvider({
452
452
  override,
453
453
  children
454
454
  }) {
455
- const [locale, setLocale] = React.useState(() => chunkZ3TWO2PW_cjs.resolveLocale(config, detected, override));
455
+ const [locale, setLocale] = React.useState(() => chunkJSRKA375_cjs.resolveLocale(config, detected, override));
456
456
  React.useEffect(() => {
457
- setLocale(chunkZ3TWO2PW_cjs.resolveLocale(config, detected, override));
457
+ setLocale(chunkJSRKA375_cjs.resolveLocale(config, detected, override));
458
458
  }, [config, detected, override]);
459
459
  const value = React.useMemo(
460
460
  () => ({ locale, setLocale, config, catalog }),
@@ -526,7 +526,7 @@ function useTranslation() {
526
526
  fmt,
527
527
  locale,
528
528
  setLocale,
529
- dir: chunkZ3TWO2PW_cjs.isRtl(locale) ? "rtl" : "ltr",
529
+ dir: chunkJSRKA375_cjs.isRtl(locale) ? "rtl" : "ltr",
530
530
  locales: config?.supported ?? [locale]
531
531
  };
532
532
  }
@@ -547,13 +547,13 @@ function useProduct(id) {
547
547
  const catalog = useCatalog();
548
548
  const locale = useActiveLocale();
549
549
  const resolved = id ? catalog.get(id) : void 0;
550
- return React.useMemo(() => resolved ? chunkZ3TWO2PW_cjs.formatProduct(resolved, locale) : void 0, [resolved, locale]);
550
+ return React.useMemo(() => resolved ? chunkJSRKA375_cjs.formatProduct(resolved, locale) : void 0, [resolved, locale]);
551
551
  }
552
552
  function useProducts() {
553
553
  const catalog = useCatalog();
554
554
  const locale = useActiveLocale();
555
555
  return React.useMemo(
556
- () => Array.from(catalog.values()).map((r) => chunkZ3TWO2PW_cjs.formatProduct(r, locale)),
556
+ () => Array.from(catalog.values()).map((r) => chunkJSRKA375_cjs.formatProduct(r, locale)),
557
557
  [catalog, locale]
558
558
  );
559
559
  }
@@ -634,10 +634,10 @@ function FunnelView({
634
634
  [pages]
635
635
  );
636
636
  const seedRef = React.useRef(null);
637
- if (seedRef.current === null) seedRef.current = chunkZ3TWO2PW_cjs.bucketingSeed(funnel.context);
637
+ if (seedRef.current === null) seedRef.current = chunkJSRKA375_cjs.bucketingSeed(funnel.context);
638
638
  const seed = seedRef.current;
639
639
  const experiments = React.useMemo(
640
- () => chunkZ3TWO2PW_cjs.resolveExperiments(pages, funnel.experiments, seed),
640
+ () => chunkJSRKA375_cjs.resolveExperiments(pages, funnel.experiments, seed),
641
641
  [pages, funnel.experiments, seed]
642
642
  );
643
643
  const toSlot = React.useCallback((k) => experiments.slotOf[k] ?? k, [experiments]);
@@ -656,8 +656,8 @@ function FunnelView({
656
656
  if (!initialKey || initialKey === start) return start ? [start] : [];
657
657
  const target = toSlot(initialKey);
658
658
  const page2 = flowPages.find((p) => p.key === target);
659
- const guard = chunkZ3TWO2PW_cjs.entryGuard(page2?.meta);
660
- const ok = page2 && (!guard || chunkZ3TWO2PW_cjs.evaluateGate(guard, funnel.snapshot()));
659
+ const guard = chunkJSRKA375_cjs.entryGuard(page2?.meta);
660
+ const ok = page2 && (!guard || chunkJSRKA375_cjs.evaluateGate(guard, funnel.snapshot()));
661
661
  const first = ok ? target : start;
662
662
  return first ? [first] : [];
663
663
  });
@@ -665,7 +665,7 @@ function FunnelView({
665
665
  const index = history.length - 1;
666
666
  const startKey = history[0];
667
667
  const total = React.useMemo(
668
- () => chunkZ3TWO2PW_cjs.expectedPathLength(flow, startKey, funnel.snapshot()),
668
+ () => chunkJSRKA375_cjs.expectedPathLength(flow, startKey, funnel.snapshot()),
669
669
  // currentKey in deps: re-trace as each step's answers settle the branch.
670
670
  [flow, startKey, currentKey, funnel]
671
671
  );
@@ -700,7 +700,7 @@ function FunnelView({
700
700
  usePageExitTimer(tracker, currentKey);
701
701
  const [isNavigating, startNav] = React.useTransition();
702
702
  const next = React.useCallback(() => {
703
- const target = chunkZ3TWO2PW_cjs.nextPage(flow, currentKey, funnel.snapshot());
703
+ const target = chunkJSRKA375_cjs.nextPage(flow, currentKey, funnel.snapshot());
704
704
  const resolved = target ? toSlot(target) : target;
705
705
  if (resolved) startNav(() => setHistory((h) => [...h, resolved]));
706
706
  }, [flow, currentKey, funnel, toSlot]);
@@ -724,7 +724,7 @@ function FunnelView({
724
724
  [loaders, toRenderKey]
725
725
  );
726
726
  const nextCandidates = React.useMemo(
727
- () => [...new Set(chunkZ3TWO2PW_cjs.outgoingKeys(flow, currentKey).map(toRenderKey))],
727
+ () => [...new Set(chunkJSRKA375_cjs.outgoingKeys(flow, currentKey).map(toRenderKey))],
728
728
  [flow, currentKey, toRenderKey]
729
729
  );
730
730
  React.useEffect(() => {
@@ -1103,6 +1103,14 @@ function driverWithEmail(driver, getEmail) {
1103
1103
  renderInline: driver.renderInline ? (req, cb) => driver.renderInline(enrich(req), cb) : void 0
1104
1104
  };
1105
1105
  }
1106
+ function driverWithCatalog(driver, catalog) {
1107
+ const enrich = (req) => req.catalogKey !== void 0 ? req : { ...req, catalogKey: catalog.get(req.product)?.catalogKey };
1108
+ return {
1109
+ ...driver,
1110
+ start: (req) => driver.start(enrich(req)),
1111
+ renderInline: driver.renderInline ? (req, cb) => driver.renderInline(enrich(req), cb) : void 0
1112
+ };
1113
+ }
1106
1114
  var DriverContext = React.createContext(null);
1107
1115
  function CheckoutDriverProvider({
1108
1116
  driver,
@@ -1117,12 +1125,25 @@ var FALLBACK_DRIVER = createMockDriver();
1117
1125
  function useCheckout(opts = {}) {
1118
1126
  const driver = useDriver();
1119
1127
  const tracker = useTrackerRef();
1128
+ const catalog = useCatalog();
1120
1129
  const nav = useNavigation();
1121
1130
  const [status, setStatus] = React.useState("idle");
1122
1131
  const [error, setError] = React.useState(null);
1123
1132
  const intent = opts.intent ?? "purchase";
1124
1133
  const kind = opts.kind;
1125
1134
  const advance = opts.advanceOnSuccess ?? true;
1135
+ const productFacts = React.useCallback(
1136
+ (product) => {
1137
+ const resolved = product ? catalog.get(product) : void 0;
1138
+ return {
1139
+ productId: resolved?.catalogKey ?? product,
1140
+ amount: resolved ? resolved.priceMinor / 100 : void 0,
1141
+ currency: resolved?.currency,
1142
+ isSubscription: resolved ? resolved.period !== "one-time" : kind === "subscription" || kind === "upgrade"
1143
+ };
1144
+ },
1145
+ [catalog, kind]
1146
+ );
1126
1147
  const recovering = React.useRef(false);
1127
1148
  const failRef = React.useRef(() => {
1128
1149
  });
@@ -1130,18 +1151,24 @@ function useCheckout(opts = {}) {
1130
1151
  async () => ({ ok: false })
1131
1152
  );
1132
1153
  const succeed = React.useCallback(
1133
- (result) => {
1154
+ (result, product) => {
1134
1155
  setStatus("success");
1156
+ const { productId, isSubscription } = productFacts(product);
1157
+ const amount = result.amountMinor != null ? result.amountMinor / 100 : void 0;
1135
1158
  tracker.track("purchase.complete", {
1136
- amount: result.amountMinor != null ? result.amountMinor / 100 : void 0,
1159
+ amount,
1137
1160
  currency: result.currency,
1161
+ productId,
1138
1162
  eventId: result.eventId
1139
1163
  // server-minted (browser↔CAPI dedup); undefined if none
1140
1164
  });
1165
+ if (isSubscription) {
1166
+ tracker.track("subscription.created", { amount, currency: result.currency, productId, eventId: result.eventId });
1167
+ }
1141
1168
  opts.onSuccess?.(result);
1142
1169
  if (advance) nav.next();
1143
1170
  },
1144
- [tracker, nav, advance, opts]
1171
+ [tracker, nav, advance, opts, productFacts]
1145
1172
  );
1146
1173
  const succeedRef = React.useRef(succeed);
1147
1174
  succeedRef.current = succeed;
@@ -1149,11 +1176,18 @@ function useCheckout(opts = {}) {
1149
1176
  (product, surface) => {
1150
1177
  setStatus("loading");
1151
1178
  setError(null);
1152
- tracker.track("checkout.start", { productId: product, surface });
1179
+ const { productId, amount, currency } = productFacts(product);
1180
+ tracker.track("checkout.start", { productId, amount, currency, surface, eventId: newEventId() });
1153
1181
  },
1154
- [tracker]
1182
+ [tracker, productFacts]
1183
+ );
1184
+ const paymentAdded = React.useCallback(
1185
+ (product) => {
1186
+ const { productId, amount, currency } = productFacts(product);
1187
+ tracker.track("checkout.payment_added", { productId, amount, currency, eventId: newEventId() });
1188
+ },
1189
+ [tracker, productFacts]
1155
1190
  );
1156
- const paymentAdded = React.useCallback(() => tracker.track("checkout.payment_added", {}), [tracker]);
1157
1191
  const hostInSheet = (surface) => surface === "sheet" || chunkLJYLGLFS_cjs.isInlineSurface(surface) && !!chunkLJYLGLFS_cjs.PROVIDER_PROFILES[driver.provider]?.surfaces.sheet;
1158
1192
  const startRecovery = (product, surface) => {
1159
1193
  recovering.current = true;
@@ -1164,9 +1198,9 @@ function useCheckout(opts = {}) {
1164
1198
  surface: "sheet",
1165
1199
  intent,
1166
1200
  kind,
1167
- onSuccess: (r) => succeedRef.current(r),
1201
+ onSuccess: (r) => succeedRef.current(r, product),
1168
1202
  onError: (e) => failRef.current(e, product),
1169
- onPaymentAdded: () => paymentAdded()
1203
+ onPaymentAdded: () => paymentAdded(product)
1170
1204
  });
1171
1205
  } else {
1172
1206
  void attemptRef.current(product, surface);
@@ -1220,7 +1254,7 @@ function useCheckout(opts = {}) {
1220
1254
  begin(product, surface);
1221
1255
  try {
1222
1256
  const result = await driver.start({ product, intent, surface, kind });
1223
- if (result.ok) succeedRef.current(result);
1257
+ if (result.ok) succeedRef.current(result, product);
1224
1258
  else failRef.current(result.error ?? chunkLJYLGLFS_cjs.checkoutError("unknown", "Checkout failed"), product);
1225
1259
  return result;
1226
1260
  } catch (e) {
@@ -1239,9 +1273,9 @@ function useCheckout(opts = {}) {
1239
1273
  recovering.current = false;
1240
1274
  begin(product, surface);
1241
1275
  },
1242
- onSuccess: (result) => succeedRef.current(result),
1276
+ onSuccess: (result) => succeedRef.current(result, product),
1243
1277
  onError: (err) => failRef.current(err, product),
1244
- onPaymentAdded: () => paymentAdded()
1278
+ onPaymentAdded: () => paymentAdded(product)
1245
1279
  }),
1246
1280
  [begin, paymentAdded]
1247
1281
  );
@@ -2572,12 +2606,15 @@ function FunnelProvider({
2572
2606
  const value2 = s.get("user.email");
2573
2607
  return typeof value2 === "string" && /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(value2) ? value2 : void 0;
2574
2608
  };
2609
+ const catalog = chunkJSRKA375_cjs.buildCatalog(products ?? []);
2575
2610
  return {
2576
2611
  funnel: createFunnel(s, ctx, busTracker, experiments ?? []),
2577
2612
  store: s,
2578
2613
  context: ctx,
2579
- catalog: chunkZ3TWO2PW_cjs.buildCatalog(products ?? []),
2580
- driver: driverWithEmail(checkout ?? createMockDriver(), emailForCheckout),
2614
+ catalog,
2615
+ // Slot catalog-key resolution wraps the email-enriching driver, so the wire charges the real
2616
+ // catalog key while pages + analytics keep the durable SLOT identity (req.product).
2617
+ driver: driverWithCatalog(driverWithEmail(checkout ?? createMockDriver(), emailForCheckout), catalog),
2581
2618
  tracker: busTracker,
2582
2619
  bus
2583
2620
  };
@@ -2849,7 +2886,8 @@ function createFunnelTree({
2849
2886
  config,
2850
2887
  pages,
2851
2888
  layout,
2852
- checkoutDriver
2889
+ checkoutDriver,
2890
+ messages
2853
2891
  }) {
2854
2892
  return function tree(opts) {
2855
2893
  const mode = opts.mode ?? "live";
@@ -2882,6 +2920,7 @@ function createFunnelTree({
2882
2920
  children: React.createElement(FunnelProvider, {
2883
2921
  config,
2884
2922
  products: opts.products ?? [],
2923
+ messages: opts.messages ?? messages,
2885
2924
  locale: opts.locale,
2886
2925
  tracker,
2887
2926
  checkout,
@@ -3045,111 +3084,111 @@ function Script({
3045
3084
 
3046
3085
  Object.defineProperty(exports, "assignVariant", {
3047
3086
  enumerable: true,
3048
- get: function () { return chunkZ3TWO2PW_cjs.assignVariant; }
3087
+ get: function () { return chunkJSRKA375_cjs.assignVariant; }
3049
3088
  });
3050
3089
  Object.defineProperty(exports, "bucketingSeed", {
3051
3090
  enumerable: true,
3052
- get: function () { return chunkZ3TWO2PW_cjs.bucketingSeed; }
3091
+ get: function () { return chunkJSRKA375_cjs.bucketingSeed; }
3053
3092
  });
3054
3093
  Object.defineProperty(exports, "buildCatalog", {
3055
3094
  enumerable: true,
3056
- get: function () { return chunkZ3TWO2PW_cjs.buildCatalog; }
3095
+ get: function () { return chunkJSRKA375_cjs.buildCatalog; }
3057
3096
  });
3058
3097
  Object.defineProperty(exports, "compileManifest", {
3059
3098
  enumerable: true,
3060
- get: function () { return chunkZ3TWO2PW_cjs.compileManifest; }
3099
+ get: function () { return chunkJSRKA375_cjs.compileManifest; }
3061
3100
  });
3062
3101
  Object.defineProperty(exports, "currencyExponent", {
3063
3102
  enumerable: true,
3064
- get: function () { return chunkZ3TWO2PW_cjs.currencyExponent; }
3103
+ get: function () { return chunkJSRKA375_cjs.currencyExponent; }
3065
3104
  });
3066
3105
  Object.defineProperty(exports, "defineFunnel", {
3067
3106
  enumerable: true,
3068
- get: function () { return chunkZ3TWO2PW_cjs.defineFunnel; }
3107
+ get: function () { return chunkJSRKA375_cjs.defineFunnel; }
3069
3108
  });
3070
3109
  Object.defineProperty(exports, "definePage", {
3071
3110
  enumerable: true,
3072
- get: function () { return chunkZ3TWO2PW_cjs.definePage; }
3111
+ get: function () { return chunkJSRKA375_cjs.definePage; }
3073
3112
  });
3074
3113
  Object.defineProperty(exports, "entryGuard", {
3075
3114
  enumerable: true,
3076
- get: function () { return chunkZ3TWO2PW_cjs.entryGuard; }
3115
+ get: function () { return chunkJSRKA375_cjs.entryGuard; }
3077
3116
  });
3078
3117
  Object.defineProperty(exports, "evaluateCondition", {
3079
3118
  enumerable: true,
3080
- get: function () { return chunkZ3TWO2PW_cjs.evaluateCondition; }
3119
+ get: function () { return chunkJSRKA375_cjs.evaluateCondition; }
3081
3120
  });
3082
3121
  Object.defineProperty(exports, "evaluateGate", {
3083
3122
  enumerable: true,
3084
- get: function () { return chunkZ3TWO2PW_cjs.evaluateGate; }
3123
+ get: function () { return chunkJSRKA375_cjs.evaluateGate; }
3085
3124
  });
3086
3125
  Object.defineProperty(exports, "expectedPathLength", {
3087
3126
  enumerable: true,
3088
- get: function () { return chunkZ3TWO2PW_cjs.expectedPathLength; }
3127
+ get: function () { return chunkJSRKA375_cjs.expectedPathLength; }
3089
3128
  });
3090
3129
  Object.defineProperty(exports, "fnv1a", {
3091
3130
  enumerable: true,
3092
- get: function () { return chunkZ3TWO2PW_cjs.fnv1a; }
3131
+ get: function () { return chunkJSRKA375_cjs.fnv1a; }
3093
3132
  });
3094
3133
  Object.defineProperty(exports, "formatMoney", {
3095
3134
  enumerable: true,
3096
- get: function () { return chunkZ3TWO2PW_cjs.formatMoney; }
3135
+ get: function () { return chunkJSRKA375_cjs.formatMoney; }
3097
3136
  });
3098
3137
  Object.defineProperty(exports, "formatProduct", {
3099
3138
  enumerable: true,
3100
- get: function () { return chunkZ3TWO2PW_cjs.formatProduct; }
3139
+ get: function () { return chunkJSRKA375_cjs.formatProduct; }
3101
3140
  });
3102
3141
  Object.defineProperty(exports, "hashToUnit", {
3103
3142
  enumerable: true,
3104
- get: function () { return chunkZ3TWO2PW_cjs.hashToUnit; }
3143
+ get: function () { return chunkJSRKA375_cjs.hashToUnit; }
3105
3144
  });
3106
3145
  Object.defineProperty(exports, "isRtl", {
3107
3146
  enumerable: true,
3108
- get: function () { return chunkZ3TWO2PW_cjs.isRtl; }
3147
+ get: function () { return chunkJSRKA375_cjs.isRtl; }
3109
3148
  });
3110
3149
  Object.defineProperty(exports, "isVariantKey", {
3111
3150
  enumerable: true,
3112
- get: function () { return chunkZ3TWO2PW_cjs.isVariantKey; }
3151
+ get: function () { return chunkJSRKA375_cjs.isVariantKey; }
3113
3152
  });
3114
3153
  Object.defineProperty(exports, "nextPage", {
3115
3154
  enumerable: true,
3116
- get: function () { return chunkZ3TWO2PW_cjs.nextPage; }
3155
+ get: function () { return chunkJSRKA375_cjs.nextPage; }
3117
3156
  });
3118
3157
  Object.defineProperty(exports, "outgoingKeys", {
3119
3158
  enumerable: true,
3120
- get: function () { return chunkZ3TWO2PW_cjs.outgoingKeys; }
3159
+ get: function () { return chunkJSRKA375_cjs.outgoingKeys; }
3121
3160
  });
3122
3161
  Object.defineProperty(exports, "pageMeta", {
3123
3162
  enumerable: true,
3124
- get: function () { return chunkZ3TWO2PW_cjs.pageMeta; }
3163
+ get: function () { return chunkJSRKA375_cjs.pageMeta; }
3125
3164
  });
3126
3165
  Object.defineProperty(exports, "parseSlotKey", {
3127
3166
  enumerable: true,
3128
- get: function () { return chunkZ3TWO2PW_cjs.parseSlotKey; }
3167
+ get: function () { return chunkJSRKA375_cjs.parseSlotKey; }
3129
3168
  });
3130
3169
  Object.defineProperty(exports, "pickByWeight", {
3131
3170
  enumerable: true,
3132
- get: function () { return chunkZ3TWO2PW_cjs.pickByWeight; }
3171
+ get: function () { return chunkJSRKA375_cjs.pickByWeight; }
3133
3172
  });
3134
3173
  Object.defineProperty(exports, "resolveExperiments", {
3135
3174
  enumerable: true,
3136
- get: function () { return chunkZ3TWO2PW_cjs.resolveExperiments; }
3175
+ get: function () { return chunkJSRKA375_cjs.resolveExperiments; }
3137
3176
  });
3138
3177
  Object.defineProperty(exports, "resolveLocale", {
3139
3178
  enumerable: true,
3140
- get: function () { return chunkZ3TWO2PW_cjs.resolveLocale; }
3179
+ get: function () { return chunkJSRKA375_cjs.resolveLocale; }
3141
3180
  });
3142
3181
  Object.defineProperty(exports, "resolveProduct", {
3143
3182
  enumerable: true,
3144
- get: function () { return chunkZ3TWO2PW_cjs.resolveProduct; }
3183
+ get: function () { return chunkJSRKA375_cjs.resolveProduct; }
3145
3184
  });
3146
3185
  Object.defineProperty(exports, "resolveRoute", {
3147
3186
  enumerable: true,
3148
- get: function () { return chunkZ3TWO2PW_cjs.resolveRoute; }
3187
+ get: function () { return chunkJSRKA375_cjs.resolveRoute; }
3149
3188
  });
3150
3189
  Object.defineProperty(exports, "validateExperiments", {
3151
3190
  enumerable: true,
3152
- get: function () { return chunkZ3TWO2PW_cjs.validateExperiments; }
3191
+ get: function () { return chunkJSRKA375_cjs.validateExperiments; }
3153
3192
  });
3154
3193
  Object.defineProperty(exports, "INLINE_SURFACES", {
3155
3194
  enumerable: true,