@cimplify/sdk 0.44.31 → 0.44.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-MEJK4FQ3.mjs → chunk-D3TVW7JP.mjs} +1 -1
- package/dist/{chunk-BCNPZHT2.js → chunk-GCSZYC5C.js} +1 -1
- package/dist/{chunk-4NJH4BWX.js → chunk-T4E4R4YG.js} +2 -2
- package/dist/{chunk-GXHBWC2Y.mjs → chunk-W72W6M6M.mjs} +1 -1
- package/dist/{client-eMipr1DC.d.mts → client-Cwb1sMr3.d.mts} +1 -1
- package/dist/{client-BZsRaT_S.d.ts → client-DMhRxuzm.d.ts} +1 -1
- package/dist/mock/cli.mjs +1 -1
- package/dist/mock/library.js +1 -1
- package/dist/mock/library.mjs +1 -1
- package/dist/mock/msw.js +1 -1
- package/dist/mock/msw.mjs +1 -1
- package/dist/{server-BsSusr7y.d.mts → server-UARbamIZ.d.mts} +1 -1
- package/dist/{server-BsSusr7y.d.ts → server-UARbamIZ.d.ts} +1 -1
- package/dist/testing/msw.d.mts +1 -1
- package/dist/testing/msw.d.ts +1 -1
- package/dist/testing/msw.js +2 -2
- package/dist/testing/msw.mjs +1 -1
- package/dist/testing/suite.d.mts +3 -2
- package/dist/testing/suite.d.ts +3 -2
- package/dist/testing/suite.js +21 -21
- package/dist/testing/suite.mjs +2 -2
- package/dist/testing.d.mts +2 -2
- package/dist/testing.d.ts +2 -2
- package/dist/testing.js +77 -77
- package/dist/testing.mjs +3 -3
- package/package.json +1 -1
- package/templates/storefront-bakery/app/llms.txt/route.ts +1 -1
- package/templates/storefront-bakery/components/store-product-card.tsx +4 -0
- package/templates/storefront-bakery/lib/brand.ts +3 -1
- package/templates/storefront-bakery/package.json +1 -1
- package/templates/storefront-fashion/__tests__/cart-flow.test.ts +4 -4
- package/templates/storefront-fashion/app/llms.txt/route.ts +1 -1
- package/templates/storefront-fashion/app/page.tsx +2 -2
- package/templates/storefront-fashion/app/products/[slug]/page.tsx +1 -1
- package/templates/storefront-fashion/components/store-product-card.tsx +4 -0
- package/templates/storefront-fashion/lib/brand.ts +3 -1
- package/templates/storefront-fashion/package.json +1 -1
- package/templates/storefront-grocery/app/llms.txt/route.ts +1 -1
- package/templates/storefront-grocery/components/store-product-card.tsx +4 -0
- package/templates/storefront-grocery/lib/brand.ts +3 -1
- package/templates/storefront-grocery/package.json +1 -1
- package/templates/storefront-restaurant/app/llms.txt/route.ts +1 -1
- package/templates/storefront-restaurant/components/store-product-card.tsx +4 -0
- package/templates/storefront-restaurant/lib/brand.ts +3 -1
- package/templates/storefront-restaurant/package.json +1 -1
- package/templates/storefront-retail/app/llms.txt/route.ts +1 -1
- package/templates/storefront-retail/app/page.tsx +2 -2
- package/templates/storefront-retail/app/products/[slug]/page.tsx +1 -1
- package/templates/storefront-retail/components/store-product-card.tsx +4 -0
- package/templates/storefront-retail/lib/brand.ts +2 -1
- package/templates/storefront-retail/package.json +1 -1
- package/templates/storefront-services/app/llms.txt/route.ts +1 -1
- package/templates/storefront-services/components/store-product-card.tsx +4 -0
- package/templates/storefront-services/lib/brand.ts +3 -1
- package/templates/storefront-services/package.json +1 -1
|
@@ -9268,7 +9268,7 @@ function createMockApp(options = {}) {
|
|
|
9268
9268
|
message: `Route ${c.req.method} ${c.req.path} not handled by mock`,
|
|
9269
9269
|
retryable: false
|
|
9270
9270
|
},
|
|
9271
|
-
hint: "See /api/v1 for the SDK surface and /_mock for the admin surface."
|
|
9271
|
+
hint: "See /api/v1/bootstrap for the SDK surface snapshot and /_mock for the admin surface."
|
|
9272
9272
|
},
|
|
9273
9273
|
501
|
|
9274
9274
|
)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkLLZZMHSU_js = require('./chunk-LLZZMHSU.js');
|
|
4
|
-
var
|
|
4
|
+
var chunkGCSZYC5C_js = require('./chunk-GCSZYC5C.js');
|
|
5
5
|
var zod = require('zod');
|
|
6
6
|
|
|
7
7
|
var cimplifyRegistry = zod.z.registry();
|
|
@@ -595,7 +595,7 @@ async function toForwardedRequest(input, init) {
|
|
|
595
595
|
};
|
|
596
596
|
}
|
|
597
597
|
function createTestClient(options = {}) {
|
|
598
|
-
const mock =
|
|
598
|
+
const mock = chunkGCSZYC5C_js.createMockApp(options);
|
|
599
599
|
let sessionToken;
|
|
600
600
|
const fetchImpl = async (input, init) => {
|
|
601
601
|
const url = typeof input === "string" ? input : input instanceof URL ? input.toString() : input.url;
|
|
@@ -9266,7 +9266,7 @@ function createMockApp(options = {}) {
|
|
|
9266
9266
|
message: `Route ${c.req.method} ${c.req.path} not handled by mock`,
|
|
9267
9267
|
retryable: false
|
|
9268
9268
|
},
|
|
9269
|
-
hint: "See /api/v1 for the SDK surface and /_mock for the admin surface."
|
|
9269
|
+
hint: "See /api/v1/bootstrap for the SDK surface snapshot and /_mock for the admin surface."
|
|
9270
9270
|
},
|
|
9271
9271
|
501
|
|
9272
9272
|
)
|
package/dist/mock/cli.mjs
CHANGED
|
@@ -9970,7 +9970,7 @@ function createMockApp(options = {}) {
|
|
|
9970
9970
|
message: `Route ${c.req.method} ${c.req.path} not handled by mock`,
|
|
9971
9971
|
retryable: false
|
|
9972
9972
|
},
|
|
9973
|
-
hint: "See /api/v1 for the SDK surface and /_mock for the admin surface."
|
|
9973
|
+
hint: "See /api/v1/bootstrap for the SDK surface snapshot and /_mock for the admin surface."
|
|
9974
9974
|
},
|
|
9975
9975
|
501
|
|
9976
9976
|
)
|
package/dist/mock/library.js
CHANGED
|
@@ -9338,7 +9338,7 @@ function createMockApp(options = {}) {
|
|
|
9338
9338
|
message: `Route ${c.req.method} ${c.req.path} not handled by mock`,
|
|
9339
9339
|
retryable: false
|
|
9340
9340
|
},
|
|
9341
|
-
hint: "See /api/v1 for the SDK surface and /_mock for the admin surface."
|
|
9341
|
+
hint: "See /api/v1/bootstrap for the SDK surface snapshot and /_mock for the admin surface."
|
|
9342
9342
|
},
|
|
9343
9343
|
501
|
|
9344
9344
|
)
|
package/dist/mock/library.mjs
CHANGED
|
@@ -9336,7 +9336,7 @@ function createMockApp(options = {}) {
|
|
|
9336
9336
|
message: `Route ${c.req.method} ${c.req.path} not handled by mock`,
|
|
9337
9337
|
retryable: false
|
|
9338
9338
|
},
|
|
9339
|
-
hint: "See /api/v1 for the SDK surface and /_mock for the admin surface."
|
|
9339
|
+
hint: "See /api/v1/bootstrap for the SDK surface snapshot and /_mock for the admin surface."
|
|
9340
9340
|
},
|
|
9341
9341
|
501
|
|
9342
9342
|
)
|
package/dist/mock/msw.js
CHANGED
|
@@ -9336,7 +9336,7 @@ function createMockApp(options = {}) {
|
|
|
9336
9336
|
message: `Route ${c.req.method} ${c.req.path} not handled by mock`,
|
|
9337
9337
|
retryable: false
|
|
9338
9338
|
},
|
|
9339
|
-
hint: "See /api/v1 for the SDK surface and /_mock for the admin surface."
|
|
9339
|
+
hint: "See /api/v1/bootstrap for the SDK surface snapshot and /_mock for the admin surface."
|
|
9340
9340
|
},
|
|
9341
9341
|
501
|
|
9342
9342
|
)
|
package/dist/mock/msw.mjs
CHANGED
|
@@ -9334,7 +9334,7 @@ function createMockApp(options = {}) {
|
|
|
9334
9334
|
message: `Route ${c.req.method} ${c.req.path} not handled by mock`,
|
|
9335
9335
|
retryable: false
|
|
9336
9336
|
},
|
|
9337
|
-
hint: "See /api/v1 for the SDK surface and /_mock for the admin surface."
|
|
9337
|
+
hint: "See /api/v1/bootstrap for the SDK surface snapshot and /_mock for the admin surface."
|
|
9338
9338
|
},
|
|
9339
9339
|
501
|
|
9340
9340
|
)
|
package/dist/testing/msw.d.mts
CHANGED
package/dist/testing/msw.d.ts
CHANGED
package/dist/testing/msw.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkGCSZYC5C_js = require('../chunk-GCSZYC5C.js');
|
|
4
4
|
require('../chunk-QBQCMQ4F.js');
|
|
5
5
|
|
|
6
6
|
// src/mock/msw.ts
|
|
7
7
|
async function createMswHandlers(options = {}) {
|
|
8
8
|
const baseUrl = options.baseUrl ?? "http://localhost:8787";
|
|
9
|
-
const handle =
|
|
9
|
+
const handle = chunkGCSZYC5C_js.createMockApp(options);
|
|
10
10
|
const msw = await import('msw').catch(() => {
|
|
11
11
|
throw new Error("msw is required to use @cimplify/sdk/mock/msw \u2014 install it as a peer dependency");
|
|
12
12
|
});
|
package/dist/testing/msw.mjs
CHANGED
package/dist/testing/suite.d.mts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { TestAPI } from 'vitest';
|
|
2
|
-
import { T as TestClientHandle } from '../client-
|
|
3
|
-
import { C as CreateAppOptions } from '../server-
|
|
2
|
+
import { T as TestClientHandle } from '../client-Cwb1sMr3.mjs';
|
|
3
|
+
import { C as CreateAppOptions } from '../server-UARbamIZ.mjs';
|
|
4
|
+
export { S as SeedName } from '../server-UARbamIZ.mjs';
|
|
4
5
|
import '../client-CpVMRI8V.mjs';
|
|
5
6
|
import '../payment-4JSLNTVM.mjs';
|
|
6
7
|
import 'hono';
|
package/dist/testing/suite.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { TestAPI } from 'vitest';
|
|
2
|
-
import { T as TestClientHandle } from '../client-
|
|
3
|
-
import { C as CreateAppOptions } from '../server-
|
|
2
|
+
import { T as TestClientHandle } from '../client-DMhRxuzm.js';
|
|
3
|
+
import { C as CreateAppOptions } from '../server-UARbamIZ.js';
|
|
4
|
+
export { S as SeedName } from '../server-UARbamIZ.js';
|
|
4
5
|
import '../client-5B9IPDmf.js';
|
|
5
6
|
import '../payment-4JSLNTVM.js';
|
|
6
7
|
import 'hono';
|
package/dist/testing/suite.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkT4E4R4YG_js = require('../chunk-T4E4R4YG.js');
|
|
4
4
|
require('../chunk-LLZZMHSU.js');
|
|
5
5
|
require('../chunk-GVLWRI5I.js');
|
|
6
6
|
require('../chunk-BN2CXGMO.js');
|
|
7
|
-
require('../chunk-
|
|
7
|
+
require('../chunk-GCSZYC5C.js');
|
|
8
8
|
require('../chunk-QBQCMQ4F.js');
|
|
9
9
|
var vitest = require('vitest');
|
|
10
10
|
|
|
@@ -19,11 +19,11 @@ var PLACEHOLDER_PHRASES = [
|
|
|
19
19
|
function createBrandSuite(opts) {
|
|
20
20
|
vitest.describe(opts.label ?? "brand schema", () => {
|
|
21
21
|
vitest.it("conforms to the Cimplify brand contract", () => {
|
|
22
|
-
vitest.expect(() =>
|
|
22
|
+
vitest.expect(() => chunkT4E4R4YG_js.assertBrand(opts.brand)).not.toThrow();
|
|
23
23
|
});
|
|
24
24
|
vitest.it("declares a known mock seed", () => {
|
|
25
25
|
const b = opts.brand;
|
|
26
|
-
vitest.expect(
|
|
26
|
+
vitest.expect(chunkT4E4R4YG_js.SeedNameSchema.safeParse(b.mock?.seed).success).toBe(true);
|
|
27
27
|
});
|
|
28
28
|
vitest.it("has no placeholder copy left in", () => {
|
|
29
29
|
const offenders = [];
|
|
@@ -55,7 +55,7 @@ ${msg}`);
|
|
|
55
55
|
vitest.expect(b.mock?.businessId).toMatch(/^bus_/);
|
|
56
56
|
});
|
|
57
57
|
vitest.it("zod-parses cleanly", () => {
|
|
58
|
-
const result =
|
|
58
|
+
const result = chunkT4E4R4YG_js.BrandSchema.safeParse(opts.brand);
|
|
59
59
|
if (!result.success) {
|
|
60
60
|
throw new Error(
|
|
61
61
|
"Brand schema violations:\n" + result.error.issues.map((i) => ` \u2022 brand.${i.path.join(".")}: ${i.message}`).join("\n")
|
|
@@ -70,23 +70,23 @@ function createCartFlowSuite(opts = {}) {
|
|
|
70
70
|
vitest.describe(opts.label ?? "cart flow against in-process mock", () => {
|
|
71
71
|
let h;
|
|
72
72
|
vitest.beforeEach(() => {
|
|
73
|
-
h =
|
|
73
|
+
h = chunkT4E4R4YG_js.createTestClient(opts);
|
|
74
74
|
});
|
|
75
75
|
vitest.afterEach(() => h.dispose());
|
|
76
76
|
vitest.it("starts with an empty cart matching the canonical shape", async () => {
|
|
77
77
|
const res = await h.client.cart.get();
|
|
78
78
|
vitest.expect(res.ok).toBe(true);
|
|
79
79
|
if (!res.ok) return;
|
|
80
|
-
vitest.expect(() =>
|
|
80
|
+
vitest.expect(() => chunkT4E4R4YG_js.assertCart(res.value)).not.toThrow();
|
|
81
81
|
vitest.expect(res.value.items).toHaveLength(0);
|
|
82
82
|
});
|
|
83
83
|
vitest.it("adds the first product, persists it, and returns a shape-valid cart", async () => {
|
|
84
|
-
const { product, variantId } = await
|
|
84
|
+
const { product, variantId } = await chunkT4E4R4YG_js.fixtures.addFirstProduct(h.client);
|
|
85
85
|
vitest.expect(product.id).toBeTruthy();
|
|
86
86
|
const get = await h.client.cart.get();
|
|
87
87
|
vitest.expect(get.ok).toBe(true);
|
|
88
88
|
if (!get.ok) return;
|
|
89
|
-
vitest.expect(() =>
|
|
89
|
+
vitest.expect(() => chunkT4E4R4YG_js.assertCart(get.value)).not.toThrow();
|
|
90
90
|
vitest.expect(get.value.items).toHaveLength(1);
|
|
91
91
|
vitest.expect(get.value.items[0]?.item_id).toBe(product.id);
|
|
92
92
|
if (variantId) {
|
|
@@ -97,8 +97,8 @@ function createCartFlowSuite(opts = {}) {
|
|
|
97
97
|
vitest.expect(parseFloat(String(get.value.pricing.subtotal))).toBeGreaterThan(0);
|
|
98
98
|
});
|
|
99
99
|
vitest.it("dedupes by line_key when adding the same product twice", async () => {
|
|
100
|
-
await
|
|
101
|
-
await
|
|
100
|
+
await chunkT4E4R4YG_js.fixtures.addFirstProduct(h.client);
|
|
101
|
+
await chunkT4E4R4YG_js.fixtures.addFirstProduct(h.client);
|
|
102
102
|
const res = await h.client.cart.get();
|
|
103
103
|
vitest.expect(res.ok).toBe(true);
|
|
104
104
|
if (!res.ok) return;
|
|
@@ -106,7 +106,7 @@ function createCartFlowSuite(opts = {}) {
|
|
|
106
106
|
vitest.expect(res.value.items[0]?.quantity).toBe(2);
|
|
107
107
|
});
|
|
108
108
|
vitest.it("removes items and zeroes the subtotal", async () => {
|
|
109
|
-
await
|
|
109
|
+
await chunkT4E4R4YG_js.fixtures.addFirstProduct(h.client);
|
|
110
110
|
const before = await h.client.cart.get();
|
|
111
111
|
if (!before.ok) throw before.error;
|
|
112
112
|
const itemId = before.value.items[0]?.id;
|
|
@@ -132,28 +132,28 @@ function createContractSuite(opts = {}) {
|
|
|
132
132
|
vitest.describe(opts.label ?? "SDK \u2194 mock contract", () => {
|
|
133
133
|
let h;
|
|
134
134
|
vitest.beforeEach(() => {
|
|
135
|
-
h =
|
|
135
|
+
h = chunkT4E4R4YG_js.createTestClient(opts);
|
|
136
136
|
});
|
|
137
137
|
vitest.afterEach(() => h.dispose());
|
|
138
138
|
vitest.it("AddItemPayload schema accepts a minimal valid body", () => {
|
|
139
|
-
const result =
|
|
139
|
+
const result = chunkT4E4R4YG_js.AddItemPayloadSchema.safeParse({ item_id: "prod_x", quantity: 1 });
|
|
140
140
|
vitest.expect(result.success).toBe(true);
|
|
141
141
|
});
|
|
142
142
|
vitest.it("AddItemPayload schema rejects negative quantity", () => {
|
|
143
|
-
const result =
|
|
143
|
+
const result = chunkT4E4R4YG_js.AddItemPayloadSchema.safeParse({ item_id: "prod_x", quantity: -1 });
|
|
144
144
|
vitest.expect(result.success).toBe(false);
|
|
145
145
|
});
|
|
146
146
|
vitest.it("AddItemPayload schema rejects empty item_id", () => {
|
|
147
|
-
const result =
|
|
147
|
+
const result = chunkT4E4R4YG_js.AddItemPayloadSchema.safeParse({ item_id: "", quantity: 1 });
|
|
148
148
|
vitest.expect(result.success).toBe(false);
|
|
149
149
|
});
|
|
150
150
|
vitest.it("Cart line items returned by the mock match CartItemSchema", async () => {
|
|
151
|
-
const { product } = await
|
|
151
|
+
const { product } = await chunkT4E4R4YG_js.fixtures.addFirstProduct(h.client);
|
|
152
152
|
const get = await h.client.cart.get();
|
|
153
153
|
if (!get.ok) throw get.error;
|
|
154
154
|
vitest.expect(get.value.items.length).toBeGreaterThan(0);
|
|
155
155
|
for (const item of get.value.items) {
|
|
156
|
-
const result =
|
|
156
|
+
const result = chunkT4E4R4YG_js.CartItemSchema.safeParse(item);
|
|
157
157
|
if (!result.success) {
|
|
158
158
|
const issues = result.error.issues.map((i) => ` \u2022 ${i.path.join(".")}: ${i.message}`).join("\n");
|
|
159
159
|
throw new Error(`Cart item shape mismatch for ${product.name}:
|
|
@@ -163,19 +163,19 @@ ${issues}`);
|
|
|
163
163
|
}
|
|
164
164
|
});
|
|
165
165
|
vitest.it("CheckoutResponse from the mock includes bill_token", async () => {
|
|
166
|
-
await
|
|
166
|
+
await chunkT4E4R4YG_js.fixtures.addFirstProduct(h.client);
|
|
167
167
|
const cartRes = await h.client.cart.get();
|
|
168
168
|
if (!cartRes.ok) throw cartRes.error;
|
|
169
169
|
const checkout = await h.client.checkout.process({
|
|
170
170
|
cart_id: cartRes.value.id,
|
|
171
|
-
customer:
|
|
171
|
+
customer: chunkT4E4R4YG_js.fixtures.customer(),
|
|
172
172
|
order_type: "delivery",
|
|
173
173
|
payment_method: "mobile_money",
|
|
174
174
|
mobile_money_details: { phone_number: "+233244000000", provider: "mtn" }
|
|
175
175
|
});
|
|
176
176
|
vitest.expect(checkout.ok).toBe(true);
|
|
177
177
|
if (!checkout.ok) return;
|
|
178
|
-
const result =
|
|
178
|
+
const result = chunkT4E4R4YG_js.CheckoutResponseSchema.safeParse(checkout.value);
|
|
179
179
|
if (!result.success) {
|
|
180
180
|
const issues = result.error.issues.map((i) => ` \u2022 ${i.path.join(".")}: ${i.message}`).join("\n");
|
|
181
181
|
throw new Error(`CheckoutResponse shape mismatch:
|
package/dist/testing/suite.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { assertBrand, SeedNameSchema, BrandSchema, createTestClient, assertCart, fixtures, AddItemPayloadSchema, CartItemSchema, CheckoutResponseSchema } from '../chunk-
|
|
1
|
+
import { assertBrand, SeedNameSchema, BrandSchema, createTestClient, assertCart, fixtures, AddItemPayloadSchema, CartItemSchema, CheckoutResponseSchema } from '../chunk-D3TVW7JP.mjs';
|
|
2
2
|
import '../chunk-RR3ZJQW5.mjs';
|
|
3
3
|
import '../chunk-AIXUFSA6.mjs';
|
|
4
4
|
import '../chunk-NRT6PVW5.mjs';
|
|
5
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-W72W6M6M.mjs';
|
|
6
6
|
import '../chunk-XPXAZXF2.mjs';
|
|
7
7
|
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
8
8
|
|
package/dist/testing.d.mts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { $ZodType } from 'zod/v4/core';
|
|
3
|
-
export { A as AddFirstProductOptions, a as AddFirstProductResult, P as ProductSummary, T as TestClientHandle, c as createTestClient, f as fixtures } from './client-
|
|
3
|
+
export { A as AddFirstProductOptions, a as AddFirstProductResult, P as ProductSummary, T as TestClientHandle, c as createTestClient, f as fixtures } from './client-Cwb1sMr3.mjs';
|
|
4
4
|
import './client-CpVMRI8V.mjs';
|
|
5
5
|
import './payment-4JSLNTVM.mjs';
|
|
6
|
-
import './server-
|
|
6
|
+
import './server-UARbamIZ.mjs';
|
|
7
7
|
import 'hono';
|
|
8
8
|
|
|
9
9
|
/**
|
package/dist/testing.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { $ZodType } from 'zod/v4/core';
|
|
3
|
-
export { A as AddFirstProductOptions, a as AddFirstProductResult, P as ProductSummary, T as TestClientHandle, c as createTestClient, f as fixtures } from './client-
|
|
3
|
+
export { A as AddFirstProductOptions, a as AddFirstProductResult, P as ProductSummary, T as TestClientHandle, c as createTestClient, f as fixtures } from './client-DMhRxuzm.js';
|
|
4
4
|
import './client-5B9IPDmf.js';
|
|
5
5
|
import './payment-4JSLNTVM.js';
|
|
6
|
-
import './server-
|
|
6
|
+
import './server-UARbamIZ.js';
|
|
7
7
|
import 'hono';
|
|
8
8
|
|
|
9
9
|
/**
|
package/dist/testing.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkT4E4R4YG_js = require('./chunk-T4E4R4YG.js');
|
|
4
4
|
require('./chunk-LLZZMHSU.js');
|
|
5
5
|
require('./chunk-GVLWRI5I.js');
|
|
6
6
|
require('./chunk-BN2CXGMO.js');
|
|
7
|
-
require('./chunk-
|
|
7
|
+
require('./chunk-GCSZYC5C.js');
|
|
8
8
|
require('./chunk-QBQCMQ4F.js');
|
|
9
9
|
var zod = require('zod');
|
|
10
10
|
|
|
11
11
|
var PUBLIC_SCHEMAS = {
|
|
12
|
-
Brand:
|
|
13
|
-
AddItemPayload:
|
|
14
|
-
Cart:
|
|
15
|
-
CartItem:
|
|
16
|
-
CartPricing:
|
|
17
|
-
CheckoutBody:
|
|
18
|
-
CheckoutResponse:
|
|
19
|
-
VariantInfo:
|
|
12
|
+
Brand: chunkT4E4R4YG_js.BrandSchema,
|
|
13
|
+
AddItemPayload: chunkT4E4R4YG_js.AddItemPayloadSchema,
|
|
14
|
+
Cart: chunkT4E4R4YG_js.CartSchema,
|
|
15
|
+
CartItem: chunkT4E4R4YG_js.CartItemSchema,
|
|
16
|
+
CartPricing: chunkT4E4R4YG_js.CartPricingSchema,
|
|
17
|
+
CheckoutBody: chunkT4E4R4YG_js.CheckoutBodySchema,
|
|
18
|
+
CheckoutResponse: chunkT4E4R4YG_js.CheckoutResponseSchema,
|
|
19
|
+
VariantInfo: chunkT4E4R4YG_js.VariantInfoSchema
|
|
20
20
|
};
|
|
21
21
|
function exportJsonSchemas() {
|
|
22
22
|
const out = {};
|
|
23
23
|
for (const [name, schema] of Object.entries(PUBLIC_SCHEMAS)) {
|
|
24
|
-
const meta =
|
|
25
|
-
const json = zod.z.toJSONSchema(schema, { metadata:
|
|
24
|
+
const meta = chunkT4E4R4YG_js.cimplifyRegistry.get(schema);
|
|
25
|
+
const json = zod.z.toJSONSchema(schema, { metadata: chunkT4E4R4YG_js.cimplifyRegistry });
|
|
26
26
|
if (meta) {
|
|
27
27
|
json.$id = meta.id;
|
|
28
28
|
json["x-cimplify-version"] = meta.version;
|
|
@@ -34,16 +34,16 @@ function exportJsonSchemas() {
|
|
|
34
34
|
function listRegisteredSchemas() {
|
|
35
35
|
const entries = [];
|
|
36
36
|
for (const schema of [
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
37
|
+
chunkT4E4R4YG_js.BrandSchema,
|
|
38
|
+
chunkT4E4R4YG_js.AddItemPayloadSchema,
|
|
39
|
+
chunkT4E4R4YG_js.CartSchema,
|
|
40
|
+
chunkT4E4R4YG_js.CartItemSchema,
|
|
41
|
+
chunkT4E4R4YG_js.CartPricingSchema,
|
|
42
|
+
chunkT4E4R4YG_js.CheckoutBodySchema,
|
|
43
|
+
chunkT4E4R4YG_js.CheckoutResponseSchema,
|
|
44
|
+
chunkT4E4R4YG_js.VariantInfoSchema
|
|
45
45
|
]) {
|
|
46
|
-
const meta =
|
|
46
|
+
const meta = chunkT4E4R4YG_js.cimplifyRegistry.get(schema);
|
|
47
47
|
if (meta) entries.push({ schema, meta });
|
|
48
48
|
}
|
|
49
49
|
return entries;
|
|
@@ -51,227 +51,227 @@ function listRegisteredSchemas() {
|
|
|
51
51
|
|
|
52
52
|
Object.defineProperty(exports, "AddItemPayloadSchema", {
|
|
53
53
|
enumerable: true,
|
|
54
|
-
get: function () { return
|
|
54
|
+
get: function () { return chunkT4E4R4YG_js.AddItemPayloadSchema; }
|
|
55
55
|
});
|
|
56
56
|
Object.defineProperty(exports, "AddOnDetailsSchema", {
|
|
57
57
|
enumerable: true,
|
|
58
|
-
get: function () { return
|
|
58
|
+
get: function () { return chunkT4E4R4YG_js.AddOnDetailsSchema; }
|
|
59
59
|
});
|
|
60
60
|
Object.defineProperty(exports, "AddOnGroupDetailsSchema", {
|
|
61
61
|
enumerable: true,
|
|
62
|
-
get: function () { return
|
|
62
|
+
get: function () { return chunkT4E4R4YG_js.AddOnGroupDetailsSchema; }
|
|
63
63
|
});
|
|
64
64
|
Object.defineProperty(exports, "AddOnInDetailsSchema", {
|
|
65
65
|
enumerable: true,
|
|
66
|
-
get: function () { return
|
|
66
|
+
get: function () { return chunkT4E4R4YG_js.AddOnInDetailsSchema; }
|
|
67
67
|
});
|
|
68
68
|
Object.defineProperty(exports, "AddOnOptionDetailsSchema", {
|
|
69
69
|
enumerable: true,
|
|
70
|
-
get: function () { return
|
|
70
|
+
get: function () { return chunkT4E4R4YG_js.AddOnOptionDetailsSchema; }
|
|
71
71
|
});
|
|
72
72
|
Object.defineProperty(exports, "AuthorizationTypeSchema", {
|
|
73
73
|
enumerable: true,
|
|
74
|
-
get: function () { return
|
|
74
|
+
get: function () { return chunkT4E4R4YG_js.AuthorizationTypeSchema; }
|
|
75
75
|
});
|
|
76
76
|
Object.defineProperty(exports, "BrandContactSchema", {
|
|
77
77
|
enumerable: true,
|
|
78
|
-
get: function () { return
|
|
78
|
+
get: function () { return chunkT4E4R4YG_js.BrandContactSchema; }
|
|
79
79
|
});
|
|
80
80
|
Object.defineProperty(exports, "BrandFaqSchema", {
|
|
81
81
|
enumerable: true,
|
|
82
|
-
get: function () { return
|
|
82
|
+
get: function () { return chunkT4E4R4YG_js.BrandFaqSchema; }
|
|
83
83
|
});
|
|
84
84
|
Object.defineProperty(exports, "BrandHeroSchema", {
|
|
85
85
|
enumerable: true,
|
|
86
|
-
get: function () { return
|
|
86
|
+
get: function () { return chunkT4E4R4YG_js.BrandHeroSchema; }
|
|
87
87
|
});
|
|
88
88
|
Object.defineProperty(exports, "BrandNavLinkSchema", {
|
|
89
89
|
enumerable: true,
|
|
90
|
-
get: function () { return
|
|
90
|
+
get: function () { return chunkT4E4R4YG_js.BrandNavLinkSchema; }
|
|
91
91
|
});
|
|
92
92
|
Object.defineProperty(exports, "BrandPolicyPageSchema", {
|
|
93
93
|
enumerable: true,
|
|
94
|
-
get: function () { return
|
|
94
|
+
get: function () { return chunkT4E4R4YG_js.BrandPolicyPageSchema; }
|
|
95
95
|
});
|
|
96
96
|
Object.defineProperty(exports, "BrandPolicySectionSchema", {
|
|
97
97
|
enumerable: true,
|
|
98
|
-
get: function () { return
|
|
98
|
+
get: function () { return chunkT4E4R4YG_js.BrandPolicySectionSchema; }
|
|
99
99
|
});
|
|
100
100
|
Object.defineProperty(exports, "BrandSchema", {
|
|
101
101
|
enumerable: true,
|
|
102
|
-
get: function () { return
|
|
102
|
+
get: function () { return chunkT4E4R4YG_js.BrandSchema; }
|
|
103
103
|
});
|
|
104
104
|
Object.defineProperty(exports, "BrandSocialSchema", {
|
|
105
105
|
enumerable: true,
|
|
106
|
-
get: function () { return
|
|
106
|
+
get: function () { return chunkT4E4R4YG_js.BrandSocialSchema; }
|
|
107
107
|
});
|
|
108
108
|
Object.defineProperty(exports, "BundleResolvedSchema", {
|
|
109
109
|
enumerable: true,
|
|
110
|
-
get: function () { return
|
|
110
|
+
get: function () { return chunkT4E4R4YG_js.BundleResolvedSchema; }
|
|
111
111
|
});
|
|
112
112
|
Object.defineProperty(exports, "BundleSelectionInputSchema", {
|
|
113
113
|
enumerable: true,
|
|
114
|
-
get: function () { return
|
|
114
|
+
get: function () { return chunkT4E4R4YG_js.BundleSelectionInputSchema; }
|
|
115
115
|
});
|
|
116
116
|
Object.defineProperty(exports, "CartItemSchema", {
|
|
117
117
|
enumerable: true,
|
|
118
|
-
get: function () { return
|
|
118
|
+
get: function () { return chunkT4E4R4YG_js.CartItemSchema; }
|
|
119
119
|
});
|
|
120
120
|
Object.defineProperty(exports, "CartPricingSchema", {
|
|
121
121
|
enumerable: true,
|
|
122
|
-
get: function () { return
|
|
122
|
+
get: function () { return chunkT4E4R4YG_js.CartPricingSchema; }
|
|
123
123
|
});
|
|
124
124
|
Object.defineProperty(exports, "CartSchema", {
|
|
125
125
|
enumerable: true,
|
|
126
|
-
get: function () { return
|
|
126
|
+
get: function () { return chunkT4E4R4YG_js.CartSchema; }
|
|
127
127
|
});
|
|
128
128
|
Object.defineProperty(exports, "CheckoutBodySchema", {
|
|
129
129
|
enumerable: true,
|
|
130
|
-
get: function () { return
|
|
130
|
+
get: function () { return chunkT4E4R4YG_js.CheckoutBodySchema; }
|
|
131
131
|
});
|
|
132
132
|
Object.defineProperty(exports, "CheckoutCustomerSchema", {
|
|
133
133
|
enumerable: true,
|
|
134
|
-
get: function () { return
|
|
134
|
+
get: function () { return chunkT4E4R4YG_js.CheckoutCustomerSchema; }
|
|
135
135
|
});
|
|
136
136
|
Object.defineProperty(exports, "CheckoutResponseSchema", {
|
|
137
137
|
enumerable: true,
|
|
138
|
-
get: function () { return
|
|
138
|
+
get: function () { return chunkT4E4R4YG_js.CheckoutResponseSchema; }
|
|
139
139
|
});
|
|
140
140
|
Object.defineProperty(exports, "ChosenPriceSchema", {
|
|
141
141
|
enumerable: true,
|
|
142
|
-
get: function () { return
|
|
142
|
+
get: function () { return chunkT4E4R4YG_js.ChosenPriceSchema; }
|
|
143
143
|
});
|
|
144
144
|
Object.defineProperty(exports, "CompositeResolvedSchema", {
|
|
145
145
|
enumerable: true,
|
|
146
|
-
get: function () { return
|
|
146
|
+
get: function () { return chunkT4E4R4YG_js.CompositeResolvedSchema; }
|
|
147
147
|
});
|
|
148
148
|
Object.defineProperty(exports, "CompositeSelectionInputSchema", {
|
|
149
149
|
enumerable: true,
|
|
150
|
-
get: function () { return
|
|
150
|
+
get: function () { return chunkT4E4R4YG_js.CompositeSelectionInputSchema; }
|
|
151
151
|
});
|
|
152
152
|
Object.defineProperty(exports, "CountryCodeSchema", {
|
|
153
153
|
enumerable: true,
|
|
154
|
-
get: function () { return
|
|
154
|
+
get: function () { return chunkT4E4R4YG_js.CountryCodeSchema; }
|
|
155
155
|
});
|
|
156
156
|
Object.defineProperty(exports, "CurrencyCodeSchema", {
|
|
157
157
|
enumerable: true,
|
|
158
|
-
get: function () { return
|
|
158
|
+
get: function () { return chunkT4E4R4YG_js.CurrencyCodeSchema; }
|
|
159
159
|
});
|
|
160
160
|
Object.defineProperty(exports, "CustomerInputValueSchema", {
|
|
161
161
|
enumerable: true,
|
|
162
|
-
get: function () { return
|
|
162
|
+
get: function () { return chunkT4E4R4YG_js.CustomerInputValueSchema; }
|
|
163
163
|
});
|
|
164
164
|
Object.defineProperty(exports, "DiscountDetailsSchema", {
|
|
165
165
|
enumerable: true,
|
|
166
|
-
get: function () { return
|
|
166
|
+
get: function () { return chunkT4E4R4YG_js.DiscountDetailsSchema; }
|
|
167
167
|
});
|
|
168
168
|
Object.defineProperty(exports, "IsoDateTimeSchema", {
|
|
169
169
|
enumerable: true,
|
|
170
|
-
get: function () { return
|
|
170
|
+
get: function () { return chunkT4E4R4YG_js.IsoDateTimeSchema; }
|
|
171
171
|
});
|
|
172
172
|
Object.defineProperty(exports, "LineTypeSchema", {
|
|
173
173
|
enumerable: true,
|
|
174
|
-
get: function () { return
|
|
174
|
+
get: function () { return chunkT4E4R4YG_js.LineTypeSchema; }
|
|
175
175
|
});
|
|
176
176
|
Object.defineProperty(exports, "LocaleSchema", {
|
|
177
177
|
enumerable: true,
|
|
178
|
-
get: function () { return
|
|
178
|
+
get: function () { return chunkT4E4R4YG_js.LocaleSchema; }
|
|
179
179
|
});
|
|
180
180
|
Object.defineProperty(exports, "MoneyLooseSchema", {
|
|
181
181
|
enumerable: true,
|
|
182
|
-
get: function () { return
|
|
182
|
+
get: function () { return chunkT4E4R4YG_js.MoneyLooseSchema; }
|
|
183
183
|
});
|
|
184
184
|
Object.defineProperty(exports, "MoneySchema", {
|
|
185
185
|
enumerable: true,
|
|
186
|
-
get: function () { return
|
|
186
|
+
get: function () { return chunkT4E4R4YG_js.MoneySchema; }
|
|
187
187
|
});
|
|
188
188
|
Object.defineProperty(exports, "NextActionSchema", {
|
|
189
189
|
enumerable: true,
|
|
190
|
-
get: function () { return
|
|
190
|
+
get: function () { return chunkT4E4R4YG_js.NextActionSchema; }
|
|
191
191
|
});
|
|
192
192
|
Object.defineProperty(exports, "PhoneE164Schema", {
|
|
193
193
|
enumerable: true,
|
|
194
|
-
get: function () { return
|
|
194
|
+
get: function () { return chunkT4E4R4YG_js.PhoneE164Schema; }
|
|
195
195
|
});
|
|
196
196
|
Object.defineProperty(exports, "ProductTypeSchema", {
|
|
197
197
|
enumerable: true,
|
|
198
|
-
get: function () { return
|
|
198
|
+
get: function () { return chunkT4E4R4YG_js.ProductTypeSchema; }
|
|
199
199
|
});
|
|
200
200
|
Object.defineProperty(exports, "SchemaViolationError", {
|
|
201
201
|
enumerable: true,
|
|
202
|
-
get: function () { return
|
|
202
|
+
get: function () { return chunkT4E4R4YG_js.SchemaViolationError; }
|
|
203
203
|
});
|
|
204
204
|
Object.defineProperty(exports, "SeedNameSchema", {
|
|
205
205
|
enumerable: true,
|
|
206
|
-
get: function () { return
|
|
206
|
+
get: function () { return chunkT4E4R4YG_js.SeedNameSchema; }
|
|
207
207
|
});
|
|
208
208
|
Object.defineProperty(exports, "SelectedAddOnOptionSchema", {
|
|
209
209
|
enumerable: true,
|
|
210
|
-
get: function () { return
|
|
210
|
+
get: function () { return chunkT4E4R4YG_js.SelectedAddOnOptionSchema; }
|
|
211
211
|
});
|
|
212
212
|
Object.defineProperty(exports, "ServiceStatusSchema", {
|
|
213
213
|
enumerable: true,
|
|
214
|
-
get: function () { return
|
|
214
|
+
get: function () { return chunkT4E4R4YG_js.ServiceStatusSchema; }
|
|
215
215
|
});
|
|
216
216
|
Object.defineProperty(exports, "TimestampSchema", {
|
|
217
217
|
enumerable: true,
|
|
218
|
-
get: function () { return
|
|
218
|
+
get: function () { return chunkT4E4R4YG_js.TimestampSchema; }
|
|
219
219
|
});
|
|
220
220
|
Object.defineProperty(exports, "VariantDetailsSchema", {
|
|
221
221
|
enumerable: true,
|
|
222
|
-
get: function () { return
|
|
222
|
+
get: function () { return chunkT4E4R4YG_js.VariantDetailsSchema; }
|
|
223
223
|
});
|
|
224
224
|
Object.defineProperty(exports, "VariantDisplayAttributeSchema", {
|
|
225
225
|
enumerable: true,
|
|
226
|
-
get: function () { return
|
|
226
|
+
get: function () { return chunkT4E4R4YG_js.VariantDisplayAttributeSchema; }
|
|
227
227
|
});
|
|
228
228
|
Object.defineProperty(exports, "VariantInfoSchema", {
|
|
229
229
|
enumerable: true,
|
|
230
|
-
get: function () { return
|
|
230
|
+
get: function () { return chunkT4E4R4YG_js.VariantInfoSchema; }
|
|
231
231
|
});
|
|
232
232
|
Object.defineProperty(exports, "assertAddItemPayload", {
|
|
233
233
|
enumerable: true,
|
|
234
|
-
get: function () { return
|
|
234
|
+
get: function () { return chunkT4E4R4YG_js.assertAddItemPayload; }
|
|
235
235
|
});
|
|
236
236
|
Object.defineProperty(exports, "assertBrand", {
|
|
237
237
|
enumerable: true,
|
|
238
|
-
get: function () { return
|
|
238
|
+
get: function () { return chunkT4E4R4YG_js.assertBrand; }
|
|
239
239
|
});
|
|
240
240
|
Object.defineProperty(exports, "assertCart", {
|
|
241
241
|
enumerable: true,
|
|
242
|
-
get: function () { return
|
|
242
|
+
get: function () { return chunkT4E4R4YG_js.assertCart; }
|
|
243
243
|
});
|
|
244
244
|
Object.defineProperty(exports, "assertCartItem", {
|
|
245
245
|
enumerable: true,
|
|
246
|
-
get: function () { return
|
|
246
|
+
get: function () { return chunkT4E4R4YG_js.assertCartItem; }
|
|
247
247
|
});
|
|
248
248
|
Object.defineProperty(exports, "assertCheckoutBody", {
|
|
249
249
|
enumerable: true,
|
|
250
|
-
get: function () { return
|
|
250
|
+
get: function () { return chunkT4E4R4YG_js.assertCheckoutBody; }
|
|
251
251
|
});
|
|
252
252
|
Object.defineProperty(exports, "assertCheckoutResponse", {
|
|
253
253
|
enumerable: true,
|
|
254
|
-
get: function () { return
|
|
254
|
+
get: function () { return chunkT4E4R4YG_js.assertCheckoutResponse; }
|
|
255
255
|
});
|
|
256
256
|
Object.defineProperty(exports, "cimplifyRegistry", {
|
|
257
257
|
enumerable: true,
|
|
258
|
-
get: function () { return
|
|
258
|
+
get: function () { return chunkT4E4R4YG_js.cimplifyRegistry; }
|
|
259
259
|
});
|
|
260
260
|
Object.defineProperty(exports, "createTestClient", {
|
|
261
261
|
enumerable: true,
|
|
262
|
-
get: function () { return
|
|
262
|
+
get: function () { return chunkT4E4R4YG_js.createTestClient; }
|
|
263
263
|
});
|
|
264
264
|
Object.defineProperty(exports, "fixtures", {
|
|
265
265
|
enumerable: true,
|
|
266
|
-
get: function () { return
|
|
266
|
+
get: function () { return chunkT4E4R4YG_js.fixtures; }
|
|
267
267
|
});
|
|
268
268
|
Object.defineProperty(exports, "makeAssertion", {
|
|
269
269
|
enumerable: true,
|
|
270
|
-
get: function () { return
|
|
270
|
+
get: function () { return chunkT4E4R4YG_js.makeAssertion; }
|
|
271
271
|
});
|
|
272
272
|
Object.defineProperty(exports, "registerSchema", {
|
|
273
273
|
enumerable: true,
|
|
274
|
-
get: function () { return
|
|
274
|
+
get: function () { return chunkT4E4R4YG_js.registerSchema; }
|
|
275
275
|
});
|
|
276
276
|
exports.exportJsonSchemas = exportJsonSchemas;
|
|
277
277
|
exports.listRegisteredSchemas = listRegisteredSchemas;
|
package/dist/testing.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { VariantInfoSchema, CheckoutResponseSchema, CheckoutBodySchema, CartPricingSchema, CartItemSchema, CartSchema, AddItemPayloadSchema, BrandSchema, cimplifyRegistry } from './chunk-
|
|
2
|
-
export { AddItemPayloadSchema, AddOnDetailsSchema, AddOnGroupDetailsSchema, AddOnInDetailsSchema, AddOnOptionDetailsSchema, AuthorizationTypeSchema, BrandContactSchema, BrandFaqSchema, BrandHeroSchema, BrandNavLinkSchema, BrandPolicyPageSchema, BrandPolicySectionSchema, BrandSchema, BrandSocialSchema, BundleResolvedSchema, BundleSelectionInputSchema, CartItemSchema, CartPricingSchema, CartSchema, CheckoutBodySchema, CheckoutCustomerSchema, CheckoutResponseSchema, ChosenPriceSchema, CompositeResolvedSchema, CompositeSelectionInputSchema, CountryCodeSchema, CurrencyCodeSchema, CustomerInputValueSchema, DiscountDetailsSchema, IsoDateTimeSchema, LineTypeSchema, LocaleSchema, MoneyLooseSchema, MoneySchema, NextActionSchema, PhoneE164Schema, ProductTypeSchema, SchemaViolationError, SeedNameSchema, SelectedAddOnOptionSchema, ServiceStatusSchema, TimestampSchema, VariantDetailsSchema, VariantDisplayAttributeSchema, VariantInfoSchema, assertAddItemPayload, assertBrand, assertCart, assertCartItem, assertCheckoutBody, assertCheckoutResponse, cimplifyRegistry, createTestClient, fixtures, makeAssertion, registerSchema } from './chunk-
|
|
1
|
+
import { VariantInfoSchema, CheckoutResponseSchema, CheckoutBodySchema, CartPricingSchema, CartItemSchema, CartSchema, AddItemPayloadSchema, BrandSchema, cimplifyRegistry } from './chunk-D3TVW7JP.mjs';
|
|
2
|
+
export { AddItemPayloadSchema, AddOnDetailsSchema, AddOnGroupDetailsSchema, AddOnInDetailsSchema, AddOnOptionDetailsSchema, AuthorizationTypeSchema, BrandContactSchema, BrandFaqSchema, BrandHeroSchema, BrandNavLinkSchema, BrandPolicyPageSchema, BrandPolicySectionSchema, BrandSchema, BrandSocialSchema, BundleResolvedSchema, BundleSelectionInputSchema, CartItemSchema, CartPricingSchema, CartSchema, CheckoutBodySchema, CheckoutCustomerSchema, CheckoutResponseSchema, ChosenPriceSchema, CompositeResolvedSchema, CompositeSelectionInputSchema, CountryCodeSchema, CurrencyCodeSchema, CustomerInputValueSchema, DiscountDetailsSchema, IsoDateTimeSchema, LineTypeSchema, LocaleSchema, MoneyLooseSchema, MoneySchema, NextActionSchema, PhoneE164Schema, ProductTypeSchema, SchemaViolationError, SeedNameSchema, SelectedAddOnOptionSchema, ServiceStatusSchema, TimestampSchema, VariantDetailsSchema, VariantDisplayAttributeSchema, VariantInfoSchema, assertAddItemPayload, assertBrand, assertCart, assertCartItem, assertCheckoutBody, assertCheckoutResponse, cimplifyRegistry, createTestClient, fixtures, makeAssertion, registerSchema } from './chunk-D3TVW7JP.mjs';
|
|
3
3
|
import './chunk-RR3ZJQW5.mjs';
|
|
4
4
|
import './chunk-AIXUFSA6.mjs';
|
|
5
5
|
import './chunk-NRT6PVW5.mjs';
|
|
6
|
-
import './chunk-
|
|
6
|
+
import './chunk-W72W6M6M.mjs';
|
|
7
7
|
import './chunk-XPXAZXF2.mjs';
|
|
8
8
|
import { z } from 'zod';
|
|
9
9
|
|
package/package.json
CHANGED
|
@@ -55,7 +55,7 @@ async function buildLlmsTxt(): Promise<string> {
|
|
|
55
55
|
lines.push("## Products");
|
|
56
56
|
for (const p of products) {
|
|
57
57
|
const slug = p.slug ?? p.id;
|
|
58
|
-
const price = `${
|
|
58
|
+
const price = `${brand.currency} ${p.default_price}`;
|
|
59
59
|
const desc = p.description ? ` — ${p.description.replace(/\s+/g, " ").slice(0, 200)}` : "";
|
|
60
60
|
lines.push(`- [${p.name}](${SITE_URL}/shop?product=${slug}) (${price})${desc}`);
|
|
61
61
|
}
|
|
@@ -10,6 +10,8 @@ import {
|
|
|
10
10
|
BundleProductCard,
|
|
11
11
|
CompositeProductCard,
|
|
12
12
|
StandardServiceCard,
|
|
13
|
+
CompactServiceCard,
|
|
14
|
+
ScheduleServiceCard,
|
|
13
15
|
RentalServiceCard,
|
|
14
16
|
AccommodationCard,
|
|
15
17
|
LeaseServiceCard,
|
|
@@ -30,6 +32,8 @@ const VARIANT_CARDS: Record<CardVariant, React.ComponentType<CardLayoutProps>> =
|
|
|
30
32
|
[CardVariant.Bundle]: BundleProductCard,
|
|
31
33
|
[CardVariant.Composite]: CompositeProductCard,
|
|
32
34
|
[CardVariant.Standard]: StandardServiceCard,
|
|
35
|
+
[CardVariant.Compact]: CompactServiceCard,
|
|
36
|
+
[CardVariant.Schedule]: ScheduleServiceCard,
|
|
33
37
|
[CardVariant.Rental]: RentalServiceCard,
|
|
34
38
|
[CardVariant.Accommodation]: AccommodationCard,
|
|
35
39
|
[CardVariant.Lease]: LeaseServiceCard,
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
* works across industry templates.
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
+
import type { SeedName } from "@cimplify/sdk/testing/suite";
|
|
15
|
+
|
|
14
16
|
export interface BrandSocial {
|
|
15
17
|
/** Display label (Instagram, X, YouTube, …). Used as aria-label and footer chip. */
|
|
16
18
|
label: string;
|
|
@@ -184,7 +186,7 @@ export interface Brand {
|
|
|
184
186
|
};
|
|
185
187
|
|
|
186
188
|
mock: {
|
|
187
|
-
seed:
|
|
189
|
+
seed: SeedName;
|
|
188
190
|
businessId: string;
|
|
189
191
|
};
|
|
190
192
|
}
|
|
@@ -21,14 +21,14 @@ createCartFlowSuite({
|
|
|
21
21
|
businessId: brand.mock.businessId,
|
|
22
22
|
extend: ({ getHandle, it }) => {
|
|
23
23
|
it("Studio FRX prices everything in GHS", async () => {
|
|
24
|
+
// Currency is brand-level (not per-product) — Product carries the price
|
|
25
|
+
// string only. Catalog completeness here is just a sanity check.
|
|
26
|
+
expect(brand.currency).toBe("GHS");
|
|
24
27
|
const h = getHandle();
|
|
25
28
|
const list = await h.client.catalogue.getProducts();
|
|
26
29
|
if (!list.ok) throw list.error;
|
|
27
|
-
const items = (list.value as unknown as { items?:
|
|
30
|
+
const items = (list.value as unknown as { items?: unknown[] }).items ?? [];
|
|
28
31
|
expect(items.length).toBeGreaterThan(0);
|
|
29
|
-
for (const p of items) {
|
|
30
|
-
expect(p.currency).toBe("GHS");
|
|
31
|
-
}
|
|
32
32
|
});
|
|
33
33
|
|
|
34
34
|
it("every apparel product covers the studio's core size run (S/M/L)", async () => {
|
|
@@ -55,7 +55,7 @@ async function buildLlmsTxt(): Promise<string> {
|
|
|
55
55
|
lines.push("## Products");
|
|
56
56
|
for (const p of products) {
|
|
57
57
|
const slug = p.slug ?? p.id;
|
|
58
|
-
const price = `${
|
|
58
|
+
const price = `${brand.currency} ${p.default_price}`;
|
|
59
59
|
const desc = p.description ? ` — ${p.description.replace(/\s+/g, " ").slice(0, 200)}` : "";
|
|
60
60
|
lines.push(`- [${p.name}](${SITE_URL}/products/${slug}) (${price})${desc}`);
|
|
61
61
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Metadata } from "next";
|
|
2
2
|
import { Suspense } from "react";
|
|
3
3
|
import { cacheTag, cacheLife } from "next/cache";
|
|
4
|
-
import { getServerClient, tags, type Product } from "@cimplify/sdk/server";
|
|
4
|
+
import { getServerClient, tags, type Collection, type Product } from "@cimplify/sdk/server";
|
|
5
5
|
import { FeatureHero } from "@/components/feature-hero";
|
|
6
6
|
import { CategoryTiles } from "@/components/category-tiles";
|
|
7
7
|
import { CollectionStrip } from "@/components/collection-strip";
|
|
@@ -20,7 +20,7 @@ export const metadata: Metadata = {
|
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
interface CollectionWithProducts {
|
|
23
|
-
collection:
|
|
23
|
+
collection: Collection;
|
|
24
24
|
products: Product[];
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -29,7 +29,7 @@ function productLd(product: ProductWithDetails) {
|
|
|
29
29
|
offers: {
|
|
30
30
|
"@type": "Offer",
|
|
31
31
|
price: product.default_price,
|
|
32
|
-
priceCurrency:
|
|
32
|
+
priceCurrency: brand.currency,
|
|
33
33
|
availability: inStock
|
|
34
34
|
? "https://schema.org/InStock"
|
|
35
35
|
: "https://schema.org/OutOfStock",
|
|
@@ -10,6 +10,8 @@ import {
|
|
|
10
10
|
BundleProductCard,
|
|
11
11
|
CompositeProductCard,
|
|
12
12
|
StandardServiceCard,
|
|
13
|
+
CompactServiceCard,
|
|
14
|
+
ScheduleServiceCard,
|
|
13
15
|
RentalServiceCard,
|
|
14
16
|
AccommodationCard,
|
|
15
17
|
LeaseServiceCard,
|
|
@@ -30,6 +32,8 @@ const VARIANT_CARDS: Record<CardVariant, React.ComponentType<CardLayoutProps>> =
|
|
|
30
32
|
[CardVariant.Bundle]: BundleProductCard,
|
|
31
33
|
[CardVariant.Composite]: CompositeProductCard,
|
|
32
34
|
[CardVariant.Standard]: StandardServiceCard,
|
|
35
|
+
[CardVariant.Compact]: CompactServiceCard,
|
|
36
|
+
[CardVariant.Schedule]: ScheduleServiceCard,
|
|
33
37
|
[CardVariant.Rental]: RentalServiceCard,
|
|
34
38
|
[CardVariant.Accommodation]: AccommodationCard,
|
|
35
39
|
[CardVariant.Lease]: LeaseServiceCard,
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
* string. Edit this file to rebrand. See ../AGENTS.md.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import type { SeedName } from "@cimplify/sdk/testing/suite";
|
|
7
|
+
|
|
6
8
|
export interface BrandSocial {
|
|
7
9
|
label: string;
|
|
8
10
|
href: string;
|
|
@@ -81,7 +83,7 @@ export interface Brand {
|
|
|
81
83
|
poweredBy?: { label: string; href: string };
|
|
82
84
|
};
|
|
83
85
|
llms: { summary: string };
|
|
84
|
-
mock: { seed:
|
|
86
|
+
mock: { seed: SeedName; businessId: string };
|
|
85
87
|
}
|
|
86
88
|
|
|
87
89
|
export const brand: Brand = {
|
|
@@ -55,7 +55,7 @@ async function buildLlmsTxt(): Promise<string> {
|
|
|
55
55
|
lines.push("## Products");
|
|
56
56
|
for (const p of products) {
|
|
57
57
|
const slug = p.slug ?? p.id;
|
|
58
|
-
const price = `${
|
|
58
|
+
const price = `${brand.currency} ${p.default_price}`;
|
|
59
59
|
const desc = p.description ? ` — ${p.description.replace(/\s+/g, " ").slice(0, 200)}` : "";
|
|
60
60
|
lines.push(`- [${p.name}](${SITE_URL}/shop?product=${slug}) (${price})${desc}`);
|
|
61
61
|
}
|
|
@@ -10,6 +10,8 @@ import {
|
|
|
10
10
|
BundleProductCard,
|
|
11
11
|
CompositeProductCard,
|
|
12
12
|
StandardServiceCard,
|
|
13
|
+
CompactServiceCard,
|
|
14
|
+
ScheduleServiceCard,
|
|
13
15
|
RentalServiceCard,
|
|
14
16
|
AccommodationCard,
|
|
15
17
|
LeaseServiceCard,
|
|
@@ -30,6 +32,8 @@ const VARIANT_CARDS: Record<CardVariant, React.ComponentType<CardLayoutProps>> =
|
|
|
30
32
|
[CardVariant.Bundle]: BundleProductCard,
|
|
31
33
|
[CardVariant.Composite]: CompositeProductCard,
|
|
32
34
|
[CardVariant.Standard]: StandardServiceCard,
|
|
35
|
+
[CardVariant.Compact]: CompactServiceCard,
|
|
36
|
+
[CardVariant.Schedule]: ScheduleServiceCard,
|
|
33
37
|
[CardVariant.Rental]: RentalServiceCard,
|
|
34
38
|
[CardVariant.Accommodation]: AccommodationCard,
|
|
35
39
|
[CardVariant.Lease]: LeaseServiceCard,
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
* string. Edit this file to rebrand. See ../AGENTS.md.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import type { SeedName } from "@cimplify/sdk/testing/suite";
|
|
7
|
+
|
|
6
8
|
export interface BrandSocial {
|
|
7
9
|
label: string;
|
|
8
10
|
href: string;
|
|
@@ -77,7 +79,7 @@ export interface Brand {
|
|
|
77
79
|
poweredBy?: { label: string; href: string };
|
|
78
80
|
};
|
|
79
81
|
llms: { summary: string };
|
|
80
|
-
mock: { seed:
|
|
82
|
+
mock: { seed: SeedName; businessId: string };
|
|
81
83
|
}
|
|
82
84
|
|
|
83
85
|
export const brand: Brand = {
|
|
@@ -55,7 +55,7 @@ async function buildLlmsTxt(): Promise<string> {
|
|
|
55
55
|
lines.push("## Products");
|
|
56
56
|
for (const p of products) {
|
|
57
57
|
const slug = p.slug ?? p.id;
|
|
58
|
-
const price = `${
|
|
58
|
+
const price = `${brand.currency} ${p.default_price}`;
|
|
59
59
|
const desc = p.description ? ` — ${p.description.replace(/\s+/g, " ").slice(0, 200)}` : "";
|
|
60
60
|
lines.push(`- [${p.name}](${SITE_URL}/shop?product=${slug}) (${price})${desc}`);
|
|
61
61
|
}
|
|
@@ -10,6 +10,8 @@ import {
|
|
|
10
10
|
BundleProductCard,
|
|
11
11
|
CompositeProductCard,
|
|
12
12
|
StandardServiceCard,
|
|
13
|
+
CompactServiceCard,
|
|
14
|
+
ScheduleServiceCard,
|
|
13
15
|
RentalServiceCard,
|
|
14
16
|
AccommodationCard,
|
|
15
17
|
LeaseServiceCard,
|
|
@@ -30,6 +32,8 @@ const VARIANT_CARDS: Record<CardVariant, React.ComponentType<CardLayoutProps>> =
|
|
|
30
32
|
[CardVariant.Bundle]: BundleProductCard,
|
|
31
33
|
[CardVariant.Composite]: CompositeProductCard,
|
|
32
34
|
[CardVariant.Standard]: StandardServiceCard,
|
|
35
|
+
[CardVariant.Compact]: CompactServiceCard,
|
|
36
|
+
[CardVariant.Schedule]: ScheduleServiceCard,
|
|
33
37
|
[CardVariant.Rental]: RentalServiceCard,
|
|
34
38
|
[CardVariant.Accommodation]: AccommodationCard,
|
|
35
39
|
[CardVariant.Lease]: LeaseServiceCard,
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
* string. Edit this file to rebrand. See ../AGENTS.md.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import type { SeedName } from "@cimplify/sdk/testing/suite";
|
|
7
|
+
|
|
6
8
|
export interface BrandSocial {
|
|
7
9
|
label: string;
|
|
8
10
|
href: string;
|
|
@@ -77,7 +79,7 @@ export interface Brand {
|
|
|
77
79
|
poweredBy?: { label: string; href: string };
|
|
78
80
|
};
|
|
79
81
|
llms: { summary: string };
|
|
80
|
-
mock: { seed:
|
|
82
|
+
mock: { seed: SeedName; businessId: string };
|
|
81
83
|
}
|
|
82
84
|
|
|
83
85
|
export const brand: Brand = {
|
|
@@ -55,7 +55,7 @@ async function buildLlmsTxt(): Promise<string> {
|
|
|
55
55
|
lines.push("## Products");
|
|
56
56
|
for (const p of products) {
|
|
57
57
|
const slug = p.slug ?? p.id;
|
|
58
|
-
const price = `${
|
|
58
|
+
const price = `${brand.currency} ${p.default_price}`;
|
|
59
59
|
const desc = p.description ? ` — ${p.description.replace(/\s+/g, " ").slice(0, 200)}` : "";
|
|
60
60
|
lines.push(`- [${p.name}](${SITE_URL}/products/${slug}) (${price})${desc}`);
|
|
61
61
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Metadata } from "next";
|
|
2
2
|
import { Suspense } from "react";
|
|
3
3
|
import { cacheTag, cacheLife } from "next/cache";
|
|
4
|
-
import { getServerClient, tags, type Product } from "@cimplify/sdk/server";
|
|
4
|
+
import { getServerClient, tags, type Collection, type Product } from "@cimplify/sdk/server";
|
|
5
5
|
import { FeatureHero } from "@/components/feature-hero";
|
|
6
6
|
import { CategoryTiles } from "@/components/category-tiles";
|
|
7
7
|
import { CollectionStrip } from "@/components/collection-strip";
|
|
@@ -20,7 +20,7 @@ export const metadata: Metadata = {
|
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
interface CollectionWithProducts {
|
|
23
|
-
collection:
|
|
23
|
+
collection: Collection;
|
|
24
24
|
products: Product[];
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -29,7 +29,7 @@ function productLd(product: ProductWithDetails) {
|
|
|
29
29
|
offers: {
|
|
30
30
|
"@type": "Offer",
|
|
31
31
|
price: product.default_price,
|
|
32
|
-
priceCurrency:
|
|
32
|
+
priceCurrency: brand.currency,
|
|
33
33
|
availability: inStock
|
|
34
34
|
? "https://schema.org/InStock"
|
|
35
35
|
: "https://schema.org/OutOfStock",
|
|
@@ -10,6 +10,8 @@ import {
|
|
|
10
10
|
BundleProductCard,
|
|
11
11
|
CompositeProductCard,
|
|
12
12
|
StandardServiceCard,
|
|
13
|
+
CompactServiceCard,
|
|
14
|
+
ScheduleServiceCard,
|
|
13
15
|
RentalServiceCard,
|
|
14
16
|
AccommodationCard,
|
|
15
17
|
LeaseServiceCard,
|
|
@@ -30,6 +32,8 @@ const VARIANT_CARDS: Record<CardVariant, React.ComponentType<CardLayoutProps>> =
|
|
|
30
32
|
[CardVariant.Bundle]: BundleProductCard,
|
|
31
33
|
[CardVariant.Composite]: CompositeProductCard,
|
|
32
34
|
[CardVariant.Standard]: StandardServiceCard,
|
|
35
|
+
[CardVariant.Compact]: CompactServiceCard,
|
|
36
|
+
[CardVariant.Schedule]: ScheduleServiceCard,
|
|
33
37
|
[CardVariant.Rental]: RentalServiceCard,
|
|
34
38
|
[CardVariant.Accommodation]: AccommodationCard,
|
|
35
39
|
[CardVariant.Lease]: LeaseServiceCard,
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* brandStrip, promo) only render when present, so the same Brand type
|
|
11
11
|
* works across industry templates.
|
|
12
12
|
*/
|
|
13
|
+
import type { SeedName } from "@cimplify/sdk/testing/suite";
|
|
13
14
|
|
|
14
15
|
export interface BrandSocial {
|
|
15
16
|
/** Display label (Instagram, X, YouTube, …). Used as aria-label and footer chip. */
|
|
@@ -209,7 +210,7 @@ export interface Brand {
|
|
|
209
210
|
|
|
210
211
|
// ─── Mock seed ────────────────────────────────────────────────
|
|
211
212
|
mock: {
|
|
212
|
-
seed:
|
|
213
|
+
seed: SeedName;
|
|
213
214
|
businessId: string;
|
|
214
215
|
};
|
|
215
216
|
}
|
|
@@ -55,7 +55,7 @@ async function buildLlmsTxt(): Promise<string> {
|
|
|
55
55
|
lines.push("## Products");
|
|
56
56
|
for (const p of products) {
|
|
57
57
|
const slug = p.slug ?? p.id;
|
|
58
|
-
const price = `${
|
|
58
|
+
const price = `${brand.currency} ${p.default_price}`;
|
|
59
59
|
const desc = p.description ? ` — ${p.description.replace(/\s+/g, " ").slice(0, 200)}` : "";
|
|
60
60
|
lines.push(`- [${p.name}](${SITE_URL}/shop?product=${slug}) (${price})${desc}`);
|
|
61
61
|
}
|
|
@@ -10,6 +10,8 @@ import {
|
|
|
10
10
|
BundleProductCard,
|
|
11
11
|
CompositeProductCard,
|
|
12
12
|
StandardServiceCard,
|
|
13
|
+
CompactServiceCard,
|
|
14
|
+
ScheduleServiceCard,
|
|
13
15
|
RentalServiceCard,
|
|
14
16
|
AccommodationCard,
|
|
15
17
|
LeaseServiceCard,
|
|
@@ -30,6 +32,8 @@ const VARIANT_CARDS: Record<CardVariant, React.ComponentType<CardLayoutProps>> =
|
|
|
30
32
|
[CardVariant.Bundle]: BundleProductCard,
|
|
31
33
|
[CardVariant.Composite]: CompositeProductCard,
|
|
32
34
|
[CardVariant.Standard]: StandardServiceCard,
|
|
35
|
+
[CardVariant.Compact]: CompactServiceCard,
|
|
36
|
+
[CardVariant.Schedule]: ScheduleServiceCard,
|
|
33
37
|
[CardVariant.Rental]: RentalServiceCard,
|
|
34
38
|
[CardVariant.Accommodation]: AccommodationCard,
|
|
35
39
|
[CardVariant.Lease]: LeaseServiceCard,
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
* string. Edit this file to rebrand. See ../AGENTS.md.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import type { SeedName } from "@cimplify/sdk/testing/suite";
|
|
7
|
+
|
|
6
8
|
export interface BrandSocial {
|
|
7
9
|
label: string;
|
|
8
10
|
href: string;
|
|
@@ -77,7 +79,7 @@ export interface Brand {
|
|
|
77
79
|
poweredBy?: { label: string; href: string };
|
|
78
80
|
};
|
|
79
81
|
llms: { summary: string };
|
|
80
|
-
mock: { seed:
|
|
82
|
+
mock: { seed: SeedName; businessId: string };
|
|
81
83
|
}
|
|
82
84
|
|
|
83
85
|
export const brand: Brand = {
|