@brytdesigns/shopify-ajax-cart-api 1.0.4 → 1.0.5

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.
@@ -39,12 +39,33 @@ declare const CartUpdateInput: Schema.extend<Schema.Struct<{
39
39
  Schema.Array$<typeof Schema.Number>
40
40
  ]>>;
41
41
  note: Schema.optional<Schema.NullOr<typeof Schema.String>>;
42
- attributes: Schema.optional<Schema.Record$<typeof Schema.String, Schema.Union<[
42
+ attributes: Schema.optional<Schema.transform<Schema.Record$<typeof Schema.String, Schema.Union<[
43
43
  typeof Schema.Null,
44
44
  typeof Schema.String,
45
45
  typeof Schema.Boolean,
46
46
  typeof Schema.Number
47
- ]>>>;
47
+ ]>>, Schema.Struct<{
48
+ array: Schema.transform<Schema.Record$<typeof Schema.String, Schema.Union<[
49
+ typeof Schema.Null,
50
+ typeof Schema.String,
51
+ typeof Schema.Boolean,
52
+ typeof Schema.Number
53
+ ]>>, Schema.Array$<Schema.Struct<{
54
+ key: typeof Schema.String;
55
+ value: Schema.Union<[
56
+ typeof Schema.Null,
57
+ typeof Schema.String,
58
+ typeof Schema.Boolean,
59
+ typeof Schema.Number
60
+ ]>;
61
+ }>>>;
62
+ record: Schema.Record$<typeof Schema.String, Schema.Union<[
63
+ typeof Schema.Null,
64
+ typeof Schema.String,
65
+ typeof Schema.Boolean,
66
+ typeof Schema.Number
67
+ ]>>;
68
+ }>>>;
48
69
  discount: Schema.optional<Schema.transform<Schema.Array$<typeof Schema.String>, typeof Schema.String>>;
