@replohq/sdk 1.22.0 → 2.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/_vendor/replo-utils/lib/json.mjs +4 -5
- package/_vendor/replo-utils/lib/misc.mjs +4 -3
- package/_vendor/replo-utils/lib/object.d.ts +16 -1
- package/_vendor/replo-utils/lib/object.mjs +3 -4
- package/_vendor/schemas/contentEntry.mjs +3 -3
- package/_vendor/schemas/contentManifest.mjs +6 -6
- package/_vendor/schemas/errors.d.ts +3 -43
- package/_vendor/schemas/{money.d.ts → moneyFormat.d.ts} +1 -8
- package/_vendor/schemas/{money.mjs → moneyFormat.mjs} +5 -16
- package/_vendor/schemas/reploError.d.ts +43 -0
- package/_vendor/schemas/routing/locale.mjs +6 -4
- package/_vendor/schemas/routing/rules.mjs +6 -4
- package/analytics/analytics-sink.d.ts +126 -14
- package/analytics/combine-sinks.js +36 -13
- package/analytics/get-analytics-sinks.js +6 -4
- package/analytics/hooks/use-product-viewed-analytics.d.ts +1 -17
- package/analytics/hooks/use-product-viewed-analytics.js +5 -14
- package/analytics/legacy-checkout.d.ts +2 -0
- package/analytics/legacy-checkout.js +26 -0
- package/analytics/sinks/converge-event-mapper.d.ts +10 -11
- package/analytics/sinks/converge-event-mapper.js +50 -133
- package/analytics/sinks/converge-sink.d.ts +8 -7
- package/analytics/sinks/converge-sink.js +21 -3
- package/analytics/sinks/elevar-sink.d.ts +9 -7
- package/analytics/sinks/elevar-sink.js +37 -128
- package/analytics/sinks/ga4-sink.d.ts +9 -8
- package/analytics/sinks/ga4-sink.js +9 -8
- package/analytics/sinks/intelligems-sink.d.ts +9 -8
- package/analytics/sinks/intelligems-sink.js +3 -1
- package/analytics/sinks/meta-sink.d.ts +5 -4
- package/analytics/sinks/meta-sink.js +7 -3
- package/analytics/sinks/northbeam-sink.d.ts +1 -0
- package/analytics/sinks/northbeam-sink.js +2 -0
- package/analytics/sinks/pinterest-sink.d.ts +7 -6
- package/analytics/sinks/pinterest-sink.js +14 -20
- package/analytics/sinks/reddit-sink.d.ts +8 -7
- package/analytics/sinks/reddit-sink.js +13 -20
- package/analytics/sinks/replo-sink.d.ts +21 -9
- package/analytics/sinks/replo-sink.js +37 -39
- package/analytics/sinks/segment-event-mapper.d.ts +86 -0
- package/analytics/sinks/segment-event-mapper.js +71 -0
- package/analytics/sinks/segment-sink.d.ts +23 -0
- package/analytics/sinks/segment-sink.js +84 -0
- package/analytics/sinks/snapchat-sink.d.ts +6 -5
- package/analytics/sinks/snapchat-sink.js +8 -8
- package/analytics/sinks/tiktok-sink.d.ts +8 -7
- package/analytics/sinks/tiktok-sink.js +10 -15
- package/analytics/sinks/window-sink.d.ts +11 -9
- package/analytics/sinks/window-sink.js +5 -1
- package/analytics/sinks/x-sink.d.ts +5 -4
- package/analytics/sinks/x-sink.js +19 -50
- package/analytics/test-fixtures.d.ts +5 -0
- package/analytics/test-fixtures.js +18 -0
- package/analytics/utils/analytics-products.d.ts +0 -30
- package/analytics/utils/analytics-products.js +1 -51
- package/analytics/utils/collection-analytics.d.ts +2 -15
- package/analytics/utils/collection-analytics.js +14 -18
- package/analytics/utils/product-analytics.d.ts +23 -0
- package/analytics/utils/product-analytics.js +21 -0
- package/cart/hooks/use-add-to-cart.js +1 -1
- package/cart/utils/cart-analytics.d.ts +3 -23
- package/cart/utils/cart-analytics.js +1 -1
- package/cart/utils/cart-utils.js +1 -1
- package/cart/utils/variant-to-cart-line.js +1 -1
- package/chunk-CKRRL66R.mjs +28 -0
- package/{chunk-VVB7BEDE.mjs → chunk-O4QBR4QC.mjs} +9 -4
- package/{chunk-EUIVDITZ.mjs → chunk-OPKMOW43.mjs} +1 -1
- package/{chunk-C37TXOGI.mjs → chunk-PSYP2DYM.mjs} +1 -1
- package/{chunk-ACQS4AG5.mjs → chunk-TTEBDCWT.mjs} +272 -109
- package/{chunk-HFKL4ZR5.mjs → chunk-XGXJOHUY.mjs} +2 -1
- package/{chunk-AQG3256R.mjs → chunk-XSMYSAKY.mjs} +0 -26
- package/{chunk-SSBIMQES.mjs → chunk-XWWFRIXV.mjs} +36 -99
- package/chunk-ZPDXVFCR.mjs +66 -0
- package/hooks/use-formatted-price.js +1 -1
- package/lib/buildMetadata.js +3 -3
- package/loaders/collection-loader.js +8 -6
- package/loaders/collection-products-loader.js +8 -6
- package/loaders/contentful-entries-loader.js +5 -3
- package/loaders/contentful-entry-loader.js +5 -3
- package/loaders/integration-loader-schemas.d.ts +260 -0
- package/loaders/integration-loader-schemas.js +55 -0
- package/loaders/invoke-loader.d.ts +5 -0
- package/loaders/invoke-loader.js +1 -1
- package/loaders/judgeme-review-aggregate-loader.d.ts +1 -1
- package/loaders/judgeme-review-aggregate-loader.js +10 -6
- package/loaders/judgeme-reviews-loader.d.ts +1 -1
- package/loaders/judgeme-reviews-loader.js +5 -3
- package/loaders/kaching-bundles-loader.js +5 -3
- package/loaders/levanta-product-loader.js +8 -6
- package/loaders/loox-review-aggregate-loader.d.ts +1 -1
- package/loaders/loox-review-aggregate-loader.js +10 -6
- package/loaders/loox-reviews-loader.d.ts +1 -1
- package/loaders/loox-reviews-loader.js +8 -6
- package/loaders/metaobject-loader.js +5 -3
- package/loaders/metaobjects-loader.js +5 -3
- package/loaders/okendo-review-aggregate-loader.d.ts +2 -7
- package/loaders/okendo-review-aggregate-loader.js +8 -12
- package/loaders/okendo-reviews-loader.d.ts +2 -42
- package/loaders/okendo-reviews-loader.js +5 -8
- package/loaders/product-loader.js +5 -3
- package/loaders/rebuy-recommendations-loader.d.ts +2 -167
- package/loaders/rebuy-recommendations-loader.js +8 -10
- package/loaders/reviews-io-review-aggregate-loader.d.ts +1 -1
- package/loaders/reviews-io-review-aggregate-loader.js +5 -3
- package/loaders/reviews-io-reviews-loader.d.ts +1 -1
- package/loaders/reviews-io-reviews-loader.js +7 -3
- package/loaders/shopify-integration-details-loader.js +10 -6
- package/loaders/smile-earning-rules-loader.d.ts +2 -8
- package/loaders/smile-earning-rules-loader.js +8 -16
- package/loaders/smile-rewards-loader.d.ts +2 -8
- package/loaders/smile-rewards-loader.js +8 -16
- package/loaders/smile-vip-tiers-loader.d.ts +2 -7
- package/loaders/smile-vip-tiers-loader.js +8 -15
- package/loaders/statsig-experiment-loader.js +5 -3
- package/loaders/yotpo-review-aggregate-loader.d.ts +1 -1
- package/loaders/yotpo-review-aggregate-loader.js +10 -6
- package/loaders/yotpo-reviews-loader.d.ts +1 -1
- package/loaders/yotpo-reviews-loader.js +5 -3
- package/money.d.ts +1 -1
- package/money.js +1 -1
- package/package.json +8 -4
- package/chunk-CQYCPDPI.mjs +0 -166
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ProductViewedData } from "../analytics-sink";
|
|
2
|
+
export interface AnalyticsProduct {
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
slug?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface AnalyticsProductVariant {
|
|
9
|
+
id: string;
|
|
10
|
+
title?: string;
|
|
11
|
+
sku?: string;
|
|
12
|
+
price?: number | {
|
|
13
|
+
amount: number | string;
|
|
14
|
+
currencyCode: string;
|
|
15
|
+
};
|
|
16
|
+
currency?: string;
|
|
17
|
+
priceCurrencyCode?: string | null;
|
|
18
|
+
}
|
|
19
|
+
/** The `productViewed` payload for a product and its selected variant. */
|
|
20
|
+
export declare function buildProductViewedAnalyticsData({ product, selectedVariant, }: {
|
|
21
|
+
product: AnalyticsProduct;
|
|
22
|
+
selectedVariant: AnalyticsProductVariant;
|
|
23
|
+
}): ProductViewedData;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
function buildProductViewedAnalyticsData({
|
|
2
|
+
product,
|
|
3
|
+
selectedVariant
|
|
4
|
+
}) {
|
|
5
|
+
const price = typeof selectedVariant.price === "object" ? Number(selectedVariant.price.amount) : selectedVariant.price ?? 0;
|
|
6
|
+
const currency = typeof selectedVariant.price === "object" ? selectedVariant.price.currencyCode : selectedVariant.currency ?? selectedVariant.priceCurrencyCode ?? void 0;
|
|
7
|
+
return {
|
|
8
|
+
productId: product.id,
|
|
9
|
+
productTitle: product.title,
|
|
10
|
+
productSlug: product.slug,
|
|
11
|
+
productDescription: product.description,
|
|
12
|
+
variantId: selectedVariant.id,
|
|
13
|
+
variantTitle: selectedVariant.title ?? "",
|
|
14
|
+
variantSku: selectedVariant.sku ?? "",
|
|
15
|
+
price,
|
|
16
|
+
currency
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
buildProductViewedAnalyticsData
|
|
21
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { useQueryClient } from "@tanstack/react-query";
|
|
4
|
-
import { fromMajorUnitsToMinorUnits } from "../../_vendor/schemas/
|
|
4
|
+
import { fromMajorUnitsToMinorUnits } from "../../_vendor/schemas/moneyFormat.mjs";
|
|
5
5
|
import { DATA_LOADER_KEYS } from "../../loaders/loader-keys";
|
|
6
6
|
import { useCartInternal } from "../cart-provider";
|
|
7
7
|
import { REPLO_ATTRIBUTION_PROPERTY } from "../cart-types";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CartLineData, CartViewedData } from "../../analytics/analytics-sink";
|
|
1
2
|
import type { Cart, CartLineMerchandise } from "../cart-types";
|
|
2
3
|
/**
|
|
3
4
|
* The per-line payload every cart event carries. Cart amounts are integer
|
|
@@ -8,27 +9,6 @@ export declare function buildCartLineAnalyticsData({ merchandise, quantity, curr
|
|
|
8
9
|
merchandise: CartLineMerchandise;
|
|
9
10
|
quantity: number;
|
|
10
11
|
currencyCode: string | undefined;
|
|
11
|
-
}):
|
|
12
|
-
productId: string;
|
|
13
|
-
variantId: string;
|
|
14
|
-
quantity: number;
|
|
15
|
-
price: number;
|
|
16
|
-
currency: string | undefined;
|
|
17
|
-
productTitle: string;
|
|
18
|
-
variantTitle: string;
|
|
19
|
-
};
|
|
12
|
+
}): CartLineData;
|
|
20
13
|
/** The cart-view payload, built from whichever cart snapshot the caller passes. */
|
|
21
|
-
export declare function buildCartViewAnalyticsData(cart: Cart | null):
|
|
22
|
-
itemCount: number;
|
|
23
|
-
subtotal: number;
|
|
24
|
-
currency: string | undefined;
|
|
25
|
-
lineItems: {
|
|
26
|
-
productId: string;
|
|
27
|
-
variantId: string;
|
|
28
|
-
quantity: number;
|
|
29
|
-
price: number;
|
|
30
|
-
currency: string | undefined;
|
|
31
|
-
productTitle: string;
|
|
32
|
-
variantTitle: string;
|
|
33
|
-
}[];
|
|
34
|
-
};
|
|
14
|
+
export declare function buildCartViewAnalyticsData(cart: Cart | null): CartViewedData;
|
package/cart/utils/cart-utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { formatAmount } from "../../_vendor/schemas/
|
|
1
|
+
import { formatAmount } from "../../_vendor/schemas/moneyFormat.mjs";
|
|
2
2
|
import { CanopyError } from "../../lib/canopy-error";
|
|
3
3
|
import { getCartLinePricing } from "./variant-to-cart-line";
|
|
4
4
|
class CartReconciliationMismatchError extends CanopyError {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { fromMajorUnitsToMinorUnits } from "../../_vendor/schemas/
|
|
1
|
+
import { fromMajorUnitsToMinorUnits } from "../../_vendor/schemas/moneyFormat.mjs";
|
|
2
2
|
function applyPriceAdjustment(variantPrice, adjustment, currencyCode) {
|
|
3
3
|
switch (adjustment.valueType) {
|
|
4
4
|
case "price":
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { v4 } from 'uuid';
|
|
2
|
+
|
|
3
|
+
function randomUUID() {
|
|
4
|
+
return v4();
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
var ReploError = class _ReploError extends Error {
|
|
8
|
+
config;
|
|
9
|
+
id;
|
|
10
|
+
constructor(config) {
|
|
11
|
+
super(config.message);
|
|
12
|
+
this.message = config.message ?? this.constructor.name;
|
|
13
|
+
this.config = config;
|
|
14
|
+
this.id = randomUUID();
|
|
15
|
+
const cause = config.cause;
|
|
16
|
+
if (cause) {
|
|
17
|
+
this.cause = cause;
|
|
18
|
+
if (cause instanceof _ReploError) {
|
|
19
|
+
this.config.additionalData = {
|
|
20
|
+
...this.config.additionalData,
|
|
21
|
+
...cause.config.additionalData
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export { ReploError };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { isObject_default } from './chunk-SSBIMQES.mjs';
|
|
1
|
+
import { isString_default, isNumber_default } from './chunk-OPKMOW43.mjs';
|
|
2
|
+
import { isObject_default } from './chunk-ZPDXVFCR.mjs';
|
|
4
3
|
|
|
5
4
|
var has = Object.prototype.hasOwnProperty;
|
|
6
5
|
function dequal(foo, bar) {
|
|
@@ -75,7 +74,13 @@ function omit(obj, keysToOmit) {
|
|
|
75
74
|
return result;
|
|
76
75
|
}
|
|
77
76
|
function filterUndefined(data) {
|
|
78
|
-
|
|
77
|
+
const result = {};
|
|
78
|
+
for (const [key, value] of Object.entries(data)) {
|
|
79
|
+
if (value !== void 0) {
|
|
80
|
+
result[key] = value;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return result;
|
|
79
84
|
}
|
|
80
85
|
function toNullableIfDefined(value) {
|
|
81
86
|
return value === void 0 ? void 0 : value ?? null;
|