@brytdesigns/shopify-ajax-cart-api 1.0.23 → 1.0.24

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.
@@ -157,12 +157,6 @@ export declare const add: (input?: ({
157
157
  readonly url: string;
158
158
  readonly price: number;
159
159
  readonly id: string | number;
160
- readonly quantity_rule?: {
161
- readonly min: number;
162
- readonly max: number | null;
163
- readonly increment: number;
164
- } | undefined;
165
- readonly handle: string;
166
160
  readonly properties: {
167
161
  readonly [x: string]: string | number | boolean | null;
168
162
  };
@@ -194,6 +188,7 @@ export declare const add: (input?: ({
194
188
  readonly width: number;
195
189
  } | undefined;
196
190
  readonly image: string;
191
+ readonly handle: string;
197
192
  readonly requires_shipping: boolean;
198
193
  readonly product_type: string | null;
199
194
  readonly product_title: string;
@@ -218,6 +213,11 @@ export declare const add: (input?: ({
218
213
  };
219
214
  }[];
220
215
  readonly line_level_total_discount: number;
216
+ readonly quantity_rule?: {
217
+ readonly min: number;
218
+ readonly max: number | null;
219
+ readonly increment: number;
220
+ } | undefined;
221
221
  readonly has_components: boolean;
222
222
  readonly unit_price?: number | undefined;
223
223
  readonly unit_price_measurement?: {
@@ -255,28 +255,6 @@ export declare const add: (input?: ({
255
255
  };
256
256
  } | null;
257
257
  } & {
258
- readonly product: {
259
- readonly title: string;
260
- readonly id: string | number;
261
- readonly options: readonly {
262
- readonly values: readonly string[];
263
- readonly name: string;
264
- readonly position: number;
265
- }[];
266
- readonly handle: string;
267
- readonly variants: readonly {
268
- readonly title: string;
269
- readonly id: string | number;
270
- readonly options: readonly string[];
271
- readonly quantity_rule: {
272
- readonly min: number | null;
273
- readonly max: number | null;
274
- readonly increment: number;
275
- };
276
- }[];
277
- readonly tags: readonly string[];
278
- readonly available: boolean;
279
- };
280
258
  readonly properties_array: readonly {
281
259
  readonly key: string;
282
260
  readonly value: string | number | boolean | null;
@@ -348,12 +326,6 @@ export declare const change: (input?: ({
348
326
  readonly url: string;
349
327
  readonly price: number;
350
328
  readonly id: string | number;
351
- readonly quantity_rule?: {
352
- readonly min: number;
353
- readonly max: number | null;
354
- readonly increment: number;
355
- } | undefined;
356
- readonly handle: string;
357
329
  readonly properties: {
358
330
  readonly [x: string]: string | number | boolean | null;
359
331
  };
@@ -385,6 +357,7 @@ export declare const change: (input?: ({
385
357
  readonly width: number;
386
358
  } | undefined;
387
359
  readonly image: string;
360
+ readonly handle: string;
388
361
  readonly requires_shipping: boolean;
389
362
  readonly product_type: string | null;
390
363
  readonly product_title: string;
@@ -409,6 +382,11 @@ export declare const change: (input?: ({
409
382
  };
410
383
  }[];
411
384
  readonly line_level_total_discount: number;
385
+ readonly quantity_rule?: {
386
+ readonly min: number;
387
+ readonly max: number | null;
388
+ readonly increment: number;
389
+ } | undefined;
412
390
  readonly has_components: boolean;
413
391
  readonly unit_price?: number | undefined;
414
392
  readonly unit_price_measurement?: {
@@ -446,28 +424,6 @@ export declare const change: (input?: ({
446
424
  };
447
425
  } | null;
448
426
  } & {
449
- readonly product: {
450
- readonly title: string;
451
- readonly id: string | number;
452
- readonly options: readonly {
453
- readonly values: readonly string[];
454
- readonly name: string;
455
- readonly position: number;
456
- }[];
457
- readonly handle: string;
458
- readonly variants: readonly {
459
- readonly title: string;
460
- readonly id: string | number;
461
- readonly options: readonly string[];
462
- readonly quantity_rule: {
463
- readonly min: number | null;
464
- readonly max: number | null;
465
- readonly increment: number;
466
- };
467
- }[];
468
- readonly tags: readonly string[];
469
- readonly available: boolean;
470
- };
471
427
  readonly properties_array: readonly {
472
428
  readonly key: string;
473
429
  readonly value: string | number | boolean | null;
@@ -551,12 +507,6 @@ export declare const clear: (input?: {
551
507
  readonly url: string;
552
508
  readonly price: number;
553
509
  readonly id: string | number;
554
- readonly quantity_rule?: {
555
- readonly min: number;
556
- readonly max: number | null;
557
- readonly increment: number;
558
- } | undefined;
559
- readonly handle: string;
560
510
  readonly properties: {
561
511
  readonly [x: string]: string | number | boolean | null;
562
512
  };
@@ -588,6 +538,7 @@ export declare const clear: (input?: {
588
538
  readonly width: number;
589
539
  } | undefined;
590
540
  readonly image: string;
541
+ readonly handle: string;
591
542
  readonly requires_shipping: boolean;
592
543
  readonly product_type: string | null;
593
544
  readonly product_title: string;
@@ -612,6 +563,11 @@ export declare const clear: (input?: {
612
563
  };
613
564
  }[];
614
565
  readonly line_level_total_discount: number;
566
+ readonly quantity_rule?: {
567
+ readonly min: number;
568
+ readonly max: number | null;
569
+ readonly increment: number;
570
+ } | undefined;
615
571
  readonly has_components: boolean;
616
572
  readonly unit_price?: number | undefined;
617
573
  readonly unit_price_measurement?: {
@@ -649,28 +605,6 @@ export declare const clear: (input?: {
649
605
  };
650
606
  } | null;
651
607
  } & {
652
- readonly product: {
653
- readonly title: string;
654
- readonly id: string | number;
655
- readonly options: readonly {
656
- readonly values: readonly string[];
657
- readonly name: string;
658
- readonly position: number;
659
- }[];
660
- readonly handle: string;
661
- readonly variants: readonly {
662
- readonly title: string;
663
- readonly id: string | number;
664
- readonly options: readonly string[];
665
- readonly quantity_rule: {
666
- readonly min: number | null;
667
- readonly max: number | null;
668
- readonly increment: number;
669
- };
670
- }[];
671
- readonly tags: readonly string[];
672
- readonly available: boolean;
673
- };
674
608
  readonly properties_array: readonly {
675
609
  readonly key: string;
676
610
  readonly value: string | number | boolean | null;
@@ -754,12 +688,6 @@ export declare const get: (input?: {
754
688
  readonly url: string;
755
689
  readonly price: number;
756
690
  readonly id: string | number;
757
- readonly quantity_rule?: {
758
- readonly min: number;
759
- readonly max: number | null;
760
- readonly increment: number;
761
- } | undefined;
762
- readonly handle: string;
763
691
  readonly properties: {
764
692
  readonly [x: string]: string | number | boolean | null;
765
693
  };
@@ -791,6 +719,7 @@ export declare const get: (input?: {
791
719
  readonly width: number;
792
720
  } | undefined;
793
721
  readonly image: string;
722
+ readonly handle: string;
794
723
  readonly requires_shipping: boolean;
795
724
  readonly product_type: string | null;
796
725
  readonly product_title: string;
@@ -815,6 +744,11 @@ export declare const get: (input?: {
815
744
  };
816
745
  }[];
817
746
  readonly line_level_total_discount: number;
747
+ readonly quantity_rule?: {
748
+ readonly min: number;
749
+ readonly max: number | null;
750
+ readonly increment: number;
751
+ } | undefined;
818
752
  readonly has_components: boolean;
819
753
  readonly unit_price?: number | undefined;
820
754
  readonly unit_price_measurement?: {
@@ -852,28 +786,6 @@ export declare const get: (input?: {
852
786
  };
853
787
  } | null;
854
788
  } & {
855
- readonly product: {
856
- readonly title: string;
857
- readonly id: string | number;
858
- readonly options: readonly {
859
- readonly values: readonly string[];
860
- readonly name: string;
861
- readonly position: number;
862
- }[];
863
- readonly handle: string;
864
- readonly variants: readonly {
865
- readonly title: string;
866
- readonly id: string | number;
867
- readonly options: readonly string[];
868
- readonly quantity_rule: {
869
- readonly min: number | null;
870
- readonly max: number | null;
871
- readonly increment: number;
872
- };
873
- }[];
874
- readonly tags: readonly string[];
875
- readonly available: boolean;
876
- };
877
789
  readonly properties_array: readonly {
878
790
  readonly key: string;
879
791
  readonly value: string | number | boolean | null;
@@ -933,9 +845,9 @@ export declare const update: (input?: ({
933
845
  readonly attributes?: {
934
846
  readonly [x: string]: string | number | boolean | null;
935
847
  } | undefined;
936
- readonly updates?: readonly number[] | {
848
+ readonly updates?: {
937
849
  readonly [x: string]: number;
938
- } | undefined;
850
+ } | readonly number[] | undefined;
939
851
  readonly discount?: readonly string[] | undefined;
940
852
  } & {
941
853
  readonly sections?: string | undefined;
@@ -966,12 +878,6 @@ export declare const update: (input?: ({
966
878
  readonly url: string;
967
879
  readonly price: number;
968
880
  readonly id: string | number;
969
- readonly quantity_rule?: {
970
- readonly min: number;
971
- readonly max: number | null;
972
- readonly increment: number;
973
- } | undefined;
974
- readonly handle: string;
975
881
  readonly properties: {
976
882
  readonly [x: string]: string | number | boolean | null;
977
883
  };
@@ -1003,6 +909,7 @@ export declare const update: (input?: ({
1003
909
  readonly width: number;
1004
910
  } | undefined;
1005
911
  readonly image: string;
912
+ readonly handle: string;
1006
913
  readonly requires_shipping: boolean;
1007
914
  readonly product_type: string | null;
1008
915
  readonly product_title: string;
@@ -1027,6 +934,11 @@ export declare const update: (input?: ({
1027
934
  };
1028
935
  }[];
1029
936
  readonly line_level_total_discount: number;
937
+ readonly quantity_rule?: {
938
+ readonly min: number;
939
+ readonly max: number | null;
940
+ readonly increment: number;
941
+ } | undefined;
1030
942
  readonly has_components: boolean;
1031
943
  readonly unit_price?: number | undefined;
1032
944
  readonly unit_price_measurement?: {
@@ -1064,28 +976,6 @@ export declare const update: (input?: ({
1064
976
  };
1065
977
  } | null;
1066
978
  } & {
1067
- readonly product: {
1068
- readonly title: string;
1069
- readonly id: string | number;
1070
- readonly options: readonly {
1071
- readonly values: readonly string[];
1072
- readonly name: string;
1073
- readonly position: number;
1074
- }[];
1075
- readonly handle: string;
1076
- readonly variants: readonly {
1077
- readonly title: string;
1078
- readonly id: string | number;
1079
- readonly options: readonly string[];
1080
- readonly quantity_rule: {
1081
- readonly min: number | null;
1082
- readonly max: number | null;
1083
- readonly increment: number;
1084
- };
1085
- }[];
1086
- readonly tags: readonly string[];
1087
- readonly available: boolean;
1088
- };
1089
979
  readonly properties_array: readonly {
1090
980
  readonly key: string;
1091
981
  readonly value: string | number | boolean | null;
@@ -1,11 +1,8 @@
1
1
  import * as Schema from 'effect/Schema';
2
2
  import * as Array from 'effect/Array';
3
3
  import * as Record from 'effect/Record';
4
- import * as Effect from 'effect/Effect';
5
- import * as ParseResult from 'effect/ParseResult';
6
4
  import { Resource, Ajax } from '@brytdesigns/shopify-utils/effect';
7
5
  import { pipe, identity } from 'effect';
8
- import * as Cache from './cache';
9
6
 
10
7
  const BaseAttributeValue = Schema.Union(
11
8
  Schema.Null,
@@ -190,60 +187,9 @@ const UnitPriceMeasurement = Schema.Struct({
190
187
  reference_unit: Schema.String,
191
188
  reference_value: Schema.Number
192
189
  });
193
- const VariantQuantityRule = Schema.Struct({
194
- min: Schema.NullOr(Schema.Number),
195
- max: Schema.NullOr(Schema.Number),
196
- increment: Schema.Number
197
- });
198
190
  const VariantOptions = Schema.optionalWith(Schema.Array(Schema.String), {
199
191
  default: () => []
200
192
  });
201
- const BaseVariant = Schema.Struct({
202
- id: Resource.ID,
203
- title: Schema.String,
204
- options: VariantOptions,
205
- quantity_rule: VariantQuantityRule
206
- });
207
- const ProductOption = Schema.Struct({
208
- name: Schema.String,
209
- position: Schema.Number,
210
- values: Schema.Array(Schema.String)
211
- });
212
- const BaseProduct = Schema.Struct({
213
- id: Resource.ID,
214
- title: Schema.String,
215
- handle: Schema.String,
216
- variants: Schema.Array(BaseVariant),
217
- options: Schema.Array(ProductOption),
218
- tags: Schema.Array(Schema.String),
219
- available: Schema.Boolean
220
- });
221
- const get = (url) => Effect.tryPromise({
222
- try: () => fetch(url).then((res) => {
223
- if (res.ok) {
224
- return res.json();
225
- }
226
- throw new Error(String(res.status));
227
- }),
228
- catch: (e) => new Error(String(e))
229
- });
230
- const cachedGet = (url) => Effect.gen(function* () {
231
- const cacheKey = `shopify-ajax-cart-api:${url}`;
232
- const cachedValue = yield* Cache.get(cacheKey);
233
- if (cachedValue) return cachedValue;
234
- const value = yield* get(url);
235
- yield* Cache.set(cacheKey, value, "60 minutes");
236
- return value;
237
- });
238
- const Product = Schema.transformOrFail(Schema.String, BaseProduct, {
239
- decode(handle, _, ast) {
240
- return Effect.mapBoth(cachedGet(`/products/${handle}.js`), {
241
- onFailure: (e) => new ParseResult.Type(ast, handle, e.message),
242
- onSuccess: (product) => product
243
- });
244
- },
245
- encode: (product) => ParseResult.succeed(product.handle)
246
- });
247
193
  const BaseLineItem = Schema.Struct({
248
194
  id: Resource.ID,
249
195
  properties: BaseAttributes,
@@ -294,7 +240,6 @@ const LineItem = Schema.transform(
294
240
  Schema.extend(
295
241
  BaseLineItem,
296
242
  Schema.Struct({
297
- product: Product,
298
243
  properties_array: Schema.optionalWith(BaseAttributesArray, {
299
244
  default: () => []
300
245
  }),
@@ -330,8 +275,7 @@ const LineItem = Schema.transform(
330
275
  Record.remove("private_properties"),
331
276
  Record.remove("private_properties_array"),
332
277
  Record.remove("public_properties"),
333
- Record.remove("public_properties_array"),
334
- Record.remove("product")
278
+ Record.remove("public_properties_array")
335
279
  )
336
280
  }
337
281
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/effect/schema.ts"],"names":[],"mappings":"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","file":"schema.js","sourcesContent":["import * as Schema from \"effect/Schema\";\nimport * as Array from \"effect/Array\";\nimport * as Record from \"effect/Record\";\nimport * as Effect from \"effect/Effect\";\nimport * as ParseResult from \"effect/ParseResult\";\nimport { Resource, Ajax } from \"@brytdesigns/shopify-utils/effect\";\nimport { pipe, identity } from \"effect\";\nimport * as Cache from \"./cache\";\n\ntype BaseAttributeValue = Schema.Schema.Type<typeof BaseAttributeValue>;\nconst BaseAttributeValue = Schema.Union(\n Schema.Null,\n Schema.String,\n Schema.Boolean,\n Schema.Number,\n);\n\nconst AttributesArray = Schema.Array(\n Schema.Struct({ key: Schema.String, value: BaseAttributeValue }),\n);\n\nexport type BaseAttributes = Schema.Schema.Type<typeof BaseAttributes>;\nexport const BaseAttributes = Schema.Record({\n key: Schema.String,\n value: BaseAttributeValue,\n});\n\nexport const BaseAttributesArray = Schema.transform(\n BaseAttributes,\n AttributesArray,\n {\n decode: (record) =>\n Record.toEntries(record).map(([key, value]) => ({ key, value })),\n encode: (array) =>\n Record.fromEntries(\n pipe(\n array,\n Array.map(({ key, value }) => [key, value]),\n ),\n ),\n },\n);\n\nconst BasePrivateAttributes = Schema.transform(BaseAttributes, BaseAttributes, {\n decode: Record.filter((value, key) => key.startsWith(\"_\")),\n encode: identity,\n});\n\nconst BasePublicAttributes = Schema.transform(BaseAttributes, BaseAttributes, {\n decode: Record.filter((value, key) => !key.startsWith(\"_\")),\n encode: identity,\n});\n\nconst BasePrivateAttributesArray = Schema.transform(\n BasePrivateAttributes,\n AttributesArray,\n {\n decode: (record) =>\n Record.toEntries(record).map(([key, value]) => ({ key, value })),\n encode: (array) =>\n Record.fromEntries(\n pipe(\n array,\n Array.map(({ key, value }) => [key, value]),\n ),\n ),\n },\n);\n\nconst BasePublicAttributesArray = Schema.transform(\n BasePublicAttributes,\n AttributesArray,\n {\n decode: (record) =>\n Record.toEntries(record).map(([key, value]) => ({ key, value })),\n encode: (array) =>\n Record.fromEntries(\n pipe(\n array,\n Array.map(({ key, value }) => [key, value]),\n ),\n ),\n },\n);\n\nexport const Attributes = Schema.transform(\n BaseAttributes,\n Schema.Struct({\n private: Schema.Struct({\n array: BasePrivateAttributesArray,\n record: BasePrivateAttributes,\n }),\n public: Schema.Struct({\n array: BasePublicAttributesArray,\n record: BasePublicAttributes,\n }),\n }),\n {\n decode: (attributes) => ({\n private: {\n array: attributes,\n record: attributes,\n },\n public: {\n array: attributes,\n record: attributes,\n },\n }),\n encode: (attributes) => ({\n ...attributes.private.record,\n ...attributes.public.record,\n }),\n },\n);\n\nexport type DiscountApplication = Schema.Schema.Type<\n typeof DiscountApplication\n>;\n\nexport const DiscountApplication = Schema.Struct({\n target_selection: Schema.Literal(\"all\", \"entitled\", \"explicit\"),\n target_type: Schema.Literal(\"line_item\", \"shipping_line\"),\n title: Schema.NonEmptyString,\n total_allocated_amount: Schema.Number,\n type: Schema.Literal(\"\", \"automatic\", \"discount_code\", \"manual\", \"script\"),\n value: Schema.Union(Schema.Number, Schema.NumberFromString),\n value_type: Schema.Literal(\"fixed_amount\", \"percentage\"),\n description: Schema.NullOr(Schema.String),\n});\n\nexport const Discount = Schema.Struct({\n amount: Schema.Number,\n title: Schema.String,\n});\n\nexport type CurrencyCode = Schema.Schema.Type<typeof CurrencyCode>;\nexport const CurrencyCode = Schema.String;\n\nexport type Image = Schema.Schema.Type<typeof Image>;\nexport const Image = Schema.Struct({\n aspect_ratio: Schema.Number,\n alt: Schema.String,\n height: Schema.Number,\n url: Schema.String,\n width: Schema.Number,\n});\n\nexport type OptionWithValue = Schema.Schema.Type<typeof OptionWithValue>;\nexport const OptionWithValue = Schema.Struct({\n name: Schema.String,\n value: Schema.String,\n});\n\nexport type QuantityRule = Schema.Schema.Type<typeof QuantityRule>;\nexport const QuantityRule = Schema.Struct({\n min: Schema.Number,\n max: Schema.NullOr(Schema.Number),\n increment: Schema.Number,\n});\n\nexport type SellingPlanAllocationPriceAdjustment = Schema.Schema.Type<\n typeof SellingPlanAllocationPriceAdjustment\n>;\nexport const SellingPlanAllocationPriceAdjustment = Schema.Struct({\n position: Schema.Number,\n price: Schema.Number,\n});\n\nexport const SellingPlanPriceAdjustment = Schema.Struct({\n order_count: Schema.NullOr(Schema.Number),\n position: Schema.Number,\n value: Schema.Union(Schema.Number, Schema.String),\n value_type: Schema.Literal(\"percentage\", \"fixed_amount\", \"price\"),\n});\n\nexport type SellingPlanOption = Schema.Schema.Type<typeof SellingPlanOption>;\nexport const SellingPlanOption = Schema.Struct({\n name: Schema.String,\n position: Schema.Number,\n value: Schema.String,\n});\n\nexport type SellingPlan = Schema.Schema.Type<typeof SellingPlan>;\nexport const SellingPlan = Schema.Struct({\n id: Resource.ID,\n name: Schema.String,\n description: Schema.NullOr(Schema.String),\n options: Schema.Array(SellingPlanOption),\n recurring_deliveries: Schema.optionalWith(Schema.Boolean, {\n default: () => false,\n }),\n fixed_selling_plan: Schema.optionalWith(Schema.Boolean, {\n default: () => false,\n }),\n price_adjustments: Schema.Array(SellingPlanPriceAdjustment),\n});\n\nexport type SellingPlanAllocation = Schema.Schema.Type<\n typeof SellingPlanAllocation\n>;\nexport const SellingPlanAllocation = Schema.Struct({\n price_adjustments: Schema.Array(SellingPlanAllocationPriceAdjustment),\n price: Schema.Number,\n compare_at_price: Schema.Number,\n per_delivery_price: Schema.Number,\n selling_plan: SellingPlan,\n});\n\nexport type LineLevelDiscountAllocation = Schema.Schema.Type<\n typeof LineLevelDiscountAllocation\n>;\nexport const LineLevelDiscountAllocation = Schema.Struct({\n amount: Schema.Number,\n discount_application: DiscountApplication,\n});\n\nconst CartLevelDiscountApplicationUpdate = Schema.transform(\n Schema.Struct({\n discount_application: DiscountApplication,\n }),\n DiscountApplication,\n {\n decode: (application) => application.discount_application,\n encode: (discountApplication) => ({\n discount_application: discountApplication,\n }),\n strict: false,\n },\n);\n\nexport const CartLevelDiscountApplication = Schema.Union(\n DiscountApplication,\n CartLevelDiscountApplicationUpdate,\n);\n\nexport type UnitPriceMeasurement = Schema.Schema.Type<\n typeof UnitPriceMeasurement\n>;\nexport const UnitPriceMeasurement = Schema.Struct({\n measured_type: Schema.Literal(\"volume\", \"weight\", \"dimension\"),\n quantity_unit: Schema.String,\n quantity_value: Schema.Number,\n reference_unit: Schema.String,\n reference_value: Schema.Number,\n});\n\nconst VariantQuantityRule = Schema.Struct({\n min: Schema.NullOr(Schema.Number),\n max: Schema.NullOr(Schema.Number),\n increment: Schema.Number,\n});\n\nconst VariantOptions = Schema.optionalWith(Schema.Array(Schema.String), {\n default: () => [],\n});\n\nconst BaseVariant = Schema.Struct({\n id: Resource.ID,\n title: Schema.String,\n options: VariantOptions,\n quantity_rule: VariantQuantityRule,\n});\n\nconst ProductOption = Schema.Struct({\n name: Schema.String,\n position: Schema.Number,\n values: Schema.Array(Schema.String),\n});\n\ntype BaseProduct = Schema.Schema.Type<typeof BaseProduct>;\nconst BaseProduct = Schema.Struct({\n id: Resource.ID,\n title: Schema.String,\n handle: Schema.String,\n variants: Schema.Array(BaseVariant),\n options: Schema.Array(ProductOption),\n tags: Schema.Array(Schema.String),\n available: Schema.Boolean,\n});\n\nconst get = (url: string): Effect.Effect<unknown, Error> =>\n Effect.tryPromise({\n try: () =>\n fetch(url).then((res) => {\n if (res.ok) {\n return res.json() as Promise<unknown>;\n }\n throw new Error(String(res.status));\n }),\n catch: (e) => new Error(String(e)),\n });\n\nconst cachedGet = (url: string) =>\n Effect.gen(function* () {\n const cacheKey = `shopify-ajax-cart-api:${url}`;\n const cachedValue = yield* Cache.get(cacheKey);\n if (cachedValue) return cachedValue;\n const value = yield* get(url);\n yield* Cache.set(cacheKey, value, \"60 minutes\");\n return value;\n });\n\nconst Product = Schema.transformOrFail(Schema.String, BaseProduct, {\n decode(handle, _, ast) {\n return Effect.mapBoth(cachedGet(`/products/${handle}.js`), {\n onFailure: (e) => new ParseResult.Type(ast, handle, e.message),\n onSuccess: (product) => product as BaseProduct,\n });\n },\n encode: (product) => ParseResult.succeed(product.handle),\n});\n\nexport type BaseLineItem = Schema.Schema.Type<typeof BaseLineItem>;\nconst BaseLineItem = Schema.Struct({\n id: Resource.ID,\n properties: BaseAttributes,\n quantity: Schema.Number,\n variant_id: Resource.ID,\n key: Schema.String,\n title: Schema.String,\n price: Schema.Number,\n original_price: Schema.Number,\n discounted_price: Schema.Number,\n line_price: Schema.Number,\n original_line_price: Schema.Number,\n total_discount: Schema.Number,\n discounts: Schema.optionalWith(Schema.Array(Discount), { default: () => [] }),\n sku: Schema.NullOr(Schema.String),\n grams: Schema.Number,\n vendor: Schema.String,\n taxable: Schema.Boolean,\n product_id: Resource.ID,\n product_has_only_default_variant: Schema.Boolean,\n gift_card: Schema.Boolean,\n final_line_price: Schema.Number,\n final_price: Schema.Number,\n url: Schema.String,\n featured_image: Schema.optional(Image),\n image: Schema.String,\n handle: Schema.String,\n requires_shipping: Schema.Boolean,\n product_type: Schema.NullOr(Schema.String),\n product_title: Schema.String,\n product_description: Schema.NullOr(Schema.String),\n variant_title: Schema.NullOr(Schema.String),\n variant_options: VariantOptions,\n options_with_values: Schema.Array(OptionWithValue),\n line_level_discount_allocations: Schema.Array(LineLevelDiscountAllocation),\n line_level_total_discount: Schema.Number,\n quantity_rule: Schema.optional(QuantityRule),\n has_components: Schema.optionalWith(Schema.Boolean, { default: () => false }),\n unit_price: Schema.optional(Schema.Number),\n unit_price_measurement: Schema.optional(UnitPriceMeasurement),\n selling_plan_allocation: Schema.optionalWith(\n Schema.NullOr(SellingPlanAllocation),\n { default: () => null },\n ),\n});\n\nexport type LineItem = Schema.Schema.Type<typeof LineItem>;\nexport const LineItem = Schema.transform(\n BaseLineItem,\n Schema.extend(\n BaseLineItem,\n Schema.Struct({\n product: Product,\n properties_array: Schema.optionalWith(BaseAttributesArray, {\n default: () => [],\n }),\n private_properties: Schema.optionalWith(BasePrivateAttributes, {\n default: () => ({}),\n }),\n private_properties_array: Schema.optionalWith(\n BasePrivateAttributesArray,\n {\n default: () => [],\n },\n ),\n public_properties: Schema.optionalWith(BasePublicAttributes, {\n default: () => ({}),\n }),\n public_properties_array: Schema.optionalWith(BasePublicAttributesArray, {\n default: () => [],\n }),\n }),\n ),\n {\n decode: (lineItem) => ({\n ...lineItem,\n product: lineItem.handle,\n properties_array: lineItem.properties,\n private_properties: lineItem.properties,\n private_properties_array: lineItem.properties,\n public_properties: lineItem.properties,\n public_properties_array: lineItem.properties,\n }),\n encode: (lineItem) =>\n pipe(\n Record.remove(\"properties_array\")(lineItem),\n Record.remove(\"private_properties\"),\n Record.remove(\"private_properties_array\"),\n Record.remove(\"public_properties\"),\n Record.remove(\"public_properties_array\"),\n Record.remove(\"product\"),\n ) as BaseLineItem,\n },\n);\n\ntype BaseCart = Schema.Schema.Type<typeof BaseCart>;\nexport const BaseCart = Schema.Struct({\n token: Schema.String,\n note: Schema.NullOr(Schema.String),\n attributes: BaseAttributes,\n discounts: Schema.optionalWith(Schema.Array(Discount), { default: () => [] }),\n discount_codes: Schema.optionalWith(\n Schema.Array(\n Schema.Struct({ code: Schema.String, applicable: Schema.Boolean }),\n ),\n { default: () => [] },\n ),\n original_total_price: Schema.Number,\n total_price: Schema.Number,\n total_discount: Schema.Number,\n total_weight: Schema.Number,\n item_count: Schema.Number,\n items: Schema.Array(LineItem).annotations({ concurrency: \"unbounded\" }),\n requires_shipping: Schema.Boolean,\n currency: CurrencyCode,\n items_subtotal_price: Schema.Number,\n cart_level_discount_applications: Schema.Array(CartLevelDiscountApplication),\n});\n\ntype Cart = Schema.Schema.Type<typeof Cart>;\nexport const Cart = Schema.extend(\n BaseCart,\n Schema.Struct({\n attributes_array: Schema.optionalWith(BaseAttributesArray, {\n default: () => [],\n }),\n private_attributes: Schema.optionalWith(BasePrivateAttributes, {\n default: () => ({}),\n }),\n private_attributes_array: Schema.optionalWith(BasePrivateAttributesArray, {\n default: () => [],\n }),\n public_attributes: Schema.optionalWith(BasePublicAttributes, {\n default: () => ({}),\n }),\n public_attributes_array: Schema.optionalWith(BasePublicAttributesArray, {\n default: () => [],\n }),\n }),\n);\n\nexport const makeCartTransformSchema = <\n A extends Schema.Schema.Type<typeof BaseCart>,\n I,\n R,\n>(\n schema: Schema.Schema<A, I, R>,\n) =>\n Schema.transform(schema, Cart, {\n decode: (cart) => ({\n ...cart,\n attributes_array: cart.attributes,\n private_attributes: cart.attributes,\n private_attributes_array: cart.attributes,\n public_attributes: cart.attributes,\n public_attributes_array: cart.attributes,\n }),\n encode: (cart) =>\n pipe(\n Record.remove(\"attributes_array\")(cart),\n Record.remove(\"private_attributes\"),\n Record.remove(\"private_attributes_array\"),\n Record.remove(\"public_attributes\"),\n Record.remove(\"public_attributes_array\"),\n ) as Schema.Schema.Type<Schema.Schema<A, I, R>>,\n });\n\nexport const CartOutput = makeCartTransformSchema(BaseCart);\n\nexport const makeCartSchema = (sections?: string) => {\n if (sections) {\n return makeCartTransformSchema(\n Schema.extend(\n BaseCart,\n Schema.Struct({\n sections: Schema.optionalWith(\n Schema.NullOr(Ajax.Sections.makeResponseSchema(sections)),\n { default: () => null },\n ),\n }),\n ),\n );\n }\n return makeCartTransformSchema(\n Schema.extend(\n BaseCart,\n Schema.Struct({\n sections: Schema.optionalWith(Schema.Null, { default: () => null }),\n }),\n ),\n );\n};\n\nexport type AddItemInput = Schema.Schema.Encoded<typeof AddItemInput>;\nexport const AddItemInput = Schema.Struct({\n id: Resource.ID,\n quantity: Schema.optionalWith(Schema.Number, { default: () => 1 }),\n properties: Schema.optionalWith(BaseAttributes, { default: () => ({}) }),\n selling_plan: Schema.optional(Resource.ID),\n});\n\nexport const BaseInput = Schema.extend(Ajax.Sections.Input);\n\nexport type CartAddInput = Schema.Schema.Encoded<typeof CartAddInput>;\nexport const CartAddInput = Schema.Struct({\n items: Schema.Array(AddItemInput),\n}).pipe(BaseInput);\n\nexport type CartAddOutput = Schema.Schema.Type<typeof CartAddOutput>;\nexport const CartAddOutput = Schema.Struct({\n items: Schema.Array(LineItem),\n});\n\nexport type UpdateItemRecordInput = Schema.Schema.Encoded<\n typeof UpdateItemRecordInput\n>;\nexport const UpdateItemRecordInput = Schema.Record({\n key: Schema.String,\n value: Schema.Number,\n});\n\nconst DiscountCodeInput = Schema.Array(Schema.String);\nconst DiscountCodeTransformed = Schema.String;\n\nexport type CartUpdateInput = Schema.Schema.Encoded<typeof CartUpdateInput>;\nexport const CartUpdateInput = Schema.Struct({\n updates: Schema.optional(\n Schema.Union(UpdateItemRecordInput, Schema.Array(Schema.Number)),\n ),\n note: Schema.optional(Schema.NullOr(Schema.String)),\n attributes: Schema.optional(BaseAttributes),\n discount: Schema.optional(\n Schema.transform(DiscountCodeInput, DiscountCodeTransformed, {\n decode: (input) => input.join(\",\"),\n encode: (input) => input.split(\",\"),\n }),\n ),\n}).pipe(BaseInput);\n\nexport type ItemAddedChangelog = Schema.Schema.Type<typeof ItemAddedChangelog>;\nexport const ItemAddedChangelog = Schema.Struct({\n variant_id: Schema.Number,\n quantity: Schema.Number,\n});\n\nexport type CartUpdateOutput = Schema.Schema.Type<typeof CartUpdateOutput>;\nexport const CartUpdateOutput = makeCartTransformSchema(\n Schema.extend(\n BaseCart,\n Schema.Struct({\n items_changelog: Schema.Struct({\n added: Schema.Array(ItemAddedChangelog),\n }),\n }),\n ),\n);\n\nexport const CartChangeItemOptionalInput = Schema.Struct({\n quantity: Schema.optional(Schema.Number),\n properties: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.NullOr(Schema.String),\n }),\n ),\n selling_plan: Schema.optional(Schema.NullOr(Resource.ID)),\n}).pipe(BaseInput);\n\nexport const LineItemChange = Schema.Struct({\n product_id: Schema.Number,\n variant_id: Schema.Number,\n id: Schema.String,\n image: Schema.String,\n price: Schema.String,\n presentment_price: Schema.Number,\n quantity: Schema.Number,\n title: Schema.String,\n product_title: Schema.String,\n variant_title: Schema.String,\n vendor: Schema.String,\n product_type: Schema.String,\n sku: Schema.String,\n url: Schema.String,\n untranslated_product_title: Schema.String,\n untranslated_variant_title: Schema.String,\n view_key: Schema.String,\n});\n\nexport type CartChangeInput = Schema.Schema.Encoded<typeof CartChangeInput>;\nexport const CartChangeInput = Schema.Union(\n Schema.extend(CartChangeItemOptionalInput)(\n Schema.Struct({\n id: Schema.String,\n }),\n ),\n Schema.extend(CartChangeItemOptionalInput)(\n Schema.Struct({\n line: Schema.Number,\n }),\n ),\n);\n\nexport type CartChangeOutput = Schema.Schema.Type<typeof CartChangeOutput>;\nexport const CartChangeOutput = makeCartTransformSchema(\n Schema.extend(\n BaseCart,\n Schema.Struct({\n items_added: Schema.Array(LineItemChange),\n items_removed: Schema.Array(LineItemChange),\n }),\n ),\n);\n\nexport type CartClearInput = Schema.Schema.Encoded<typeof CartClearInput>;\nexport const CartClearInput = Ajax.Sections.Input;\n\nexport type CartGetInput = Schema.Schema.Encoded<typeof CartClearInput>;\nexport const CartGetInput = Ajax.Sections.Input;\n\nexport type CartUpdateDiscountsInput = Schema.Schema.Encoded<\n typeof CartUpdateDiscountsInput\n>;\nexport const CartUpdateDiscountsInput = Schema.mutable(\n Schema.Array(Schema.NonEmptyString),\n);\n"]}
1
+ {"version":3,"sources":["../../src/effect/schema.ts"],"names":[],"mappings":"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","file":"schema.js","sourcesContent":["import * as Schema from \"effect/Schema\";\nimport * as Array from \"effect/Array\";\nimport * as Record from \"effect/Record\";\nimport { Resource, Ajax } from \"@brytdesigns/shopify-utils/effect\";\nimport { pipe, identity } from \"effect\";\n\ntype BaseAttributeValue = Schema.Schema.Type<typeof BaseAttributeValue>;\nconst BaseAttributeValue = Schema.Union(\n Schema.Null,\n Schema.String,\n Schema.Boolean,\n Schema.Number,\n);\n\nconst AttributesArray = Schema.Array(\n Schema.Struct({ key: Schema.String, value: BaseAttributeValue }),\n);\n\nexport type BaseAttributes = Schema.Schema.Type<typeof BaseAttributes>;\nexport const BaseAttributes = Schema.Record({\n key: Schema.String,\n value: BaseAttributeValue,\n});\n\nexport const BaseAttributesArray = Schema.transform(\n BaseAttributes,\n AttributesArray,\n {\n decode: (record) =>\n Record.toEntries(record).map(([key, value]) => ({ key, value })),\n encode: (array) =>\n Record.fromEntries(\n pipe(\n array,\n Array.map(({ key, value }) => [key, value]),\n ),\n ),\n },\n);\n\nconst BasePrivateAttributes = Schema.transform(BaseAttributes, BaseAttributes, {\n decode: Record.filter((value, key) => key.startsWith(\"_\")),\n encode: identity,\n});\n\nconst BasePublicAttributes = Schema.transform(BaseAttributes, BaseAttributes, {\n decode: Record.filter((value, key) => !key.startsWith(\"_\")),\n encode: identity,\n});\n\nconst BasePrivateAttributesArray = Schema.transform(\n BasePrivateAttributes,\n AttributesArray,\n {\n decode: (record) =>\n Record.toEntries(record).map(([key, value]) => ({ key, value })),\n encode: (array) =>\n Record.fromEntries(\n pipe(\n array,\n Array.map(({ key, value }) => [key, value]),\n ),\n ),\n },\n);\n\nconst BasePublicAttributesArray = Schema.transform(\n BasePublicAttributes,\n AttributesArray,\n {\n decode: (record) =>\n Record.toEntries(record).map(([key, value]) => ({ key, value })),\n encode: (array) =>\n Record.fromEntries(\n pipe(\n array,\n Array.map(({ key, value }) => [key, value]),\n ),\n ),\n },\n);\n\nexport const Attributes = Schema.transform(\n BaseAttributes,\n Schema.Struct({\n private: Schema.Struct({\n array: BasePrivateAttributesArray,\n record: BasePrivateAttributes,\n }),\n public: Schema.Struct({\n array: BasePublicAttributesArray,\n record: BasePublicAttributes,\n }),\n }),\n {\n decode: (attributes) => ({\n private: {\n array: attributes,\n record: attributes,\n },\n public: {\n array: attributes,\n record: attributes,\n },\n }),\n encode: (attributes) => ({\n ...attributes.private.record,\n ...attributes.public.record,\n }),\n },\n);\n\nexport type DiscountApplication = Schema.Schema.Type<\n typeof DiscountApplication\n>;\n\nexport const DiscountApplication = Schema.Struct({\n target_selection: Schema.Literal(\"all\", \"entitled\", \"explicit\"),\n target_type: Schema.Literal(\"line_item\", \"shipping_line\"),\n title: Schema.NonEmptyString,\n total_allocated_amount: Schema.Number,\n type: Schema.Literal(\"\", \"automatic\", \"discount_code\", \"manual\", \"script\"),\n value: Schema.Union(Schema.Number, Schema.NumberFromString),\n value_type: Schema.Literal(\"fixed_amount\", \"percentage\"),\n description: Schema.NullOr(Schema.String),\n});\n\nexport const Discount = Schema.Struct({\n amount: Schema.Number,\n title: Schema.String,\n});\n\nexport type CurrencyCode = Schema.Schema.Type<typeof CurrencyCode>;\nexport const CurrencyCode = Schema.String;\n\nexport type Image = Schema.Schema.Type<typeof Image>;\nexport const Image = Schema.Struct({\n aspect_ratio: Schema.Number,\n alt: Schema.String,\n height: Schema.Number,\n url: Schema.String,\n width: Schema.Number,\n});\n\nexport type OptionWithValue = Schema.Schema.Type<typeof OptionWithValue>;\nexport const OptionWithValue = Schema.Struct({\n name: Schema.String,\n value: Schema.String,\n});\n\nexport type QuantityRule = Schema.Schema.Type<typeof QuantityRule>;\nexport const QuantityRule = Schema.Struct({\n min: Schema.Number,\n max: Schema.NullOr(Schema.Number),\n increment: Schema.Number,\n});\n\nexport type SellingPlanAllocationPriceAdjustment = Schema.Schema.Type<\n typeof SellingPlanAllocationPriceAdjustment\n>;\nexport const SellingPlanAllocationPriceAdjustment = Schema.Struct({\n position: Schema.Number,\n price: Schema.Number,\n});\n\nexport const SellingPlanPriceAdjustment = Schema.Struct({\n order_count: Schema.NullOr(Schema.Number),\n position: Schema.Number,\n value: Schema.Union(Schema.Number, Schema.String),\n value_type: Schema.Literal(\"percentage\", \"fixed_amount\", \"price\"),\n});\n\nexport type SellingPlanOption = Schema.Schema.Type<typeof SellingPlanOption>;\nexport const SellingPlanOption = Schema.Struct({\n name: Schema.String,\n position: Schema.Number,\n value: Schema.String,\n});\n\nexport type SellingPlan = Schema.Schema.Type<typeof SellingPlan>;\nexport const SellingPlan = Schema.Struct({\n id: Resource.ID,\n name: Schema.String,\n description: Schema.NullOr(Schema.String),\n options: Schema.Array(SellingPlanOption),\n recurring_deliveries: Schema.optionalWith(Schema.Boolean, {\n default: () => false,\n }),\n fixed_selling_plan: Schema.optionalWith(Schema.Boolean, {\n default: () => false,\n }),\n price_adjustments: Schema.Array(SellingPlanPriceAdjustment),\n});\n\nexport type SellingPlanAllocation = Schema.Schema.Type<\n typeof SellingPlanAllocation\n>;\nexport const SellingPlanAllocation = Schema.Struct({\n price_adjustments: Schema.Array(SellingPlanAllocationPriceAdjustment),\n price: Schema.Number,\n compare_at_price: Schema.Number,\n per_delivery_price: Schema.Number,\n selling_plan: SellingPlan,\n});\n\nexport type LineLevelDiscountAllocation = Schema.Schema.Type<\n typeof LineLevelDiscountAllocation\n>;\nexport const LineLevelDiscountAllocation = Schema.Struct({\n amount: Schema.Number,\n discount_application: DiscountApplication,\n});\n\nconst CartLevelDiscountApplicationUpdate = Schema.transform(\n Schema.Struct({\n discount_application: DiscountApplication,\n }),\n DiscountApplication,\n {\n decode: (application) => application.discount_application,\n encode: (discountApplication) => ({\n discount_application: discountApplication,\n }),\n strict: false,\n },\n);\n\nexport const CartLevelDiscountApplication = Schema.Union(\n DiscountApplication,\n CartLevelDiscountApplicationUpdate,\n);\n\nexport type UnitPriceMeasurement = Schema.Schema.Type<\n typeof UnitPriceMeasurement\n>;\nexport const UnitPriceMeasurement = Schema.Struct({\n measured_type: Schema.Literal(\"volume\", \"weight\", \"dimension\"),\n quantity_unit: Schema.String,\n quantity_value: Schema.Number,\n reference_unit: Schema.String,\n reference_value: Schema.Number,\n});\n\nconst VariantOptions = Schema.optionalWith(Schema.Array(Schema.String), {\n default: () => [],\n});\n\nexport type BaseLineItem = Schema.Schema.Type<typeof BaseLineItem>;\nconst BaseLineItem = Schema.Struct({\n id: Resource.ID,\n properties: BaseAttributes,\n quantity: Schema.Number,\n variant_id: Resource.ID,\n key: Schema.String,\n title: Schema.String,\n price: Schema.Number,\n original_price: Schema.Number,\n discounted_price: Schema.Number,\n line_price: Schema.Number,\n original_line_price: Schema.Number,\n total_discount: Schema.Number,\n discounts: Schema.optionalWith(Schema.Array(Discount), { default: () => [] }),\n sku: Schema.NullOr(Schema.String),\n grams: Schema.Number,\n vendor: Schema.String,\n taxable: Schema.Boolean,\n product_id: Resource.ID,\n product_has_only_default_variant: Schema.Boolean,\n gift_card: Schema.Boolean,\n final_line_price: Schema.Number,\n final_price: Schema.Number,\n url: Schema.String,\n featured_image: Schema.optional(Image),\n image: Schema.String,\n handle: Schema.String,\n requires_shipping: Schema.Boolean,\n product_type: Schema.NullOr(Schema.String),\n product_title: Schema.String,\n product_description: Schema.NullOr(Schema.String),\n variant_title: Schema.NullOr(Schema.String),\n variant_options: VariantOptions,\n options_with_values: Schema.Array(OptionWithValue),\n line_level_discount_allocations: Schema.Array(LineLevelDiscountAllocation),\n line_level_total_discount: Schema.Number,\n quantity_rule: Schema.optional(QuantityRule),\n has_components: Schema.optionalWith(Schema.Boolean, { default: () => false }),\n unit_price: Schema.optional(Schema.Number),\n unit_price_measurement: Schema.optional(UnitPriceMeasurement),\n selling_plan_allocation: Schema.optionalWith(\n Schema.NullOr(SellingPlanAllocation),\n { default: () => null },\n ),\n});\n\nexport type LineItem = Schema.Schema.Type<typeof LineItem>;\nexport const LineItem = Schema.transform(\n BaseLineItem,\n Schema.extend(\n BaseLineItem,\n Schema.Struct({\n properties_array: Schema.optionalWith(BaseAttributesArray, {\n default: () => [],\n }),\n private_properties: Schema.optionalWith(BasePrivateAttributes, {\n default: () => ({}),\n }),\n private_properties_array: Schema.optionalWith(\n BasePrivateAttributesArray,\n {\n default: () => [],\n },\n ),\n public_properties: Schema.optionalWith(BasePublicAttributes, {\n default: () => ({}),\n }),\n public_properties_array: Schema.optionalWith(BasePublicAttributesArray, {\n default: () => [],\n }),\n }),\n ),\n {\n decode: (lineItem) => ({\n ...lineItem,\n product: lineItem.handle,\n properties_array: lineItem.properties,\n private_properties: lineItem.properties,\n private_properties_array: lineItem.properties,\n public_properties: lineItem.properties,\n public_properties_array: lineItem.properties,\n }),\n encode: (lineItem) =>\n pipe(\n Record.remove(\"properties_array\")(lineItem),\n Record.remove(\"private_properties\"),\n Record.remove(\"private_properties_array\"),\n Record.remove(\"public_properties\"),\n Record.remove(\"public_properties_array\"),\n ) as BaseLineItem,\n },\n);\n\ntype BaseCart = Schema.Schema.Type<typeof BaseCart>;\nexport const BaseCart = Schema.Struct({\n token: Schema.String,\n note: Schema.NullOr(Schema.String),\n attributes: BaseAttributes,\n discounts: Schema.optionalWith(Schema.Array(Discount), { default: () => [] }),\n discount_codes: Schema.optionalWith(\n Schema.Array(\n Schema.Struct({ code: Schema.String, applicable: Schema.Boolean }),\n ),\n { default: () => [] },\n ),\n original_total_price: Schema.Number,\n total_price: Schema.Number,\n total_discount: Schema.Number,\n total_weight: Schema.Number,\n item_count: Schema.Number,\n items: Schema.Array(LineItem).annotations({ concurrency: \"unbounded\" }),\n requires_shipping: Schema.Boolean,\n currency: CurrencyCode,\n items_subtotal_price: Schema.Number,\n cart_level_discount_applications: Schema.Array(CartLevelDiscountApplication),\n});\n\ntype Cart = Schema.Schema.Type<typeof Cart>;\nexport const Cart = Schema.extend(\n BaseCart,\n Schema.Struct({\n attributes_array: Schema.optionalWith(BaseAttributesArray, {\n default: () => [],\n }),\n private_attributes: Schema.optionalWith(BasePrivateAttributes, {\n default: () => ({}),\n }),\n private_attributes_array: Schema.optionalWith(BasePrivateAttributesArray, {\n default: () => [],\n }),\n public_attributes: Schema.optionalWith(BasePublicAttributes, {\n default: () => ({}),\n }),\n public_attributes_array: Schema.optionalWith(BasePublicAttributesArray, {\n default: () => [],\n }),\n }),\n);\n\nexport const makeCartTransformSchema = <\n A extends Schema.Schema.Type<typeof BaseCart>,\n I,\n R,\n>(\n schema: Schema.Schema<A, I, R>,\n) =>\n Schema.transform(schema, Cart, {\n decode: (cart) => ({\n ...cart,\n attributes_array: cart.attributes,\n private_attributes: cart.attributes,\n private_attributes_array: cart.attributes,\n public_attributes: cart.attributes,\n public_attributes_array: cart.attributes,\n }),\n encode: (cart) =>\n pipe(\n Record.remove(\"attributes_array\")(cart),\n Record.remove(\"private_attributes\"),\n Record.remove(\"private_attributes_array\"),\n Record.remove(\"public_attributes\"),\n Record.remove(\"public_attributes_array\"),\n ) as Schema.Schema.Type<Schema.Schema<A, I, R>>,\n });\n\nexport const CartOutput = makeCartTransformSchema(BaseCart);\n\nexport const makeCartSchema = (sections?: string) => {\n if (sections) {\n return makeCartTransformSchema(\n Schema.extend(\n BaseCart,\n Schema.Struct({\n sections: Schema.optionalWith(\n Schema.NullOr(Ajax.Sections.makeResponseSchema(sections)),\n { default: () => null },\n ),\n }),\n ),\n );\n }\n return makeCartTransformSchema(\n Schema.extend(\n BaseCart,\n Schema.Struct({\n sections: Schema.optionalWith(Schema.Null, { default: () => null }),\n }),\n ),\n );\n};\n\nexport type AddItemInput = Schema.Schema.Encoded<typeof AddItemInput>;\nexport const AddItemInput = Schema.Struct({\n id: Resource.ID,\n quantity: Schema.optionalWith(Schema.Number, { default: () => 1 }),\n properties: Schema.optionalWith(BaseAttributes, { default: () => ({}) }),\n selling_plan: Schema.optional(Resource.ID),\n});\n\nexport const BaseInput = Schema.extend(Ajax.Sections.Input);\n\nexport type CartAddInput = Schema.Schema.Encoded<typeof CartAddInput>;\nexport const CartAddInput = Schema.Struct({\n items: Schema.Array(AddItemInput),\n}).pipe(BaseInput);\n\nexport type CartAddOutput = Schema.Schema.Type<typeof CartAddOutput>;\nexport const CartAddOutput = Schema.Struct({\n items: Schema.Array(LineItem),\n});\n\nexport type UpdateItemRecordInput = Schema.Schema.Encoded<\n typeof UpdateItemRecordInput\n>;\nexport const UpdateItemRecordInput = Schema.Record({\n key: Schema.String,\n value: Schema.Number,\n});\n\nconst DiscountCodeInput = Schema.Array(Schema.String);\nconst DiscountCodeTransformed = Schema.String;\n\nexport type CartUpdateInput = Schema.Schema.Encoded<typeof CartUpdateInput>;\nexport const CartUpdateInput = Schema.Struct({\n updates: Schema.optional(\n Schema.Union(UpdateItemRecordInput, Schema.Array(Schema.Number)),\n ),\n note: Schema.optional(Schema.NullOr(Schema.String)),\n attributes: Schema.optional(BaseAttributes),\n discount: Schema.optional(\n Schema.transform(DiscountCodeInput, DiscountCodeTransformed, {\n decode: (input) => input.join(\",\"),\n encode: (input) => input.split(\",\"),\n }),\n ),\n}).pipe(BaseInput);\n\nexport type ItemAddedChangelog = Schema.Schema.Type<typeof ItemAddedChangelog>;\nexport const ItemAddedChangelog = Schema.Struct({\n variant_id: Schema.Number,\n quantity: Schema.Number,\n});\n\nexport type CartUpdateOutput = Schema.Schema.Type<typeof CartUpdateOutput>;\nexport const CartUpdateOutput = makeCartTransformSchema(\n Schema.extend(\n BaseCart,\n Schema.Struct({\n items_changelog: Schema.Struct({\n added: Schema.Array(ItemAddedChangelog),\n }),\n }),\n ),\n);\n\nexport const CartChangeItemOptionalInput = Schema.Struct({\n quantity: Schema.optional(Schema.Number),\n properties: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.NullOr(Schema.String),\n }),\n ),\n selling_plan: Schema.optional(Schema.NullOr(Resource.ID)),\n}).pipe(BaseInput);\n\nexport const LineItemChange = Schema.Struct({\n product_id: Schema.Number,\n variant_id: Schema.Number,\n id: Schema.String,\n image: Schema.String,\n price: Schema.String,\n presentment_price: Schema.Number,\n quantity: Schema.Number,\n title: Schema.String,\n product_title: Schema.String,\n variant_title: Schema.String,\n vendor: Schema.String,\n product_type: Schema.String,\n sku: Schema.String,\n url: Schema.String,\n untranslated_product_title: Schema.String,\n untranslated_variant_title: Schema.String,\n view_key: Schema.String,\n});\n\nexport type CartChangeInput = Schema.Schema.Encoded<typeof CartChangeInput>;\nexport const CartChangeInput = Schema.Union(\n Schema.extend(CartChangeItemOptionalInput)(\n Schema.Struct({\n id: Schema.String,\n }),\n ),\n Schema.extend(CartChangeItemOptionalInput)(\n Schema.Struct({\n line: Schema.Number,\n }),\n ),\n);\n\nexport type CartChangeOutput = Schema.Schema.Type<typeof CartChangeOutput>;\nexport const CartChangeOutput = makeCartTransformSchema(\n Schema.extend(\n BaseCart,\n Schema.Struct({\n items_added: Schema.Array(LineItemChange),\n items_removed: Schema.Array(LineItemChange),\n }),\n ),\n);\n\nexport type CartClearInput = Schema.Schema.Encoded<typeof CartClearInput>;\nexport const CartClearInput = Ajax.Sections.Input;\n\nexport type CartGetInput = Schema.Schema.Encoded<typeof CartClearInput>;\nexport const CartGetInput = Ajax.Sections.Input;\n\nexport type CartUpdateDiscountsInput = Schema.Schema.Encoded<\n typeof CartUpdateDiscountsInput\n>;\nexport const CartUpdateDiscountsInput = Schema.mutable(\n Schema.Array(Schema.NonEmptyString),\n);\n"]}