49
70
  }>, Schema.Struct<{
50
71
  sections: Schema.optional<typeof Schema.String>;
@@ -158,12 +179,14 @@ export declare const add: (input?: ({
158
179
  readonly price: number;
159
180
  readonly id: string | number;
160
181
  readonly properties: {
161
- readonly [x: string]: string | number | boolean | null;
162
- } | null;
163
- readonly properties_array: readonly {
164
- readonly key: string;
165
- readonly value: string | number | boolean | null;
166
- }[] | null;
182
+ readonly array: readonly {
183
+ readonly key: string;
184
+ readonly value: string | number | boolean | null;
185
+ }[];
186
+ readonly record: {
187
+ readonly [x: string]: string | number | boolean | null;
188
+ };
189
+ };
167
190
  readonly quantity: number;
168
191
  readonly variant_id: string | number;
169
192
  readonly original_price: number;
@@ -271,12 +294,14 @@ export declare const add: (input?: ({
271
294
  readonly price: number;
272
295
  readonly id: string | number;
273
296
  readonly properties: {
274
- readonly [x: string]: string | number | boolean | null;
275
- } | null;
276
- readonly properties_array: readonly {
277
- readonly key: string;
278
- readonly value: string | number | boolean | null;
279
- }[] | null;
297
+ readonly array: readonly {
298
+ readonly key: string;
299
+ readonly value: string | number | boolean | null;
300
+ }[];
301
+ readonly record: {
302
+ readonly [x: string]: string | number | boolean | null;
303
+ };
304
+ };
280
305
  readonly quantity: number;
281
306
  readonly variant_id: string | number;
282
307
  readonly original_price: number;
@@ -410,12 +435,14 @@ export declare const change: (input?: ({
410
435
  readonly token: string;
411
436
  readonly note: string | null;
412
437
  readonly attributes: {
413
- readonly [x: string]: string | number | boolean | null;
438
+ readonly array: readonly {
439
+ readonly key: string;
440
+ readonly value: string | number | boolean | null;
441
+ }[];
442
+ readonly record: {
443
+ readonly [x: string]: string | number | boolean | null;
444
+ };
414
445
  };
415
- readonly attributes_array: readonly {
416
- readonly key: string;
417
- readonly value: string | number | boolean | null;
418
- }[];
419
446
  readonly discount_codes: readonly {
420
447
  readonly code: string;
421
448
  readonly applicable: boolean;
@@ -431,12 +458,14 @@ export declare const change: (input?: ({
431
458
  readonly price: number;
432
459
  readonly id: string | number;
433
460
  readonly properties: {
434
- readonly [x: string]: string | number | boolean | null;
435
- } | null;
436
- readonly properties_array: readonly {
437
- readonly key: string;
438
- readonly value: string | number | boolean | null;
439
- }[] | null;
461
+ readonly array: readonly {
462
+ readonly key: string;
463
+ readonly value: string | number | boolean | null;
464
+ }[];
465
+ readonly record: {
466
+ readonly [x: string]: string | number | boolean | null;
467
+ };
468
+ };
440
469
  readonly quantity: number;
441
470
  readonly variant_id: string | number;
442
471
  readonly original_price: number;
@@ -596,12 +625,14 @@ export declare const change: (input?: ({
596
625
  readonly token: string;
597
626
  readonly note: string | null;
598
627
  readonly attributes: {
599
- readonly [x: string]: string | number | boolean | null;
628
+ readonly array: readonly {
629
+ readonly key: string;
630
+ readonly value: string | number | boolean | null;
631
+ }[];
632
+ readonly record: {
633
+ readonly [x: string]: string | number | boolean | null;
634
+ };
600
635
  };
601
- readonly attributes_array: readonly {
602
- readonly key: string;
603
- readonly value: string | number | boolean | null;
604
- }[];
605
636
  readonly discount_codes: readonly {
606
637
  readonly code: string;
607
638
  readonly applicable: boolean;
@@ -617,12 +648,14 @@ export declare const change: (input?: ({
617
648
  readonly price: number;
618
649
  readonly id: string | number;
619
650
  readonly properties: {
620
- readonly [x: string]: string | number | boolean | null;
621
- } | null;
622
- readonly properties_array: readonly {
623
- readonly key: string;
624
- readonly value: string | number | boolean | null;
625
- }[] | null;
651
+ readonly array: readonly {
652
+ readonly key: string;
653
+ readonly value: string | number | boolean | null;
654
+ }[];
655
+ readonly record: {
656
+ readonly [x: string]: string | number | boolean | null;
657
+ };
658
+ };
626
659
  readonly quantity: number;
627
660
  readonly variant_id: string | number;
628
661
  readonly original_price: number;
@@ -787,12 +820,14 @@ export declare const clear: (input?: {
787
820
  readonly token: string;
788
821
  readonly note: string | null;
789
822
  readonly attributes: {
790
- readonly [x: string]: string | number | boolean | null;
823
+ readonly array: readonly {
824
+ readonly key: string;
825
+ readonly value: string | number | boolean | null;
826
+ }[];
827
+ readonly record: {
828
+ readonly [x: string]: string | number | boolean | null;
829
+ };
791
830
  };
792
- readonly attributes_array: readonly {
793
- readonly key: string;
794
- readonly value: string | number | boolean | null;
795
- }[];
796
831
  readonly discount_codes: readonly {
797
832
  readonly code: string;
798
833
  readonly applicable: boolean;
@@ -808,12 +843,14 @@ export declare const clear: (input?: {
808
843
  readonly price: number;
809
844
  readonly id: string | number;
810
845
  readonly properties: {
811
- readonly [x: string]: string | number | boolean | null;
812
- } | null;
813
- readonly properties_array: readonly {
814
- readonly key: string;
815
- readonly value: string | number | boolean | null;
816
- }[] | null;
846
+ readonly array: readonly {
847
+ readonly key: string;
848
+ readonly value: string | number | boolean | null;
849
+ }[];
850
+ readonly record: {
851
+ readonly [x: string]: string | number | boolean | null;
852
+ };
853
+ };
817
854
  readonly quantity: number;
818
855
  readonly variant_id: string | number;
819
856
  readonly original_price: number;
@@ -935,12 +972,14 @@ export declare const clear: (input?: {
935
972
  readonly token: string;
936
973
  readonly note: string | null;
937
974
  readonly attributes: {
938
- readonly [x: string]: string | number | boolean | null;
975
+ readonly array: readonly {
976
+ readonly key: string;
977
+ readonly value: string | number | boolean | null;
978
+ }[];
979
+ readonly record: {
980
+ readonly [x: string]: string | number | boolean | null;
981
+ };
939
982
  };
940
- readonly attributes_array: readonly {
941
- readonly key: string;
942
- readonly value: string | number | boolean | null;
943
- }[];
944
983
  readonly discount_codes: readonly {
945
984
  readonly code: string;
946
985
  readonly applicable: boolean;
@@ -956,12 +995,14 @@ export declare const clear: (input?: {
956
995
  readonly price: number;
957
996
  readonly id: string | number;
958
997
  readonly properties: {
959
- readonly [x: string]: string | number | boolean | null;
960
- } | null;
961
- readonly properties_array: readonly {
962
- readonly key: string;
963
- readonly value: string | number | boolean | null;
964
- }[] | null;
998
+ readonly array: readonly {
999
+ readonly key: string;
1000
+ readonly value: string | number | boolean | null;
1001
+ }[];
1002
+ readonly record: {
1003
+ readonly [x: string]: string | number | boolean | null;
1004
+ };
1005
+ };
965
1006
  readonly quantity: number;
966
1007
  readonly variant_id: string | number;
967
1008
  readonly original_price: number;
@@ -1088,12 +1129,14 @@ export declare const get: (input?: {
1088
1129
  readonly token: string;
1089
1130
  readonly note: string | null;
1090
1131
  readonly attributes: {
1091
- readonly [x: string]: string | number | boolean | null;
1132
+ readonly array: readonly {
1133
+ readonly key: string;
1134
+ readonly value: string | number | boolean | null;
1135
+ }[];
1136
+ readonly record: {
1137
+ readonly [x: string]: string | number | boolean | null;
1138
+ };
1092
1139
  };
1093
- readonly attributes_array: readonly {
1094
- readonly key: string;
1095
- readonly value: string | number | boolean | null;
1096
- }[];
1097
1140
  readonly discount_codes: readonly {
1098
1141
  readonly code: string;
1099
1142
  readonly applicable: boolean;
@@ -1109,12 +1152,14 @@ export declare const get: (input?: {
1109
1152
  readonly price: number;
1110
1153
  readonly id: string | number;
1111
1154
  readonly properties: {
1112
- readonly [x: string]: string | number | boolean | null;
1113
- } | null;
1114
- readonly properties_array: readonly {
1115
- readonly key: string;
1116
- readonly value: string | number | boolean | null;
1117
- }[] | null;
1155
+ readonly array: readonly {
1156
+ readonly key: string;
1157
+ readonly value: string | number | boolean | null;
1158
+ }[];
1159
+ readonly record: {
1160
+ readonly [x: string]: string | number | boolean | null;
1161
+ };
1162
+ };
1118
1163
  readonly quantity: number;
1119
1164
  readonly variant_id: string | number;
1120
1165
  readonly original_price: number;
@@ -1236,12 +1281,14 @@ export declare const get: (input?: {
1236
1281
  readonly token: string;
1237
1282
  readonly note: string | null;
1238
1283
  readonly attributes: {
1239
- readonly [x: string]: string | number | boolean | null;
1284
+ readonly array: readonly {
1285
+ readonly key: string;
1286
+ readonly value: string | number | boolean | null;
1287
+ }[];
1288
+ readonly record: {
1289
+ readonly [x: string]: string | number | boolean | null;
1290
+ };
1240
1291
  };
1241
- readonly attributes_array: readonly {
1242
- readonly key: string;
1243
- readonly value: string | number | boolean | null;
1244
- }[];
1245
1292
  readonly discount_codes: readonly {
1246
1293
  readonly code: string;
1247
1294
  readonly applicable: boolean;
@@ -1257,12 +1304,14 @@ export declare const get: (input?: {
1257
1304
  readonly price: number;
1258
1305
  readonly id: string | number;
1259
1306
  readonly properties: {
1260
- readonly [x: string]: string | number | boolean | null;
1261
- } | null;
1262
- readonly properties_array: readonly {
1263
- readonly key: string;
1264
- readonly value: string | number | boolean | null;
1265
- }[] | null;
1307
+ readonly array: readonly {
1308
+ readonly key: string;
1309
+ readonly value: string | number | boolean | null;
1310
+ }[];
1311
+ readonly record: {
1312
+ readonly [x: string]: string | number | boolean | null;
1313
+ };
1314
+ };
1266
1315
  readonly quantity: number;
1267
1316
  readonly variant_id: string | number;
1268
1317
  readonly original_price: number;
@@ -1398,12 +1447,14 @@ export declare const update: (input?: ({
1398
1447
  readonly token: string;
1399
1448
  readonly note: string | null;
1400
1449
  readonly attributes: {
1401
- readonly [x: string]: string | number | boolean | null;
1450
+ readonly array: readonly {
1451
+ readonly key: string;
1452
+ readonly value: string | number | boolean | null;
1453
+ }[];
1454
+ readonly record: {
1455
+ readonly [x: string]: string | number | boolean | null;
1456
+ };
1402
1457
  };
1403
- readonly attributes_array: readonly {
1404
- readonly key: string;
1405
- readonly value: string | number | boolean | null;
1406
- }[];
1407
1458
  readonly discount_codes: readonly {
1408
1459
  readonly code: string;
1409
1460
  readonly applicable: boolean;
@@ -1419,12 +1470,14 @@ export declare const update: (input?: ({
1419
1470
  readonly price: number;
1420
1471
  readonly id: string | number;
1421
1472
  readonly properties: {
1422
- readonly [x: string]: string | number | boolean | null;
1423
- } | null;
1424
- readonly properties_array: readonly {
1425
- readonly key: string;
1426
- readonly value: string | number | boolean | null;
1427
- }[] | null;
1473
+ readonly array: readonly {
1474
+ readonly key: string;
1475
+ readonly value: string | number | boolean | null;
1476
+ }[];
1477
+ readonly record: {
1478
+ readonly [x: string]: string | number | boolean | null;
1479
+ };
1480
+ };
1428
1481
  readonly quantity: number;
1429
1482
  readonly variant_id: string | number;
1430
1483
  readonly original_price: number;
@@ -1552,12 +1605,14 @@ export declare const update: (input?: ({
1552
1605
  readonly token: string;
1553
1606
  readonly note: string | null;
1554
1607
  readonly attributes: {
1555
- readonly [x: string]: string | number | boolean | null;
1608
+ readonly array: readonly {
1609
+ readonly key: string;
1610
+ readonly value: string | number | boolean | null;
1611
+ }[];
1612
+ readonly record: {
1613
+ readonly [x: string]: string | number | boolean | null;
1614
+ };
1556
1615
  };
1557
- readonly attributes_array: readonly {
1558
- readonly key: string;
1559
- readonly value: string | number | boolean | null;
1560
- }[];
1561
1616
  readonly discount_codes: readonly {
1562
1617
  readonly code: string;
1563
1618
  readonly applicable: boolean;
@@ -1573,12 +1628,14 @@ export declare const update: (input?: ({
1573
1628
  readonly price: number;
1574
1629
  readonly id: string | number;
1575
1630
  readonly properties: {
1576
- readonly [x: string]: string | number | boolean | null;
1577
- } | null;
1578
- readonly properties_array: readonly {
1579
- readonly key: string;
1580
- readonly value: string | number | boolean | null;
1581
- }[] | null;
1631
+ readonly array: readonly {
1632
+ readonly key: string;
1633
+ readonly value: string | number | boolean | null;
1634
+ }[];
1635
+ readonly record: {
1636
+ readonly [x: string]: string | number | boolean | null;
1637
+ };
1638
+ };
1582
1639
  readonly quantity: number;
1583
1640
  readonly variant_id: string | number;
1584
1641
  readonly original_price: number;
@@ -1,5 +1,8 @@
1
1
  import * as Schema from 'effect/Schema';
2
+ import * as Array from 'effect/Array';
3
+ import * as Record from 'effect/Record';
2
4
  import { Resource, Ajax } from '@brytdesigns/shopify-utils/effect';
5
+ import { pipe } from 'effect';
3
6
 
4
7
  const BaseAttributeValue = Schema.Union(
5
8
  Schema.Null,
@@ -11,26 +14,37 @@ const BaseAttributes = Schema.Record({
11
14
  key: Schema.String,
12
15
  value: BaseAttributeValue
13
16
  });
14
- const Attributes = BaseAttributes;
15
- const AttributesArray = Schema.transform(
16
- Attributes,
17
+ const BaseAttributesArray = Schema.transform(
18
+ BaseAttributes,
17
19
  Schema.Array(
18
20
  Schema.Struct({ key: Schema.String, value: BaseAttributeValue })
19
21
  ),
20
22
  {
21
- decode: (record) => Object.keys(record).map((key) => ({
22
- key,
23
- value: record[key]
24
- })),
25
- encode: (array) => array.reduce(
26
- (result, { key, value }) => ({
27
- ...result,
28
- [key]: value
29
- }),
30
- {}
23
+ decode: (record) => Record.toEntries(record).map(([key, value]) => ({ key, value })),
24
+ encode: (array) => Record.fromEntries(
25
+ pipe(
26
+ array,
27
+ Array.map(({ key, value }) => [key, value])
28
+ )
31
29
  )
32
30
  }
33
31
  );
32
+ const Attributes = Schema.transform(
33
+ BaseAttributes,
34
+ Schema.Struct({
35
+ array: BaseAttributesArray,
36
+ record: BaseAttributes
37
+ }),
38
+ {
39
+ decode: (attributes) => ({
40
+ array: attributes,
41
+ record: attributes
42
+ }),
43
+ encode: (attributes) => ({
44
+ ...attributes.record
45
+ })
46
+ }
47
+ );
34
48
  const DiscountApplication = Schema.Struct({
35
49
  target_selection: Schema.Literal("all", "entitled", "explicit"),
36
50
  target_type: Schema.Literal("line_item", "shipping_line"),
@@ -127,11 +141,12 @@ const UnitPriceMeasurement = Schema.Struct({
127
141
  });
128
142
  const LineItem = Schema.Struct({
129
143
  id: Resource.ID,
130
- properties: Schema.optionalWith(Schema.NullOr(Attributes), {
131
- default: () => ({})
132
- }),
133
- properties_array: Schema.optionalWith(Schema.NullOr(AttributesArray), {
134
- default: () => []
144
+ properties: Schema.optionalWith(Attributes, {
145
+ default: () => ({
146
+ array: [],
147
+ record: {}
148
+ }),
149
+ nullable: true
135
150
  }),
136
151
  quantity: Schema.Number,
137
152
  variant_id: Resource.ID,
@@ -179,9 +194,12 @@ const Cart = Schema.Struct({
179
194
  token: Schema.String,
180
195
  note: Schema.NullOr(Schema.String),
181
196
  attributes: Schema.optionalWith(Attributes, {
182
- default: () => ({})
197
+ default: () => ({
198
+ record: {},
199
+ array: []
200
+ }),
201
+ nullable: true
183
202
  }),
184
- attributes_array: Schema.optionalWith(AttributesArray, { default: () => [] }),
185
203
  discounts: Schema.optionalWith(Schema.Array(Discount), { default: () => [] }),
186
204
  discount_codes: Schema.optionalWith(
187
205
  Schema.Array(
@@ -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 { Resource, Ajax } from \"@brytdesigns/shopify-utils/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\nexport type BaseAttributes = Schema.Schema.Type<typeof BaseAttributes>;\nexport const BaseAttributes = Schema.Record({\n key: Schema.String,\n value: BaseAttributeValue,\n});\n\nexport const Attributes = BaseAttributes;\n\nconst AttributesArray = Schema.transform(\n Attributes,\n Schema.Array(\n Schema.Struct({ key: Schema.String, value: BaseAttributeValue }),\n ),\n {\n decode: (record) =>\n Object.keys(record).map((key) => ({\n key,\n value: record[key],\n })) as Readonly<{ key: string; value: BaseAttributeValue }[]>,\n encode: (array) =>\n array.reduce(\n (result, { key, value }) => ({\n ...result,\n [key]: value,\n }),\n {} as BaseAttributes,\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.Number,\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\nexport type LineItem = Schema.Schema.Type<typeof LineItem>;\nexport const LineItem = Schema.Struct({\n id: Resource.ID,\n properties: Schema.optionalWith(Schema.NullOr(Attributes), {\n default: () => ({}),\n }),\n properties_array: Schema.optionalWith(Schema.NullOr(AttributesArray), {\n default: () => [],\n }),\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.String,\n product_title: Schema.String,\n product_description: Schema.String,\n variant_title: Schema.NullOr(Schema.String),\n variant_options: Schema.Array(Schema.String),\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 const Cart = Schema.Struct({\n token: Schema.String,\n note: Schema.NullOr(Schema.String),\n attributes: Schema.optionalWith(Attributes, {\n default: () => ({}),\n }),\n attributes_array: Schema.optionalWith(AttributesArray, { default: () => [] }),\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),\n requires_shipping: Schema.Boolean,\n currency: CurrencyCode,\n items_subtotal_price: Schema.Number,\n cart_level_discount_applications: Schema.Array(CartLevelDiscountApplication),\n});\n\nexport const makeCartSchema = (sections?: string) => {\n if (sections) {\n return Schema.Struct({\n ...Cart.fields,\n sections: Schema.optionalWith(\n Schema.NullOr(Ajax.Sections.makeResponseSchema(sections)),\n { default: () => null },\n ),\n });\n }\n return Schema.Struct({\n ...Cart.fields,\n sections: Schema.optionalWith(Schema.Null, { default: () => null }),\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(Attributes),\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 = Schema.Struct({\n ...Cart.fields,\n items_changelog: Schema.Struct({\n added: Schema.Array(ItemAddedChangelog),\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 = Schema.Struct({\n ...Cart.fields,\n items_added: Schema.Array(LineItemChange),\n items_removed: Schema.Array(LineItemChange),\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 } 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\nexport type BaseAttributes = Schema.Schema.Type<typeof BaseAttributes>;\nexport const BaseAttributes = Schema.Record({\n key: Schema.String,\n value: BaseAttributeValue,\n});\n\nconst BaseAttributesArray = Schema.transform(\n BaseAttributes,\n Schema.Array(\n Schema.Struct({ key: Schema.String, value: BaseAttributeValue }),\n ),\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 array: BaseAttributesArray,\n record: BaseAttributes,\n }),\n {\n decode: (attributes) => ({\n array: attributes,\n record: attributes,\n }),\n encode: (attributes) => ({\n ...attributes.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.Number,\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\nexport type LineItem = Schema.Schema.Type<typeof LineItem>;\nexport const LineItem = Schema.Struct({\n id: Resource.ID,\n properties: Schema.optionalWith(Attributes, {\n default: () => ({\n array: [],\n record: {} as BaseAttributes,\n }),\n nullable: true,\n }),\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.String,\n product_title: Schema.String,\n product_description: Schema.String,\n variant_title: Schema.NullOr(Schema.String),\n variant_options: Schema.Array(Schema.String),\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 const Cart = Schema.Struct({\n token: Schema.String,\n note: Schema.NullOr(Schema.String),\n attributes: Schema.optionalWith(Attributes, {\n default: () => ({\n record: {} as BaseAttributes,\n array: [],\n }),\n nullable: true,\n }),\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),\n requires_shipping: Schema.Boolean,\n currency: CurrencyCode,\n items_subtotal_price: Schema.Number,\n cart_level_discount_applications: Schema.Array(CartLevelDiscountApplication),\n});\n\nexport const makeCartSchema = (sections?: string) => {\n if (sections) {\n return Schema.Struct({\n ...Cart.fields,\n sections: Schema.optionalWith(\n Schema.NullOr(Ajax.Sections.makeResponseSchema(sections)),\n { default: () => null },\n ),\n });\n }\n return Schema.Struct({\n ...Cart.fields,\n sections: Schema.optionalWith(Schema.Null, { default: () => null }),\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(Attributes),\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 = Schema.Struct({\n ...Cart.fields,\n items_changelog: Schema.Struct({\n added: Schema.Array(ItemAddedChangelog),\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 = Schema.Struct({\n ...Cart.fields,\n items_added: Schema.Array(LineItemChange),\n items_removed: Schema.Array(LineItemChange),\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"]}