@brytdesigns/shopify-ajax-cart-api 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/effect/api/CartAdd.js +13 -0
  2. package/dist/effect/api/CartAdd.js.map +1 -0
  3. package/dist/effect/api/CartChange.js +13 -0
  4. package/dist/effect/api/CartChange.js.map +1 -0
  5. package/dist/effect/api/CartClear.js +13 -0
  6. package/dist/effect/api/CartClear.js.map +1 -0
  7. package/dist/effect/api/CartGet.js +13 -0
  8. package/dist/effect/api/CartGet.js.map +1 -0
  9. package/dist/effect/api/CartUpdate.js +13 -0
  10. package/dist/effect/api/CartUpdate.js.map +1 -0
  11. package/dist/effect/data/AjaxClientResponse.js +9 -0
  12. package/dist/effect/data/AjaxClientResponse.js.map +1 -0
  13. package/dist/effect/data/index.js +4 -0
  14. package/dist/effect/data/index.js.map +1 -0
  15. package/dist/effect/errors.js +17 -0
  16. package/dist/effect/errors.js.map +1 -0
  17. package/dist/effect/index.d.ts +1629 -0
  18. package/dist/effect/index.js +16 -0
  19. package/dist/effect/index.js.map +1 -0
  20. package/dist/effect/logger/LoggerUtils.js +10 -0
  21. package/dist/effect/logger/LoggerUtils.js.map +1 -0
  22. package/dist/effect/schema.js +293 -0
  23. package/dist/effect/schema.js.map +1 -0
  24. package/dist/effect/services/AjaxRequest.js +106 -0
  25. package/dist/effect/services/AjaxRequest.js.map +1 -0
  26. package/dist/main/effect/api/CartAdd.js +13 -0
  27. package/dist/main/effect/api/CartAdd.js.map +1 -0
  28. package/dist/main/effect/api/CartChange.js +13 -0
  29. package/dist/main/effect/api/CartChange.js.map +1 -0
  30. package/dist/main/effect/api/CartClear.js +13 -0
  31. package/dist/main/effect/api/CartClear.js.map +1 -0
  32. package/dist/main/effect/api/CartGet.js +13 -0
  33. package/dist/main/effect/api/CartGet.js.map +1 -0
  34. package/dist/main/effect/api/CartUpdate.js +13 -0
  35. package/dist/main/effect/api/CartUpdate.js.map +1 -0
  36. package/dist/main/effect/data/AjaxClientResponse.js +9 -0
  37. package/dist/main/effect/data/AjaxClientResponse.js.map +1 -0
  38. package/dist/main/effect/data/index.js +4 -0
  39. package/dist/main/effect/data/index.js.map +1 -0
  40. package/dist/main/effect/errors.js +17 -0
  41. package/dist/main/effect/errors.js.map +1 -0
  42. package/dist/main/effect/index.js +16 -0
  43. package/dist/main/effect/index.js.map +1 -0
  44. package/dist/main/effect/logger/LoggerUtils.js +10 -0
  45. package/dist/main/effect/logger/LoggerUtils.js.map +1 -0
  46. package/dist/main/effect/schema.js +293 -0
  47. package/dist/main/effect/schema.js.map +1 -0
  48. package/dist/main/effect/services/AjaxRequest.js +106 -0
  49. package/dist/main/effect/services/AjaxRequest.js.map +1 -0
  50. package/dist/main/index.d.ts +3044 -0
  51. package/dist/main/index.js +188 -0
  52. package/dist/main/index.js.map +1 -0
  53. package/package.json +42 -0
