@brytdesigns/shopify-ajax-cart-api 1.0.20 → 1.0.21

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.
@@ -1,8 +1,8 @@
1
1
  import * as Schema from 'effect/Schema';
2
2
  import * as Array from 'effect/Array';
3
3
  import * as Record from 'effect/Record';
4
- import * as Effect from 'effect/Effect';
5
- import * as ParseResult from 'effect/ParseResult';
4
+ import 'effect/Effect';
5
+ import 'effect/ParseResult';
6
6
  import { Resource, Ajax } from '@brytdesigns/shopify-utils/effect';
7
7
  import { pipe, identity } from 'effect';
8
8
 
@@ -189,55 +189,9 @@ const UnitPriceMeasurement = Schema.Struct({
189
189
  reference_unit: Schema.String,
190
190
  reference_value: Schema.Number
191
191
  });
192
- const VariantQuantityRule = Schema.Struct({
193
- min: Schema.NullOr(Schema.Number),
194
- max: Schema.NullOr(Schema.Number),
195
- increment: Schema.Number
196
- });
197
192
  const VariantOptions = Schema.optionalWith(Schema.Array(Schema.String), {
198
193
  default: () => []
199
194
  });
200
- const BaseVariant = Schema.Struct({
201
- id: Resource.ID,
202
- title: Schema.String,
203
- options: VariantOptions,
204
- quantity_rule: VariantQuantityRule
205
- });
206
- const ProductOption = Schema.Struct({
207
- name: Schema.String,
208
- position: Schema.Number,
209
- values: Schema.Array(Schema.String)
210
- });
211
- const BaseProduct = Schema.Struct({
212
- id: Resource.ID,
213
- title: Schema.String,
214
- handle: Schema.String,
215
- variants: Schema.Array(BaseVariant),
216
- options: Schema.Array(ProductOption),
217
- tags: Schema.Array(Schema.String)
218
- });
219
- const get = (url) => Effect.tryPromise({
220
- try: () => fetch(url).then((res) => {
221
- if (res.ok) {
222
- return res.json();
223
- }
224
- throw new Error(String(res.status));
225
- }),
226
- catch: (e) => new Error(String(e))
227
- });
228
- const cachedGet = (url) => Effect.gen(function* () {
229
- const cache = yield* Effect.cachedWithTTL(get(url), "60 minutes");
230
- return yield* cache;
231
- });
232
- const Product = Schema.transformOrFail(Schema.String, BaseProduct, {
233
- decode(handle, _, ast) {
234
- return Effect.mapBoth(cachedGet(`/products/${handle}.js`), {
235
- onFailure: (e) => new ParseResult.Type(ast, handle, e.message),
236
- onSuccess: (product) => product
237
- });
238
- },
239
- encode: (product) => ParseResult.succeed(product.handle)
240
- });
241
195
  const BaseLineItem = Schema.Struct({
242
196
  id: Resource.ID,
243
197
  properties: BaseAttributes,
@@ -288,7 +242,6 @@ const LineItem = Schema.transform(
288
242
  Schema.extend(
289
243
  BaseLineItem,
290
244
  Schema.Struct({
291
- product: Product,
292
245
  properties_array: Schema.optionalWith(BaseAttributesArray, {
293
246
  default: () => []
294
247
  }),
@@ -312,7 +265,6 @@ const LineItem = Schema.transform(
312
265
  {
313
266
  decode: (lineItem) => ({
314
267
  ...lineItem,
315
- product: lineItem.handle,
316
268
  properties_array: lineItem.properties,
317
269
  private_properties: lineItem.properties,
318
270
  private_properties_array: lineItem.properties,
@@ -324,8 +276,7 @@ const LineItem = Schema.transform(
324
276
  Record.remove("private_properties"),
325
277
  Record.remove("private_properties_array"),
326
278
  Record.remove("public_properties"),
327
- Record.remove("public_properties_array"),
328
- Record.remove("product")
279
+ Record.remove("public_properties_array")
329
280
  )
330
281
  }
331
282
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/effect/schema.ts"],"names":[],"mappings":"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","file":"schema.js","sourcesContent":["import * as Schema from \"effect/Schema\";\nimport * as Array from \"effect/Array\";\nimport * as Record from \"effect/Record\";\nimport * as Effect from \"effect/Effect\";\nimport * as ParseResult from \"effect/ParseResult\";\nimport { Resource, Ajax } from \"@brytdesigns/shopify-utils/effect\";\nimport { pipe, identity } from \"effect\";\n\ntype BaseAttributeValue = Schema.Schema.Type<typeof BaseAttributeValue>;\nconst BaseAttributeValue = Schema.Union(\n Schema.Null,\n Schema.String,\n Schema.Boolean,\n Schema.Number,\n);\n\nconst AttributesArray = Schema.Array(\n Schema.Struct({ key: Schema.String, value: BaseAttributeValue }),\n);\n\nexport type BaseAttributes = Schema.Schema.Type<typeof BaseAttributes>;\nexport const BaseAttributes = Schema.Record({\n key: Schema.String,\n value: BaseAttributeValue,\n});\n\nexport const BaseAttributesArray = Schema.transform(\n BaseAttributes,\n AttributesArray,\n {\n decode: (record) =>\n Record.toEntries(record).map(([key, value]) => ({ key, value })),\n encode: (array) =>\n Record.fromEntries(\n pipe(\n array,\n Array.map(({ key, value }) => [key, value]),\n ),\n ),\n },\n);\n\nconst BasePrivateAttributes = Schema.transform(BaseAttributes, BaseAttributes, {\n decode: Record.filter((value, key) => key.startsWith(\"_\")),\n encode: identity,\n});\n\nconst BasePublicAttributes = Schema.transform(BaseAttributes, BaseAttributes, {\n decode: Record.filter((value, key) => !key.startsWith(\"_\")),\n encode: identity,\n});\n\nconst BasePrivateAttributesArray = Schema.transform(\n BasePrivateAttributes,\n AttributesArray,\n {\n decode: (record) =>\n Record.toEntries(record).map(([key, value]) => ({ key, value })),\n encode: (array) =>\n Record.fromEntries(\n pipe(\n array,\n Array.map(({ key, value }) => [key, value]),\n ),\n ),\n },\n);\n\nconst BasePublicAttributesArray = Schema.transform(\n BasePublicAttributes,\n AttributesArray,\n {\n decode: (record) =>\n Record.toEntries(record).map(([key, value]) => ({ key, value })),\n encode: (array) =>\n Record.fromEntries(\n pipe(\n array,\n Array.map(({ key, value }) => [key, value]),\n ),\n ),\n },\n);\n\nexport const Attributes = Schema.transform(\n BaseAttributes,\n Schema.Struct({\n private: Schema.Struct({\n array: BasePrivateAttributesArray,\n record: BasePrivateAttributes,\n }),\n public: Schema.Struct({\n array: BasePublicAttributesArray,\n record: BasePublicAttributes,\n }),\n }),\n {\n decode: (attributes) => ({\n private: {\n array: attributes,\n record: attributes,\n },\n public: {\n array: attributes,\n record: attributes,\n },\n }),\n encode: (attributes) => ({\n ...attributes.private.record,\n ...attributes.public.record,\n }),\n },\n);\n\nexport type DiscountApplication = Schema.Schema.Type<\n typeof DiscountApplication\n>;\n\nexport const DiscountApplication = Schema.Struct({\n target_selection: Schema.Literal(\"all\", \"entitled\", \"explicit\"),\n target_type: Schema.Literal(\"line_item\", \"shipping_line\"),\n title: Schema.NonEmptyString,\n total_allocated_amount: Schema.Number,\n type: Schema.Literal(\"\", \"automatic\", \"discount_code\", \"manual\", \"script\"),\n value: Schema.Union(Schema.Number, Schema.NumberFromString),\n value_type: Schema.Literal(\"fixed_amount\", \"percentage\"),\n description: Schema.NullOr(Schema.String),\n});\n\nexport const Discount = Schema.Struct({\n amount: Schema.Number,\n title: Schema.String,\n});\n\nexport type CurrencyCode = Schema.Schema.Type<typeof CurrencyCode>;\nexport const CurrencyCode = Schema.String;\n\nexport type Image = Schema.Schema.Type<typeof Image>;\nexport const Image = Schema.Struct({\n aspect_ratio: Schema.Number,\n alt: Schema.String,\n height: Schema.Number,\n url: Schema.String,\n width: Schema.Number,\n});\n\nexport type OptionWithValue = Schema.Schema.Type<typeof OptionWithValue>;\nexport const OptionWithValue = Schema.Struct({\n name: Schema.String,\n value: Schema.String,\n});\n\nexport type QuantityRule = Schema.Schema.Type<typeof QuantityRule>;\nexport const QuantityRule = Schema.Struct({\n min: Schema.Number,\n max: Schema.NullOr(Schema.Number),\n increment: Schema.Number,\n});\n\nexport type SellingPlanAllocationPriceAdjustment = Schema.Schema.Type<\n typeof SellingPlanAllocationPriceAdjustment\n>;\nexport const SellingPlanAllocationPriceAdjustment = Schema.Struct({\n position: Schema.Number,\n price: Schema.Number,\n});\n\nexport const SellingPlanPriceAdjustment = Schema.Struct({\n order_count: Schema.NullOr(Schema.Number),\n position: Schema.Number,\n value: Schema.Union(Schema.Number, Schema.String),\n value_type: Schema.Literal(\"percentage\", \"fixed_amount\", \"price\"),\n});\n\nexport type SellingPlanOption = Schema.Schema.Type<typeof SellingPlanOption>;\nexport const SellingPlanOption = Schema.Struct({\n name: Schema.String,\n position: Schema.Number,\n value: Schema.String,\n});\n\nexport type SellingPlan = Schema.Schema.Type<typeof SellingPlan>;\nexport const SellingPlan = Schema.Struct({\n id: Resource.ID,\n name: Schema.String,\n description: Schema.NullOr(Schema.String),\n options: Schema.Array(SellingPlanOption),\n recurring_deliveries: Schema.optionalWith(Schema.Boolean, {\n default: () => false,\n }),\n fixed_selling_plan: Schema.optionalWith(Schema.Boolean, {\n default: () => false,\n }),\n price_adjustments: Schema.Array(SellingPlanPriceAdjustment),\n});\n\nexport type SellingPlanAllocation = Schema.Schema.Type<\n typeof SellingPlanAllocation\n>;\nexport const SellingPlanAllocation = Schema.Struct({\n price_adjustments: Schema.Array(SellingPlanAllocationPriceAdjustment),\n price: Schema.Number,\n compare_at_price: Schema.Number,\n per_delivery_price: Schema.Number,\n selling_plan: SellingPlan,\n});\n\nexport type LineLevelDiscountAllocation = Schema.Schema.Type<\n typeof LineLevelDiscountAllocation\n>;\nexport const LineLevelDiscountAllocation = Schema.Struct({\n amount: Schema.Number,\n discount_application: DiscountApplication,\n});\n\nconst CartLevelDiscountApplicationUpdate = Schema.transform(\n Schema.Struct({\n discount_application: DiscountApplication,\n }),\n DiscountApplication,\n {\n decode: (application) => application.discount_application,\n encode: (discountApplication) => ({\n discount_application: discountApplication,\n }),\n strict: false,\n },\n);\n\nexport const CartLevelDiscountApplication = Schema.Union(\n DiscountApplication,\n CartLevelDiscountApplicationUpdate,\n);\n\nexport type UnitPriceMeasurement = Schema.Schema.Type<\n typeof UnitPriceMeasurement\n>;\nexport const UnitPriceMeasurement = Schema.Struct({\n measured_type: Schema.Literal(\"volume\", \"weight\", \"dimension\"),\n quantity_unit: Schema.String,\n quantity_value: Schema.Number,\n reference_unit: Schema.String,\n reference_value: Schema.Number,\n});\n\nconst VariantQuantityRule = Schema.Struct({\n min: Schema.NullOr(Schema.Number),\n max: Schema.NullOr(Schema.Number),\n increment: Schema.Number,\n});\n\nconst VariantOptions = Schema.optionalWith(Schema.Array(Schema.String), {\n default: () => [],\n});\n\nconst BaseVariant = Schema.Struct({\n id: Resource.ID,\n title: Schema.String,\n options: VariantOptions,\n quantity_rule: VariantQuantityRule,\n});\n\nconst ProductOption = Schema.Struct({\n name: Schema.String,\n position: Schema.Number,\n values: Schema.Array(Schema.String),\n});\n\ntype BaseProduct = Schema.Schema.Type<typeof BaseProduct>;\nconst BaseProduct = Schema.Struct({\n id: Resource.ID,\n title: Schema.String,\n handle: Schema.String,\n variants: Schema.Array(BaseVariant),\n options: Schema.Array(ProductOption),\n tags: Schema.Array(Schema.String),\n});\n\nconst get = (url: string): Effect.Effect<unknown, Error> =>\n Effect.tryPromise({\n try: () =>\n fetch(url).then((res) => {\n if (res.ok) {\n return res.json() as Promise<unknown>;\n }\n throw new Error(String(res.status));\n }),\n catch: (e) => new Error(String(e)),\n });\n\nconst cachedGet = (url: string) =>\n Effect.gen(function* () {\n const cache = yield* Effect.cachedWithTTL(get(url), \"60 minutes\");\n return yield* cache;\n });\n\nconst Product = Schema.transformOrFail(Schema.String, BaseProduct, {\n decode(handle, _, ast) {\n return Effect.mapBoth(cachedGet(`/products/${handle}.js`), {\n onFailure: (e) => new ParseResult.Type(ast, handle, e.message),\n onSuccess: (product) => product as BaseProduct,\n });\n },\n encode: (product) => ParseResult.succeed(product.handle),\n});\n\nexport type BaseLineItem = Schema.Schema.Type<typeof BaseLineItem>;\nconst BaseLineItem = Schema.Struct({\n id: Resource.ID,\n properties: BaseAttributes,\n quantity: Schema.Number,\n variant_id: Resource.ID,\n key: Schema.String,\n title: Schema.String,\n price: Schema.Number,\n original_price: Schema.Number,\n discounted_price: Schema.Number,\n line_price: Schema.Number,\n original_line_price: Schema.Number,\n total_discount: Schema.Number,\n discounts: Schema.optionalWith(Schema.Array(Discount), { default: () => [] }),\n sku: Schema.NullOr(Schema.String),\n grams: Schema.Number,\n vendor: Schema.String,\n taxable: Schema.Boolean,\n product_id: Resource.ID,\n product_has_only_default_variant: Schema.Boolean,\n gift_card: Schema.Boolean,\n final_line_price: Schema.Number,\n final_price: Schema.Number,\n url: Schema.String,\n featured_image: Schema.optional(Image),\n image: Schema.String,\n handle: Schema.String,\n requires_shipping: Schema.Boolean,\n product_type: Schema.NullOr(Schema.String),\n product_title: Schema.String,\n product_description: Schema.NullOr(Schema.String),\n variant_title: Schema.NullOr(Schema.String),\n variant_options: VariantOptions,\n options_with_values: Schema.Array(OptionWithValue),\n line_level_discount_allocations: Schema.Array(LineLevelDiscountAllocation),\n line_level_total_discount: Schema.Number,\n quantity_rule: Schema.optional(QuantityRule),\n has_components: Schema.optionalWith(Schema.Boolean, { default: () => false }),\n unit_price: Schema.optional(Schema.Number),\n unit_price_measurement: Schema.optional(UnitPriceMeasurement),\n selling_plan_allocation: Schema.optionalWith(\n Schema.NullOr(SellingPlanAllocation),\n { default: () => null },\n ),\n});\n\nexport type LineItem = Schema.Schema.Type<typeof LineItem>;\nexport const LineItem = Schema.transform(\n BaseLineItem,\n Schema.extend(\n BaseLineItem,\n Schema.Struct({\n product: Product,\n properties_array: Schema.optionalWith(BaseAttributesArray, {\n default: () => [],\n }),\n private_properties: Schema.optionalWith(BasePrivateAttributes, {\n default: () => ({}),\n }),\n private_properties_array: Schema.optionalWith(\n BasePrivateAttributesArray,\n {\n default: () => [],\n },\n ),\n public_properties: Schema.optionalWith(BasePublicAttributes, {\n default: () => ({}),\n }),\n public_properties_array: Schema.optionalWith(BasePublicAttributesArray, {\n default: () => [],\n }),\n }),\n ),\n {\n decode: (lineItem) => ({\n ...lineItem,\n product: lineItem.handle,\n properties_array: lineItem.properties,\n private_properties: lineItem.properties,\n private_properties_array: lineItem.properties,\n public_properties: lineItem.properties,\n public_properties_array: lineItem.properties,\n }),\n encode: (lineItem) =>\n pipe(\n Record.remove(\"properties_array\")(lineItem),\n Record.remove(\"private_properties\"),\n Record.remove(\"private_properties_array\"),\n Record.remove(\"public_properties\"),\n Record.remove(\"public_properties_array\"),\n Record.remove(\"product\"),\n ) as BaseLineItem,\n },\n);\n\ntype BaseCart = Schema.Schema.Type<typeof BaseCart>;\nexport const BaseCart = Schema.Struct({\n token: Schema.String,\n note: Schema.NullOr(Schema.String),\n attributes: BaseAttributes,\n discounts: Schema.optionalWith(Schema.Array(Discount), { default: () => [] }),\n discount_codes: Schema.optionalWith(\n Schema.Array(\n Schema.Struct({ code: Schema.String, applicable: Schema.Boolean }),\n ),\n { default: () => [] },\n ),\n original_total_price: Schema.Number,\n total_price: Schema.Number,\n total_discount: Schema.Number,\n total_weight: Schema.Number,\n item_count: Schema.Number,\n items: Schema.Array(LineItem).annotations({ concurrency: \"unbounded\" }),\n requires_shipping: Schema.Boolean,\n currency: CurrencyCode,\n items_subtotal_price: Schema.Number,\n cart_level_discount_applications: Schema.Array(CartLevelDiscountApplication),\n});\n\ntype Cart = Schema.Schema.Type<typeof Cart>;\nexport const Cart = Schema.extend(\n BaseCart,\n Schema.Struct({\n attributes_array: Schema.optionalWith(BaseAttributesArray, {\n default: () => [],\n }),\n private_attributes: Schema.optionalWith(BasePrivateAttributes, {\n default: () => ({}),\n }),\n private_attributes_array: Schema.optionalWith(BasePrivateAttributesArray, {\n default: () => [],\n }),\n public_attributes: Schema.optionalWith(BasePublicAttributes, {\n default: () => ({}),\n }),\n public_attributes_array: Schema.optionalWith(BasePublicAttributesArray, {\n default: () => [],\n }),\n }),\n);\n\nexport const makeCartTransformSchema = <\n A extends Schema.Schema.Type<typeof BaseCart>,\n I,\n R,\n>(\n schema: Schema.Schema<A, I, R>,\n) =>\n Schema.transform(schema, Cart, {\n decode: (cart) => ({\n ...cart,\n attributes_array: cart.attributes,\n private_attributes: cart.attributes,\n private_attributes_array: cart.attributes,\n public_attributes: cart.attributes,\n public_attributes_array: cart.attributes,\n }),\n encode: (cart) =>\n pipe(\n Record.remove(\"attributes_array\")(cart),\n Record.remove(\"private_attributes\"),\n Record.remove(\"private_attributes_array\"),\n Record.remove(\"public_attributes\"),\n Record.remove(\"public_attributes_array\"),\n ) as Schema.Schema.Type<Schema.Schema<A, I, R>>,\n });\n\nexport const CartOutput = makeCartTransformSchema(BaseCart);\n\nexport const makeCartSchema = (sections?: string) => {\n if (sections) {\n return makeCartTransformSchema(\n Schema.extend(\n BaseCart,\n Schema.Struct({\n sections: Schema.optionalWith(\n Schema.NullOr(Ajax.Sections.makeResponseSchema(sections)),\n { default: () => null },\n ),\n }),\n ),\n );\n }\n return makeCartTransformSchema(\n Schema.extend(\n BaseCart,\n Schema.Struct({\n sections: Schema.optionalWith(Schema.Null, { default: () => null }),\n }),\n ),\n );\n};\n\nexport type AddItemInput = Schema.Schema.Encoded<typeof AddItemInput>;\nexport const AddItemInput = Schema.Struct({\n id: Resource.ID,\n quantity: Schema.optionalWith(Schema.Number, { default: () => 1 }),\n properties: Schema.optionalWith(BaseAttributes, { default: () => ({}) }),\n selling_plan: Schema.optional(Resource.ID),\n});\n\nexport const BaseInput = Schema.extend(Ajax.Sections.Input);\n\nexport type CartAddInput = Schema.Schema.Encoded<typeof CartAddInput>;\nexport const CartAddInput = Schema.Struct({\n items: Schema.Array(AddItemInput),\n}).pipe(BaseInput);\n\nexport type CartAddOutput = Schema.Schema.Type<typeof CartAddOutput>;\nexport const CartAddOutput = Schema.Struct({\n items: Schema.Array(LineItem),\n});\n\nexport type UpdateItemRecordInput = Schema.Schema.Encoded<\n typeof UpdateItemRecordInput\n>;\nexport const UpdateItemRecordInput = Schema.Record({\n key: Schema.String,\n value: Schema.Number,\n});\n\nconst DiscountCodeInput = Schema.Array(Schema.String);\nconst DiscountCodeTransformed = Schema.String;\n\nexport type CartUpdateInput = Schema.Schema.Encoded<typeof CartUpdateInput>;\nexport const CartUpdateInput = Schema.Struct({\n updates: Schema.optional(\n Schema.Union(UpdateItemRecordInput, Schema.Array(Schema.Number)),\n ),\n note: Schema.optional(Schema.NullOr(Schema.String)),\n attributes: Schema.optional(BaseAttributes),\n discount: Schema.optional(\n Schema.transform(DiscountCodeInput, DiscountCodeTransformed, {\n decode: (input) => input.join(\",\"),\n encode: (input) => input.split(\",\"),\n }),\n ),\n}).pipe(BaseInput);\n\nexport type ItemAddedChangelog = Schema.Schema.Type<typeof ItemAddedChangelog>;\nexport const ItemAddedChangelog = Schema.Struct({\n variant_id: Schema.Number,\n quantity: Schema.Number,\n});\n\nexport type CartUpdateOutput = Schema.Schema.Type<typeof CartUpdateOutput>;\nexport const CartUpdateOutput = makeCartTransformSchema(\n Schema.extend(\n BaseCart,\n Schema.Struct({\n items_changelog: Schema.Struct({\n added: Schema.Array(ItemAddedChangelog),\n }),\n }),\n ),\n);\n\nexport const CartChangeItemOptionalInput = Schema.Struct({\n quantity: Schema.optional(Schema.Number),\n properties: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.NullOr(Schema.String),\n }),\n ),\n selling_plan: Schema.optional(Schema.NullOr(Resource.ID)),\n}).pipe(BaseInput);\n\nexport const LineItemChange = Schema.Struct({\n product_id: Schema.Number,\n variant_id: Schema.Number,\n id: Schema.String,\n image: Schema.String,\n price: Schema.String,\n presentment_price: Schema.Number,\n quantity: Schema.Number,\n title: Schema.String,\n product_title: Schema.String,\n variant_title: Schema.String,\n vendor: Schema.String,\n product_type: Schema.String,\n sku: Schema.String,\n url: Schema.String,\n untranslated_product_title: Schema.String,\n untranslated_variant_title: Schema.String,\n view_key: Schema.String,\n});\n\nexport type CartChangeInput = Schema.Schema.Encoded<typeof CartChangeInput>;\nexport const CartChangeInput = Schema.Union(\n Schema.extend(CartChangeItemOptionalInput)(\n Schema.Struct({\n id: Schema.String,\n }),\n ),\n Schema.extend(CartChangeItemOptionalInput)(\n Schema.Struct({\n line: Schema.Number,\n }),\n ),\n);\n\nexport type CartChangeOutput = Schema.Schema.Type<typeof CartChangeOutput>;\nexport const CartChangeOutput = makeCartTransformSchema(\n Schema.extend(\n BaseCart,\n Schema.Struct({\n items_added: Schema.Array(LineItemChange),\n items_removed: Schema.Array(LineItemChange),\n }),\n ),\n);\n\nexport type CartClearInput = Schema.Schema.Encoded<typeof CartClearInput>;\nexport const CartClearInput = Ajax.Sections.Input;\n\nexport type CartGetInput = Schema.Schema.Encoded<typeof CartClearInput>;\nexport const CartGetInput = Ajax.Sections.Input;\n\nexport type CartUpdateDiscountsInput = Schema.Schema.Encoded<\n typeof CartUpdateDiscountsInput\n>;\nexport const CartUpdateDiscountsInput = Schema.mutable(\n Schema.Array(Schema.NonEmptyString),\n);\n"]}
1
+ {"version":3,"sources":["../../../src/effect/schema.ts"],"names":[],"mappings":";;;;;;;;AASA,MAAM,qBAAqB,MAAO,CAAA,KAAA;AAAA,EAChC,MAAO,CAAA,IAAA;AAAA,EACP,MAAO,CAAA,MAAA;AAAA,EACP,MAAO,CAAA,OAAA;AAAA,EACP,MAAO,CAAA;AACT,CAAA;AAEA,MAAM,kBAAkB,MAAO,CAAA,KAAA;AAAA,EAC7B,MAAA,CAAO,OAAO,EAAE,GAAA,EAAK,OAAO,MAAQ,EAAA,KAAA,EAAO,oBAAoB;AACjE,CAAA;AAGa,MAAA,cAAA,GAAiB,OAAO,MAAO,CAAA;AAAA,EAC1C,KAAK,MAAO,CAAA,MAAA;AAAA,EACZ,KAAO,EAAA;AACT,CAAC;AAEM,MAAM,sBAAsB,MAAO,CAAA,SAAA;AAAA,EACxC,cAAA;AAAA,EACA,eAAA;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,MAAA,KACP,MAAO,CAAA,SAAA,CAAU,MAAM,CAAE,CAAA,GAAA,CAAI,CAAC,CAAC,KAAK,KAAK,CAAA,MAAO,EAAE,GAAA,EAAK,OAAQ,CAAA,CAAA;AAAA,IACjE,MAAA,EAAQ,CAAC,KAAA,KACP,MAAO,CAAA,WAAA;AAAA,MACL,IAAA;AAAA,QACE,KAAA;AAAA,QACA,KAAA,CAAM,GAAI,CAAA,CAAC,EAAE,GAAA,EAAK,OAAY,KAAA,CAAC,GAAK,EAAA,KAAK,CAAC;AAAA;AAC5C;AACF;AAEN;AAEA,MAAM,qBAAwB,GAAA,MAAA,CAAO,SAAU,CAAA,cAAA,EAAgB,cAAgB,EAAA;AAAA,EAC7E,MAAA,EAAQ,OAAO,MAAO,CAAA,CAAC,OAAO,GAAQ,KAAA,GAAA,CAAI,UAAW,CAAA,GAAG,CAAC,CAAA;AAAA,EACzD,MAAQ,EAAA;AACV,CAAC,CAAA;AAED,MAAM,oBAAuB,GAAA,MAAA,CAAO,SAAU,CAAA,cAAA,EAAgB,cAAgB,EAAA;AAAA,EAC5E,MAAA,EAAQ,MAAO,CAAA,MAAA,CAAO,CAAC,KAAA,EAAO,QAAQ,CAAC,GAAA,CAAI,UAAW,CAAA,GAAG,CAAC,CAAA;AAAA,EAC1D,MAAQ,EAAA;AACV,CAAC,CAAA;AAED,MAAM,6BAA6B,MAAO,CAAA,SAAA;AAAA,EACxC,qBAAA;AAAA,EACA,eAAA;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,MAAA,KACP,MAAO,CAAA,SAAA,CAAU,MAAM,CAAE,CAAA,GAAA,CAAI,CAAC,CAAC,KAAK,KAAK,CAAA,MAAO,EAAE,GAAA,EAAK,OAAQ,CAAA,CAAA;AAAA,IACjE,MAAA,EAAQ,CAAC,KAAA,KACP,MAAO,CAAA,WAAA;AAAA,MACL,IAAA;AAAA,QACE,KAAA;AAAA,QACA,KAAA,CAAM,GAAI,CAAA,CAAC,EAAE,GAAA,EAAK,OAAY,KAAA,CAAC,GAAK,EAAA,KAAK,CAAC;AAAA;AAC5C;AACF;AAEN,CAAA;AAEA,MAAM,4BAA4B,MAAO,CAAA,SAAA;AAAA,EACvC,oBAAA;AAAA,EACA,eAAA;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,MAAA,KACP,MAAO,CAAA,SAAA,CAAU,MAAM,CAAE,CAAA,GAAA,CAAI,CAAC,CAAC,KAAK,KAAK,CAAA,MAAO,EAAE,GAAA,EAAK,OAAQ,CAAA,CAAA;AAAA,IACjE,MAAA,EAAQ,CAAC,KAAA,KACP,MAAO,CAAA,WAAA;AAAA,MACL,IAAA;AAAA,QACE,KAAA;AAAA,QACA,KAAA,CAAM,GAAI,CAAA,CAAC,EAAE,GAAA,EAAK,OAAY,KAAA,CAAC,GAAK,EAAA,KAAK,CAAC;AAAA;AAC5C;AACF;AAEN,CAAA;AAEO,MAAM,aAAa,MAAO,CAAA,SAAA;AAAA,EAC/B,cAAA;AAAA,EACA,OAAO,MAAO,CAAA;AAAA,IACZ,OAAA,EAAS,OAAO,MAAO,CAAA;AAAA,MACrB,KAAO,EAAA,0BAAA;AAAA,MACP,MAAQ,EAAA;AAAA,KACT,CAAA;AAAA,IACD,MAAA,EAAQ,OAAO,MAAO,CAAA;AAAA,MACpB,KAAO,EAAA,yBAAA;AAAA,MACP,MAAQ,EAAA;AAAA,KACT;AAAA,GACF,CAAA;AAAA,EACD;AAAA,IACE,MAAA,EAAQ,CAAC,UAAgB,MAAA;AAAA,MACvB,OAAS,EAAA;AAAA,QACP,KAAO,EAAA,UAAA;AAAA,QACP,MAAQ,EAAA;AAAA,OACV;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,KAAO,EAAA,UAAA;AAAA,QACP,MAAQ,EAAA;AAAA;AACV,KACF,CAAA;AAAA,IACA,MAAA,EAAQ,CAAC,UAAgB,MAAA;AAAA,MACvB,GAAG,WAAW,OAAQ,CAAA,MAAA;AAAA,MACtB,GAAG,WAAW,MAAO,CAAA;AAAA,KACvB;AAAA;AAEJ;AAMa,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,KAAA,CAAM,MAAO,CAAA,MAAA,EAAQ,OAAO,MAAM,CAAA;AAAA,EAChD,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;AAED,MAAM,iBAAiB,MAAO,CAAA,YAAA,CAAa,OAAO,KAAM,CAAA,MAAA,CAAO,MAAM,CAAG,EAAA;AAAA,EACtE,OAAA,EAAS,MAAM;AACjB,CAAC,CAAA;AAGD,MAAM,YAAA,GAAe,OAAO,MAAO,CAAA;AAAA,EACjC,IAAI,QAAS,CAAA,EAAA;AAAA,EACb,UAAY,EAAA,cAAA;AAAA,EACZ,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,YAAc,EAAA,MAAA,CAAO,MAAO,CAAA,MAAA,CAAO,MAAM,CAAA;AAAA,EACzC,eAAe,MAAO,CAAA,MAAA;AAAA,EACtB,mBAAqB,EAAA,MAAA,CAAO,MAAO,CAAA,MAAA,CAAO,MAAM,CAAA;AAAA,EAChD,aAAe,EAAA,MAAA,CAAO,MAAO,CAAA,MAAA,CAAO,MAAM,CAAA;AAAA,EAC1C,eAAiB,EAAA,cAAA;AAAA,EACjB,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,CAAA;AAGM,MAAM,WAAW,MAAO,CAAA,SAAA;AAAA,EAC7B,YAAA;AAAA,EACA,MAAO,CAAA,MAAA;AAAA,IACL,YAAA;AAAA,IACA,OAAO,MAAO,CAAA;AAAA,MACZ,gBAAA,EAAkB,MAAO,CAAA,YAAA,CAAa,mBAAqB,EAAA;AAAA,QACzD,OAAA,EAAS,MAAM;AAAC,OACjB,CAAA;AAAA,MACD,kBAAA,EAAoB,MAAO,CAAA,YAAA,CAAa,qBAAuB,EAAA;AAAA,QAC7D,OAAA,EAAS,OAAO,EAAC;AAAA,OAClB,CAAA;AAAA,MACD,0BAA0B,MAAO,CAAA,YAAA;AAAA,QAC/B,0BAAA;AAAA,QACA;AAAA,UACE,OAAA,EAAS,MAAM;AAAC;AAClB,OACF;AAAA,MACA,iBAAA,EAAmB,MAAO,CAAA,YAAA,CAAa,oBAAsB,EAAA;AAAA,QAC3D,OAAA,EAAS,OAAO,EAAC;AAAA,OAClB,CAAA;AAAA,MACD,uBAAA,EAAyB,MAAO,CAAA,YAAA,CAAa,yBAA2B,EAAA;AAAA,QACtE,OAAA,EAAS,MAAM;AAAC,OACjB;AAAA,KACF;AAAA,GACH;AAAA,EACA;AAAA,IACE,MAAA,EAAQ,CAAC,QAAc,MAAA;AAAA,MACrB,GAAG,QAAA;AAAA,MACH,kBAAkB,QAAS,CAAA,UAAA;AAAA,MAC3B,oBAAoB,QAAS,CAAA,UAAA;AAAA,MAC7B,0BAA0B,QAAS,CAAA,UAAA;AAAA,MACnC,mBAAmB,QAAS,CAAA,UAAA;AAAA,MAC5B,yBAAyB,QAAS,CAAA;AAAA,KACpC,CAAA;AAAA,IACA,MAAA,EAAQ,CAAC,QACP,KAAA,IAAA;AAAA,MACE,MAAO,CAAA,MAAA,CAAO,kBAAkB,CAAA,CAAE,QAAQ,CAAA;AAAA,MAC1C,MAAA,CAAO,OAAO,oBAAoB,CAAA;AAAA,MAClC,MAAA,CAAO,OAAO,0BAA0B,CAAA;AAAA,MACxC,MAAA,CAAO,OAAO,mBAAmB,CAAA;AAAA,MACjC,MAAA,CAAO,OAAO,yBAAyB;AAAA;AACzC;AAEN;AAGa,MAAA,QAAA,GAAW,OAAO,MAAO,CAAA;AAAA,EACpC,OAAO,MAAO,CAAA,MAAA;AAAA,EACd,IAAM,EAAA,MAAA,CAAO,MAAO,CAAA,MAAA,CAAO,MAAM,CAAA;AAAA,EACjC,UAAY,EAAA,cAAA;AAAA,EACZ,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,OAAO,KAAM,CAAA,QAAQ,EAAE,WAAY,CAAA,EAAE,WAAa,EAAA,WAAA,EAAa,CAAA;AAAA,EACtE,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;AAGM,MAAM,OAAO,MAAO,CAAA,MAAA;AAAA,EACzB,QAAA;AAAA,EACA,OAAO,MAAO,CAAA;AAAA,IACZ,gBAAA,EAAkB,MAAO,CAAA,YAAA,CAAa,mBAAqB,EAAA;AAAA,MACzD,OAAA,EAAS,MAAM;AAAC,KACjB,CAAA;AAAA,IACD,kBAAA,EAAoB,MAAO,CAAA,YAAA,CAAa,qBAAuB,EAAA;AAAA,MAC7D,OAAA,EAAS,OAAO,EAAC;AAAA,KAClB,CAAA;AAAA,IACD,wBAAA,EAA0B,MAAO,CAAA,YAAA,CAAa,0BAA4B,EAAA;AAAA,MACxE,OAAA,EAAS,MAAM;AAAC,KACjB,CAAA;AAAA,IACD,iBAAA,EAAmB,MAAO,CAAA,YAAA,CAAa,oBAAsB,EAAA;AAAA,MAC3D,OAAA,EAAS,OAAO,EAAC;AAAA,KAClB,CAAA;AAAA,IACD,uBAAA,EAAyB,MAAO,CAAA,YAAA,CAAa,yBAA2B,EAAA;AAAA,MACtE,OAAA,EAAS,MAAM;AAAC,KACjB;AAAA,GACF;AACH;AAEO,MAAM,0BAA0B,CAKrC,MAAA,KAEA,MAAO,CAAA,SAAA,CAAU,QAAQ,IAAM,EAAA;AAAA,EAC7B,MAAA,EAAQ,CAAC,IAAU,MAAA;AAAA,IACjB,GAAG,IAAA;AAAA,IACH,kBAAkB,IAAK,CAAA,UAAA;AAAA,IACvB,oBAAoB,IAAK,CAAA,UAAA;AAAA,IACzB,0BAA0B,IAAK,CAAA,UAAA;AAAA,IAC/B,mBAAmB,IAAK,CAAA,UAAA;AAAA,IACxB,yBAAyB,IAAK,CAAA;AAAA,GAChC,CAAA;AAAA,EACA,MAAA,EAAQ,CAAC,IACP,KAAA,IAAA;AAAA,IACE,MAAO,CAAA,MAAA,CAAO,kBAAkB,CAAA,CAAE,IAAI,CAAA;AAAA,IACtC,MAAA,CAAO,OAAO,oBAAoB,CAAA;AAAA,IAClC,MAAA,CAAO,OAAO,0BAA0B,CAAA;AAAA,IACxC,MAAA,CAAO,OAAO,mBAAmB,CAAA;AAAA,IACjC,MAAA,CAAO,OAAO,yBAAyB;AAAA;AAE7C,CAAC;AAEU,MAAA,UAAA,GAAa,wBAAwB,QAAQ;AAE7C,MAAA,cAAA,GAAiB,CAAC,QAAsB,KAAA;AACnD,EAAA,IAAI,QAAU,EAAA;AACZ,IAAO,OAAA,uBAAA;AAAA,MACL,MAAO,CAAA,MAAA;AAAA,QACL,QAAA;AAAA,QACA,OAAO,MAAO,CAAA;AAAA,UACZ,UAAU,MAAO,CAAA,YAAA;AAAA,YACf,OAAO,MAAO,CAAA,IAAA,CAAK,QAAS,CAAA,kBAAA,CAAmB,QAAQ,CAAC,CAAA;AAAA,YACxD,EAAE,OAAS,EAAA,MAAM,IAAK;AAAA;AACxB,SACD;AAAA;AACH,KACF;AAAA;AAEF,EAAO,OAAA,uBAAA;AAAA,IACL,MAAO,CAAA,MAAA;AAAA,MACL,QAAA;AAAA,MACA,OAAO,MAAO,CAAA;AAAA,QACZ,QAAA,EAAU,OAAO,YAAa,CAAA,MAAA,CAAO,MAAM,EAAE,OAAA,EAAS,MAAM,IAAA,EAAM;AAAA,OACnE;AAAA;AACH,GACF;AACF;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,cAAc,CAAA;AAAA,EAC1C,UAAU,MAAO,CAAA,QAAA;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;AAAA;AAEL,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;AAGM,MAAM,gBAAmB,GAAA,uBAAA;AAAA,EAC9B,MAAO,CAAA,MAAA;AAAA,IACL,QAAA;AAAA,IACA,OAAO,MAAO,CAAA;AAAA,MACZ,eAAA,EAAiB,OAAO,MAAO,CAAA;AAAA,QAC7B,KAAA,EAAO,MAAO,CAAA,KAAA,CAAM,kBAAkB;AAAA,OACvC;AAAA,KACF;AAAA;AAEL;AAEa,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;AAGO,MAAM,gBAAmB,GAAA,uBAAA;AAAA,EAC9B,MAAO,CAAA,MAAA;AAAA,IACL,QAAA;AAAA,IACA,OAAO,MAAO,CAAA;AAAA,MACZ,WAAA,EAAa,MAAO,CAAA,KAAA,CAAM,cAAc,CAAA;AAAA,MACxC,aAAA,EAAe,MAAO,CAAA,KAAA,CAAM,cAAc;AAAA,KAC3C;AAAA;AAEL;AAGa,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 * as Array from \"effect/Array\";\nimport * as Record from \"effect/Record\";\nimport * as Effect from \"effect/Effect\";\nimport * as ParseResult from \"effect/ParseResult\";\nimport { Resource, Ajax } from \"@brytdesigns/shopify-utils/effect\";\nimport { pipe, identity } from \"effect\";\n\ntype BaseAttributeValue = Schema.Schema.Type<typeof BaseAttributeValue>;\nconst BaseAttributeValue = Schema.Union(\n Schema.Null,\n Schema.String,\n Schema.Boolean,\n Schema.Number,\n);\n\nconst AttributesArray = Schema.Array(\n Schema.Struct({ key: Schema.String, value: BaseAttributeValue }),\n);\n\nexport type BaseAttributes = Schema.Schema.Type<typeof BaseAttributes>;\nexport const BaseAttributes = Schema.Record({\n key: Schema.String,\n value: BaseAttributeValue,\n});\n\nexport const BaseAttributesArray = Schema.transform(\n BaseAttributes,\n AttributesArray,\n {\n decode: (record) =>\n Record.toEntries(record).map(([key, value]) => ({ key, value })),\n encode: (array) =>\n Record.fromEntries(\n pipe(\n array,\n Array.map(({ key, value }) => [key, value]),\n ),\n ),\n },\n);\n\nconst BasePrivateAttributes = Schema.transform(BaseAttributes, BaseAttributes, {\n decode: Record.filter((value, key) => key.startsWith(\"_\")),\n encode: identity,\n});\n\nconst BasePublicAttributes = Schema.transform(BaseAttributes, BaseAttributes, {\n decode: Record.filter((value, key) => !key.startsWith(\"_\")),\n encode: identity,\n});\n\nconst BasePrivateAttributesArray = Schema.transform(\n BasePrivateAttributes,\n AttributesArray,\n {\n decode: (record) =>\n Record.toEntries(record).map(([key, value]) => ({ key, value })),\n encode: (array) =>\n Record.fromEntries(\n pipe(\n array,\n Array.map(({ key, value }) => [key, value]),\n ),\n ),\n },\n);\n\nconst BasePublicAttributesArray = Schema.transform(\n BasePublicAttributes,\n AttributesArray,\n {\n decode: (record) =>\n Record.toEntries(record).map(([key, value]) => ({ key, value })),\n encode: (array) =>\n Record.fromEntries(\n pipe(\n array,\n Array.map(({ key, value }) => [key, value]),\n ),\n ),\n },\n);\n\nexport const Attributes = Schema.transform(\n BaseAttributes,\n Schema.Struct({\n private: Schema.Struct({\n array: BasePrivateAttributesArray,\n record: BasePrivateAttributes,\n }),\n public: Schema.Struct({\n array: BasePublicAttributesArray,\n record: BasePublicAttributes,\n }),\n }),\n {\n decode: (attributes) => ({\n private: {\n array: attributes,\n record: attributes,\n },\n public: {\n array: attributes,\n record: attributes,\n },\n }),\n encode: (attributes) => ({\n ...attributes.private.record,\n ...attributes.public.record,\n }),\n },\n);\n\nexport type DiscountApplication = Schema.Schema.Type<\n typeof DiscountApplication\n>;\n\nexport const DiscountApplication = Schema.Struct({\n target_selection: Schema.Literal(\"all\", \"entitled\", \"explicit\"),\n target_type: Schema.Literal(\"line_item\", \"shipping_line\"),\n title: Schema.NonEmptyString,\n total_allocated_amount: Schema.Number,\n type: Schema.Literal(\"\", \"automatic\", \"discount_code\", \"manual\", \"script\"),\n value: Schema.Union(Schema.Number, Schema.NumberFromString),\n value_type: Schema.Literal(\"fixed_amount\", \"percentage\"),\n description: Schema.NullOr(Schema.String),\n});\n\nexport const Discount = Schema.Struct({\n amount: Schema.Number,\n title: Schema.String,\n});\n\nexport type CurrencyCode = Schema.Schema.Type<typeof CurrencyCode>;\nexport const CurrencyCode = Schema.String;\n\nexport type Image = Schema.Schema.Type<typeof Image>;\nexport const Image = Schema.Struct({\n aspect_ratio: Schema.Number,\n alt: Schema.String,\n height: Schema.Number,\n url: Schema.String,\n width: Schema.Number,\n});\n\nexport type OptionWithValue = Schema.Schema.Type<typeof OptionWithValue>;\nexport const OptionWithValue = Schema.Struct({\n name: Schema.String,\n value: Schema.String,\n});\n\nexport type QuantityRule = Schema.Schema.Type<typeof QuantityRule>;\nexport const QuantityRule = Schema.Struct({\n min: Schema.Number,\n max: Schema.NullOr(Schema.Number),\n increment: Schema.Number,\n});\n\nexport type SellingPlanAllocationPriceAdjustment = Schema.Schema.Type<\n typeof SellingPlanAllocationPriceAdjustment\n>;\nexport const SellingPlanAllocationPriceAdjustment = Schema.Struct({\n position: Schema.Number,\n price: Schema.Number,\n});\n\nexport const SellingPlanPriceAdjustment = Schema.Struct({\n order_count: Schema.NullOr(Schema.Number),\n position: Schema.Number,\n value: Schema.Union(Schema.Number, Schema.String),\n value_type: Schema.Literal(\"percentage\", \"fixed_amount\", \"price\"),\n});\n\nexport type SellingPlanOption = Schema.Schema.Type<typeof SellingPlanOption>;\nexport const SellingPlanOption = Schema.Struct({\n name: Schema.String,\n position: Schema.Number,\n value: Schema.String,\n});\n\nexport type SellingPlan = Schema.Schema.Type<typeof SellingPlan>;\nexport const SellingPlan = Schema.Struct({\n id: Resource.ID,\n name: Schema.String,\n description: Schema.NullOr(Schema.String),\n options: Schema.Array(SellingPlanOption),\n recurring_deliveries: Schema.optionalWith(Schema.Boolean, {\n default: () => false,\n }),\n fixed_selling_plan: Schema.optionalWith(Schema.Boolean, {\n default: () => false,\n }),\n price_adjustments: Schema.Array(SellingPlanPriceAdjustment),\n});\n\nexport type SellingPlanAllocation = Schema.Schema.Type<\n typeof SellingPlanAllocation\n>;\nexport const SellingPlanAllocation = Schema.Struct({\n price_adjustments: Schema.Array(SellingPlanAllocationPriceAdjustment),\n price: Schema.Number,\n compare_at_price: Schema.Number,\n per_delivery_price: Schema.Number,\n selling_plan: SellingPlan,\n});\n\nexport type LineLevelDiscountAllocation = Schema.Schema.Type<\n typeof LineLevelDiscountAllocation\n>;\nexport const LineLevelDiscountAllocation = Schema.Struct({\n amount: Schema.Number,\n discount_application: DiscountApplication,\n});\n\nconst CartLevelDiscountApplicationUpdate = Schema.transform(\n Schema.Struct({\n discount_application: DiscountApplication,\n }),\n DiscountApplication,\n {\n decode: (application) => application.discount_application,\n encode: (discountApplication) => ({\n discount_application: discountApplication,\n }),\n strict: false,\n },\n);\n\nexport const CartLevelDiscountApplication = Schema.Union(\n DiscountApplication,\n CartLevelDiscountApplicationUpdate,\n);\n\nexport type UnitPriceMeasurement = Schema.Schema.Type<\n typeof UnitPriceMeasurement\n>;\nexport const UnitPriceMeasurement = Schema.Struct({\n measured_type: Schema.Literal(\"volume\", \"weight\", \"dimension\"),\n quantity_unit: Schema.String,\n quantity_value: Schema.Number,\n reference_unit: Schema.String,\n reference_value: Schema.Number,\n});\n\nconst VariantOptions = Schema.optionalWith(Schema.Array(Schema.String), {\n default: () => [],\n});\n\nexport type BaseLineItem = Schema.Schema.Type<typeof BaseLineItem>;\nconst BaseLineItem = Schema.Struct({\n id: Resource.ID,\n properties: BaseAttributes,\n quantity: Schema.Number,\n variant_id: Resource.ID,\n key: Schema.String,\n title: Schema.String,\n price: Schema.Number,\n original_price: Schema.Number,\n discounted_price: Schema.Number,\n line_price: Schema.Number,\n original_line_price: Schema.Number,\n total_discount: Schema.Number,\n discounts: Schema.optionalWith(Schema.Array(Discount), { default: () => [] }),\n sku: Schema.NullOr(Schema.String),\n grams: Schema.Number,\n vendor: Schema.String,\n taxable: Schema.Boolean,\n product_id: Resource.ID,\n product_has_only_default_variant: Schema.Boolean,\n gift_card: Schema.Boolean,\n final_line_price: Schema.Number,\n final_price: Schema.Number,\n url: Schema.String,\n featured_image: Schema.optional(Image),\n image: Schema.String,\n handle: Schema.String,\n requires_shipping: Schema.Boolean,\n product_type: Schema.NullOr(Schema.String),\n product_title: Schema.String,\n product_description: Schema.NullOr(Schema.String),\n variant_title: Schema.NullOr(Schema.String),\n variant_options: VariantOptions,\n options_with_values: Schema.Array(OptionWithValue),\n line_level_discount_allocations: Schema.Array(LineLevelDiscountAllocation),\n line_level_total_discount: Schema.Number,\n quantity_rule: Schema.optional(QuantityRule),\n has_components: Schema.optionalWith(Schema.Boolean, { default: () => false }),\n unit_price: Schema.optional(Schema.Number),\n unit_price_measurement: Schema.optional(UnitPriceMeasurement),\n selling_plan_allocation: Schema.optionalWith(\n Schema.NullOr(SellingPlanAllocation),\n { default: () => null },\n ),\n});\n\nexport type LineItem = Schema.Schema.Type<typeof LineItem>;\nexport const LineItem = Schema.transform(\n BaseLineItem,\n Schema.extend(\n BaseLineItem,\n Schema.Struct({\n properties_array: Schema.optionalWith(BaseAttributesArray, {\n default: () => [],\n }),\n private_properties: Schema.optionalWith(BasePrivateAttributes, {\n default: () => ({}),\n }),\n private_properties_array: Schema.optionalWith(\n BasePrivateAttributesArray,\n {\n default: () => [],\n },\n ),\n public_properties: Schema.optionalWith(BasePublicAttributes, {\n default: () => ({}),\n }),\n public_properties_array: Schema.optionalWith(BasePublicAttributesArray, {\n default: () => [],\n }),\n }),\n ),\n {\n decode: (lineItem) => ({\n ...lineItem,\n properties_array: lineItem.properties,\n private_properties: lineItem.properties,\n private_properties_array: lineItem.properties,\n public_properties: lineItem.properties,\n public_properties_array: lineItem.properties,\n }),\n encode: (lineItem) =>\n pipe(\n Record.remove(\"properties_array\")(lineItem),\n Record.remove(\"private_properties\"),\n Record.remove(\"private_properties_array\"),\n Record.remove(\"public_properties\"),\n Record.remove(\"public_properties_array\"),\n ) as BaseLineItem,\n },\n);\n\ntype BaseCart = Schema.Schema.Type<typeof BaseCart>;\nexport const BaseCart = Schema.Struct({\n token: Schema.String,\n note: Schema.NullOr(Schema.String),\n attributes: BaseAttributes,\n discounts: Schema.optionalWith(Schema.Array(Discount), { default: () => [] }),\n discount_codes: Schema.optionalWith(\n Schema.Array(\n Schema.Struct({ code: Schema.String, applicable: Schema.Boolean }),\n ),\n { default: () => [] },\n ),\n original_total_price: Schema.Number,\n total_price: Schema.Number,\n total_discount: Schema.Number,\n total_weight: Schema.Number,\n item_count: Schema.Number,\n items: Schema.Array(LineItem).annotations({ concurrency: \"unbounded\" }),\n requires_shipping: Schema.Boolean,\n currency: CurrencyCode,\n items_subtotal_price: Schema.Number,\n cart_level_discount_applications: Schema.Array(CartLevelDiscountApplication),\n});\n\ntype Cart = Schema.Schema.Type<typeof Cart>;\nexport const Cart = Schema.extend(\n BaseCart,\n Schema.Struct({\n attributes_array: Schema.optionalWith(BaseAttributesArray, {\n default: () => [],\n }),\n private_attributes: Schema.optionalWith(BasePrivateAttributes, {\n default: () => ({}),\n }),\n private_attributes_array: Schema.optionalWith(BasePrivateAttributesArray, {\n default: () => [],\n }),\n public_attributes: Schema.optionalWith(BasePublicAttributes, {\n default: () => ({}),\n }),\n public_attributes_array: Schema.optionalWith(BasePublicAttributesArray, {\n default: () => [],\n }),\n }),\n);\n\nexport const makeCartTransformSchema = <\n A extends Schema.Schema.Type<typeof BaseCart>,\n I,\n R,\n>(\n schema: Schema.Schema<A, I, R>,\n) =>\n Schema.transform(schema, Cart, {\n decode: (cart) => ({\n ...cart,\n attributes_array: cart.attributes,\n private_attributes: cart.attributes,\n private_attributes_array: cart.attributes,\n public_attributes: cart.attributes,\n public_attributes_array: cart.attributes,\n }),\n encode: (cart) =>\n pipe(\n Record.remove(\"attributes_array\")(cart),\n Record.remove(\"private_attributes\"),\n Record.remove(\"private_attributes_array\"),\n Record.remove(\"public_attributes\"),\n Record.remove(\"public_attributes_array\"),\n ) as Schema.Schema.Type<Schema.Schema<A, I, R>>,\n });\n\nexport const CartOutput = makeCartTransformSchema(BaseCart);\n\nexport const makeCartSchema = (sections?: string) => {\n if (sections) {\n return makeCartTransformSchema(\n Schema.extend(\n BaseCart,\n Schema.Struct({\n sections: Schema.optionalWith(\n Schema.NullOr(Ajax.Sections.makeResponseSchema(sections)),\n { default: () => null },\n ),\n }),\n ),\n );\n }\n return makeCartTransformSchema(\n Schema.extend(\n BaseCart,\n Schema.Struct({\n sections: Schema.optionalWith(Schema.Null, { default: () => null }),\n }),\n ),\n );\n};\n\nexport type AddItemInput = Schema.Schema.Encoded<typeof AddItemInput>;\nexport const AddItemInput = Schema.Struct({\n id: Resource.ID,\n quantity: Schema.optionalWith(Schema.Number, { default: () => 1 }),\n properties: Schema.optionalWith(BaseAttributes, { default: () => ({}) }),\n selling_plan: Schema.optional(Resource.ID),\n});\n\nexport const BaseInput = Schema.extend(Ajax.Sections.Input);\n\nexport type CartAddInput = Schema.Schema.Encoded<typeof CartAddInput>;\nexport const CartAddInput = Schema.Struct({\n items: Schema.Array(AddItemInput),\n}).pipe(BaseInput);\n\nexport type CartAddOutput = Schema.Schema.Type<typeof CartAddOutput>;\nexport const CartAddOutput = Schema.Struct({\n items: Schema.Array(LineItem),\n});\n\nexport type UpdateItemRecordInput = Schema.Schema.Encoded<\n typeof UpdateItemRecordInput\n>;\nexport const UpdateItemRecordInput = Schema.Record({\n key: Schema.String,\n value: Schema.Number,\n});\n\nconst DiscountCodeInput = Schema.Array(Schema.String);\nconst DiscountCodeTransformed = Schema.String;\n\nexport type CartUpdateInput = Schema.Schema.Encoded<typeof CartUpdateInput>;\nexport const CartUpdateInput = Schema.Struct({\n updates: Schema.optional(\n Schema.Union(UpdateItemRecordInput, Schema.Array(Schema.Number)),\n ),\n note: Schema.optional(Schema.NullOr(Schema.String)),\n attributes: Schema.optional(BaseAttributes),\n discount: Schema.optional(\n Schema.transform(DiscountCodeInput, DiscountCodeTransformed, {\n decode: (input) => input.join(\",\"),\n encode: (input) => input.split(\",\"),\n }),\n ),\n}).pipe(BaseInput);\n\nexport type ItemAddedChangelog = Schema.Schema.Type<typeof ItemAddedChangelog>;\nexport const ItemAddedChangelog = Schema.Struct({\n variant_id: Schema.Number,\n quantity: Schema.Number,\n});\n\nexport type CartUpdateOutput = Schema.Schema.Type<typeof CartUpdateOutput>;\nexport const CartUpdateOutput = makeCartTransformSchema(\n Schema.extend(\n BaseCart,\n Schema.Struct({\n items_changelog: Schema.Struct({\n added: Schema.Array(ItemAddedChangelog),\n }),\n }),\n ),\n);\n\nexport const CartChangeItemOptionalInput = Schema.Struct({\n quantity: Schema.optional(Schema.Number),\n properties: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.NullOr(Schema.String),\n }),\n ),\n selling_plan: Schema.optional(Schema.NullOr(Resource.ID)),\n}).pipe(BaseInput);\n\nexport const LineItemChange = Schema.Struct({\n product_id: Schema.Number,\n variant_id: Schema.Number,\n id: Schema.String,\n image: Schema.String,\n price: Schema.String,\n presentment_price: Schema.Number,\n quantity: Schema.Number,\n title: Schema.String,\n product_title: Schema.String,\n variant_title: Schema.String,\n vendor: Schema.String,\n product_type: Schema.String,\n sku: Schema.String,\n url: Schema.String,\n untranslated_product_title: Schema.String,\n untranslated_variant_title: Schema.String,\n view_key: Schema.String,\n});\n\nexport type CartChangeInput = Schema.Schema.Encoded<typeof CartChangeInput>;\nexport const CartChangeInput = Schema.Union(\n Schema.extend(CartChangeItemOptionalInput)(\n Schema.Struct({\n id: Schema.String,\n }),\n ),\n Schema.extend(CartChangeItemOptionalInput)(\n Schema.Struct({\n line: Schema.Number,\n }),\n ),\n);\n\nexport type CartChangeOutput = Schema.Schema.Type<typeof CartChangeOutput>;\nexport const CartChangeOutput = makeCartTransformSchema(\n Schema.extend(\n BaseCart,\n Schema.Struct({\n items_added: Schema.Array(LineItemChange),\n items_removed: Schema.Array(LineItemChange),\n }),\n ),\n);\n\nexport type CartClearInput = Schema.Schema.Encoded<typeof CartClearInput>;\nexport const CartClearInput = Ajax.Sections.Input;\n\nexport type CartGetInput = Schema.Schema.Encoded<typeof CartClearInput>;\nexport const CartGetInput = Ajax.Sections.Input;\n\nexport type CartUpdateDiscountsInput = Schema.Schema.Encoded<\n typeof CartUpdateDiscountsInput\n>;\nexport const CartUpdateDiscountsInput = Schema.mutable(\n Schema.Array(Schema.NonEmptyString),\n);\n"]}