@replohq/sdk 0.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/LICENSE +11 -0
- package/_vendor/replo-utils/lib/crypto.d.ts +30 -0
- package/_vendor/replo-utils/lib/errors.d.ts +83 -0
- package/_vendor/replo-utils/lib/json.d.ts +6 -0
- package/_vendor/replo-utils/lib/json.mjs +43 -0
- package/_vendor/replo-utils/lib/misc.d.ts +145 -0
- package/_vendor/replo-utils/lib/object.d.ts +31 -0
- package/_vendor/schemas/errors.d.ts +459 -0
- package/_vendor/schemas/generated/consent.d.ts +55 -0
- package/_vendor/schemas/generated/errors.d.ts +61 -0
- package/_vendor/schemas/loaderKeys.d.ts +1 -0
- package/_vendor/schemas/loaderKeys.mjs +27 -0
- package/_vendor/schemas/money.d.ts +60 -0
- package/_vendor/schemas/money.mjs +2051 -0
- package/analytics/analytics-provider.d.ts +16 -0
- package/analytics/analytics-provider.js +113 -0
- package/analytics/analytics-provider.js.map +7 -0
- package/analytics/analytics-sink.d.ts +26 -0
- package/analytics/analytics-sink.js +1 -0
- package/analytics/analytics-sink.js.map +7 -0
- package/analytics/get-analytics-sinks.d.ts +27 -0
- package/analytics/get-analytics-sinks.js +52 -0
- package/analytics/get-analytics-sinks.js.map +7 -0
- package/analytics/hooks/use-product-viewed-analytics.d.ts +23 -0
- package/analytics/hooks/use-product-viewed-analytics.js +34 -0
- package/analytics/hooks/use-product-viewed-analytics.js.map +7 -0
- package/analytics/replo-first-party-pixel.d.ts +12 -0
- package/analytics/replo-first-party-pixel.js +31 -0
- package/analytics/replo-first-party-pixel.js.map +7 -0
- package/analytics/replo-pixel-script.d.ts +13 -0
- package/analytics/replo-pixel-script.js +30 -0
- package/analytics/replo-pixel-script.js.map +7 -0
- package/analytics/sinks/ga4-sink.d.ts +15 -0
- package/analytics/sinks/ga4-sink.js +60 -0
- package/analytics/sinks/ga4-sink.js.map +7 -0
- package/analytics/sinks/meta-sink.d.ts +14 -0
- package/analytics/sinks/meta-sink.js +56 -0
- package/analytics/sinks/meta-sink.js.map +7 -0
- package/analytics/sinks/pinterest-sink.d.ts +14 -0
- package/analytics/sinks/pinterest-sink.js +76 -0
- package/analytics/sinks/pinterest-sink.js.map +7 -0
- package/analytics/sinks/reddit-sink.d.ts +14 -0
- package/analytics/sinks/reddit-sink.js +80 -0
- package/analytics/sinks/reddit-sink.js.map +7 -0
- package/analytics/sinks/replo-sink.d.ts +14 -0
- package/analytics/sinks/replo-sink.js +57 -0
- package/analytics/sinks/replo-sink.js.map +7 -0
- package/analytics/sinks/snapchat-sink.d.ts +14 -0
- package/analytics/sinks/snapchat-sink.js +67 -0
- package/analytics/sinks/snapchat-sink.js.map +7 -0
- package/analytics/sinks/tiktok-sink.d.ts +14 -0
- package/analytics/sinks/tiktok-sink.js +79 -0
- package/analytics/sinks/tiktok-sink.js.map +7 -0
- package/analytics/sinks/window-sink.d.ts +18 -0
- package/analytics/sinks/window-sink.js +46 -0
- package/analytics/sinks/window-sink.js.map +7 -0
- package/analytics/utils/analytics-utils.d.ts +7 -0
- package/analytics/utils/analytics-utils.js +130 -0
- package/analytics/utils/analytics-utils.js.map +7 -0
- package/analytics/utils/navigation-tracker.d.ts +16 -0
- package/analytics/utils/navigation-tracker.js +44 -0
- package/analytics/utils/navigation-tracker.js.map +7 -0
- package/analytics/utils/shopify-funnel-gate.d.ts +8 -0
- package/analytics/utils/shopify-funnel-gate.js +22 -0
- package/analytics/utils/shopify-funnel-gate.js.map +7 -0
- package/cart/buy-now-action.d.ts +21 -0
- package/cart/buy-now-action.js +104 -0
- package/cart/buy-now-action.js.map +7 -0
- package/cart/cart-actions.d.ts +63 -0
- package/cart/cart-actions.js +90 -0
- package/cart/cart-actions.js.map +7 -0
- package/cart/cart-loader.d.ts +9 -0
- package/cart/cart-loader.js +11 -0
- package/cart/cart-loader.js.map +7 -0
- package/cart/cart-provider.d.ts +85 -0
- package/cart/cart-provider.js +372 -0
- package/cart/cart-provider.js.map +7 -0
- package/cart/cart-schema.d.ts +74 -0
- package/cart/cart-schema.js +69 -0
- package/cart/cart-schema.js.map +7 -0
- package/cart/cart-types.d.ts +132 -0
- package/cart/cart-types.js +8 -0
- package/cart/cart-types.js.map +7 -0
- package/cart/gateways/cart-constants.d.ts +1 -0
- package/cart/gateways/cart-constants.js +5 -0
- package/cart/gateways/cart-constants.js.map +7 -0
- package/cart/gateways/cart-gateway.d.ts +10 -0
- package/cart/gateways/cart-gateway.js +19 -0
- package/cart/gateways/cart-gateway.js.map +7 -0
- package/cart/gateways/cookie-cart-gateway.d.ts +28 -0
- package/cart/gateways/cookie-cart-gateway.js +109 -0
- package/cart/gateways/cookie-cart-gateway.js.map +7 -0
- package/cart/gateways/default-cart-gateway.d.ts +19 -0
- package/cart/gateways/default-cart-gateway.js +30 -0
- package/cart/gateways/default-cart-gateway.js.map +7 -0
- package/cart/gateways/resolver-cart-gateway.d.ts +2 -0
- package/cart/gateways/resolver-cart-gateway.js +109 -0
- package/cart/gateways/resolver-cart-gateway.js.map +7 -0
- package/cart/gateways/stripe-cart-gateway.d.ts +19 -0
- package/cart/gateways/stripe-cart-gateway.js +28 -0
- package/cart/gateways/stripe-cart-gateway.js.map +7 -0
- package/cart/hooks/use-add-to-cart.d.ts +63 -0
- package/cart/hooks/use-add-to-cart.js +124 -0
- package/cart/hooks/use-add-to-cart.js.map +7 -0
- package/cart/hooks/use-buy-now.d.ts +49 -0
- package/cart/hooks/use-buy-now.js +62 -0
- package/cart/hooks/use-buy-now.js.map +7 -0
- package/cart/utils/cart-utils.d.ts +43 -0
- package/cart/utils/cart-utils.js +46 -0
- package/cart/utils/cart-utils.js.map +7 -0
- package/cart/utils/cookie-cart-persistence.d.ts +55 -0
- package/cart/utils/cookie-cart-persistence.js +166 -0
- package/cart/utils/cookie-cart-persistence.js.map +7 -0
- package/cart/utils/variant-to-cart-line.d.ts +74 -0
- package/cart/utils/variant-to-cart-line.js +162 -0
- package/cart/utils/variant-to-cart-line.js.map +7 -0
- package/chunk-UJCSKKID.mjs +27 -0
- package/consent/consent-action.d.ts +9 -0
- package/consent/consent-action.js +25 -0
- package/consent/consent-action.js.map +7 -0
- package/consent/consent-actions.d.ts +28 -0
- package/consent/consent-actions.js +36 -0
- package/consent/consent-actions.js.map +7 -0
- package/consent/consent-store.d.ts +69 -0
- package/consent/consent-store.js +194 -0
- package/consent/consent-store.js.map +7 -0
- package/consent/cookie.d.ts +36 -0
- package/consent/cookie.js +82 -0
- package/consent/cookie.js.map +7 -0
- package/consent/replo-scripts.d.ts +23 -0
- package/consent/replo-scripts.js +102 -0
- package/consent/replo-scripts.js.map +7 -0
- package/consent/script-registration-store.d.ts +25 -0
- package/consent/script-registration-store.js +61 -0
- package/consent/script-registration-store.js.map +7 -0
- package/consent/script-snippets.d.ts +24 -0
- package/consent/script-snippets.js +122 -0
- package/consent/script-snippets.js.map +7 -0
- package/consent/types.d.ts +34 -0
- package/consent/types.js +1 -0
- package/consent/types.js.map +7 -0
- package/consent/window-api.d.ts +41 -0
- package/consent/window-api.js +73 -0
- package/consent/window-api.js.map +7 -0
- package/env.d.ts +9 -0
- package/env.js +42 -0
- package/env.js.map +7 -0
- package/gateways/canopy-api.d.ts +83 -0
- package/gateways/canopy-api.js +197 -0
- package/gateways/canopy-api.js.map +7 -0
- package/hooks/use-client-value.d.ts +10 -0
- package/hooks/use-client-value.js +12 -0
- package/hooks/use-client-value.js.map +7 -0
- package/hooks/use-formatted-price.d.ts +15 -0
- package/hooks/use-formatted-price.js +20 -0
- package/hooks/use-formatted-price.js.map +7 -0
- package/lib/canopy-error.d.ts +25 -0
- package/lib/canopy-error.js +24 -0
- package/lib/canopy-error.js.map +7 -0
- package/lib/get-query-client.d.ts +2 -0
- package/lib/get-query-client.js +34 -0
- package/lib/get-query-client.js.map +7 -0
- package/lib/integration-utils.d.ts +2 -0
- package/lib/integration-utils.js +9 -0
- package/lib/integration-utils.js.map +7 -0
- package/lib/shopify-utils.d.ts +10 -0
- package/lib/shopify-utils.js +7 -0
- package/lib/shopify-utils.js.map +7 -0
- package/lib/url-utils.d.ts +4 -0
- package/lib/url-utils.js +8 -0
- package/lib/url-utils.js.map +7 -0
- package/loaders/collection-loader.d.ts +11 -0
- package/loaders/collection-loader.js +55 -0
- package/loaders/collection-loader.js.map +7 -0
- package/loaders/collection-products-loader.d.ts +12 -0
- package/loaders/collection-products-loader.js +58 -0
- package/loaders/collection-products-loader.js.map +7 -0
- package/loaders/contentful-entries-loader.d.ts +17 -0
- package/loaders/contentful-entries-loader.js +78 -0
- package/loaders/contentful-entries-loader.js.map +7 -0
- package/loaders/contentful-entry-loader.d.ts +14 -0
- package/loaders/contentful-entry-loader.js +60 -0
- package/loaders/contentful-entry-loader.js.map +7 -0
- package/loaders/invoke-loader-action.d.ts +11 -0
- package/loaders/invoke-loader-action.js +14 -0
- package/loaders/invoke-loader-action.js.map +7 -0
- package/loaders/invoke-loader-server.d.ts +18 -0
- package/loaders/invoke-loader-server.js +40 -0
- package/loaders/invoke-loader-server.js.map +7 -0
- package/loaders/invoke-loader.d.ts +16 -0
- package/loaders/invoke-loader.js +37 -0
- package/loaders/invoke-loader.js.map +7 -0
- package/loaders/levanta-product-loader.d.ts +11 -0
- package/loaders/levanta-product-loader.js +53 -0
- package/loaders/levanta-product-loader.js.map +7 -0
- package/loaders/loader-error-boundary.d.ts +25 -0
- package/loaders/loader-error-boundary.js +24 -0
- package/loaders/loader-error-boundary.js.map +7 -0
- package/loaders/loader-keys.d.ts +34 -0
- package/loaders/loader-keys.js +26 -0
- package/loaders/loader-keys.js.map +7 -0
- package/loaders/loader-schemas.d.ts +946 -0
- package/loaders/loader-schemas.js +353 -0
- package/loaders/loader-schemas.js.map +7 -0
- package/loaders/metaobject-loader.d.ts +12 -0
- package/loaders/metaobject-loader.js +54 -0
- package/loaders/metaobject-loader.js.map +7 -0
- package/loaders/metaobjects-loader.d.ts +14 -0
- package/loaders/metaobjects-loader.js +60 -0
- package/loaders/metaobjects-loader.js.map +7 -0
- package/loaders/okendo-review-aggregate-loader.d.ts +17 -0
- package/loaders/okendo-review-aggregate-loader.js +56 -0
- package/loaders/okendo-review-aggregate-loader.js.map +7 -0
- package/loaders/okendo-reviews-loader.d.ts +23 -0
- package/loaders/okendo-reviews-loader.js +54 -0
- package/loaders/okendo-reviews-loader.js.map +7 -0
- package/loaders/prefetch-loaders.d.ts +33 -0
- package/loaders/prefetch-loaders.js +46 -0
- package/loaders/prefetch-loaders.js.map +7 -0
- package/loaders/preview-placeholder.d.ts +25 -0
- package/loaders/preview-placeholder.js +222 -0
- package/loaders/preview-placeholder.js.map +7 -0
- package/loaders/product-loader-args.d.ts +21 -0
- package/loaders/product-loader-args.js +17 -0
- package/loaders/product-loader-args.js.map +7 -0
- package/loaders/product-loader.d.ts +10 -0
- package/loaders/product-loader.js +52 -0
- package/loaders/product-loader.js.map +7 -0
- package/loaders/rebuy-recommendations-loader.d.ts +165 -0
- package/loaders/rebuy-recommendations-loader.js +57 -0
- package/loaders/rebuy-recommendations-loader.js.map +7 -0
- package/loaders/reviews-io-review-aggregate-loader.d.ts +12 -0
- package/loaders/reviews-io-review-aggregate-loader.js +43 -0
- package/loaders/reviews-io-review-aggregate-loader.js.map +7 -0
- package/loaders/reviews-io-reviews-loader.d.ts +14 -0
- package/loaders/reviews-io-reviews-loader.js +65 -0
- package/loaders/reviews-io-reviews-loader.js.map +7 -0
- package/loaders/smile-earning-rules-loader.d.ts +19 -0
- package/loaders/smile-earning-rules-loader.js +44 -0
- package/loaders/smile-earning-rules-loader.js.map +7 -0
- package/loaders/smile-rewards-loader.d.ts +19 -0
- package/loaders/smile-rewards-loader.js +44 -0
- package/loaders/smile-rewards-loader.js.map +7 -0
- package/loaders/smile-vip-tiers-loader.d.ts +18 -0
- package/loaders/smile-vip-tiers-loader.js +43 -0
- package/loaders/smile-vip-tiers-loader.js.map +7 -0
- package/loaders/statsig-experiment-loader.d.ts +20 -0
- package/loaders/statsig-experiment-loader.js +81 -0
- package/loaders/statsig-experiment-loader.js.map +7 -0
- package/loaders/yotpo-review-aggregate-loader.d.ts +12 -0
- package/loaders/yotpo-review-aggregate-loader.js +50 -0
- package/loaders/yotpo-review-aggregate-loader.js.map +7 -0
- package/loaders/yotpo-reviews-loader.d.ts +14 -0
- package/loaders/yotpo-reviews-loader.js +65 -0
- package/loaders/yotpo-reviews-loader.js.map +7 -0
- package/money.d.ts +9 -0
- package/money.js +13 -0
- package/money.js.map +7 -0
- package/next/config.d.ts +4 -0
- package/next/config.js +91 -0
- package/next/config.js.map +7 -0
- package/next/image-loader.d.ts +2 -0
- package/next/image-loader.js +52 -0
- package/next/image-loader.js.map +7 -0
- package/next/open-next.d.ts +2 -0
- package/next/open-next.js +24 -0
- package/next/open-next.js.map +7 -0
- package/orders/order-status-schema.d.ts +161 -0
- package/orders/order-status-schema.js +83 -0
- package/orders/order-status-schema.js.map +7 -0
- package/orders/order-status.d.ts +11 -0
- package/orders/order-status.js +41 -0
- package/orders/order-status.js.map +7 -0
- package/package.json +216 -0
- package/providers/query-provider.d.ts +1 -0
- package/providers/query-provider.js +12 -0
- package/providers/query-provider.js.map +7 -0
- package/providers/replo-provider.d.ts +1 -0
- package/providers/replo-provider.js +22 -0
- package/providers/replo-provider.js.map +7 -0
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const imageSchema = z.object({
|
|
3
|
+
url: z.string(),
|
|
4
|
+
altText: z.string().nullable(),
|
|
5
|
+
width: z.number().nullable(),
|
|
6
|
+
height: z.number().nullable()
|
|
7
|
+
});
|
|
8
|
+
const mediaImageSchema = z.object({
|
|
9
|
+
type: z.literal("image"),
|
|
10
|
+
alt: z.string().nullable(),
|
|
11
|
+
url: z.string(),
|
|
12
|
+
width: z.number().nullable(),
|
|
13
|
+
height: z.number().nullable()
|
|
14
|
+
});
|
|
15
|
+
const videoSourceSchema = z.object({
|
|
16
|
+
url: z.string(),
|
|
17
|
+
mimeType: z.string(),
|
|
18
|
+
format: z.string(),
|
|
19
|
+
width: z.number().nullable(),
|
|
20
|
+
height: z.number().nullable()
|
|
21
|
+
});
|
|
22
|
+
const previewImageSchema = z.object({
|
|
23
|
+
alt: z.string().nullable(),
|
|
24
|
+
url: z.string(),
|
|
25
|
+
width: z.number().nullable(),
|
|
26
|
+
height: z.number().nullable()
|
|
27
|
+
});
|
|
28
|
+
const videoSchema = z.object({
|
|
29
|
+
type: z.literal("video"),
|
|
30
|
+
alt: z.string().nullable(),
|
|
31
|
+
sources: z.array(videoSourceSchema),
|
|
32
|
+
previewImage: previewImageSchema.nullable()
|
|
33
|
+
});
|
|
34
|
+
const externalVideoSchema = z.object({
|
|
35
|
+
type: z.literal("externalVideo"),
|
|
36
|
+
alt: z.string().nullable(),
|
|
37
|
+
embedUrl: z.string(),
|
|
38
|
+
host: z.string(),
|
|
39
|
+
originUrl: z.string(),
|
|
40
|
+
previewImage: previewImageSchema.nullable()
|
|
41
|
+
});
|
|
42
|
+
const mediaSchema = z.discriminatedUnion("type", [
|
|
43
|
+
mediaImageSchema,
|
|
44
|
+
videoSchema,
|
|
45
|
+
externalVideoSchema
|
|
46
|
+
]);
|
|
47
|
+
const priceSchema = z.object({
|
|
48
|
+
amount: z.string(),
|
|
49
|
+
currencyCode: z.string()
|
|
50
|
+
});
|
|
51
|
+
const selectedOptionSchema = z.object({
|
|
52
|
+
name: z.string(),
|
|
53
|
+
value: z.string()
|
|
54
|
+
});
|
|
55
|
+
const optionValueSwatchSchema = z.object({
|
|
56
|
+
color: z.string().nullable(),
|
|
57
|
+
imageUrl: z.string().nullable()
|
|
58
|
+
});
|
|
59
|
+
const optionValueSchema = z.object({
|
|
60
|
+
id: z.string(),
|
|
61
|
+
value: z.string(),
|
|
62
|
+
swatch: optionValueSwatchSchema.nullable()
|
|
63
|
+
});
|
|
64
|
+
const productOptionSchema = z.object({
|
|
65
|
+
id: z.string().optional(),
|
|
66
|
+
name: z.string(),
|
|
67
|
+
values: z.array(z.string()),
|
|
68
|
+
optionValues: z.array(optionValueSchema).optional()
|
|
69
|
+
});
|
|
70
|
+
const metafieldSchema = z.object({
|
|
71
|
+
key: z.string(),
|
|
72
|
+
namespace: z.string(),
|
|
73
|
+
type: z.string(),
|
|
74
|
+
value: z.string()
|
|
75
|
+
});
|
|
76
|
+
const sellingPlanPriceAdjustmentSchema = z.object({
|
|
77
|
+
value: z.number(),
|
|
78
|
+
valueType: z.enum(["percentage", "fixedAmount", "price"])
|
|
79
|
+
});
|
|
80
|
+
const sellingPlanOptionValueSchema = z.object({
|
|
81
|
+
name: z.string().optional(),
|
|
82
|
+
value: z.string()
|
|
83
|
+
});
|
|
84
|
+
const sellingPlanSchema = z.object({
|
|
85
|
+
id: z.string(),
|
|
86
|
+
name: z.string(),
|
|
87
|
+
description: z.string().nullable(),
|
|
88
|
+
optionValues: z.array(sellingPlanOptionValueSchema),
|
|
89
|
+
priceAdjustments: z.array(sellingPlanPriceAdjustmentSchema),
|
|
90
|
+
appId: z.string().nullish(),
|
|
91
|
+
price: z.string().optional(),
|
|
92
|
+
externalId: z.string().nullable()
|
|
93
|
+
});
|
|
94
|
+
const sellingPlanGroupSchema = z.object({
|
|
95
|
+
appId: z.string().nullable(),
|
|
96
|
+
options: z.array(
|
|
97
|
+
z.object({
|
|
98
|
+
name: z.string(),
|
|
99
|
+
values: z.array(z.union([z.string(), z.null()]))
|
|
100
|
+
})
|
|
101
|
+
),
|
|
102
|
+
sellingPlans: z.array(sellingPlanSchema)
|
|
103
|
+
}).describe("SellingPlanGroup");
|
|
104
|
+
const variantSchema = z.object({
|
|
105
|
+
id: z.string(),
|
|
106
|
+
title: z.string().optional(),
|
|
107
|
+
availableForSale: z.boolean().optional(),
|
|
108
|
+
sku: z.string().nullish(),
|
|
109
|
+
selectedOptions: z.array(selectedOptionSchema).optional(),
|
|
110
|
+
image: imageSchema.nullish(),
|
|
111
|
+
price: priceSchema.optional(),
|
|
112
|
+
compareAtPrice: priceSchema.nullish(),
|
|
113
|
+
sellingPlanIds: z.array(z.string()).optional()
|
|
114
|
+
});
|
|
115
|
+
const productSchema = z.object({
|
|
116
|
+
id: z.string(),
|
|
117
|
+
handle: z.string().optional(),
|
|
118
|
+
title: z.string().optional(),
|
|
119
|
+
description: z.string().nullish(),
|
|
120
|
+
descriptionHtml: z.string().nullish(),
|
|
121
|
+
availableForSale: z.boolean().optional(),
|
|
122
|
+
// NOTE (Berkley, 2026-07-30): Admin-sourced status; Storefront loader data
|
|
123
|
+
// never includes it. Kept in lockstep with `schemas/objectType` by the
|
|
124
|
+
// drift-guard spec.
|
|
125
|
+
status: z.enum(["ACTIVE", "DRAFT", "ARCHIVED", "UNLISTED"]).optional(),
|
|
126
|
+
featuredImage: imageSchema.nullish(),
|
|
127
|
+
options: z.array(productOptionSchema).optional(),
|
|
128
|
+
variants: z.array(variantSchema).optional(),
|
|
129
|
+
minPrice: priceSchema.optional(),
|
|
130
|
+
maxPrice: priceSchema.optional(),
|
|
131
|
+
compareAtMinPrice: priceSchema.optional(),
|
|
132
|
+
compareAtMaxPrice: priceSchema.optional(),
|
|
133
|
+
images: z.array(imageSchema).optional(),
|
|
134
|
+
media: z.array(mediaSchema).optional(),
|
|
135
|
+
vendor: z.string().nullish(),
|
|
136
|
+
productType: z.string().nullish(),
|
|
137
|
+
tags: z.array(z.string()).optional(),
|
|
138
|
+
sellingPlanGroups: z.array(sellingPlanGroupSchema).optional(),
|
|
139
|
+
metafields: z.array(metafieldSchema).optional()
|
|
140
|
+
});
|
|
141
|
+
const okendoReviewSchema = z.object({
|
|
142
|
+
id: z.string(),
|
|
143
|
+
title: z.string().optional(),
|
|
144
|
+
body: z.string().optional(),
|
|
145
|
+
rating: z.number().optional(),
|
|
146
|
+
productName: z.string().optional(),
|
|
147
|
+
reviewerName: z.string().optional(),
|
|
148
|
+
dateCreated: z.string().optional(),
|
|
149
|
+
status: z.string().optional()
|
|
150
|
+
}).describe("OkendoReview");
|
|
151
|
+
const fullVariantSchema = z.object({
|
|
152
|
+
id: z.string(),
|
|
153
|
+
title: z.string(),
|
|
154
|
+
availableForSale: z.boolean(),
|
|
155
|
+
sku: z.string().nullable(),
|
|
156
|
+
selectedOptions: z.array(selectedOptionSchema),
|
|
157
|
+
image: imageSchema.nullable(),
|
|
158
|
+
price: priceSchema,
|
|
159
|
+
compareAtPrice: priceSchema.nullable(),
|
|
160
|
+
sellingPlanIds: z.array(z.string()),
|
|
161
|
+
metafields: z.array(metafieldSchema).optional()
|
|
162
|
+
});
|
|
163
|
+
const fullProductSchema = z.object({
|
|
164
|
+
id: z.string(),
|
|
165
|
+
handle: z.string(),
|
|
166
|
+
title: z.string(),
|
|
167
|
+
description: z.string().nullable(),
|
|
168
|
+
descriptionHtml: z.string().nullable(),
|
|
169
|
+
availableForSale: z.boolean(),
|
|
170
|
+
featuredImage: imageSchema.nullable(),
|
|
171
|
+
options: z.array(productOptionSchema),
|
|
172
|
+
variants: z.array(fullVariantSchema),
|
|
173
|
+
images: z.array(imageSchema),
|
|
174
|
+
media: z.array(mediaSchema),
|
|
175
|
+
vendor: z.string().nullable(),
|
|
176
|
+
productType: z.string().nullable(),
|
|
177
|
+
tags: z.array(z.string()),
|
|
178
|
+
sellingPlanGroups: z.array(sellingPlanGroupSchema),
|
|
179
|
+
metafields: z.array(metafieldSchema)
|
|
180
|
+
});
|
|
181
|
+
const fullCollectionSchema = z.object({
|
|
182
|
+
id: z.string(),
|
|
183
|
+
handle: z.string(),
|
|
184
|
+
title: z.string(),
|
|
185
|
+
descriptionHtml: z.string().nullable(),
|
|
186
|
+
image: imageSchema.nullable(),
|
|
187
|
+
metafields: z.array(metafieldSchema).optional()
|
|
188
|
+
});
|
|
189
|
+
const paginatedProductsSchema = z.object({
|
|
190
|
+
products: z.array(productSchema),
|
|
191
|
+
pageInfo: z.object({
|
|
192
|
+
hasNextPage: z.boolean(),
|
|
193
|
+
endCursor: z.string().nullable()
|
|
194
|
+
})
|
|
195
|
+
});
|
|
196
|
+
const levantaAffiliateLinkSchema = z.object({
|
|
197
|
+
linkId: z.string(),
|
|
198
|
+
url: z.string()
|
|
199
|
+
});
|
|
200
|
+
const levantaProductFullSchema = z.object({
|
|
201
|
+
id: z.string(),
|
|
202
|
+
asin: z.string(),
|
|
203
|
+
title: z.string(),
|
|
204
|
+
price: z.string().describe('Product price as a decimal string in USD (e.g. "34.99").'),
|
|
205
|
+
commission: z.string().describe(
|
|
206
|
+
'Creator commission rate as a decimal string percentage (e.g. "8.5" meaning 8.5%).'
|
|
207
|
+
),
|
|
208
|
+
imageUrl: z.string().nullable(),
|
|
209
|
+
brand: z.object({ id: z.string(), name: z.string() }).nullable(),
|
|
210
|
+
inStock: z.boolean(),
|
|
211
|
+
marketplace: z.string(),
|
|
212
|
+
affiliateLink: levantaAffiliateLinkSchema.nullable()
|
|
213
|
+
}).describe("LevantaProductFull");
|
|
214
|
+
const yotpoReviewLoaderItemSchema = z.object({
|
|
215
|
+
id: z.string(),
|
|
216
|
+
title: z.string().nullable(),
|
|
217
|
+
content: z.string().nullable(),
|
|
218
|
+
score: z.number().nullable(),
|
|
219
|
+
createdAt: z.string().nullable(),
|
|
220
|
+
verifiedBuyer: z.boolean(),
|
|
221
|
+
reviewerName: z.string().nullable()
|
|
222
|
+
});
|
|
223
|
+
const yotpoProductReviewsLoaderOutputSchema = z.object({
|
|
224
|
+
reviews: z.array(yotpoReviewLoaderItemSchema)
|
|
225
|
+
});
|
|
226
|
+
const yotpoProductReviewAggregateLoaderOutputSchema = z.object({
|
|
227
|
+
averageScore: z.number(),
|
|
228
|
+
totalReviews: z.number(),
|
|
229
|
+
starDistribution: z.record(z.string(), z.number())
|
|
230
|
+
});
|
|
231
|
+
const reviewsIoReviewLoaderItemSchema = z.object({
|
|
232
|
+
id: z.string(),
|
|
233
|
+
title: z.string().nullable(),
|
|
234
|
+
body: z.string().nullable(),
|
|
235
|
+
rating: z.number().nullable(),
|
|
236
|
+
createdAt: z.string().nullable(),
|
|
237
|
+
verifiedBuyer: z.boolean(),
|
|
238
|
+
reviewerName: z.string().nullable(),
|
|
239
|
+
productName: z.string().nullable(),
|
|
240
|
+
sku: z.string().nullable()
|
|
241
|
+
});
|
|
242
|
+
const reviewsIoProductReviewsLoaderOutputSchema = z.object({
|
|
243
|
+
reviews: z.array(reviewsIoReviewLoaderItemSchema),
|
|
244
|
+
reviewCount: z.number(),
|
|
245
|
+
reviewAverageValue: z.number()
|
|
246
|
+
});
|
|
247
|
+
const reviewsIoProductReviewAggregateLoaderOutputSchema = z.object({
|
|
248
|
+
reviewCount: z.number(),
|
|
249
|
+
reviewAverageValue: z.number()
|
|
250
|
+
});
|
|
251
|
+
const statsigExperimentLoaderOutputSchema = z.object({
|
|
252
|
+
experimentName: z.string(),
|
|
253
|
+
groupName: z.string().nullable().describe("The assigned variant group name (e.g. Control, Test)."),
|
|
254
|
+
ruleId: z.string().nullable().describe("The Statsig rule ID that produced this assignment."),
|
|
255
|
+
value: z.record(z.string(), z.unknown()).describe("The parameter values for the assigned group."),
|
|
256
|
+
reason: z.string().describe("The evaluation reason reported by Statsig (for debugging).")
|
|
257
|
+
});
|
|
258
|
+
const contentfulEntryObjectSchema = z.object({
|
|
259
|
+
id: z.string(),
|
|
260
|
+
contentTypeId: z.string().nullable(),
|
|
261
|
+
createdAt: z.string().nullable(),
|
|
262
|
+
updatedAt: z.string().nullable(),
|
|
263
|
+
fields: z.record(z.string(), z.unknown())
|
|
264
|
+
}).describe("ContentfulEntryObject");
|
|
265
|
+
const contentfulAssetObjectSchema = z.object({
|
|
266
|
+
id: z.string(),
|
|
267
|
+
title: z.string().nullable(),
|
|
268
|
+
description: z.string().nullable(),
|
|
269
|
+
fileName: z.string().nullable(),
|
|
270
|
+
contentType: z.string().nullable(),
|
|
271
|
+
url: z.string().nullable(),
|
|
272
|
+
width: z.number().nullable(),
|
|
273
|
+
height: z.number().nullable()
|
|
274
|
+
}).describe("ContentfulAssetObject");
|
|
275
|
+
const contentfulIncludesSchema = z.object({
|
|
276
|
+
entries: z.array(contentfulEntryObjectSchema),
|
|
277
|
+
assets: z.array(contentfulAssetObjectSchema)
|
|
278
|
+
}).describe("ContentfulIncludes");
|
|
279
|
+
const contentfulEntryLoaderOutputSchema = z.object({
|
|
280
|
+
entry: contentfulEntryObjectSchema,
|
|
281
|
+
includes: contentfulIncludesSchema
|
|
282
|
+
}).describe("ContentfulEntryLoaderOutput");
|
|
283
|
+
const contentfulEntriesLoaderOutputSchema = z.object({
|
|
284
|
+
items: z.array(contentfulEntryObjectSchema),
|
|
285
|
+
includes: contentfulIncludesSchema,
|
|
286
|
+
total: z.number(),
|
|
287
|
+
skip: z.number(),
|
|
288
|
+
limit: z.number()
|
|
289
|
+
}).describe("ContentfulEntriesLoaderOutput");
|
|
290
|
+
const storefrontMetaobjectSchema = z.object({
|
|
291
|
+
id: z.string(),
|
|
292
|
+
type: z.string(),
|
|
293
|
+
handle: z.string(),
|
|
294
|
+
updatedAt: z.string().nullable(),
|
|
295
|
+
fields: z.array(
|
|
296
|
+
z.object({
|
|
297
|
+
key: z.string(),
|
|
298
|
+
type: z.string(),
|
|
299
|
+
value: z.string().nullable()
|
|
300
|
+
})
|
|
301
|
+
)
|
|
302
|
+
}).describe("StorefrontMetaobject");
|
|
303
|
+
const shopifyMetaobjectLoaderOutputSchema = storefrontMetaobjectSchema;
|
|
304
|
+
const shopifyMetaobjectsLoaderOutputSchema = z.object({
|
|
305
|
+
metaobjects: z.array(storefrontMetaobjectSchema),
|
|
306
|
+
pageInfo: z.object({
|
|
307
|
+
hasNextPage: z.boolean(),
|
|
308
|
+
endCursor: z.string().nullable()
|
|
309
|
+
})
|
|
310
|
+
}).describe("ShopifyMetaobjectsLoaderOutput");
|
|
311
|
+
export {
|
|
312
|
+
contentfulAssetObjectSchema,
|
|
313
|
+
contentfulEntriesLoaderOutputSchema,
|
|
314
|
+
contentfulEntryLoaderOutputSchema,
|
|
315
|
+
contentfulEntryObjectSchema,
|
|
316
|
+
contentfulIncludesSchema,
|
|
317
|
+
externalVideoSchema,
|
|
318
|
+
fullCollectionSchema,
|
|
319
|
+
fullProductSchema,
|
|
320
|
+
fullVariantSchema,
|
|
321
|
+
imageSchema,
|
|
322
|
+
levantaProductFullSchema,
|
|
323
|
+
mediaImageSchema,
|
|
324
|
+
mediaSchema,
|
|
325
|
+
metafieldSchema,
|
|
326
|
+
okendoReviewSchema,
|
|
327
|
+
optionValueSchema,
|
|
328
|
+
optionValueSwatchSchema,
|
|
329
|
+
paginatedProductsSchema,
|
|
330
|
+
previewImageSchema,
|
|
331
|
+
priceSchema,
|
|
332
|
+
productOptionSchema,
|
|
333
|
+
productSchema,
|
|
334
|
+
reviewsIoProductReviewAggregateLoaderOutputSchema,
|
|
335
|
+
reviewsIoProductReviewsLoaderOutputSchema,
|
|
336
|
+
reviewsIoReviewLoaderItemSchema,
|
|
337
|
+
selectedOptionSchema,
|
|
338
|
+
sellingPlanGroupSchema,
|
|
339
|
+
sellingPlanOptionValueSchema,
|
|
340
|
+
sellingPlanPriceAdjustmentSchema,
|
|
341
|
+
sellingPlanSchema,
|
|
342
|
+
shopifyMetaobjectLoaderOutputSchema,
|
|
343
|
+
shopifyMetaobjectsLoaderOutputSchema,
|
|
344
|
+
statsigExperimentLoaderOutputSchema,
|
|
345
|
+
storefrontMetaobjectSchema,
|
|
346
|
+
variantSchema,
|
|
347
|
+
videoSchema,
|
|
348
|
+
videoSourceSchema,
|
|
349
|
+
yotpoProductReviewAggregateLoaderOutputSchema,
|
|
350
|
+
yotpoProductReviewsLoaderOutputSchema,
|
|
351
|
+
yotpoReviewLoaderItemSchema
|
|
352
|
+
};
|
|
353
|
+
//# sourceMappingURL=loader-schemas.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../loaders/loader-schemas.ts"],
|
|
4
|
+
"sourcesContent": ["import { z } from \"zod\";\n\n// NOTE (Ryan, 2026-07-23, REPL-27611): Self-contained copies of the loader\n// output contracts (and the `objectType` / `sellingPlan` sub-schemas they\n// compose) that the SDK validates on published pages. These live here \u2014 not\n// imported from `schemas` \u2014 so nothing shipped to a generated site depends on\n// the `schemas` workspace package. The backend keeps the canonical definitions\n// in `schemas` because its integration registry + tool-metadata generation\n// consume them and cannot depend on the SDK without an import cycle. The two\n// sides are kept structurally in lockstep by `loader-schemas.spec.ts`.\n\n// ---------------------------------------------------------------------------\n// Shared sub-schemas (mirrors of schemas/objectType.ts)\n// ---------------------------------------------------------------------------\n\nexport const imageSchema = z.object({\n url: z.string(),\n altText: z.string().nullable(),\n width: z.number().nullable(),\n height: z.number().nullable(),\n});\n\nexport const mediaImageSchema = z.object({\n type: z.literal(\"image\"),\n alt: z.string().nullable(),\n url: z.string(),\n width: z.number().nullable(),\n height: z.number().nullable(),\n});\n\nexport const videoSourceSchema = z.object({\n url: z.string(),\n mimeType: z.string(),\n format: z.string(),\n width: z.number().nullable(),\n height: z.number().nullable(),\n});\n\nexport const previewImageSchema = z.object({\n alt: z.string().nullable(),\n url: z.string(),\n width: z.number().nullable(),\n height: z.number().nullable(),\n});\n\nexport const videoSchema = z.object({\n type: z.literal(\"video\"),\n alt: z.string().nullable(),\n sources: z.array(videoSourceSchema),\n previewImage: previewImageSchema.nullable(),\n});\n\nexport const externalVideoSchema = z.object({\n type: z.literal(\"externalVideo\"),\n alt: z.string().nullable(),\n embedUrl: z.string(),\n host: z.string(),\n originUrl: z.string(),\n previewImage: previewImageSchema.nullable(),\n});\n\nexport const mediaSchema = z.discriminatedUnion(\"type\", [\n mediaImageSchema,\n videoSchema,\n externalVideoSchema,\n]);\n\nexport const priceSchema = z.object({\n amount: z.string(),\n currencyCode: z.string(),\n});\n\nexport const selectedOptionSchema = z.object({\n name: z.string(),\n value: z.string(),\n});\n\nexport const optionValueSwatchSchema = z.object({\n color: z.string().nullable(),\n imageUrl: z.string().nullable(),\n});\n\nexport const optionValueSchema = z.object({\n id: z.string(),\n value: z.string(),\n swatch: optionValueSwatchSchema.nullable(),\n});\n\nexport const productOptionSchema = z.object({\n id: z.string().optional(),\n name: z.string(),\n values: z.array(z.string()),\n optionValues: z.array(optionValueSchema).optional(),\n});\n\nexport const metafieldSchema = z.object({\n key: z.string(),\n namespace: z.string(),\n type: z.string(),\n value: z.string(),\n});\n\n// ---------------------------------------------------------------------------\n// Selling plan schemas (mirror of schemas/sellingPlan.ts)\n// ---------------------------------------------------------------------------\n\nexport const sellingPlanPriceAdjustmentSchema = z.object({\n value: z.number(),\n valueType: z.enum([\"percentage\", \"fixedAmount\", \"price\"]),\n});\n\nexport const sellingPlanOptionValueSchema = z.object({\n name: z.string().optional(),\n value: z.string(),\n});\n\nexport const sellingPlanSchema = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().nullable(),\n optionValues: z.array(sellingPlanOptionValueSchema),\n priceAdjustments: z.array(sellingPlanPriceAdjustmentSchema),\n appId: z.string().nullish(),\n price: z.string().optional(),\n externalId: z.string().nullable(),\n});\n\nexport const sellingPlanGroupSchema = z\n .object({\n appId: z.string().nullable(),\n options: z.array(\n z.object({\n name: z.string(),\n values: z.array(z.union([z.string(), z.null()])),\n }),\n ),\n sellingPlans: z.array(sellingPlanSchema),\n })\n .describe(\"SellingPlanGroup\");\n\nexport type SellingPlanGroup = z.infer<typeof sellingPlanGroupSchema>;\n\n// ---------------------------------------------------------------------------\n// Canonical Product / Variant (mostly-optional; mirror of objectType.ts).\n// Used by the collection-products (paginated) and rebuy loaders, and as the\n// cart's cache-resolution product shape.\n// ---------------------------------------------------------------------------\n\nexport const variantSchema = z.object({\n id: z.string(),\n title: z.string().optional(),\n availableForSale: z.boolean().optional(),\n sku: z.string().nullish(),\n selectedOptions: z.array(selectedOptionSchema).optional(),\n image: imageSchema.nullish(),\n price: priceSchema.optional(),\n compareAtPrice: priceSchema.nullish(),\n sellingPlanIds: z.array(z.string()).optional(),\n});\n\nexport const productSchema = z.object({\n id: z.string(),\n handle: z.string().optional(),\n title: z.string().optional(),\n description: z.string().nullish(),\n descriptionHtml: z.string().nullish(),\n availableForSale: z.boolean().optional(),\n // NOTE (Berkley, 2026-07-30): Admin-sourced status; Storefront loader data\n // never includes it. Kept in lockstep with `schemas/objectType` by the\n // drift-guard spec.\n status: z.enum([\"ACTIVE\", \"DRAFT\", \"ARCHIVED\", \"UNLISTED\"]).optional(),\n featuredImage: imageSchema.nullish(),\n options: z.array(productOptionSchema).optional(),\n variants: z.array(variantSchema).optional(),\n minPrice: priceSchema.optional(),\n maxPrice: priceSchema.optional(),\n compareAtMinPrice: priceSchema.optional(),\n compareAtMaxPrice: priceSchema.optional(),\n images: z.array(imageSchema).optional(),\n media: z.array(mediaSchema).optional(),\n vendor: z.string().nullish(),\n productType: z.string().nullish(),\n tags: z.array(z.string()).optional(),\n sellingPlanGroups: z.array(sellingPlanGroupSchema).optional(),\n metafields: z.array(metafieldSchema).optional(),\n});\n\nexport type Product = z.infer<typeof productSchema>;\n\nexport const okendoReviewSchema = z\n .object({\n id: z.string(),\n title: z.string().optional(),\n body: z.string().optional(),\n rating: z.number().optional(),\n productName: z.string().optional(),\n reviewerName: z.string().optional(),\n dateCreated: z.string().optional(),\n status: z.string().optional(),\n })\n .describe(\"OkendoReview\");\n\n// ---------------------------------------------------------------------------\n// Full loader outputs (mirror of\n// schemas/agentTools/customIntegrations/loaders/product.ts)\n// ---------------------------------------------------------------------------\n\nexport const fullVariantSchema = z.object({\n id: z.string(),\n title: z.string(),\n availableForSale: z.boolean(),\n sku: z.string().nullable(),\n selectedOptions: z.array(selectedOptionSchema),\n image: imageSchema.nullable(),\n price: priceSchema,\n compareAtPrice: priceSchema.nullable(),\n sellingPlanIds: z.array(z.string()),\n metafields: z.array(metafieldSchema).optional(),\n});\n\nexport const fullProductSchema = z.object({\n id: z.string(),\n handle: z.string(),\n title: z.string(),\n description: z.string().nullable(),\n descriptionHtml: z.string().nullable(),\n availableForSale: z.boolean(),\n featuredImage: imageSchema.nullable(),\n options: z.array(productOptionSchema),\n variants: z.array(fullVariantSchema),\n images: z.array(imageSchema),\n media: z.array(mediaSchema),\n vendor: z.string().nullable(),\n productType: z.string().nullable(),\n tags: z.array(z.string()),\n sellingPlanGroups: z.array(sellingPlanGroupSchema),\n metafields: z.array(metafieldSchema),\n});\n\nexport const fullCollectionSchema = z.object({\n id: z.string(),\n handle: z.string(),\n title: z.string(),\n descriptionHtml: z.string().nullable(),\n image: imageSchema.nullable(),\n metafields: z.array(metafieldSchema).optional(),\n});\n\nexport const paginatedProductsSchema = z.object({\n products: z.array(productSchema),\n pageInfo: z.object({\n hasNextPage: z.boolean(),\n endCursor: z.string().nullable(),\n }),\n});\n\nexport type FullProduct = z.infer<typeof fullProductSchema>;\nexport type FullCollection = z.infer<typeof fullCollectionSchema>;\nexport type FullVariant = z.infer<typeof fullVariantSchema>;\nexport type PaginatedProducts = z.infer<typeof paginatedProductsSchema>;\n\n// ---------------------------------------------------------------------------\n// Levanta loader output (mirror of\n// schemas/agentTools/customIntegrations/loaders/levanta.ts)\n// ---------------------------------------------------------------------------\n\nconst levantaAffiliateLinkSchema = z.object({\n linkId: z.string(),\n url: z.string(),\n});\n\nexport const levantaProductFullSchema = z\n .object({\n id: z.string(),\n asin: z.string(),\n title: z.string(),\n price: z\n .string()\n .describe('Product price as a decimal string in USD (e.g. \"34.99\").'),\n commission: z\n .string()\n .describe(\n 'Creator commission rate as a decimal string percentage (e.g. \"8.5\" meaning 8.5%).',\n ),\n imageUrl: z.string().nullable(),\n brand: z.object({ id: z.string(), name: z.string() }).nullable(),\n inStock: z.boolean(),\n marketplace: z.string(),\n affiliateLink: levantaAffiliateLinkSchema.nullable(),\n })\n .describe(\"LevantaProductFull\");\n\nexport type LevantaProductFull = z.infer<typeof levantaProductFullSchema>;\n\n// ---------------------------------------------------------------------------\n// Yotpo loader outputs (mirror of\n// schemas/agentTools/customIntegrations/loaders/yotpo.ts)\n// ---------------------------------------------------------------------------\n\nexport const yotpoReviewLoaderItemSchema = z.object({\n id: z.string(),\n title: z.string().nullable(),\n content: z.string().nullable(),\n score: z.number().nullable(),\n createdAt: z.string().nullable(),\n verifiedBuyer: z.boolean(),\n reviewerName: z.string().nullable(),\n});\n\nexport const yotpoProductReviewsLoaderOutputSchema = z.object({\n reviews: z.array(yotpoReviewLoaderItemSchema),\n});\n\nexport const yotpoProductReviewAggregateLoaderOutputSchema = z.object({\n averageScore: z.number(),\n totalReviews: z.number(),\n starDistribution: z.record(z.string(), z.number()),\n});\n\n// ---------------------------------------------------------------------------\n// Reviews.io loader outputs (mirror of\n// schemas/agentTools/customIntegrations/loaders/reviewsIo.ts)\n// ---------------------------------------------------------------------------\n\nexport const reviewsIoReviewLoaderItemSchema = z.object({\n id: z.string(),\n title: z.string().nullable(),\n body: z.string().nullable(),\n rating: z.number().nullable(),\n createdAt: z.string().nullable(),\n verifiedBuyer: z.boolean(),\n reviewerName: z.string().nullable(),\n productName: z.string().nullable(),\n sku: z.string().nullable(),\n});\n\nexport const reviewsIoProductReviewsLoaderOutputSchema = z.object({\n reviews: z.array(reviewsIoReviewLoaderItemSchema),\n reviewCount: z.number(),\n reviewAverageValue: z.number(),\n});\n\nexport const reviewsIoProductReviewAggregateLoaderOutputSchema = z.object({\n reviewCount: z.number(),\n reviewAverageValue: z.number(),\n});\n\n// ---------------------------------------------------------------------------\n// Statsig loader outputs (mirror of\n// schemas/agentTools/customIntegrations/loaders/statsig.ts)\n// ---------------------------------------------------------------------------\n\nexport const statsigExperimentLoaderOutputSchema = z.object({\n experimentName: z.string(),\n groupName: z\n .string()\n .nullable()\n .describe(\"The assigned variant group name (e.g. Control, Test).\"),\n ruleId: z\n .string()\n .nullable()\n .describe(\"The Statsig rule ID that produced this assignment.\"),\n value: z\n .record(z.string(), z.unknown())\n .describe(\"The parameter values for the assigned group.\"),\n reason: z\n .string()\n .describe(\"The evaluation reason reported by Statsig (for debugging).\"),\n});\n\nexport type StatsigExperimentAssignment = z.infer<\n typeof statsigExperimentLoaderOutputSchema\n>;\n\n// ---------------------------------------------------------------------------\n// Contentful loader outputs (mirror of\n// schemas/agentTools/customIntegrations/loaders/contentful.ts)\n// ---------------------------------------------------------------------------\n\nexport const contentfulEntryObjectSchema = z\n .object({\n id: z.string(),\n contentTypeId: z.string().nullable(),\n createdAt: z.string().nullable(),\n updatedAt: z.string().nullable(),\n fields: z.record(z.string(), z.unknown()),\n })\n .describe(\"ContentfulEntryObject\");\n\nexport const contentfulAssetObjectSchema = z\n .object({\n id: z.string(),\n title: z.string().nullable(),\n description: z.string().nullable(),\n fileName: z.string().nullable(),\n contentType: z.string().nullable(),\n url: z.string().nullable(),\n width: z.number().nullable(),\n height: z.number().nullable(),\n })\n .describe(\"ContentfulAssetObject\");\n\nexport const contentfulIncludesSchema = z\n .object({\n entries: z.array(contentfulEntryObjectSchema),\n assets: z.array(contentfulAssetObjectSchema),\n })\n .describe(\"ContentfulIncludes\");\n\nexport const contentfulEntryLoaderOutputSchema = z\n .object({\n entry: contentfulEntryObjectSchema,\n includes: contentfulIncludesSchema,\n })\n .describe(\"ContentfulEntryLoaderOutput\");\n\nexport const contentfulEntriesLoaderOutputSchema = z\n .object({\n items: z.array(contentfulEntryObjectSchema),\n includes: contentfulIncludesSchema,\n total: z.number(),\n skip: z.number(),\n limit: z.number(),\n })\n .describe(\"ContentfulEntriesLoaderOutput\");\n\nexport type ContentfulEntryObject = z.infer<typeof contentfulEntryObjectSchema>;\nexport type ContentfulAssetObject = z.infer<typeof contentfulAssetObjectSchema>;\nexport type ContentfulEntryLoaderOutput = z.infer<\n typeof contentfulEntryLoaderOutputSchema\n>;\nexport type ContentfulEntriesLoaderOutput = z.infer<\n typeof contentfulEntriesLoaderOutputSchema\n>;\n\n// ---------------------------------------------------------------------------\n// Shopify metaobjects (mirror of\n// schemas/agentTools/customIntegrations/loaders/shopify.ts)\n// ---------------------------------------------------------------------------\n\nexport const storefrontMetaobjectSchema = z\n .object({\n id: z.string(),\n type: z.string(),\n handle: z.string(),\n updatedAt: z.string().nullable(),\n fields: z.array(\n z.object({\n key: z.string(),\n type: z.string(),\n value: z.string().nullable(),\n }),\n ),\n })\n .describe(\"StorefrontMetaobject\");\n\nexport const shopifyMetaobjectLoaderOutputSchema = storefrontMetaobjectSchema;\n\nexport const shopifyMetaobjectsLoaderOutputSchema = z\n .object({\n metaobjects: z.array(storefrontMetaobjectSchema),\n pageInfo: z.object({\n hasNextPage: z.boolean(),\n endCursor: z.string().nullable(),\n }),\n })\n .describe(\"ShopifyMetaobjectsLoaderOutput\");\n\nexport type StorefrontMetaobject = z.infer<typeof storefrontMetaobjectSchema>;\nexport type ShopifyMetaobjectLoaderOutput = z.infer<\n typeof shopifyMetaobjectLoaderOutputSchema\n>;\nexport type ShopifyMetaobjectsLoaderOutput = z.infer<\n typeof shopifyMetaobjectsLoaderOutputSchema\n>;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { ShopifyMetaobjectLoaderOutput } from "./loader-schemas";
|
|
3
|
+
type MetaobjectLoaderProps = {
|
|
4
|
+
loaderKey: string;
|
|
5
|
+
type?: string;
|
|
6
|
+
handle?: string;
|
|
7
|
+
id?: string;
|
|
8
|
+
children: (data: ShopifyMetaobjectLoaderOutput) => ReactNode;
|
|
9
|
+
fallback?: ReactNode;
|
|
10
|
+
};
|
|
11
|
+
export declare function MetaobjectLoader({ loaderKey, type, handle, id, children, fallback, }: MetaobjectLoaderProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Suspense } from "react";
|
|
4
|
+
import { useSuspenseQuery } from "@tanstack/react-query";
|
|
5
|
+
import { invokeLoader } from "./invoke-loader";
|
|
6
|
+
import { LoaderErrorBoundary } from "./loader-error-boundary";
|
|
7
|
+
import { shopifyMetaobjectLoaderOutputSchema } from "./loader-schemas";
|
|
8
|
+
function buildArgs({
|
|
9
|
+
type,
|
|
10
|
+
handle,
|
|
11
|
+
id
|
|
12
|
+
}) {
|
|
13
|
+
return {
|
|
14
|
+
...type !== void 0 ? { type } : {},
|
|
15
|
+
...handle !== void 0 ? { handle } : {},
|
|
16
|
+
...id !== void 0 ? { id } : {}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function MetaobjectLoaderInner({
|
|
20
|
+
loaderKey,
|
|
21
|
+
args,
|
|
22
|
+
children
|
|
23
|
+
}) {
|
|
24
|
+
const { data } = useSuspenseQuery({
|
|
25
|
+
queryKey: [loaderKey, args],
|
|
26
|
+
queryFn: async () => {
|
|
27
|
+
const loadedData = await invokeLoader({ loaderKey, args });
|
|
28
|
+
return shopifyMetaobjectLoaderOutputSchema.parse(loadedData);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
return /* @__PURE__ */ jsx(Fragment, { children: children(data) });
|
|
32
|
+
}
|
|
33
|
+
function MetaobjectLoader({
|
|
34
|
+
loaderKey,
|
|
35
|
+
type,
|
|
36
|
+
handle,
|
|
37
|
+
id,
|
|
38
|
+
children,
|
|
39
|
+
fallback
|
|
40
|
+
}) {
|
|
41
|
+
const args = buildArgs({ type, handle, id });
|
|
42
|
+
return /* @__PURE__ */ jsx(
|
|
43
|
+
LoaderErrorBoundary,
|
|
44
|
+
{
|
|
45
|
+
fallback: fallback ?? null,
|
|
46
|
+
resetKey: `${loaderKey}:${JSON.stringify(args)}`,
|
|
47
|
+
children: /* @__PURE__ */ jsx(Suspense, { fallback: fallback ?? null, children: /* @__PURE__ */ jsx(MetaobjectLoaderInner, { loaderKey, args, children }) })
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
export {
|
|
52
|
+
MetaobjectLoader
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=metaobject-loader.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../loaders/metaobject-loader.tsx"],
|
|
4
|
+
"sourcesContent": ["\"use client\";\n\nimport type { ReactNode } from \"react\";\nimport type { ShopifyMetaobjectLoaderOutput } from \"./loader-schemas\";\n\nimport { Suspense } from \"react\";\n\nimport { useSuspenseQuery } from \"@tanstack/react-query\";\n\nimport { invokeLoader } from \"./invoke-loader\";\nimport { LoaderErrorBoundary } from \"./loader-error-boundary\";\nimport { shopifyMetaobjectLoaderOutputSchema } from \"./loader-schemas\";\n\ntype MetaobjectLoaderProps = {\n loaderKey: string;\n type?: string;\n handle?: string;\n id?: string;\n children: (data: ShopifyMetaobjectLoaderOutput) => ReactNode;\n fallback?: ReactNode;\n};\n\nfunction buildArgs({\n type,\n handle,\n id,\n}: Omit<MetaobjectLoaderProps, \"loaderKey\" | \"children\" | \"fallback\">) {\n return {\n ...(type !== undefined ? { type } : {}),\n ...(handle !== undefined ? { handle } : {}),\n ...(id !== undefined ? { id } : {}),\n };\n}\n\nfunction MetaobjectLoaderInner({\n loaderKey,\n args,\n children,\n}: {\n loaderKey: string;\n args: ReturnType<typeof buildArgs>;\n children: (data: ShopifyMetaobjectLoaderOutput) => ReactNode;\n}) {\n const { data } = useSuspenseQuery({\n queryKey: [loaderKey, args],\n queryFn: async () => {\n const loadedData = await invokeLoader({ loaderKey, args });\n return shopifyMetaobjectLoaderOutputSchema.parse(loadedData);\n },\n });\n\n return <>{children(data)}</>;\n}\n\nexport function MetaobjectLoader({\n loaderKey,\n type,\n handle,\n id,\n children,\n fallback,\n}: MetaobjectLoaderProps) {\n const args = buildArgs({ type, handle, id });\n\n return (\n <LoaderErrorBoundary\n fallback={fallback ?? null}\n resetKey={`${loaderKey}:${JSON.stringify(args)}`}\n >\n <Suspense fallback={fallback ?? null}>\n <MetaobjectLoaderInner loaderKey={loaderKey} args={args}>\n {children}\n </MetaobjectLoaderInner>\n </Suspense>\n </LoaderErrorBoundary>\n );\n}\n"],
|
|
5
|
+
"mappings": ";AAmDS;AA9CT,SAAS,gBAAgB;AAEzB,SAAS,wBAAwB;AAEjC,SAAS,oBAAoB;AAC7B,SAAS,2BAA2B;AACpC,SAAS,2CAA2C;AAWpD,SAAS,UAAU;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AACF,GAAuE;AACrE,SAAO;AAAA,IACL,GAAI,SAAS,SAAY,EAAE,KAAK,IAAI,CAAC;AAAA,IACrC,GAAI,WAAW,SAAY,EAAE,OAAO,IAAI,CAAC;AAAA,IACzC,GAAI,OAAO,SAAY,EAAE,GAAG,IAAI,CAAC;AAAA,EACnC;AACF;AAEA,SAAS,sBAAsB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,EAAE,KAAK,IAAI,iBAAiB;AAAA,IAChC,UAAU,CAAC,WAAW,IAAI;AAAA,IAC1B,SAAS,YAAY;AACnB,YAAM,aAAa,MAAM,aAAa,EAAE,WAAW,KAAK,CAAC;AACzD,aAAO,oCAAoC,MAAM,UAAU;AAAA,IAC7D;AAAA,EACF,CAAC;AAED,SAAO,gCAAG,mBAAS,IAAI,GAAE;AAC3B;AAEO,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA0B;AACxB,QAAM,OAAO,UAAU,EAAE,MAAM,QAAQ,GAAG,CAAC;AAE3C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU,YAAY;AAAA,MACtB,UAAU,GAAG,SAAS,IAAI,KAAK,UAAU,IAAI,CAAC;AAAA,MAE9C,8BAAC,YAAS,UAAU,YAAY,MAC9B,8BAAC,yBAAsB,WAAsB,MAC1C,UACH,GACF;AAAA;AAAA,EACF;AAEJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { ShopifyMetaobjectsLoaderOutput } from "./loader-schemas";
|
|
3
|
+
type MetaobjectsLoaderProps = {
|
|
4
|
+
loaderKey: string;
|
|
5
|
+
type: string;
|
|
6
|
+
first?: number;
|
|
7
|
+
after?: string;
|
|
8
|
+
sortKey?: string;
|
|
9
|
+
reverse?: boolean;
|
|
10
|
+
children: (data: ShopifyMetaobjectsLoaderOutput) => ReactNode;
|
|
11
|
+
fallback?: ReactNode;
|
|
12
|
+
};
|
|
13
|
+
export declare function MetaobjectsLoader({ loaderKey, type, first, after, sortKey, reverse, children, fallback, }: MetaobjectsLoaderProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Suspense } from "react";
|
|
4
|
+
import { useSuspenseQuery } from "@tanstack/react-query";
|
|
5
|
+
import { invokeLoader } from "./invoke-loader";
|
|
6
|
+
import { LoaderErrorBoundary } from "./loader-error-boundary";
|
|
7
|
+
import { shopifyMetaobjectsLoaderOutputSchema } from "./loader-schemas";
|
|
8
|
+
function buildArgs({
|
|
9
|
+
type,
|
|
10
|
+
first,
|
|
11
|
+
after,
|
|
12
|
+
sortKey,
|
|
13
|
+
reverse
|
|
14
|
+
}) {
|
|
15
|
+
return {
|
|
16
|
+
type,
|
|
17
|
+
...first !== void 0 ? { first } : {},
|
|
18
|
+
...after !== void 0 ? { after } : {},
|
|
19
|
+
...sortKey !== void 0 ? { sortKey } : {},
|
|
20
|
+
...reverse !== void 0 ? { reverse } : {}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function MetaobjectsLoaderInner({
|
|
24
|
+
loaderKey,
|
|
25
|
+
args,
|
|
26
|
+
children
|
|
27
|
+
}) {
|
|
28
|
+
const { data } = useSuspenseQuery({
|
|
29
|
+
queryKey: [loaderKey, args],
|
|
30
|
+
queryFn: async () => {
|
|
31
|
+
const loadedData = await invokeLoader({ loaderKey, args });
|
|
32
|
+
return shopifyMetaobjectsLoaderOutputSchema.parse(loadedData);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
return /* @__PURE__ */ jsx(Fragment, { children: children(data) });
|
|
36
|
+
}
|
|
37
|
+
function MetaobjectsLoader({
|
|
38
|
+
loaderKey,
|
|
39
|
+
type,
|
|
40
|
+
first,
|
|
41
|
+
after,
|
|
42
|
+
sortKey,
|
|
43
|
+
reverse,
|
|
44
|
+
children,
|
|
45
|
+
fallback
|
|
46
|
+
}) {
|
|
47
|
+
const args = buildArgs({ type, first, after, sortKey, reverse });
|
|
48
|
+
return /* @__PURE__ */ jsx(
|
|
49
|
+
LoaderErrorBoundary,
|
|
50
|
+
{
|
|
51
|
+
fallback: fallback ?? null,
|
|
52
|
+
resetKey: `${loaderKey}:${JSON.stringify(args)}`,
|
|
53
|
+
children: /* @__PURE__ */ jsx(Suspense, { fallback: fallback ?? null, children: /* @__PURE__ */ jsx(MetaobjectsLoaderInner, { loaderKey, args, children }) })
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
export {
|
|
58
|
+
MetaobjectsLoader
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=metaobjects-loader.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../loaders/metaobjects-loader.tsx"],
|
|
4
|
+
"sourcesContent": ["\"use client\";\n\nimport type { ReactNode } from \"react\";\nimport type { ShopifyMetaobjectsLoaderOutput } from \"./loader-schemas\";\n\nimport { Suspense } from \"react\";\n\nimport { useSuspenseQuery } from \"@tanstack/react-query\";\n\nimport { invokeLoader } from \"./invoke-loader\";\nimport { LoaderErrorBoundary } from \"./loader-error-boundary\";\nimport { shopifyMetaobjectsLoaderOutputSchema } from \"./loader-schemas\";\n\ntype MetaobjectsLoaderProps = {\n loaderKey: string;\n type: string;\n first?: number;\n after?: string;\n sortKey?: string;\n reverse?: boolean;\n children: (data: ShopifyMetaobjectsLoaderOutput) => ReactNode;\n fallback?: ReactNode;\n};\n\nfunction buildArgs({\n type,\n first,\n after,\n sortKey,\n reverse,\n}: Omit<MetaobjectsLoaderProps, \"loaderKey\" | \"children\" | \"fallback\">) {\n return {\n type,\n ...(first !== undefined ? { first } : {}),\n ...(after !== undefined ? { after } : {}),\n ...(sortKey !== undefined ? { sortKey } : {}),\n ...(reverse !== undefined ? { reverse } : {}),\n };\n}\n\nfunction MetaobjectsLoaderInner({\n loaderKey,\n args,\n children,\n}: {\n loaderKey: string;\n args: ReturnType<typeof buildArgs>;\n children: (data: ShopifyMetaobjectsLoaderOutput) => ReactNode;\n}) {\n const { data } = useSuspenseQuery({\n queryKey: [loaderKey, args],\n queryFn: async () => {\n const loadedData = await invokeLoader({ loaderKey, args });\n return shopifyMetaobjectsLoaderOutputSchema.parse(loadedData);\n },\n });\n\n return <>{children(data)}</>;\n}\n\nexport function MetaobjectsLoader({\n loaderKey,\n type,\n first,\n after,\n sortKey,\n reverse,\n children,\n fallback,\n}: MetaobjectsLoaderProps) {\n const args = buildArgs({ type, first, after, sortKey, reverse });\n\n return (\n <LoaderErrorBoundary\n fallback={fallback ?? null}\n resetKey={`${loaderKey}:${JSON.stringify(args)}`}\n >\n <Suspense fallback={fallback ?? null}>\n <MetaobjectsLoaderInner loaderKey={loaderKey} args={args}>\n {children}\n </MetaobjectsLoaderInner>\n </Suspense>\n </LoaderErrorBoundary>\n );\n}\n"],
|
|
5
|
+
"mappings": ";AAyDS;AApDT,SAAS,gBAAgB;AAEzB,SAAS,wBAAwB;AAEjC,SAAS,oBAAoB;AAC7B,SAAS,2BAA2B;AACpC,SAAS,4CAA4C;AAarD,SAAS,UAAU;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAwE;AACtE,SAAO;AAAA,IACL;AAAA,IACA,GAAI,UAAU,SAAY,EAAE,MAAM,IAAI,CAAC;AAAA,IACvC,GAAI,UAAU,SAAY,EAAE,MAAM,IAAI,CAAC;AAAA,IACvC,GAAI,YAAY,SAAY,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC3C,GAAI,YAAY,SAAY,EAAE,QAAQ,IAAI,CAAC;AAAA,EAC7C;AACF;AAEA,SAAS,uBAAuB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,EAAE,KAAK,IAAI,iBAAiB;AAAA,IAChC,UAAU,CAAC,WAAW,IAAI;AAAA,IAC1B,SAAS,YAAY;AACnB,YAAM,aAAa,MAAM,aAAa,EAAE,WAAW,KAAK,CAAC;AACzD,aAAO,qCAAqC,MAAM,UAAU;AAAA,IAC9D;AAAA,EACF,CAAC;AAED,SAAO,gCAAG,mBAAS,IAAI,GAAE;AAC3B;AAEO,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA2B;AACzB,QAAM,OAAO,UAAU,EAAE,MAAM,OAAO,OAAO,SAAS,QAAQ,CAAC;AAE/D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU,YAAY;AAAA,MACtB,UAAU,GAAG,SAAS,IAAI,KAAK,UAAU,IAAI,CAAC;AAAA,MAE9C,8BAAC,YAAS,UAAU,YAAY,MAC9B,8BAAC,0BAAuB,WAAsB,MAC3C,UACH,GACF;AAAA;AAAA,EACF;AAEJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
declare const okendoReviewAggregateOutputSchema: z.ZodObject<{
|
|
4
|
+
reviewCount: z.ZodNumber;
|
|
5
|
+
reviewAverageValue: z.ZodNumber;
|
|
6
|
+
reviewStarDistribution: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
7
|
+
recommendedPercentage: z.ZodNumber;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
type OkendoReviewAggregateData = z.infer<typeof okendoReviewAggregateOutputSchema>;
|
|
10
|
+
type OkendoReviewAggregateLoaderProps = {
|
|
11
|
+
loaderKey: string;
|
|
12
|
+
shopifyProductId: string;
|
|
13
|
+
children: (data: OkendoReviewAggregateData) => ReactNode;
|
|
14
|
+
fallback?: ReactNode;
|
|
15
|
+
};
|
|
16
|
+
export declare function OkendoReviewAggregateLoader({ loaderKey, shopifyProductId, children, fallback, }: OkendoReviewAggregateLoaderProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Suspense } from "react";
|
|
4
|
+
import { useSuspenseQuery } from "@tanstack/react-query";
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
import { invokeLoader } from "./invoke-loader";
|
|
7
|
+
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
|
+
function OkendoReviewAggregateLoaderInner({
|
|
15
|
+
loaderKey,
|
|
16
|
+
shopifyProductId,
|
|
17
|
+
children
|
|
18
|
+
}) {
|
|
19
|
+
const queryResult = useSuspenseQuery({
|
|
20
|
+
queryKey: [loaderKey, { shopifyProductId }],
|
|
21
|
+
queryFn: async () => {
|
|
22
|
+
const loadedData = await invokeLoader({
|
|
23
|
+
loaderKey,
|
|
24
|
+
args: { shopifyProductId }
|
|
25
|
+
});
|
|
26
|
+
return okendoReviewAggregateOutputSchema.parse(loadedData);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
return /* @__PURE__ */ jsx(Fragment, { children: children(queryResult.data) });
|
|
30
|
+
}
|
|
31
|
+
function OkendoReviewAggregateLoader({
|
|
32
|
+
loaderKey,
|
|
33
|
+
shopifyProductId,
|
|
34
|
+
children,
|
|
35
|
+
fallback
|
|
36
|
+
}) {
|
|
37
|
+
return /* @__PURE__ */ jsx(
|
|
38
|
+
LoaderErrorBoundary,
|
|
39
|
+
{
|
|
40
|
+
fallback: fallback ?? null,
|
|
41
|
+
resetKey: `${loaderKey}:${shopifyProductId}`,
|
|
42
|
+
children: /* @__PURE__ */ jsx(Suspense, { fallback: fallback ?? null, children: /* @__PURE__ */ jsx(
|
|
43
|
+
OkendoReviewAggregateLoaderInner,
|
|
44
|
+
{
|
|
45
|
+
loaderKey,
|
|
46
|
+
shopifyProductId,
|
|
47
|
+
children
|
|
48
|
+
}
|
|
49
|
+
) })
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
export {
|
|
54
|
+
OkendoReviewAggregateLoader
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=okendo-review-aggregate-loader.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../loaders/okendo-review-aggregate-loader.tsx"],
|
|
4
|
+
"sourcesContent": ["\"use client\";\n\nimport type { ReactNode } from \"react\";\n\nimport { Suspense } from \"react\";\n\nimport { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { z } from \"zod\";\n\nimport { invokeLoader } from \"./invoke-loader\";\nimport { LoaderErrorBoundary } from \"./loader-error-boundary\";\n\nconst okendoReviewAggregateOutputSchema = z.object({\n reviewCount: z.number(),\n reviewAverageValue: z.number(),\n reviewStarDistribution: z.record(z.string(), z.number()),\n recommendedPercentage: z.number(),\n});\n\ntype OkendoReviewAggregateData = z.infer<\n typeof okendoReviewAggregateOutputSchema\n>;\n\ntype OkendoReviewAggregateLoaderProps = {\n loaderKey: string;\n shopifyProductId: string;\n children: (data: OkendoReviewAggregateData) => ReactNode;\n fallback?: ReactNode;\n};\n\nfunction OkendoReviewAggregateLoaderInner({\n loaderKey,\n shopifyProductId,\n children,\n}: Omit<OkendoReviewAggregateLoaderProps, \"fallback\">) {\n const queryResult = useSuspenseQuery({\n queryKey: [loaderKey, { shopifyProductId }],\n queryFn: async () => {\n const loadedData = await invokeLoader({\n loaderKey,\n args: { shopifyProductId },\n });\n return okendoReviewAggregateOutputSchema.parse(loadedData);\n },\n });\n\n return <>{children(queryResult.data)}</>;\n}\n\nexport function OkendoReviewAggregateLoader({\n loaderKey,\n shopifyProductId,\n children,\n fallback,\n}: OkendoReviewAggregateLoaderProps) {\n return (\n <LoaderErrorBoundary\n fallback={fallback ?? null}\n resetKey={`${loaderKey}:${shopifyProductId}`}\n >\n <Suspense fallback={fallback ?? null}>\n <OkendoReviewAggregateLoaderInner\n loaderKey={loaderKey}\n shopifyProductId={shopifyProductId}\n >\n {children}\n </OkendoReviewAggregateLoaderInner>\n </Suspense>\n </LoaderErrorBoundary>\n );\n}\n"],
|
|
5
|
+
"mappings": ";AA8CS;AA1CT,SAAS,gBAAgB;AAEzB,SAAS,wBAAwB;AACjC,SAAS,SAAS;AAElB,SAAS,oBAAoB;AAC7B,SAAS,2BAA2B;AAEpC,MAAM,oCAAoC,EAAE,OAAO;AAAA,EACjD,aAAa,EAAE,OAAO;AAAA,EACtB,oBAAoB,EAAE,OAAO;AAAA,EAC7B,wBAAwB,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC;AAAA,EACvD,uBAAuB,EAAE,OAAO;AAClC,CAAC;AAaD,SAAS,iCAAiC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AACF,GAAuD;AACrD,QAAM,cAAc,iBAAiB;AAAA,IACnC,UAAU,CAAC,WAAW,EAAE,iBAAiB,CAAC;AAAA,IAC1C,SAAS,YAAY;AACnB,YAAM,aAAa,MAAM,aAAa;AAAA,QACpC;AAAA,QACA,MAAM,EAAE,iBAAiB;AAAA,MAC3B,CAAC;AACD,aAAO,kCAAkC,MAAM,UAAU;AAAA,IAC3D;AAAA,EACF,CAAC;AAED,SAAO,gCAAG,mBAAS,YAAY,IAAI,GAAE;AACvC;AAEO,SAAS,4BAA4B;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAqC;AACnC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU,YAAY;AAAA,MACtB,UAAU,GAAG,SAAS,IAAI,gBAAgB;AAAA,MAE1C,8BAAC,YAAS,UAAU,YAAY,MAC9B;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UAEC;AAAA;AAAA,MACH,GACF;AAAA;AAAA,EACF;AAEJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|