@replohq/sdk 1.22.0 → 2.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/_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/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/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,260 @@
|
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
export declare const okendoReviewAggregateOutputSchema: z.ZodObject<{
|
|
3
|
+
reviewCount: z.ZodNumber;
|
|
4
|
+
reviewAverageValue: z.ZodNumber;
|
|
5
|
+
reviewStarDistribution: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
6
|
+
recommendedPercentage: z.ZodNumber;
|
|
7
|
+
}, z.core.$strip>;
|
|
8
|
+
export declare const okendoReviewsOutputSchema: z.ZodObject<{
|
|
9
|
+
reviews: z.ZodArray<z.ZodObject<{
|
|
10
|
+
id: z.ZodString;
|
|
11
|
+
title: z.ZodOptional<z.ZodString>;
|
|
12
|
+
body: z.ZodOptional<z.ZodString>;
|
|
13
|
+
rating: z.ZodOptional<z.ZodNumber>;
|
|
14
|
+
productName: z.ZodOptional<z.ZodString>;
|
|
15
|
+
productVariantName: z.ZodOptional<z.ZodString>;
|
|
16
|
+
reviewerName: z.ZodOptional<z.ZodString>;
|
|
17
|
+
reviewerIsVerified: z.ZodOptional<z.ZodBoolean>;
|
|
18
|
+
reviewerLocation: z.ZodOptional<z.ZodString>;
|
|
19
|
+
reviewerCountryCode: z.ZodOptional<z.ZodString>;
|
|
20
|
+
reviewerAvatarUrl: z.ZodOptional<z.ZodString>;
|
|
21
|
+
reviewerVerifiedStatus: z.ZodOptional<z.ZodString>;
|
|
22
|
+
reviewerSocialConnection: z.ZodOptional<z.ZodString>;
|
|
23
|
+
source: z.ZodOptional<z.ZodString>;
|
|
24
|
+
dateCreated: z.ZodOptional<z.ZodString>;
|
|
25
|
+
status: z.ZodOptional<z.ZodString>;
|
|
26
|
+
isRecommended: z.ZodOptional<z.ZodBoolean>;
|
|
27
|
+
helpfulCount: z.ZodOptional<z.ZodNumber>;
|
|
28
|
+
media: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
29
|
+
type: z.ZodString;
|
|
30
|
+
thumbnailUrl: z.ZodOptional<z.ZodString>;
|
|
31
|
+
largeUrl: z.ZodOptional<z.ZodString>;
|
|
32
|
+
fullSizeUrl: z.ZodOptional<z.ZodString>;
|
|
33
|
+
largePortraitThumbnailUrl: z.ZodOptional<z.ZodString>;
|
|
34
|
+
videoPosterUrl: z.ZodOptional<z.ZodString>;
|
|
35
|
+
videoWebmUrl: z.ZodOptional<z.ZodString>;
|
|
36
|
+
alt: z.ZodOptional<z.ZodString>;
|
|
37
|
+
}, z.core.$strip>>>;
|
|
38
|
+
attributes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
39
|
+
title: z.ZodString;
|
|
40
|
+
value: z.ZodString;
|
|
41
|
+
}, z.core.$strip>>>;
|
|
42
|
+
reply: z.ZodOptional<z.ZodObject<{
|
|
43
|
+
body: z.ZodString;
|
|
44
|
+
dateCreated: z.ZodOptional<z.ZodString>;
|
|
45
|
+
}, z.core.$strip>>;
|
|
46
|
+
}, z.core.$strip>>;
|
|
47
|
+
nextCursor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
48
|
+
}, z.core.$strip>;
|
|
49
|
+
export declare const rebuyRecommendationsOutputSchema: z.ZodObject<{
|
|
50
|
+
products: z.ZodArray<z.ZodObject<{
|
|
51
|
+
id: z.ZodString;
|
|
52
|
+
handle: z.ZodOptional<z.ZodString>;
|
|
53
|
+
title: z.ZodOptional<z.ZodString>;
|
|
54
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
55
|
+
descriptionHtml: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
56
|
+
availableForSale: z.ZodOptional<z.ZodBoolean>;
|
|
57
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
58
|
+
ACTIVE: "ACTIVE";
|
|
59
|
+
DRAFT: "DRAFT";
|
|
60
|
+
ARCHIVED: "ARCHIVED";
|
|
61
|
+
UNLISTED: "UNLISTED";
|
|
62
|
+
}>>;
|
|
63
|
+
featuredImage: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
64
|
+
url: z.ZodString;
|
|
65
|
+
altText: z.ZodNullable<z.ZodString>;
|
|
66
|
+
width: z.ZodNullable<z.ZodNumber>;
|
|
67
|
+
height: z.ZodNullable<z.ZodNumber>;
|
|
68
|
+
}, z.core.$strip>>>;
|
|
69
|
+
options: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
70
|
+
id: z.ZodOptional<z.ZodString>;
|
|
71
|
+
name: z.ZodString;
|
|
72
|
+
values: z.ZodArray<z.ZodString>;
|
|
73
|
+
optionValues: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
74
|
+
id: z.ZodString;
|
|
75
|
+
value: z.ZodString;
|
|
76
|
+
swatch: z.ZodNullable<z.ZodObject<{
|
|
77
|
+
color: z.ZodNullable<z.ZodString>;
|
|
78
|
+
imageUrl: z.ZodNullable<z.ZodString>;
|
|
79
|
+
}, z.core.$strip>>;
|
|
80
|
+
}, z.core.$strip>>>;
|
|
81
|
+
}, z.core.$strip>>>;
|
|
82
|
+
variants: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
83
|
+
id: z.ZodString;
|
|
84
|
+
title: z.ZodOptional<z.ZodString>;
|
|
85
|
+
availableForSale: z.ZodOptional<z.ZodBoolean>;
|
|
86
|
+
isLowStock: z.ZodOptional<z.ZodBoolean>;
|
|
87
|
+
sku: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
88
|
+
selectedOptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
89
|
+
name: z.ZodString;
|
|
90
|
+
value: z.ZodString;
|
|
91
|
+
}, z.core.$strip>>>;
|
|
92
|
+
image: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
93
|
+
url: z.ZodString;
|
|
94
|
+
altText: z.ZodNullable<z.ZodString>;
|
|
95
|
+
width: z.ZodNullable<z.ZodNumber>;
|
|
96
|
+
height: z.ZodNullable<z.ZodNumber>;
|
|
97
|
+
}, z.core.$strip>>>;
|
|
98
|
+
price: z.ZodOptional<z.ZodObject<{
|
|
99
|
+
amount: z.ZodString;
|
|
100
|
+
currencyCode: z.ZodString;
|
|
101
|
+
}, z.core.$strip>>;
|
|
102
|
+
compareAtPrice: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
103
|
+
amount: z.ZodString;
|
|
104
|
+
currencyCode: z.ZodString;
|
|
105
|
+
}, z.core.$strip>>>;
|
|
106
|
+
sellingPlanIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
107
|
+
}, z.core.$strip>>>;
|
|
108
|
+
minPrice: z.ZodOptional<z.ZodObject<{
|
|
109
|
+
amount: z.ZodString;
|
|
110
|
+
currencyCode: z.ZodString;
|
|
111
|
+
}, z.core.$strip>>;
|
|
112
|
+
maxPrice: z.ZodOptional<z.ZodObject<{
|
|
113
|
+
amount: z.ZodString;
|
|
114
|
+
currencyCode: z.ZodString;
|
|
115
|
+
}, z.core.$strip>>;
|
|
116
|
+
compareAtMinPrice: z.ZodOptional<z.ZodObject<{
|
|
117
|
+
amount: z.ZodString;
|
|
118
|
+
currencyCode: z.ZodString;
|
|
119
|
+
}, z.core.$strip>>;
|
|
120
|
+
compareAtMaxPrice: z.ZodOptional<z.ZodObject<{
|
|
121
|
+
amount: z.ZodString;
|
|
122
|
+
currencyCode: z.ZodString;
|
|
123
|
+
}, z.core.$strip>>;
|
|
124
|
+
images: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
125
|
+
url: z.ZodString;
|
|
126
|
+
altText: z.ZodNullable<z.ZodString>;
|
|
127
|
+
width: z.ZodNullable<z.ZodNumber>;
|
|
128
|
+
height: z.ZodNullable<z.ZodNumber>;
|
|
129
|
+
}, z.core.$strip>>>;
|
|
130
|
+
media: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
131
|
+
type: z.ZodLiteral<"image">;
|
|
132
|
+
alt: z.ZodNullable<z.ZodString>;
|
|
133
|
+
url: z.ZodString;
|
|
134
|
+
width: z.ZodNullable<z.ZodNumber>;
|
|
135
|
+
height: z.ZodNullable<z.ZodNumber>;
|
|
136
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
137
|
+
type: z.ZodLiteral<"video">;
|
|
138
|
+
alt: z.ZodNullable<z.ZodString>;
|
|
139
|
+
sources: z.ZodArray<z.ZodObject<{
|
|
140
|
+
url: z.ZodString;
|
|
141
|
+
mimeType: z.ZodString;
|
|
142
|
+
format: z.ZodString;
|
|
143
|
+
width: z.ZodNullable<z.ZodNumber>;
|
|
144
|
+
height: z.ZodNullable<z.ZodNumber>;
|
|
145
|
+
}, z.core.$strip>>;
|
|
146
|
+
previewImage: z.ZodNullable<z.ZodObject<{
|
|
147
|
+
alt: z.ZodNullable<z.ZodString>;
|
|
148
|
+
url: z.ZodString;
|
|
149
|
+
width: z.ZodNullable<z.ZodNumber>;
|
|
150
|
+
height: z.ZodNullable<z.ZodNumber>;
|
|
151
|
+
}, z.core.$strip>>;
|
|
152
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
153
|
+
type: z.ZodLiteral<"externalVideo">;
|
|
154
|
+
alt: z.ZodNullable<z.ZodString>;
|
|
155
|
+
embedUrl: z.ZodString;
|
|
156
|
+
host: z.ZodString;
|
|
157
|
+
originUrl: z.ZodString;
|
|
158
|
+
previewImage: z.ZodNullable<z.ZodObject<{
|
|
159
|
+
alt: z.ZodNullable<z.ZodString>;
|
|
160
|
+
url: z.ZodString;
|
|
161
|
+
width: z.ZodNullable<z.ZodNumber>;
|
|
162
|
+
height: z.ZodNullable<z.ZodNumber>;
|
|
163
|
+
}, z.core.$strip>>;
|
|
164
|
+
}, z.core.$strip>], "type">>>;
|
|
165
|
+
vendor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
166
|
+
productType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
167
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
168
|
+
sellingPlanGroups: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
169
|
+
appId: z.ZodNullable<z.ZodString>;
|
|
170
|
+
options: z.ZodArray<z.ZodObject<{
|
|
171
|
+
name: z.ZodString;
|
|
172
|
+
values: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
173
|
+
}, z.core.$strip>>;
|
|
174
|
+
sellingPlans: z.ZodArray<z.ZodObject<{
|
|
175
|
+
id: z.ZodString;
|
|
176
|
+
name: z.ZodString;
|
|
177
|
+
description: z.ZodNullable<z.ZodString>;
|
|
178
|
+
optionValues: z.ZodArray<z.ZodObject<{
|
|
179
|
+
name: z.ZodOptional<z.ZodString>;
|
|
180
|
+
value: z.ZodString;
|
|
181
|
+
}, z.core.$strip>>;
|
|
182
|
+
priceAdjustments: z.ZodArray<z.ZodObject<{
|
|
183
|
+
value: z.ZodNumber;
|
|
184
|
+
valueType: z.ZodEnum<{
|
|
185
|
+
price: "price";
|
|
186
|
+
percentage: "percentage";
|
|
187
|
+
fixedAmount: "fixedAmount";
|
|
188
|
+
}>;
|
|
189
|
+
}, z.core.$strip>>;
|
|
190
|
+
appId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
191
|
+
price: z.ZodOptional<z.ZodString>;
|
|
192
|
+
externalId: z.ZodNullable<z.ZodString>;
|
|
193
|
+
}, z.core.$strip>>;
|
|
194
|
+
}, z.core.$strip>>>;
|
|
195
|
+
requiresSellingPlan: z.ZodOptional<z.ZodBoolean>;
|
|
196
|
+
metafields: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
197
|
+
key: z.ZodString;
|
|
198
|
+
namespace: z.ZodString;
|
|
199
|
+
type: z.ZodString;
|
|
200
|
+
value: z.ZodString;
|
|
201
|
+
reference: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
202
|
+
kind: z.ZodLiteral<"image">;
|
|
203
|
+
url: z.ZodNullable<z.ZodString>;
|
|
204
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
205
|
+
kind: z.ZodLiteral<"file">;
|
|
206
|
+
url: z.ZodNullable<z.ZodString>;
|
|
207
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
208
|
+
kind: z.ZodLiteral<"video">;
|
|
209
|
+
url: z.ZodNullable<z.ZodString>;
|
|
210
|
+
previewUrl: z.ZodNullable<z.ZodString>;
|
|
211
|
+
}, z.core.$strip>], "kind">>>;
|
|
212
|
+
}, z.core.$strip>>>;
|
|
213
|
+
}, z.core.$strip>>;
|
|
214
|
+
}, z.core.$strip>;
|
|
215
|
+
export declare const smileEarningRuleSchema: z.ZodObject<{
|
|
216
|
+
id: z.ZodNumber;
|
|
217
|
+
name: z.ZodString;
|
|
218
|
+
pointsAwarded: z.ZodNullable<z.ZodNumber>;
|
|
219
|
+
pointsAwardedType: z.ZodString;
|
|
220
|
+
activityToken: z.ZodString;
|
|
221
|
+
}, z.core.$strip>;
|
|
222
|
+
export declare const smileEarningRulesOutputSchema: z.ZodObject<{
|
|
223
|
+
earningRules: z.ZodArray<z.ZodObject<{
|
|
224
|
+
id: z.ZodNumber;
|
|
225
|
+
name: z.ZodString;
|
|
226
|
+
pointsAwarded: z.ZodNullable<z.ZodNumber>;
|
|
227
|
+
pointsAwardedType: z.ZodString;
|
|
228
|
+
activityToken: z.ZodString;
|
|
229
|
+
}, z.core.$strip>>;
|
|
230
|
+
}, z.core.$strip>;
|
|
231
|
+
export declare const smileRewardSchema: z.ZodObject<{
|
|
232
|
+
id: z.ZodNumber;
|
|
233
|
+
name: z.ZodString;
|
|
234
|
+
pointsCost: z.ZodNumber;
|
|
235
|
+
rewardType: z.ZodString;
|
|
236
|
+
discountValue: z.ZodNullable<z.ZodString>;
|
|
237
|
+
}, z.core.$strip>;
|
|
238
|
+
export declare const smileRewardsOutputSchema: z.ZodObject<{
|
|
239
|
+
rewards: z.ZodArray<z.ZodObject<{
|
|
240
|
+
id: z.ZodNumber;
|
|
241
|
+
name: z.ZodString;
|
|
242
|
+
pointsCost: z.ZodNumber;
|
|
243
|
+
rewardType: z.ZodString;
|
|
244
|
+
discountValue: z.ZodNullable<z.ZodString>;
|
|
245
|
+
}, z.core.$strip>>;
|
|
246
|
+
}, z.core.$strip>;
|
|
247
|
+
export declare const smileVipTierSchema: z.ZodObject<{
|
|
248
|
+
id: z.ZodNumber;
|
|
249
|
+
name: z.ZodString;
|
|
250
|
+
minimumPointsRequired: z.ZodNumber;
|
|
251
|
+
color: z.ZodNullable<z.ZodString>;
|
|
252
|
+
}, z.core.$strip>;
|
|
253
|
+
export declare const smileVipTiersOutputSchema: z.ZodObject<{
|
|
254
|
+
vipTiers: z.ZodArray<z.ZodObject<{
|
|
255
|
+
id: z.ZodNumber;
|
|
256
|
+
name: z.ZodString;
|
|
257
|
+
minimumPointsRequired: z.ZodNumber;
|
|
258
|
+
color: z.ZodNullable<z.ZodString>;
|
|
259
|
+
}, z.core.$strip>>;
|
|
260
|
+
}, z.core.$strip>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
import { okendoReviewSchema, productSchema } from "./loader-schemas";
|
|
3
|
+
const okendoReviewAggregateOutputSchema = z.object({
|
|
4
|
+
reviewCount: z.number(),
|
|
5
|
+
reviewAverageValue: z.number(),
|
|
6
|
+
reviewStarDistribution: z.record(z.string(), z.number()),
|
|
7
|
+
recommendedPercentage: z.number()
|
|
8
|
+
});
|
|
9
|
+
const okendoReviewsOutputSchema = z.object({
|
|
10
|
+
reviews: z.array(okendoReviewSchema),
|
|
11
|
+
nextCursor: z.string().nullish()
|
|
12
|
+
});
|
|
13
|
+
const rebuyRecommendationsOutputSchema = z.object({
|
|
14
|
+
products: z.array(productSchema)
|
|
15
|
+
});
|
|
16
|
+
const smileEarningRuleSchema = z.object({
|
|
17
|
+
id: z.number(),
|
|
18
|
+
name: z.string(),
|
|
19
|
+
pointsAwarded: z.number().nullable(),
|
|
20
|
+
pointsAwardedType: z.string(),
|
|
21
|
+
activityToken: z.string()
|
|
22
|
+
});
|
|
23
|
+
const smileEarningRulesOutputSchema = z.object({
|
|
24
|
+
earningRules: z.array(smileEarningRuleSchema)
|
|
25
|
+
});
|
|
26
|
+
const smileRewardSchema = z.object({
|
|
27
|
+
id: z.number(),
|
|
28
|
+
name: z.string(),
|
|
29
|
+
pointsCost: z.number(),
|
|
30
|
+
rewardType: z.string(),
|
|
31
|
+
discountValue: z.string().nullable()
|
|
32
|
+
});
|
|
33
|
+
const smileRewardsOutputSchema = z.object({
|
|
34
|
+
rewards: z.array(smileRewardSchema)
|
|
35
|
+
});
|
|
36
|
+
const smileVipTierSchema = z.object({
|
|
37
|
+
id: z.number(),
|
|
38
|
+
name: z.string(),
|
|
39
|
+
minimumPointsRequired: z.number(),
|
|
40
|
+
color: z.string().nullable()
|
|
41
|
+
});
|
|
42
|
+
const smileVipTiersOutputSchema = z.object({
|
|
43
|
+
vipTiers: z.array(smileVipTierSchema)
|
|
44
|
+
});
|
|
45
|
+
export {
|
|
46
|
+
okendoReviewAggregateOutputSchema,
|
|
47
|
+
okendoReviewsOutputSchema,
|
|
48
|
+
rebuyRecommendationsOutputSchema,
|
|
49
|
+
smileEarningRuleSchema,
|
|
50
|
+
smileEarningRulesOutputSchema,
|
|
51
|
+
smileRewardSchema,
|
|
52
|
+
smileRewardsOutputSchema,
|
|
53
|
+
smileVipTierSchema,
|
|
54
|
+
smileVipTiersOutputSchema
|
|
55
|
+
};
|
|
@@ -7,6 +7,11 @@ export declare class LoaderInvokeError extends CanopyError {
|
|
|
7
7
|
* In the browser, dynamically imports a server action so React 19 never sees
|
|
8
8
|
* the "use server" reference during render.
|
|
9
9
|
*
|
|
10
|
+
* Next defines `process.env.NEXT_RUNTIME` as "" in browser bundles, so the
|
|
11
|
+
* bundler drops the server branch and never emits the gateway, its env
|
|
12
|
+
* handling, or its Zod schemas as a client chunk. `typeof window` is not
|
|
13
|
+
* replaced at build time and would keep that chunk.
|
|
14
|
+
*
|
|
10
15
|
* In an editor iframe previewing an unfilled dynamic route, returns sample
|
|
11
16
|
* data instead of fetching — see `preview-placeholder.ts`.
|
|
12
17
|
*/
|
package/loaders/invoke-loader.js
CHANGED
|
@@ -11,7 +11,7 @@ async function invokeLoader({
|
|
|
11
11
|
return placeholderData;
|
|
12
12
|
}
|
|
13
13
|
try {
|
|
14
|
-
if (
|
|
14
|
+
if (process.env.NEXT_RUNTIME) {
|
|
15
15
|
const { getCanopyApiGateway } = await import("../gateways/canopy-api");
|
|
16
16
|
const gateway = await getCanopyApiGateway();
|
|
17
17
|
const response = await gateway.invokeLoader({ loaderKey, args });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import type { z } from "zod";
|
|
3
|
-
import { judgemeProductReviewAggregateLoaderOutputSchema } from "./loader-schemas";
|
|
3
|
+
import type { judgemeProductReviewAggregateLoaderOutputSchema } from "./loader-schemas";
|
|
4
4
|
type JudgemeReviewAggregateData = z.infer<typeof judgemeProductReviewAggregateLoaderOutputSchema>;
|
|
5
5
|
type JudgemeReviewAggregateLoaderProps = {
|
|
6
6
|
loaderKey: string;
|
|
@@ -4,7 +4,6 @@ import { Suspense } from "react";
|
|
|
4
4
|
import { useSuspenseQuery } from "@tanstack/react-query";
|
|
5
5
|
import { invokeLoader } from "./invoke-loader";
|
|
6
6
|
import { LoaderErrorBoundary } from "./loader-error-boundary";
|
|
7
|
-
import { judgemeProductReviewAggregateLoaderOutputSchema } from "./loader-schemas";
|
|
8
7
|
function JudgemeReviewAggregateLoaderInner({
|
|
9
8
|
loaderKey,
|
|
10
9
|
productId,
|
|
@@ -13,11 +12,16 @@ function JudgemeReviewAggregateLoaderInner({
|
|
|
13
12
|
const { data } = useSuspenseQuery({
|
|
14
13
|
queryKey: [loaderKey, { productId }],
|
|
15
14
|
queryFn: async () => {
|
|
16
|
-
const loadedData = await
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
const [loadedData, schemas] = await Promise.all([
|
|
16
|
+
invokeLoader({
|
|
17
|
+
loaderKey,
|
|
18
|
+
args: { productId }
|
|
19
|
+
}),
|
|
20
|
+
import("./loader-schemas")
|
|
21
|
+
]);
|
|
22
|
+
return schemas.judgemeProductReviewAggregateLoaderOutputSchema.parse(
|
|
23
|
+
loadedData
|
|
24
|
+
);
|
|
21
25
|
}
|
|
22
26
|
});
|
|
23
27
|
return /* @__PURE__ */ jsx(Fragment, { children: children(data) });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import type { z } from "zod";
|
|
3
|
-
import { judgemeProductReviewsLoaderOutputSchema } from "./loader-schemas";
|
|
3
|
+
import type { judgemeProductReviewsLoaderOutputSchema } from "./loader-schemas";
|
|
4
4
|
type JudgemeReviewsData = z.infer<typeof judgemeProductReviewsLoaderOutputSchema>;
|
|
5
5
|
type JudgemeReviewsLoaderProps = {
|
|
6
6
|
loaderKey: string;
|
|
@@ -4,7 +4,6 @@ import { Suspense } from "react";
|
|
|
4
4
|
import { useSuspenseQuery } from "@tanstack/react-query";
|
|
5
5
|
import { invokeLoader } from "./invoke-loader";
|
|
6
6
|
import { LoaderErrorBoundary } from "./loader-error-boundary";
|
|
7
|
-
import { judgemeProductReviewsLoaderOutputSchema } from "./loader-schemas";
|
|
8
7
|
function buildReviewsArgs({
|
|
9
8
|
productId,
|
|
10
9
|
perPage,
|
|
@@ -27,8 +26,11 @@ function JudgemeReviewsLoaderInner({
|
|
|
27
26
|
const { data } = useSuspenseQuery({
|
|
28
27
|
queryKey: [loaderKey, args],
|
|
29
28
|
queryFn: async () => {
|
|
30
|
-
const loadedData = await
|
|
31
|
-
|
|
29
|
+
const [loadedData, schemas] = await Promise.all([
|
|
30
|
+
invokeLoader({ loaderKey, args }),
|
|
31
|
+
import("./loader-schemas")
|
|
32
|
+
]);
|
|
33
|
+
return schemas.judgemeProductReviewsLoaderOutputSchema.parse(loadedData);
|
|
32
34
|
}
|
|
33
35
|
});
|
|
34
36
|
return /* @__PURE__ */ jsx(Fragment, { children: children(data) });
|
|
@@ -5,7 +5,6 @@ import { KachingBundle } from "@kachingappz/bundles-react";
|
|
|
5
5
|
import { useSuspenseQuery } from "@tanstack/react-query";
|
|
6
6
|
import { invokeLoader } from "./invoke-loader";
|
|
7
7
|
import { LoaderErrorBoundary } from "./loader-error-boundary";
|
|
8
|
-
import { shopifyKachingBundlesLoaderOutputSchema } from "./loader-schemas";
|
|
9
8
|
function KachingBundlesLoaderInner({
|
|
10
9
|
loaderKey,
|
|
11
10
|
args,
|
|
@@ -17,8 +16,11 @@ function KachingBundlesLoaderInner({
|
|
|
17
16
|
const { data } = useSuspenseQuery({
|
|
18
17
|
queryKey: [loaderKey, args],
|
|
19
18
|
queryFn: async () => {
|
|
20
|
-
const loadedData = await
|
|
21
|
-
|
|
19
|
+
const [loadedData, schemas] = await Promise.all([
|
|
20
|
+
invokeLoader({ loaderKey, args }),
|
|
21
|
+
import("./loader-schemas")
|
|
22
|
+
]);
|
|
23
|
+
return schemas.shopifyKachingBundlesLoaderOutputSchema.parse(loadedData);
|
|
22
24
|
}
|
|
23
25
|
});
|
|
24
26
|
if (data.bundles === null) {
|
|
@@ -4,7 +4,6 @@ import { Suspense } from "react";
|
|
|
4
4
|
import { useSuspenseQuery } from "@tanstack/react-query";
|
|
5
5
|
import { invokeLoader } from "./invoke-loader";
|
|
6
6
|
import { LoaderErrorBoundary } from "./loader-error-boundary";
|
|
7
|
-
import { levantaProductFullSchema } from "./loader-schemas";
|
|
8
7
|
function LevantaProductLoaderInner({
|
|
9
8
|
loaderKey,
|
|
10
9
|
asin,
|
|
@@ -14,11 +13,14 @@ function LevantaProductLoaderInner({
|
|
|
14
13
|
const queryResult = useSuspenseQuery({
|
|
15
14
|
queryKey: [loaderKey, { asin, marketplace }],
|
|
16
15
|
queryFn: async () => {
|
|
17
|
-
const loadedData = await
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
const [loadedData, schemas] = await Promise.all([
|
|
17
|
+
invokeLoader({
|
|
18
|
+
loaderKey,
|
|
19
|
+
args: { asin, marketplace }
|
|
20
|
+
}),
|
|
21
|
+
import("./loader-schemas")
|
|
22
|
+
]);
|
|
23
|
+
return schemas.levantaProductFullSchema.parse(loadedData);
|
|
22
24
|
}
|
|
23
25
|
});
|
|
24
26
|
return /* @__PURE__ */ jsx(Fragment, { children: children(queryResult.data) });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import type { z } from "zod";
|
|
3
|
-
import { looxProductReviewAggregateLoaderOutputSchema } from "./loader-schemas";
|
|
3
|
+
import type { looxProductReviewAggregateLoaderOutputSchema } from "./loader-schemas";
|
|
4
4
|
type LooxReviewAggregateData = z.infer<typeof looxProductReviewAggregateLoaderOutputSchema>;
|
|
5
5
|
type LooxReviewAggregateLoaderProps = {
|
|
6
6
|
loaderKey: string;
|
|
@@ -4,7 +4,6 @@ import { Suspense } from "react";
|
|
|
4
4
|
import { useSuspenseQuery } from "@tanstack/react-query";
|
|
5
5
|
import { invokeLoader } from "./invoke-loader";
|
|
6
6
|
import { LoaderErrorBoundary } from "./loader-error-boundary";
|
|
7
|
-
import { looxProductReviewAggregateLoaderOutputSchema } from "./loader-schemas";
|
|
8
7
|
function LooxReviewAggregateLoaderInner({
|
|
9
8
|
loaderKey,
|
|
10
9
|
shopifyProductId,
|
|
@@ -13,11 +12,16 @@ function LooxReviewAggregateLoaderInner({
|
|
|
13
12
|
const queryResult = useSuspenseQuery({
|
|
14
13
|
queryKey: [loaderKey, { shopifyProductId }],
|
|
15
14
|
queryFn: async () => {
|
|
16
|
-
const loadedData = await
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
const [loadedData, schemas] = await Promise.all([
|
|
16
|
+
invokeLoader({
|
|
17
|
+
loaderKey,
|
|
18
|
+
args: { shopifyProductId }
|
|
19
|
+
}),
|
|
20
|
+
import("./loader-schemas")
|
|
21
|
+
]);
|
|
22
|
+
return schemas.looxProductReviewAggregateLoaderOutputSchema.parse(
|
|
23
|
+
loadedData
|
|
24
|
+
);
|
|
21
25
|
}
|
|
22
26
|
});
|
|
23
27
|
return /* @__PURE__ */ jsx(Fragment, { children: children(queryResult.data) });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import type { z } from "zod";
|
|
3
|
-
import { looxProductReviewsLoaderOutputSchema } from "./loader-schemas";
|
|
3
|
+
import type { looxProductReviewsLoaderOutputSchema } from "./loader-schemas";
|
|
4
4
|
type LooxReviewsData = z.infer<typeof looxProductReviewsLoaderOutputSchema>;
|
|
5
5
|
type LooxReviewsLoaderProps = {
|
|
6
6
|
loaderKey: string;
|
|
@@ -4,7 +4,6 @@ import { Suspense } from "react";
|
|
|
4
4
|
import { useSuspenseQuery } from "@tanstack/react-query";
|
|
5
5
|
import { invokeLoader } from "./invoke-loader";
|
|
6
6
|
import { LoaderErrorBoundary } from "./loader-error-boundary";
|
|
7
|
-
import { looxProductReviewsLoaderOutputSchema } from "./loader-schemas";
|
|
8
7
|
function LooxReviewsLoaderInner({
|
|
9
8
|
loaderKey,
|
|
10
9
|
shopifyProductId,
|
|
@@ -13,11 +12,14 @@ function LooxReviewsLoaderInner({
|
|
|
13
12
|
const queryResult = useSuspenseQuery({
|
|
14
13
|
queryKey: [loaderKey, { shopifyProductId }],
|
|
15
14
|
queryFn: async () => {
|
|
16
|
-
const loadedData = await
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
const [loadedData, schemas] = await Promise.all([
|
|
16
|
+
invokeLoader({
|
|
17
|
+
loaderKey,
|
|
18
|
+
args: { shopifyProductId }
|
|
19
|
+
}),
|
|
20
|
+
import("./loader-schemas")
|
|
21
|
+
]);
|
|
22
|
+
return schemas.looxProductReviewsLoaderOutputSchema.parse(loadedData);
|
|
21
23
|
}
|
|
22
24
|
});
|
|
23
25
|
return /* @__PURE__ */ jsx(Fragment, { children: children(queryResult.data) });
|
|
@@ -4,7 +4,6 @@ import { Suspense } from "react";
|
|
|
4
4
|
import { useSuspenseQuery } from "@tanstack/react-query";
|
|
5
5
|
import { invokeLoader } from "./invoke-loader";
|
|
6
6
|
import { LoaderErrorBoundary } from "./loader-error-boundary";
|
|
7
|
-
import { shopifyMetaobjectLoaderOutputSchema } from "./loader-schemas";
|
|
8
7
|
function buildArgs({
|
|
9
8
|
type,
|
|
10
9
|
handle,
|
|
@@ -24,8 +23,11 @@ function MetaobjectLoaderInner({
|
|
|
24
23
|
const { data } = useSuspenseQuery({
|
|
25
24
|
queryKey: [loaderKey, args],
|
|
26
25
|
queryFn: async () => {
|
|
27
|
-
const loadedData = await
|
|
28
|
-
|
|
26
|
+
const [loadedData, schemas] = await Promise.all([
|
|
27
|
+
invokeLoader({ loaderKey, args }),
|
|
28
|
+
import("./loader-schemas")
|
|
29
|
+
]);
|
|
30
|
+
return schemas.shopifyMetaobjectLoaderOutputSchema.parse(loadedData);
|
|
29
31
|
}
|
|
30
32
|
});
|
|
31
33
|
return /* @__PURE__ */ jsx(Fragment, { children: children(data) });
|
|
@@ -4,7 +4,6 @@ import { Suspense } from "react";
|
|
|
4
4
|
import { useSuspenseQuery } from "@tanstack/react-query";
|
|
5
5
|
import { invokeLoader } from "./invoke-loader";
|
|
6
6
|
import { LoaderErrorBoundary } from "./loader-error-boundary";
|
|
7
|
-
import { shopifyMetaobjectsLoaderOutputSchema } from "./loader-schemas";
|
|
8
7
|
function buildArgs({
|
|
9
8
|
type,
|
|
10
9
|
first,
|
|
@@ -28,8 +27,11 @@ function MetaobjectsLoaderInner({
|
|
|
28
27
|
const { data } = useSuspenseQuery({
|
|
29
28
|
queryKey: [loaderKey, args],
|
|
30
29
|
queryFn: async () => {
|
|
31
|
-
const loadedData = await
|
|
32
|
-
|
|
30
|
+
const [loadedData, schemas] = await Promise.all([
|
|
31
|
+
invokeLoader({ loaderKey, args }),
|
|
32
|
+
import("./loader-schemas")
|
|
33
|
+
]);
|
|
34
|
+
return schemas.shopifyMetaobjectsLoaderOutputSchema.parse(loadedData);
|
|
33
35
|
}
|
|
34
36
|
});
|
|
35
37
|
return /* @__PURE__ */ jsx(Fragment, { children: children(data) });
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
reviewCount: z.ZodNumber;
|
|
5
|
-
reviewAverageValue: z.ZodNumber;
|
|
6
|
-
reviewStarDistribution: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
7
|
-
recommendedPercentage: z.ZodNumber;
|
|
8
|
-
}, z.core.$strip>;
|
|
2
|
+
import type { z } from "zod";
|
|
3
|
+
import type { okendoReviewAggregateOutputSchema } from "./integration-loader-schemas";
|
|
9
4
|
type OkendoReviewAggregateData = z.infer<typeof okendoReviewAggregateOutputSchema>;
|
|
10
5
|
type OkendoReviewAggregateLoaderProps = {
|
|
11
6
|
loaderKey: string;
|
|
@@ -2,15 +2,8 @@
|
|
|
2
2
|
import { Fragment, jsx } from "react/jsx-runtime";
|
|
3
3
|
import { Suspense } from "react";
|
|
4
4
|
import { useSuspenseQuery } from "@tanstack/react-query";
|
|
5
|
-
import * as z from "zod";
|
|
6
5
|
import { invokeLoader } from "./invoke-loader";
|
|
7
6
|
import { LoaderErrorBoundary } from "./loader-error-boundary";
|
|
8
|
-
const okendoReviewAggregateOutputSchema = z.object({
|
|
9
|
-
reviewCount: z.number(),
|
|
10
|
-
reviewAverageValue: z.number(),
|
|
11
|
-
reviewStarDistribution: z.record(z.string(), z.number()),
|
|
12
|
-
recommendedPercentage: z.number()
|
|
13
|
-
});
|
|
14
7
|
function OkendoReviewAggregateLoaderInner({
|
|
15
8
|
loaderKey,
|
|
16
9
|
shopifyProductId,
|
|
@@ -19,11 +12,14 @@ function OkendoReviewAggregateLoaderInner({
|
|
|
19
12
|
const queryResult = useSuspenseQuery({
|
|
20
13
|
queryKey: [loaderKey, { shopifyProductId }],
|
|
21
14
|
queryFn: async () => {
|
|
22
|
-
const loadedData = await
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
15
|
+
const [loadedData, schemas] = await Promise.all([
|
|
16
|
+
invokeLoader({
|
|
17
|
+
loaderKey,
|
|
18
|
+
args: { shopifyProductId }
|
|
19
|
+
}),
|
|
20
|
+
import("./integration-loader-schemas")
|
|
21
|
+
]);
|
|
22
|
+
return schemas.okendoReviewAggregateOutputSchema.parse(loadedData);
|
|
27
23
|
}
|
|
28
24
|
});
|
|
29
25
|
return /* @__PURE__ */ jsx(Fragment, { children: children(queryResult.data) });
|