@@ -0,0 +1,16 @@
1
+ import * as CartAdd from './api/CartAdd.js';
2
+ import * as CartChange from './api/CartChange.js';
3
+ import * as CartClear from './api/CartClear.js';
4
+ import * as CartGet from './api/CartGet.js';
5
+ import * as CartUpdate from './api/CartUpdate.js';
6
+ export * from './errors.js';
7
+
8
+ const add = CartAdd.make;
9
+ const change = CartChange.make;
10
+ const clear = CartClear.make;
11
+ const get = CartGet.make;
12
+ const update = CartUpdate.make;
13
+
14
+ export { add, change, clear, get, update };
15
+ //# sourceMappingURL=index.js.map
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/effect/index.ts"],"names":[],"mappings":";;;;;;;AASO,MAAM,MAAM,OAAQ,CAAA;AAKpB,MAAM,SAAS,UAAW,CAAA;AAK1B,MAAM,QAAQ,SAAU,CAAA;AAKxB,MAAM,MAAM,OAAQ,CAAA;AAKpB,MAAM,SAAS,UAAW,CAAA","file":"index.js","sourcesContent":["import * as CartAdd from \"./api/CartAdd.js\";\nimport * as CartChange from \"./api/CartChange.js\";\nimport * as CartClear from \"./api/CartClear.js\";\nimport * as CartGet from \"./api/CartGet.js\";\nimport * as CartUpdate from \"./api/CartUpdate.js\";\n\nexport namespace add {\n export type Input = CartAdd.AddInput;\n}\nexport const add = CartAdd.make;\n\nexport namespace change {\n export type Input = CartChange.ChangeInput;\n}\nexport const change = CartChange.make;\n\nexport namespace clear {\n export type Input = CartClear.ClearInput;\n}\nexport const clear = CartClear.make;\n\nexport namespace get {\n export type Input = CartGet.GetInput;\n}\nexport const get = CartGet.make;\n\nexport namespace update {\n export type Input = CartUpdate.UpdateInput;\n}\nexport const update = CartUpdate.make;\n\nexport * from \"./errors.js\";\n"]}
@@ -0,0 +1,10 @@
1
+ import { Logging } from '@brytdesigns/shopify-utils/effect';
2
+
3
+ const withNamespacedLogSpan = Logging.makeNamespacedLogSpan(
4
+ "[@brytdesigns/shopify-hybrid-cart-client]"
5
+ );
6
+ const filterLevelOrNever = Logging.filterLevelOrNever;
7
+
8
+ export { filterLevelOrNever, withNamespacedLogSpan };
9
+ //# sourceMappingURL=LoggerUtils.js.map
10
+ //# sourceMappingURL=LoggerUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/effect/logger/LoggerUtils.ts"],"names":[],"mappings":";;AAEO,MAAM,wBAAwB,OAAQ,CAAA,qBAAA;AAAA,EAC3C;AACF;AAEO,MAAM,qBAAqB,OAAQ,CAAA","file":"LoggerUtils.js","sourcesContent":["import { Logging } from \"@brytdesigns/shopify-utils/effect\";\n\nexport const withNamespacedLogSpan = Logging.makeNamespacedLogSpan(\n \"[@brytdesigns/shopify-hybrid-cart-client]\"\n);\n\nexport const filterLevelOrNever = Logging.filterLevelOrNever;\n"]}
@@ -0,0 +1,293 @@
1
+ import * as Schema from 'effect/Schema';
2
+ import { Resource, Ajax } from '@brytdesigns/shopify-utils/effect';
3
+
4
+ const BaseAttributes = Schema.Record({
5
+ key: Schema.String,
6
+ value: Schema.Union(
7
+ Schema.Null,
8
+ Schema.String,
9
+ Schema.Boolean,
10
+ Schema.Number
11
+ )
12
+ });
13
+ const Attributes = BaseAttributes;
14
+ const DiscountApplication = Schema.Struct({
15
+ target_selection: Schema.Literal("all", "entitled", "explicit"),
16
+ target_type: Schema.Literal("line_item", "shipping_line"),
17
+ title: Schema.NonEmptyString,
18
+ total_allocated_amount: Schema.Number,
19
+ type: Schema.Literal("", "automatic", "discount_code", "manual", "script"),
20
+ value: Schema.Union(Schema.Number, Schema.NumberFromString),
21
+ value_type: Schema.Literal("fixed_amount", "percentage"),
22
+ description: Schema.NullOr(Schema.String)
23
+ });
24
+ const Discount = Schema.Struct({
25
+ amount: Schema.Number,
26
+ title: Schema.String
27
+ });
28
+ const CurrencyCode = Schema.String;
29
+ const Image = Schema.Struct({
30
+ aspect_ratio: Schema.Number,
31
+ alt: Schema.String,
32
+ height: Schema.Number,
33
+ url: Schema.String,
34
+ width: Schema.Number
35
+ });
36
+ const OptionWithValue = Schema.Struct({
37
+ name: Schema.String,
38
+ value: Schema.String
39
+ });
40
+ const QuantityRule = Schema.Struct({
41
+ min: Schema.Number,
42
+ max: Schema.NullOr(Schema.Number),
43
+ increment: Schema.Number
44
+ });
45
+ const SellingPlanAllocationPriceAdjustment = Schema.Struct({
46
+ position: Schema.Number,
47
+ price: Schema.Number
48
+ });
49
+ const SellingPlanPriceAdjustment = Schema.Struct({
50
+ order_count: Schema.NullOr(Schema.Number),
51
+ position: Schema.Number,
52
+ value: Schema.Number,
53
+ value_type: Schema.Literal("percentage", "fixed_amount", "price")
54
+ });
55
+ const SellingPlanOption = Schema.Struct({
56
+ name: Schema.String,
57
+ position: Schema.Number,
58
+ value: Schema.String
59
+ });
60
+ const SellingPlan = Schema.Struct({
61
+ id: Resource.ID,
62
+ name: Schema.String,
63
+ description: Schema.NullOr(Schema.String),
64
+ options: Schema.Array(SellingPlanOption),
65
+ recurring_deliveries: Schema.optionalWith(Schema.Boolean, {
66
+ default: () => false
67
+ }),
68
+ fixed_selling_plan: Schema.optionalWith(Schema.Boolean, {
69
+ default: () => false
70
+ }),
71
+ price_adjustments: Schema.Array(SellingPlanPriceAdjustment)
72
+ });
73
+ const SellingPlanAllocation = Schema.Struct({
74
+ price_adjustments: Schema.Array(SellingPlanAllocationPriceAdjustment),
75
+ price: Schema.Number,
76
+ compare_at_price: Schema.Number,
77
+ per_delivery_price: Schema.Number,
78
+ selling_plan: SellingPlan
79
+ });
80
+ const LineLevelDiscountAllocation = Schema.Struct({
81
+ amount: Schema.Number,
82
+ discount_application: DiscountApplication
83
+ });
84
+ const CartLevelDiscountApplicationUpdate = Schema.transform(
85
+ Schema.Struct({
86
+ discount_application: DiscountApplication
87
+ }),
88
+ DiscountApplication,
89
+ {
90
+ decode: (application) => application.discount_application,
91
+ encode: (discountApplication) => ({
92
+ discount_application: discountApplication
93
+ }),
94
+ strict: false
95
+ }
96
+ );
97
+ const CartLevelDiscountApplication = Schema.Union(
98
+ DiscountApplication,
99
+ CartLevelDiscountApplicationUpdate
100
+ );
101
+ const UnitPriceMeasurement = Schema.Struct({
102
+ measured_type: Schema.Literal("volume", "weight", "dimension"),
103
+ quantity_unit: Schema.String,
104
+ quantity_value: Schema.Number,
105
+ reference_unit: Schema.String,
106
+ reference_value: Schema.Number
107
+ });
108
+ const LineItem = Schema.Struct({
109
+ id: Resource.ID,
110
+ properties: Schema.optionalWith(Schema.NullOr(Attributes), {
111
+ default: () => ({})
112
+ }),
113
+ quantity: Schema.Number,
114
+ variant_id: Resource.ID,
115
+ key: Schema.String,
116
+ title: Schema.String,
117
+ price: Schema.Number,
118
+ original_price: Schema.Number,
119
+ discounted_price: Schema.Number,
120
+ line_price: Schema.Number,
121
+ original_line_price: Schema.Number,
122
+ total_discount: Schema.Number,
123
+ discounts: Schema.optionalWith(Schema.Array(Discount), { default: () => [] }),
124
+ sku: Schema.NullOr(Schema.String),
125
+ grams: Schema.Number,
126
+ vendor: Schema.String,
127
+ taxable: Schema.Boolean,
128
+ product_id: Resource.ID,
129
+ product_has_only_default_variant: Schema.Boolean,
130
+ gift_card: Schema.Boolean,
131
+ final_line_price: Schema.Number,
132
+ final_price: Schema.Number,
133
+ url: Schema.String,
134
+ featured_image: Schema.optional(Image),
135
+ image: Schema.String,
136
+ handle: Schema.String,
137
+ requires_shipping: Schema.Boolean,
138
+ product_type: Schema.String,
139
+ product_title: Schema.String,
140
+ product_description: Schema.String,
141
+ variant_title: Schema.NullOr(Schema.String),
142
+ variant_options: Schema.Array(Schema.String),
143
+ options_with_values: Schema.Array(OptionWithValue),
144
+ line_level_discount_allocations: Schema.Array(LineLevelDiscountAllocation),
145
+ line_level_total_discount: Schema.Number,
146
+ quantity_rule: Schema.optional(QuantityRule),
147
+ has_components: Schema.optionalWith(Schema.Boolean, { default: () => false }),
148
+ unit_price: Schema.optional(Schema.Number),
149
+ unit_price_measurement: Schema.optional(UnitPriceMeasurement),
150
+ selling_plan_allocation: Schema.optionalWith(
151
+ Schema.NullOr(SellingPlanAllocation),
152
+ { default: () => null }
153
+ )
154
+ });
155
+ const Cart = Schema.Struct({
156
+ token: Schema.String,
157
+ note: Schema.NullOr(Schema.String),
158
+ attributes: Schema.optionalWith(Attributes, {
159
+ default: () => ({})
160
+ }),
161
+ discounts: Schema.optionalWith(Schema.Array(Discount), { default: () => [] }),
162
+ discount_codes: Schema.optionalWith(
163
+ Schema.Array(
164
+ Schema.Struct({ code: Schema.String, applicable: Schema.Boolean })
165
+ ),
166
+ { default: () => [] }
167
+ ),
168
+ original_total_price: Schema.Number,
169
+ total_price: Schema.Number,
170
+ total_discount: Schema.Number,
171
+ total_weight: Schema.Number,
172
+ item_count: Schema.Number,
173
+ items: Schema.Array(LineItem),
174
+ requires_shipping: Schema.Boolean,
175
+ currency: CurrencyCode,
176
+ items_subtotal_price: Schema.Number,
177
+ cart_level_discount_applications: Schema.Array(CartLevelDiscountApplication)
178
+ });
179
+ const makeCartSchema = (sections) => {
180
+ if (sections) {
181
+ return Schema.Struct({
182
+ ...Cart.fields,
183
+ sections: Schema.optionalWith(
184
+ Schema.NullOr(Ajax.Sections.makeResponseSchema(sections)),
185
+ { default: () => null }
186
+ )
187
+ });
188
+ }
189
+ return Schema.Struct({
190
+ ...Cart.fields,
191
+ sections: Schema.optionalWith(Schema.Null, { default: () => null })
192
+ });
193
+ };
194
+ const AddItemInput = Schema.Struct({
195
+ id: Resource.ID,
196
+ quantity: Schema.optionalWith(Schema.Number, { default: () => 1 }),
197
+ properties: Schema.optionalWith(BaseAttributes, { default: () => ({}) }),
198
+ selling_plan: Schema.optional(Resource.ID)
199
+ });
200
+ const BaseInput = Schema.extend(Ajax.Sections.Input);
201
+ const CartAddInput = Schema.Struct({
202
+ items: Schema.Array(AddItemInput)
203
+ }).pipe(BaseInput);
204
+ const CartAddOutput = Schema.Struct({
205
+ items: Schema.Array(LineItem)
206
+ });
207
+ const UpdateItemRecordInput = Schema.Record({
208
+ key: Schema.String,
209
+ value: Schema.Number
210
+ });
211
+ const DiscountCodeInput = Schema.Array(Schema.String);
212
+ const DiscountCodeTransformed = Schema.String;
213
+ const CartUpdateInput = Schema.Struct({
214
+ updates: Schema.optional(
215
+ Schema.Union(UpdateItemRecordInput, Schema.Array(Schema.Number))
216
+ ),
217
+ note: Schema.optional(Schema.NullOr(Schema.String)),
218
+ attributes: Schema.optional(Attributes),
219
+ discount: Schema.optionalWith(
220
+ Schema.transform(DiscountCodeInput, DiscountCodeTransformed, {
221
+ decode: (input) => input.join(","),
222
+ encode: (input) => input.split(",")
223
+ }),
224
+ {
225
+ default: () => ""
226
+ }
227
+ )
228
+ }).pipe(BaseInput);
229
+ const ItemAddedChangelog = Schema.Struct({
230
+ variant_id: Schema.Number,
231
+ quantity: Schema.Number
232
+ });
233
+ const CartUpdateOutput = Schema.Struct({
234
+ ...Cart.fields,
235
+ items_changelog: Schema.Struct({
236
+ added: Schema.Array(ItemAddedChangelog)
237
+ })
238
+ });
239
+ const CartChangeItemOptionalInput = Schema.Struct({
240
+ quantity: Schema.optional(Schema.Number),
241
+ properties: Schema.optional(
242
+ Schema.Record({
243
+ key: Schema.String,
244
+ value: Schema.NullOr(Schema.String)
245
+ })
246
+ ),
247
+ selling_plan: Schema.optional(Schema.NullOr(Resource.ID))
248
+ }).pipe(BaseInput);
249
+ const LineItemChange = Schema.Struct({
250
+ product_id: Schema.Number,
251
+ variant_id: Schema.Number,
252
+ id: Schema.String,
253
+ image: Schema.String,
254
+ price: Schema.String,
255
+ presentment_price: Schema.Number,
256
+ quantity: Schema.Number,
257
+ title: Schema.String,
258
+ product_title: Schema.String,
259
+ variant_title: Schema.String,
260
+ vendor: Schema.String,
261
+ product_type: Schema.String,
262
+ sku: Schema.String,
263
+ url: Schema.String,
264
+ untranslated_product_title: Schema.String,
265
+ untranslated_variant_title: Schema.String,
266
+ view_key: Schema.String
267
+ });
268
+ const CartChangeInput = Schema.Union(
269
+ Schema.extend(CartChangeItemOptionalInput)(
270
+ Schema.Struct({
271
+ id: Schema.String
272
+ })
273
+ ),
274
+ Schema.extend(CartChangeItemOptionalInput)(
275
+ Schema.Struct({
276
+ line: Schema.Number
277
+ })
278
+ )
279
+ );
280
+ const CartChangeOutput = Schema.Struct({
281
+ ...Cart.fields,
282
+ items_added: Schema.Array(LineItemChange),
283
+ items_removed: Schema.Array(LineItemChange)
284
+ });
285
+ const CartClearInput = Ajax.Sections.Input;
286
+ const CartGetInput = Ajax.Sections.Input;
287
+ const CartUpdateDiscountsInput = Schema.mutable(
288
+ Schema.Array(Schema.NonEmptyString)
289
+ );
290
+
291
+ export { AddItemInput, Attributes, BaseAttributes, BaseInput, Cart, CartAddInput, CartAddOutput, CartChangeInput, CartChangeItemOptionalInput, CartChangeOutput, CartClearInput, CartGetInput, CartLevelDiscountApplication, CartUpdateDiscountsInput, CartUpdateInput, CartUpdateOutput, CurrencyCode, Discount, DiscountApplication, Image, ItemAddedChangelog, LineItem, LineItemChange, LineLevelDiscountAllocation, OptionWithValue, QuantityRule, SellingPlan, SellingPlanAllocation, SellingPlanAllocationPriceAdjustment, SellingPlanOption, SellingPlanPriceAdjustment, UnitPriceMeasurement, UpdateItemRecordInput, makeCartSchema };
292
+ //# sourceMappingURL=schema.js.map
293
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/effect/schema.ts"],"names":[],"mappings":";;;AAIa,MAAA,cAAA,GAAiB,OAAO,MAAO,CAAA;AAAA,EAC1C,KAAK,MAAO,CAAA,MAAA;AAAA,EACZ,OAAO,MAAO,CAAA,KAAA;AAAA,IACZ,MAAO,CAAA,IAAA;AAAA,IACP,MAAO,CAAA,MAAA;AAAA,IACP,MAAO,CAAA,OAAA;AAAA,IACP,MAAO,CAAA;AAAA;AAEX,CAAC;AAEM,MAAM,UAAa,GAAA;AAMb,MAAA,mBAAA,GAAsB,OAAO,MAAO,CAAA;AAAA,EAC/C,gBAAkB,EAAA,MAAA,CAAO,OAAQ,CAAA,KAAA,EAAO,YAAY,UAAU,CAAA;AAAA,EAC9D,WAAa,EAAA,MAAA,CAAO,OAAQ,CAAA,WAAA,EAAa,eAAe,CAAA;AAAA,EACxD,OAAO,MAAO,CAAA,cAAA;AAAA,EACd,wBAAwB,MAAO,CAAA,MAAA;AAAA,EAC/B,MAAM,MAAO,CAAA,OAAA,CAAQ,IAAI,WAAa,EAAA,eAAA,EAAiB,UAAU,QAAQ,CAAA;AAAA,EACzE,OAAO,MAAO,CAAA,KAAA,CAAM,MAAO,CAAA,MAAA,EAAQ,OAAO,gBAAgB,CAAA;AAAA,EAC1D,UAAY,EAAA,MAAA,CAAO,OAAQ,CAAA,cAAA,EAAgB,YAAY,CAAA;AAAA,EACvD,WAAa,EAAA,MAAA,CAAO,MAAO,CAAA,MAAA,CAAO,MAAM;AAC1C,CAAC;AAEY,MAAA,QAAA,GAAW,OAAO,MAAO,CAAA;AAAA,EACpC,QAAQ,MAAO,CAAA,MAAA;AAAA,EACf,OAAO,MAAO,CAAA;AAChB,CAAC;AAGM,MAAM,eAAe,MAAO,CAAA;AAGtB,MAAA,KAAA,GAAQ,OAAO,MAAO,CAAA;AAAA,EACjC,cAAc,MAAO,CAAA,MAAA;AAAA,EACrB,KAAK,MAAO,CAAA,MAAA;AAAA,EACZ,QAAQ,MAAO,CAAA,MAAA;AAAA,EACf,KAAK,MAAO,CAAA,MAAA;AAAA,EACZ,OAAO,MAAO,CAAA;AAChB,CAAC;AAGY,MAAA,eAAA,GAAkB,OAAO,MAAO,CAAA;AAAA,EAC3C,MAAM,MAAO,CAAA,MAAA;AAAA,EACb,OAAO,MAAO,CAAA;AAChB,CAAC;AAGY,MAAA,YAAA,GAAe,OAAO,MAAO,CAAA;AAAA,EACxC,KAAK,MAAO,CAAA,MAAA;AAAA,EACZ,GAAK,EAAA,MAAA,CAAO,MAAO,CAAA,MAAA,CAAO,MAAM,CAAA;AAAA,EAChC,WAAW,MAAO,CAAA;AACpB,CAAC;AAKY,MAAA,oCAAA,GAAuC,OAAO,MAAO,CAAA;AAAA,EAChE,UAAU,MAAO,CAAA,MAAA;AAAA,EACjB,OAAO,MAAO,CAAA;AAChB,CAAC;AAEY,MAAA,0BAAA,GAA6B,OAAO,MAAO,CAAA;AAAA,EACtD,WAAa,EAAA,MAAA,CAAO,MAAO,CAAA,MAAA,CAAO,MAAM,CAAA;AAAA,EACxC,UAAU,MAAO,CAAA,MAAA;AAAA,EACjB,OAAO,MAAO,CAAA,MAAA;AAAA,EACd,UAAY,EAAA,MAAA,CAAO,OAAQ,CAAA,YAAA,EAAc,gBAAgB,OAAO;AAClE,CAAC;AAGY,MAAA,iBAAA,GAAoB,OAAO,MAAO,CAAA;AAAA,EAC7C,MAAM,MAAO,CAAA,MAAA;AAAA,EACb,UAAU,MAAO,CAAA,MAAA;AAAA,EACjB,OAAO,MAAO,CAAA;AAChB,CAAC;AAGY,MAAA,WAAA,GAAc,OAAO,MAAO,CAAA;AAAA,EACvC,IAAI,QAAS,CAAA,EAAA;AAAA,EACb,MAAM,MAAO,CAAA,MAAA;AAAA,EACb,WAAa,EAAA,MAAA,CAAO,MAAO,CAAA,MAAA,CAAO,MAAM,CAAA;AAAA,EACxC,OAAA,EAAS,MAAO,CAAA,KAAA,CAAM,iBAAiB,CAAA;AAAA,EACvC,oBAAsB,EAAA,MAAA,CAAO,YAAa,CAAA,MAAA,CAAO,OAAS,EAAA;AAAA,IACxD,SAAS,MAAM;AAAA,GAChB,CAAA;AAAA,EACD,kBAAoB,EAAA,MAAA,CAAO,YAAa,CAAA,MAAA,CAAO,OAAS,EAAA;AAAA,IACtD,SAAS,MAAM;AAAA,GAChB,CAAA;AAAA,EACD,iBAAA,EAAmB,MAAO,CAAA,KAAA,CAAM,0BAA0B;AAC5D,CAAC;AAKY,MAAA,qBAAA,GAAwB,OAAO,MAAO,CAAA;AAAA,EACjD,iBAAA,EAAmB,MAAO,CAAA,KAAA,CAAM,oCAAoC,CAAA;AAAA,EACpE,OAAO,MAAO,CAAA,MAAA;AAAA,EACd,kBAAkB,MAAO,CAAA,MAAA;AAAA,EACzB,oBAAoB,MAAO,CAAA,MAAA;AAAA,EAC3B,YAAc,EAAA;AAChB,CAAC;AAKY,MAAA,2BAAA,GAA8B,OAAO,MAAO,CAAA;AAAA,EACvD,QAAQ,MAAO,CAAA,MAAA;AAAA,EACf,oBAAsB,EAAA;AACxB,CAAC;AAED,MAAM,qCAAqC,MAAO,CAAA,SAAA;AAAA,EAChD,OAAO,MAAO,CAAA;AAAA,IACZ,oBAAsB,EAAA;AAAA,GACvB,CAAA;AAAA,EACD,mBAAA;AAAA,EACA;AAAA,IACE,MAAA,EAAQ,CAAC,WAAA,KAAgB,WAAY,CAAA,oBAAA;AAAA,IACrC,MAAA,EAAQ,CAAC,mBAAyB,MAAA;AAAA,MAChC,oBAAsB,EAAA;AAAA,KACxB,CAAA;AAAA,IACA,MAAQ,EAAA;AAAA;AAEZ,CAAA;AAEO,MAAM,+BAA+B,MAAO,CAAA,KAAA;AAAA,EACjD,mBAAA;AAAA,EACA;AACF;AAKa,MAAA,oBAAA,GAAuB,OAAO,MAAO,CAAA;AAAA,EAChD,aAAe,EAAA,MAAA,CAAO,OAAQ,CAAA,QAAA,EAAU,UAAU,WAAW,CAAA;AAAA,EAC7D,eAAe,MAAO,CAAA,MAAA;AAAA,EACtB,gBAAgB,MAAO,CAAA,MAAA;AAAA,EACvB,gBAAgB,MAAO,CAAA,MAAA;AAAA,EACvB,iBAAiB,MAAO,CAAA;AAC1B,CAAC;AAGY,MAAA,QAAA,GAAW,OAAO,MAAO,CAAA;AAAA,EACpC,IAAI,QAAS,CAAA,EAAA;AAAA,EACb,YAAY,MAAO,CAAA,YAAA,CAAa,MAAO,CAAA,MAAA,CAAO,UAAU,CAAG,EAAA;AAAA,IACzD,OAAA,EAAS,OAAO,EAAC;AAAA,GAClB,CAAA;AAAA,EACD,UAAU,MAAO,CAAA,MAAA;AAAA,EACjB,YAAY,QAAS,CAAA,EAAA;AAAA,EACrB,KAAK,MAAO,CAAA,MAAA;AAAA,EACZ,OAAO,MAAO,CAAA,MAAA;AAAA,EACd,OAAO,MAAO,CAAA,MAAA;AAAA,EACd,gBAAgB,MAAO,CAAA,MAAA;AAAA,EACvB,kBAAkB,MAAO,CAAA,MAAA;AAAA,EACzB,YAAY,MAAO,CAAA,MAAA;AAAA,EACnB,qBAAqB,MAAO,CAAA,MAAA;AAAA,EAC5B,gBAAgB,MAAO,CAAA,MAAA;AAAA,EACvB,SAAW,EAAA,MAAA,CAAO,YAAa,CAAA,MAAA,CAAO,KAAM,CAAA,QAAQ,CAAG,EAAA,EAAE,OAAS,EAAA,MAAM,EAAC,EAAG,CAAA;AAAA,EAC5E,GAAK,EAAA,MAAA,CAAO,MAAO,CAAA,MAAA,CAAO,MAAM,CAAA;AAAA,EAChC,OAAO,MAAO,CAAA,MAAA;AAAA,EACd,QAAQ,MAAO,CAAA,MAAA;AAAA,EACf,SAAS,MAAO,CAAA,OAAA;AAAA,EAChB,YAAY,QAAS,CAAA,EAAA;AAAA,EACrB,kCAAkC,MAAO,CAAA,OAAA;AAAA,EACzC,WAAW,MAAO,CAAA,OAAA;AAAA,EAClB,kBAAkB,MAAO,CAAA,MAAA;AAAA,EACzB,aAAa,MAAO,CAAA,MAAA;AAAA,EACpB,KAAK,MAAO,CAAA,MAAA;AAAA,EACZ,cAAA,EAAgB,MAAO,CAAA,QAAA,CAAS,KAAK,CAAA;AAAA,EACrC,OAAO,MAAO,CAAA,MAAA;AAAA,EACd,QAAQ,MAAO,CAAA,MAAA;AAAA,EACf,mBAAmB,MAAO,CAAA,OAAA;AAAA,EAC1B,cAAc,MAAO,CAAA,MAAA;AAAA,EACrB,eAAe,MAAO,CAAA,MAAA;AAAA,EACtB,qBAAqB,MAAO,CAAA,MAAA;AAAA,EAC5B,aAAe,EAAA,MAAA,CAAO,MAAO,CAAA,MAAA,CAAO,MAAM,CAAA;AAAA,EAC1C,eAAiB,EAAA,MAAA,CAAO,KAAM,CAAA,MAAA,CAAO,MAAM,CAAA;AAAA,EAC3C,mBAAA,EAAqB,MAAO,CAAA,KAAA,CAAM,eAAe,CAAA;AAAA,EACjD,+BAAA,EAAiC,MAAO,CAAA,KAAA,CAAM,2BAA2B,CAAA;AAAA,EACzE,2BAA2B,MAAO,CAAA,MAAA;AAAA,EAClC,aAAA,EAAe,MAAO,CAAA,QAAA,CAAS,YAAY,CAAA;AAAA,EAC3C,cAAA,EAAgB,OAAO,YAAa,CAAA,MAAA,CAAO,SAAS,EAAE,OAAA,EAAS,MAAM,KAAA,EAAO,CAAA;AAAA,EAC5E,UAAY,EAAA,MAAA,CAAO,QAAS,CAAA,MAAA,CAAO,MAAM,CAAA;AAAA,EACzC,sBAAA,EAAwB,MAAO,CAAA,QAAA,CAAS,oBAAoB,CAAA;AAAA,EAC5D,yBAAyB,MAAO,CAAA,YAAA;AAAA,IAC9B,MAAA,CAAO,OAAO,qBAAqB,CAAA;AAAA,IACnC,EAAE,OAAS,EAAA,MAAM,IAAK;AAAA;AAE1B,CAAC;AAEY,MAAA,IAAA,GAAO,OAAO,MAAO,CAAA;AAAA,EAChC,OAAO,MAAO,CAAA,MAAA;AAAA,EACd,IAAM,EAAA,MAAA,CAAO,MAAO,CAAA,MAAA,CAAO,MAAM,CAAA;AAAA,EACjC,UAAA,EAAY,MAAO,CAAA,YAAA,CAAa,UAAY,EAAA;AAAA,IAC1C,OAAA,EAAS,OAAO,EAAC;AAAA,GAClB,CAAA;AAAA,EACD,SAAW,EAAA,MAAA,CAAO,YAAa,CAAA,MAAA,CAAO,KAAM,CAAA,QAAQ,CAAG,EAAA,EAAE,OAAS,EAAA,MAAM,EAAC,EAAG,CAAA;AAAA,EAC5E,gBAAgB,MAAO,CAAA,YAAA;AAAA,IACrB,MAAO,CAAA,KAAA;AAAA,MACL,MAAA,CAAO,OAAO,EAAE,IAAA,EAAM,OAAO,MAAQ,EAAA,UAAA,EAAY,MAAO,CAAA,OAAA,EAAS;AAAA,KACnE;AAAA,IACA,EAAE,OAAA,EAAS,MAAM,EAAG;AAAA,GACtB;AAAA,EACA,sBAAsB,MAAO,CAAA,MAAA;AAAA,EAC7B,aAAa,MAAO,CAAA,MAAA;AAAA,EACpB,gBAAgB,MAAO,CAAA,MAAA;AAAA,EACvB,cAAc,MAAO,CAAA,MAAA;AAAA,EACrB,YAAY,MAAO,CAAA,MAAA;AAAA,EACnB,KAAA,EAAO,MAAO,CAAA,KAAA,CAAM,QAAQ,CAAA;AAAA,EAC5B,mBAAmB,MAAO,CAAA,OAAA;AAAA,EAC1B,QAAU,EAAA,YAAA;AAAA,EACV,sBAAsB,MAAO,CAAA,MAAA;AAAA,EAC7B,gCAAA,EAAkC,MAAO,CAAA,KAAA,CAAM,4BAA4B;AAC7E,CAAC;AAEY,MAAA,cAAA,GAAiB,CAAC,QAAsB,KAAA;AACnD,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,OAAO,OAAO,MAAO,CAAA;AAAA,MACnB,GAAG,IAAK,CAAA,MAAA;AAAA,MACR,UAAU,MAAO,CAAA,YAAA;AAAA,QACf,OAAO,MAAO,CAAA,IAAA,CAAK,QAAS,CAAA,kBAAA,CAAmB,QAAQ,CAAC,CAAA;AAAA,QACxD,EAAE,OAAS,EAAA,MAAM,IAAK;AAAA;AACxB,KACD,CAAA;AAAA;AAEH,EAAA,OAAO,OAAO,MAAO,CAAA;AAAA,IACnB,GAAG,IAAK,CAAA,MAAA;AAAA,IACR,QAAA,EAAU,OAAO,YAAa,CAAA,MAAA,CAAO,MAAM,EAAE,OAAA,EAAS,MAAM,IAAA,EAAM;AAAA,GACnE,CAAA;AACH;AAGa,MAAA,YAAA,GAAe,OAAO,MAAO,CAAA;AAAA,EACxC,IAAI,QAAS,CAAA,EAAA;AAAA,EACb,QAAA,EAAU,OAAO,YAAa,CAAA,MAAA,CAAO,QAAQ,EAAE,OAAA,EAAS,MAAM,CAAA,EAAG,CAAA;AAAA,EACjE,UAAA,EAAY,OAAO,YAAa,CAAA,cAAA,EAAgB,EAAE,OAAS,EAAA,OAAO,EAAC,CAAA,EAAI,CAAA;AAAA,EACvE,YAAc,EAAA,MAAA,CAAO,QAAS,CAAA,QAAA,CAAS,EAAE;AAC3C,CAAC;AAEM,MAAM,SAAY,GAAA,MAAA,CAAO,MAAO,CAAA,IAAA,CAAK,SAAS,KAAK;AAG7C,MAAA,YAAA,GAAe,OAAO,MAAO,CAAA;AAAA,EACxC,KAAA,EAAO,MAAO,CAAA,KAAA,CAAM,YAAY;AAClC,CAAC,CAAA,CAAE,KAAK,SAAS;AAGJ,MAAA,aAAA,GAAgB,OAAO,MAAO,CAAA;AAAA,EACzC,KAAA,EAAO,MAAO,CAAA,KAAA,CAAM,QAAQ;AAC9B,CAAC;AAKY,MAAA,qBAAA,GAAwB,OAAO,MAAO,CAAA;AAAA,EACjD,KAAK,MAAO,CAAA,MAAA;AAAA,EACZ,OAAO,MAAO,CAAA;AAChB,CAAC;AAED,MAAM,iBAAoB,GAAA,MAAA,CAAO,KAAM,CAAA,MAAA,CAAO,MAAM,CAAA;AACpD,MAAM,0BAA0B,MAAO,CAAA,MAAA;AAG1B,MAAA,eAAA,GAAkB,OAAO,MAAO,CAAA;AAAA,EAC3C,SAAS,MAAO,CAAA,QAAA;AAAA,IACd,OAAO,KAAM,CAAA,qBAAA,EAAuB,OAAO,KAAM,CAAA,MAAA,CAAO,MAAM,CAAC;AAAA,GACjE;AAAA,EACA,MAAM,MAAO,CAAA,QAAA,CAAS,OAAO,MAAO,CAAA,MAAA,CAAO,MAAM,CAAC,CAAA;AAAA,EAClD,UAAA,EAAY,MAAO,CAAA,QAAA,CAAS,UAAU,CAAA;AAAA,EACtC,UAAU,MAAO,CAAA,YAAA;AAAA,IACf,MAAA,CAAO,SAAU,CAAA,iBAAA,EAAmB,uBAAyB,EAAA;AAAA,MAC3D,MAAQ,EAAA,CAAC,KAAU,KAAA,KAAA,CAAM,KAAK,GAAG,CAAA;AAAA,MACjC,MAAQ,EAAA,CAAC,KAAU,KAAA,KAAA,CAAM,MAAM,GAAG;AAAA,KACnC,CAAA;AAAA,IACD;AAAA,MACE,SAAS,MAAM;AAAA;AACjB;AAEJ,CAAC,CAAA,CAAE,KAAK,SAAS;AAGJ,MAAA,kBAAA,GAAqB,OAAO,MAAO,CAAA;AAAA,EAC9C,YAAY,MAAO,CAAA,MAAA;AAAA,EACnB,UAAU,MAAO,CAAA;AACnB,CAAC;AAGY,MAAA,gBAAA,GAAmB,OAAO,MAAO,CAAA;AAAA,EAC5C,GAAG,IAAK,CAAA,MAAA;AAAA,EACR,eAAA,EAAiB,OAAO,MAAO,CAAA;AAAA,IAC7B,KAAA,EAAO,MAAO,CAAA,KAAA,CAAM,kBAAkB;AAAA,GACvC;AACH,CAAC;AAEY,MAAA,2BAAA,GAA8B,OAAO,MAAO,CAAA;AAAA,EACvD,QAAU,EAAA,MAAA,CAAO,QAAS,CAAA,MAAA,CAAO,MAAM,CAAA;AAAA,EACvC,YAAY,MAAO,CAAA,QAAA;AAAA,IACjB,OAAO,MAAO,CAAA;AAAA,MACZ,KAAK,MAAO,CAAA,MAAA;AAAA,MACZ,KAAO,EAAA,MAAA,CAAO,MAAO,CAAA,MAAA,CAAO,MAAM;AAAA,KACnC;AAAA,GACH;AAAA,EACA,cAAc,MAAO,CAAA,QAAA,CAAS,OAAO,MAAO,CAAA,QAAA,CAAS,EAAE,CAAC;AAC1D,CAAC,CAAA,CAAE,KAAK,SAAS;AAEJ,MAAA,cAAA,GAAiB,OAAO,MAAO,CAAA;AAAA,EAC1C,YAAY,MAAO,CAAA,MAAA;AAAA,EACnB,YAAY,MAAO,CAAA,MAAA;AAAA,EACnB,IAAI,MAAO,CAAA,MAAA;AAAA,EACX,OAAO,MAAO,CAAA,MAAA;AAAA,EACd,OAAO,MAAO,CAAA,MAAA;AAAA,EACd,mBAAmB,MAAO,CAAA,MAAA;AAAA,EAC1B,UAAU,MAAO,CAAA,MAAA;AAAA,EACjB,OAAO,MAAO,CAAA,MAAA;AAAA,EACd,eAAe,MAAO,CAAA,MAAA;AAAA,EACtB,eAAe,MAAO,CAAA,MAAA;AAAA,EACtB,QAAQ,MAAO,CAAA,MAAA;AAAA,EACf,cAAc,MAAO,CAAA,MAAA;AAAA,EACrB,KAAK,MAAO,CAAA,MAAA;AAAA,EACZ,KAAK,MAAO,CAAA,MAAA;AAAA,EACZ,4BAA4B,MAAO,CAAA,MAAA;AAAA,EACnC,4BAA4B,MAAO,CAAA,MAAA;AAAA,EACnC,UAAU,MAAO,CAAA;AACnB,CAAC;AAGM,MAAM,kBAAkB,MAAO,CAAA,KAAA;AAAA,EACpC,MAAA,CAAO,OAAO,2BAA2B,CAAA;AAAA,IACvC,OAAO,MAAO,CAAA;AAAA,MACZ,IAAI,MAAO,CAAA;AAAA,KACZ;AAAA,GACH;AAAA,EACA,MAAA,CAAO,OAAO,2BAA2B,CAAA;AAAA,IACvC,OAAO,MAAO,CAAA;AAAA,MACZ,MAAM,MAAO,CAAA;AAAA,KACd;AAAA;AAEL;AAGa,MAAA,gBAAA,GAAmB,OAAO,MAAO,CAAA;AAAA,EAC5C,GAAG,IAAK,CAAA,MAAA;AAAA,EACR,WAAA,EAAa,MAAO,CAAA,KAAA,CAAM,cAAc,CAAA;AAAA,EACxC,aAAA,EAAe,MAAO,CAAA,KAAA,CAAM,cAAc;AAC5C,CAAC;AAGY,MAAA,cAAA,GAAiB,KAAK,QAAS,CAAA;AAG/B,MAAA,YAAA,GAAe,KAAK,QAAS,CAAA;AAKnC,MAAM,2BAA2B,MAAO,CAAA,OAAA;AAAA,EAC7C,MAAA,CAAO,KAAM,CAAA,MAAA,CAAO,cAAc;AACpC","file":"schema.js","sourcesContent":["import * as Schema from \"effect/Schema\";\nimport { Resource, Ajax } from \"@brytdesigns/shopify-utils/effect\";\n\nexport type BaseAttributes = Schema.Schema.Type<typeof BaseAttributes>;\nexport const BaseAttributes = Schema.Record({\n key: Schema.String,\n value: Schema.Union(\n Schema.Null,\n Schema.String,\n Schema.Boolean,\n Schema.Number,\n ),\n});\n\nexport const Attributes = BaseAttributes;\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 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 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.optionalWith(\n Schema.transform(DiscountCodeInput, DiscountCodeTransformed, {\n decode: (input) => input.join(\",\"),\n encode: (input) => input.split(\",\"),\n }),\n {\n default: () => \"\",\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"]}
@@ -0,0 +1,106 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import * as Schema from 'effect/Schema';
3
+ import * as Function from 'effect/Function';
4
+ import * as HttpClient from '@effect/platform/HttpClient';
5
+ import * as HttpClientResponse from '@effect/platform/HttpClientResponse';
6
+ import * as HttpClientRequest from '@effect/platform/HttpClientRequest';
7
+ import * as FetchHttpClient from '@effect/platform/FetchHttpClient';
8
+ import { Ajax } from '@brytdesigns/shopify-utils/effect';
9
+ import * as LoggerUtils from '../logger/LoggerUtils.js';
10
+ import { InvalidAjaxMethodError } from '../errors.js';
11
+ import { AjaxClientResponse } from '../data/index.js';
12
+
13
+ Schema.Struct({});
14
+ const Default = FetchHttpClient.layer;
15
+ const makeFactory = ({
16
+ inputSchema,
17
+ routeName,
18
+ method,
19
+ outputSchema
20
+ }) => (input) => Effect.gen(function* () {
21
+ const client = yield* HttpClient.HttpClient;
22
+ const decodedInput = yield* Schema.decodeUnknown(inputSchema)(
23
+ input || {}
24
+ );
25
+ const routes = Ajax.Window.ShopifyRoutes.make();
26
+ const route = routes[routeName];
27
+ const url = `${window.location.origin}${route}`;
28
+ let request;
29
+ if (method === "post") {
30
+ request = yield* HttpClientRequest.post(url, {
31
+ acceptJson: true
32
+ }).pipe(HttpClientRequest.bodyJson(decodedInput));
33
+ } else if (method === "get") {
34
+ request = HttpClientRequest.get(url, {
35
+ acceptJson: true
36
+ }).pipe(HttpClientRequest.setUrlParams(decodedInput));
37
+ } else {
38
+ return yield* Effect.fail(new InvalidAjaxMethodError());
39
+ }
40
+ const response = yield* client.execute(request);
41
+ if (response.status !== 200) {
42
+ const data = yield* response.json;
43
+ return AjaxClientResponse.make({
44
+ error: {
45
+ description: data.description,
46
+ status: data.status,
47
+ message: data.message
48
+ }
49
+ });
50
+ }
51
+ if (decodedInput.sections) {
52
+ const output2 = outputSchema.pipe(
53
+ Schema.extend(
54
+ Schema.Struct({
55
+ sections: Ajax.Sections.makeResponseSchema(decodedInput.sections)
56
+ })
57
+ )
58
+ );
59
+ const json2 = yield* Function.pipe(
60
+ response,
61
+ HttpClientResponse.schemaBodyJson(output2)
62
+ );
63
+ const clientResponse2 = AjaxClientResponse.make({
64
+ data: json2
65
+ });
66
+ yield* Effect.annotateLogsScoped({
67
+ method,
68
+ route,
69
+ input: decodedInput,
70
+ output: clientResponse2
71
+ });
72
+ yield* Effect.logInfo("Request");
73
+ return clientResponse2;
74
+ }
75
+ const output = outputSchema.pipe(
76
+ Schema.extend(
77
+ Schema.Struct({
78
+ sections: Schema.optionalWith(Schema.Null, { default: () => null })
79
+ })
80
+ )
81
+ );
82
+ const json = yield* Function.pipe(
83
+ response,
84
+ HttpClientResponse.schemaBodyJson(output)
85
+ );
86
+ const clientResponse = AjaxClientResponse.make({
87
+ data: json
88
+ });
89
+ yield* Effect.annotateLogsScoped({
90
+ method,
91
+ route,
92
+ input: decodedInput,
93
+ output: clientResponse
94
+ });
95
+ yield* Effect.logInfo("Request");
96
+ return clientResponse;
97
+ }).pipe(
98
+ Effect.scoped,
99
+ LoggerUtils.withNamespacedLogSpan(
100
+ routeName.replace("_url", "").replace("_", ":")
101
+ )
102
+ );
103
+
104
+ export { Default, makeFactory };
105
+ //# sourceMappingURL=AjaxRequest.js.map
106
+ //# sourceMappingURL=AjaxRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/effect/services/AjaxRequest.ts"],"names":["output","json","clientResponse"],"mappings":"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","file":"AjaxRequest.js","sourcesContent":["import * as Effect from \"effect/Effect\";\nimport * as Schema from \"effect/Schema\";\nimport * as Function from \"effect/Function\";\nimport * as HttpClient from \"@effect/platform/HttpClient\";\nimport * as HttpClientResponse from \"@effect/platform/HttpClientResponse\";\nimport * as HttpClientRequest from \"@effect/platform/HttpClientRequest\";\nimport * as FetchHttpClient from \"@effect/platform/FetchHttpClient\";\n\nimport { Ajax } from \"@brytdesigns/shopify-utils/effect\";\n\nimport * as LoggerUtils from \"../logger/LoggerUtils.js\";\nimport { type CartError, InvalidAjaxMethodError } from \"../errors.js\";\nimport { AjaxClientResponse } from \"../data/index.js\";\n\nconst BaseOutputSchema = Schema.Struct({});\n\nexport const Default = FetchHttpClient.layer;\n\nexport const makeFactory =\n <\n A extends typeof Ajax.Sections.Input.Type,\n I,\n R,\n B extends typeof BaseOutputSchema.Type,\n J,\n S,\n >({\n inputSchema,\n routeName,\n method,\n outputSchema,\n }: {\n method: keyof Pick<typeof HttpClientRequest, \"post\" | \"get\">;\n routeName: keyof Pick<\n Ajax.Window.ShopifyRoutes.ShopifyRoutes,\n | \"cart_add_url\"\n | \"cart_update_url\"\n | \"cart_url\"\n | \"cart_change_url\"\n | \"cart_clear_url\"\n >;\n inputSchema: Schema.Schema<A, I, R>;\n outputSchema: Schema.Schema<B, J, S>;\n }) =>\n (input?: Schema.Schema<A, I, R>[\"Encoded\"]) =>\n Effect.gen(function* () {\n const client = yield* HttpClient.HttpClient;\n const decodedInput = yield* Schema.decodeUnknown(inputSchema)(\n input || {}\n );\n const routes = Ajax.Window.ShopifyRoutes.make();\n const route = routes[routeName];\n const url = `${window.location.origin}${route}`;\n\n let request: HttpClientRequest.HttpClientRequest;\n\n if (method === \"post\") {\n request = yield* HttpClientRequest.post(url, {\n acceptJson: true,\n }).pipe(HttpClientRequest.bodyJson(decodedInput));\n } else if (method === \"get\") {\n request = HttpClientRequest.get(url, {\n acceptJson: true,\n }).pipe(HttpClientRequest.setUrlParams(decodedInput));\n } else {\n return yield* Effect.fail(new InvalidAjaxMethodError());\n }\n\n const response = yield* client.execute(request);\n\n if (response.status !== 200) {\n const data = (yield* response.json) as CartError;\n return AjaxClientResponse.make({\n error: {\n description: data.description,\n status: data.status,\n message: data.message,\n },\n });\n }\n\n if (decodedInput.sections) {\n const output = outputSchema.pipe(\n Schema.extend(\n Schema.Struct({\n sections: Ajax.Sections.makeResponseSchema(decodedInput.sections),\n })\n )\n );\n\n const json = yield* Function.pipe(\n response,\n HttpClientResponse.schemaBodyJson(output)\n );\n\n const clientResponse = AjaxClientResponse.make({\n data: json,\n });\n\n yield* Effect.annotateLogsScoped({\n method,\n route,\n input: decodedInput,\n output: clientResponse,\n });\n\n yield* Effect.logInfo(\"Request\");\n\n return clientResponse;\n }\n\n const output = outputSchema.pipe(\n Schema.extend(\n Schema.Struct({\n sections: Schema.optionalWith(Schema.Null, { default: () => null }),\n })\n )\n );\n\n const json = yield* Function.pipe(\n response,\n HttpClientResponse.schemaBodyJson(output)\n );\n\n const clientResponse = AjaxClientResponse.make({\n data: json,\n });\n\n yield* Effect.annotateLogsScoped({\n method,\n route,\n input: decodedInput,\n output: clientResponse,\n });\n\n yield* Effect.logInfo(\"Request\");\n\n return clientResponse;\n }).pipe(\n Effect.scoped,\n LoggerUtils.withNamespacedLogSpan(\n routeName.replace(\"_url\", \"\").replace(\"_\", \":\")\n )\n );\n"]}
@@ -0,0 +1,13 @@
1
+ import { CartAddOutput, CartAddInput } from '../schema.js';
2
+ import * as AjaxRequest from '../services/AjaxRequest.js';
3
+
4
+ const make = AjaxRequest.makeFactory({
5
+ routeName: "cart_add_url",
6
+ method: "post",
7
+ inputSchema: CartAddInput,
8
+ outputSchema: CartAddOutput
9
+ });
10
+
11
+ export { make };
12
+ //# sourceMappingURL=CartAdd.js.map
13
+ //# sourceMappingURL=CartAdd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/effect/api/CartAdd.ts"],"names":[],"mappings":";;;AAMa,MAAA,IAAA,GAAO,YAAY,WAAY,CAAA;AAAA,EAC1C,SAAW,EAAA,cAAA;AAAA,EACX,MAAQ,EAAA,MAAA;AAAA,EACR,WAAa,EAAA,YAAA;AAAA,EACb,YAAc,EAAA;AAChB,CAAC","file":"CartAdd.js","sourcesContent":["import { CartAddInput, CartAddOutput } from \"../schema.js\";\n\nimport * as AjaxRequest from \"../services/AjaxRequest.js\";\n\nexport type AddInput = CartAddInput;\n\nexport const make = AjaxRequest.makeFactory({\n routeName: \"cart_add_url\",\n method: \"post\",\n inputSchema: CartAddInput,\n outputSchema: CartAddOutput,\n});\n"]}
@@ -0,0 +1,13 @@
1
+ import { CartChangeOutput, CartChangeInput } from '../schema.js';
2
+ import * as AjaxRequest from '../services/AjaxRequest.js';
3
+
4
+ const make = AjaxRequest.makeFactory({
5
+ routeName: "cart_change_url",
6
+ method: "post",
7
+ inputSchema: CartChangeInput,
8
+ outputSchema: CartChangeOutput
9
+ });
10
+
11
+ export { make };
12
+ //# sourceMappingURL=CartChange.js.map
13
+ //# sourceMappingURL=CartChange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/effect/api/CartChange.ts"],"names":[],"mappings":";;;AAMa,MAAA,IAAA,GAAO,YAAY,WAAY,CAAA;AAAA,EAC1C,SAAW,EAAA,iBAAA;AAAA,EACX,MAAQ,EAAA,MAAA;AAAA,EACR,WAAa,EAAA,eAAA;AAAA,EACb,YAAc,EAAA;AAChB,CAAC","file":"CartChange.js","sourcesContent":["import { CartChangeInput, CartChangeOutput } from \"../schema.js\";\n\nimport * as AjaxRequest from \"../services/AjaxRequest.js\";\n\nexport type ChangeInput = CartChangeInput;\n\nexport const make = AjaxRequest.makeFactory({\n routeName: \"cart_change_url\",\n method: \"post\",\n inputSchema: CartChangeInput,\n outputSchema: CartChangeOutput,\n});\n"]}
@@ -0,0 +1,13 @@
1
+ import { Cart, CartClearInput } from '../schema.js';
2
+ import * as AjaxRequest from '../services/AjaxRequest.js';
3
+
4
+ const make = AjaxRequest.makeFactory({
5
+ routeName: "cart_clear_url",
6
+ method: "post",
7
+ inputSchema: CartClearInput,
8
+ outputSchema: Cart
9
+ });
10
+
11
+ export { make };
12
+ //# sourceMappingURL=CartClear.js.map
13
+ //# sourceMappingURL=CartClear.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/effect/api/CartClear.ts"],"names":[],"mappings":";;;AAMa,MAAA,IAAA,GAAO,YAAY,WAAY,CAAA;AAAA,EAC1C,SAAW,EAAA,gBAAA;AAAA,EACX,MAAQ,EAAA,MAAA;AAAA,EACR,WAAa,EAAA,cAAA;AAAA,EACb,YAAc,EAAA;AAChB,CAAC","file":"CartClear.js","sourcesContent":["import { Cart, CartClearInput } from \"../schema.js\";\n\nimport * as AjaxRequest from \"../services/AjaxRequest.js\";\n\nexport type ClearInput = CartClearInput;\n\nexport const make = AjaxRequest.makeFactory({\n routeName: \"cart_clear_url\",\n method: \"post\",\n inputSchema: CartClearInput,\n outputSchema: Cart,\n});\n"]}
@@ -0,0 +1,13 @@
1
+ import { Cart, CartGetInput } from '../schema.js';
2
+ import * as AjaxRequest from '../services/AjaxRequest.js';
3
+
4
+ const make = AjaxRequest.makeFactory({
5
+ routeName: "cart_url",
6
+ method: "get",
7
+ inputSchema: CartGetInput,
8
+ outputSchema: Cart
9
+ });
10
+
11
+ export { make };
12
+ //# sourceMappingURL=CartGet.js.map
13
+ //# sourceMappingURL=CartGet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/effect/api/CartGet.ts"],"names":[],"mappings":";;;AAMa,MAAA,IAAA,GAAO,YAAY,WAAY,CAAA;AAAA,EAC1C,SAAW,EAAA,UAAA;AAAA,EACX,MAAQ,EAAA,KAAA;AAAA,EACR,WAAa,EAAA,YAAA;AAAA,EACb,YAAc,EAAA;AAChB,CAAC","file":"CartGet.js","sourcesContent":["import { Cart, CartGetInput } from \"../schema.js\";\n\nimport * as AjaxRequest from \"../services/AjaxRequest.js\";\n\nexport type GetInput = CartGetInput;\n\nexport const make = AjaxRequest.makeFactory({\n routeName: \"cart_url\",\n method: \"get\",\n inputSchema: CartGetInput,\n outputSchema: Cart,\n});\n"]}
@@ -0,0 +1,13 @@
1
+ import { CartUpdateOutput, CartUpdateInput } from '../schema.js';
2
+ import * as AjaxRequest from '../services/AjaxRequest.js';
3
+
4
+ const make = AjaxRequest.makeFactory({
5
+ routeName: "cart_update_url",
6
+ method: "post",
7
+ inputSchema: CartUpdateInput,
8
+ outputSchema: CartUpdateOutput
9
+ });
10
+
11
+ export { make };
12
+ //# sourceMappingURL=CartUpdate.js.map
13
+ //# sourceMappingURL=CartUpdate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/effect/api/CartUpdate.ts"],"names":[],"mappings":";;;AAMa,MAAA,IAAA,GAAO,YAAY,WAAY,CAAA;AAAA,EAC1C,SAAW,EAAA,iBAAA;AAAA,EACX,MAAQ,EAAA,MAAA;AAAA,EACR,WAAa,EAAA,eAAA;AAAA,EACb,YAAc,EAAA;AAChB,CAAC","file":"CartUpdate.js","sourcesContent":["import { CartUpdateInput, CartUpdateOutput } from \"../schema.js\";\n\nimport * as AjaxRequest from \"../services/AjaxRequest.js\";\n\nexport type UpdateInput = CartUpdateInput;\n\nexport const make = AjaxRequest.makeFactory({\n routeName: \"cart_update_url\",\n method: \"post\",\n inputSchema: CartUpdateInput,\n outputSchema: CartUpdateOutput,\n});\n"]}
@@ -0,0 +1,9 @@
1
+ import * as Data from 'effect/Data';
2
+
3
+ class AjaxClientResponse extends Data.Class {
4
+ }
5
+ const make = (data) => Data.case()(data);
6
+
7
+ export { AjaxClientResponse, make };
8
+ //# sourceMappingURL=AjaxClientResponse.js.map
9
+ //# sourceMappingURL=AjaxClientResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/effect/data/AjaxClientResponse.ts"],"names":[],"mappings":";;AAWO,MAAM,kBAAA,SAAwC,KAAK,KAExD,CAAA;AAAC;AAEI,MAAM,OAAO,CAClB,IAAA,KACG,IAAK,CAAA,IAAA,GAAkC,IAAI","file":"AjaxClientResponse.js","sourcesContent":["import * as Data from \"effect/Data\";\n\ninterface IAjaxClientResponse<TData = any> {\n data?: TData;\n error?: {\n status: number;\n message: string;\n description?: string;\n };\n}\n\nexport class AjaxClientResponse<TData = any> extends Data.Class<\n IAjaxClientResponse<TData>\n> {}\n\nexport const make = <TData = undefined>(\n data: Parameters<ReturnType<typeof Data.case<AjaxClientResponse<TData>>>>[0]\n) => Data.case<AjaxClientResponse<TData>>()(data);\n"]}
@@ -0,0 +1,4 @@
1
+ import * as AjaxClientResponse_js from './AjaxClientResponse.js';
2
+ export { AjaxClientResponse_js as AjaxClientResponse };
3
+ //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
@@ -0,0 +1,17 @@
1
+ import * as Data from 'effect/Data';
2
+
3
+ class CartError extends Data.TaggedError(
4
+ "@brytdesigns/hybrid-cart-client/CartError"
5
+ ) {
6
+ }
7
+ class InvalidAjaxMethodError extends Data.TaggedError(
8
+ "@brytdesigns/hybrid-cart-client/InvalidAjaxMethodError"
9
+ ) {
10
+ constructor() {
11
+ super({ message: "Invalid HTTP method | Allowed: 'get' or 'post'" });
12
+ }
13
+ }
14
+
15
+ export { CartError, InvalidAjaxMethodError };
16
+ //# sourceMappingURL=errors.js.map
17
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/effect/errors.ts"],"names":[],"mappings":";;AAMO,MAAM,kBAAkB,IAAK,CAAA,WAAA;AAAA,EAClC;AACF,CAIG,CAAA;AAAE;AAME,MAAM,+BAA+B,IAAK,CAAA,WAAA;AAAA,EAC/C;AACF,CAEG,CAAA;AAAA,EACD,WAAc,GAAA;AACZ,IAAM,KAAA,CAAA,EAAE,OAAS,EAAA,gDAAA,EAAkD,CAAA;AAAA;AAEvE","file":"errors.js","sourcesContent":["import * as Data from \"effect/Data\";\n\n/**\n * @internal\n *\n */\nexport class CartError extends Data.TaggedError(\n \"@brytdesigns/hybrid-cart-client/CartError\",\n)<{\n status: number;\n message: string;\n description: string;\n}> { }\n\n/**\n * @internal\n *\n */\nexport class InvalidAjaxMethodError extends Data.TaggedError(\n \"@brytdesigns/hybrid-cart-client/InvalidAjaxMethodError\",\n)<{\n message: string;\n}> {\n constructor() {\n super({ message: \"Invalid HTTP method | Allowed: 'get' or 'post'\" });\n }\n}\n"]}