@dodopayments/convex 0.2.3 → 0.2.7

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,5 +1,5 @@
1
1
  import DodoPayments from 'dodopayments';
2
- import { object as objectType, string as stringType, unknown as unknownType, record as recordType, array as arrayType, number as numberType, enum as enumType, boolean as booleanType } from '../../../node_modules/zod/v3/types.js';
2
+ import { object as objectType, string as stringType, unknown as unknownType, record as recordType, array as arrayType, number as numberType, union as unionType, enum as enumType, boolean as booleanType } from '../../../node_modules/zod/v3/types.js';
3
3
 
4
4
  // src/checkout/checkout.ts
5
5
  var checkoutQuerySchema = objectType({
@@ -70,13 +70,27 @@ var dynamicCheckoutBodySchema = objectType({
70
70
  }).catchall(unknownType());
71
71
  var checkoutSessionProductCartItemSchema = objectType({
72
72
  product_id: stringType().min(1, "Product ID is required"),
73
- quantity: numberType().int().positive("Quantity must be a positive integer")
73
+ quantity: numberType().int().positive("Quantity must be a positive integer"),
74
+ addons: arrayType(
75
+ objectType({
76
+ addon_id: stringType(),
77
+ quantity: numberType().int().nonnegative()
78
+ })
79
+ ).optional(),
80
+ amount: numberType().int().nonnegative(
81
+ "Amount must be a non-negative integer (for pay-what-you-want products)"
82
+ ).optional()
74
83
  });
75
- var checkoutSessionCustomerSchema = objectType({
76
- email: stringType().email().optional(),
77
- name: stringType().min(1).optional(),
78
- phone_number: stringType().optional()
79
- }).optional();
84
+ var checkoutSessionCustomerSchema = unionType([
85
+ objectType({
86
+ email: stringType().email(),
87
+ name: stringType().min(1).optional(),
88
+ phone_number: stringType().optional()
89
+ }),
90
+ objectType({
91
+ customer_id: stringType()
92
+ })
93
+ ]).optional();
80
94
  var checkoutSessionBillingAddressSchema = objectType({
81
95
  street: stringType().optional(),
82
96
  city: stringType().optional(),
@@ -90,28 +104,51 @@ var paymentMethodTypeSchema = enumType([
90
104
  "upi_collect",
91
105
  "upi_intent",
92
106
  "apple_pay",
107
+ "cashapp",
93
108
  "google_pay",
94
- "amazon_pay",
95
- "klarna",
109
+ "multibanco",
110
+ "bancontact_card",
111
+ "eps",
112
+ "ideal",
113
+ "przelewy24",
114
+ "paypal",
96
115
  "affirm",
97
- "afterpay_clearpay",
116
+ "klarna",
98
117
  "sepa",
99
- "ach"
118
+ "ach",
119
+ "amazon_pay",
120
+ "afterpay_clearpay"
100
121
  ]);
101
122
  var checkoutSessionCustomizationSchema = objectType({
102
123
  theme: enumType(["light", "dark", "system"]).optional(),
103
124
  show_order_details: booleanType().optional(),
104
- show_on_demand_tag: booleanType().optional()
125
+ show_on_demand_tag: booleanType().optional(),
126
+ force_language: stringType().optional()
105
127
  }).optional();
106
128
  var checkoutSessionFeatureFlagsSchema = objectType({
107
129
  allow_currency_selection: booleanType().optional(),
130
+ allow_customer_editing_city: booleanType().optional(),
131
+ allow_customer_editing_country: booleanType().optional(),
132
+ allow_customer_editing_email: booleanType().optional(),
133
+ allow_customer_editing_name: booleanType().optional(),
134
+ allow_customer_editing_state: booleanType().optional(),
135
+ allow_customer_editing_street: booleanType().optional(),
136
+ allow_customer_editing_zipcode: booleanType().optional(),
108
137
  allow_discount_code: booleanType().optional(),
109
138
  allow_phone_number_collection: booleanType().optional(),
110
139
  allow_tax_id: booleanType().optional(),
111
140
  always_create_new_customer: booleanType().optional()
112
141
  }).optional();
142
+ var checkoutSessionOnDemandSchema = objectType({
143
+ mandate_only: booleanType(),
144
+ product_price: numberType().int().optional(),
145
+ product_currency: stringType().length(3).optional(),
146
+ product_description: stringType().optional(),
147
+ adaptive_currency_fees_inclusive: booleanType().optional()
148
+ }).optional();
113
149
  var checkoutSessionSubscriptionDataSchema = objectType({
114
- trial_period_days: numberType().int().nonnegative().optional()
150
+ trial_period_days: numberType().int().nonnegative().optional(),
151
+ on_demand: checkoutSessionOnDemandSchema
115
152
  }).optional();
116
153
  var checkoutSessionPayloadSchema = objectType({
117
154
  // Required fields
@@ -128,7 +165,8 @@ var checkoutSessionPayloadSchema = objectType({
128
165
  metadata: recordType(stringType(), stringType()).optional(),
129
166
  customization: checkoutSessionCustomizationSchema,
130
167
  feature_flags: checkoutSessionFeatureFlagsSchema,
131
- subscription_data: checkoutSessionSubscriptionDataSchema
168
+ subscription_data: checkoutSessionSubscriptionDataSchema,
169
+ force_3ds: booleanType().optional()
132
170
  });
133
171
  var checkoutSessionResponseSchema = objectType({
134
172
  session_id: stringType().min(1, "Session ID is required"),
@@ -196,7 +234,11 @@ var buildCheckoutUrl = async ({
196
234
  if (!sessionPayload) {
197
235
  throw new Error("sessionPayload is required when type is 'session'");
198
236
  }
199
- const session = await createCheckoutSession(sessionPayload, {
237
+ const finalPayload = {
238
+ ...sessionPayload,
239
+ return_url: sessionPayload.return_url ?? returnUrl
240
+ };
241
+ const session = await createCheckoutSession(finalPayload, {
200
242
  bearerToken,
201
243
  environment
202
244
  });
@@ -428,5 +470,5 @@ var buildCheckoutUrl = async ({
428
470
  }
429
471
  };
430
472
 
431
- export { buildCheckoutUrl, checkoutQuerySchema, checkoutSessionBillingAddressSchema, checkoutSessionCustomerSchema, checkoutSessionCustomizationSchema, checkoutSessionFeatureFlagsSchema, checkoutSessionPayloadSchema, checkoutSessionProductCartItemSchema, checkoutSessionResponseSchema, checkoutSessionSubscriptionDataSchema, createCheckoutSession, dynamicCheckoutBodySchema, paymentMethodTypeSchema };
432
- //# sourceMappingURL=chunk-YWHOVR2R.js.map
473
+ export { buildCheckoutUrl, checkoutQuerySchema, checkoutSessionBillingAddressSchema, checkoutSessionCustomerSchema, checkoutSessionCustomizationSchema, checkoutSessionFeatureFlagsSchema, checkoutSessionOnDemandSchema, checkoutSessionPayloadSchema, checkoutSessionProductCartItemSchema, checkoutSessionResponseSchema, checkoutSessionSubscriptionDataSchema, createCheckoutSession, dynamicCheckoutBodySchema, paymentMethodTypeSchema };
474
+ //# sourceMappingURL=chunk-BVTJMX2W.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-BVTJMX2W.js","sources":["../../../../../core/dist/chunk-BVTJMX2W.js"],"sourcesContent":["// src/checkout/checkout.ts\nimport { z } from \"zod/v3\";\nimport DodoPayments from \"dodopayments\";\nvar checkoutQuerySchema = z.object({\n productId: z.string(),\n quantity: z.string().optional(),\n // Customer fields\n fullName: z.string().optional(),\n firstName: z.string().optional(),\n lastName: z.string().optional(),\n email: z.string().optional(),\n country: z.string().optional(),\n addressLine: z.string().optional(),\n city: z.string().optional(),\n state: z.string().optional(),\n zipCode: z.string().optional(),\n // Disable flags\n disableFullName: z.string().optional(),\n disableFirstName: z.string().optional(),\n disableLastName: z.string().optional(),\n disableEmail: z.string().optional(),\n disableCountry: z.string().optional(),\n disableAddressLine: z.string().optional(),\n disableCity: z.string().optional(),\n disableState: z.string().optional(),\n disableZipCode: z.string().optional(),\n // Advanced controls\n paymentCurrency: z.string().optional(),\n showCurrencySelector: z.string().optional(),\n paymentAmount: z.string().optional(),\n showDiscounts: z.string().optional()\n // Metadata (allow any key starting with metadata_)\n // We'll handle metadata separately in the handler\n}).catchall(z.unknown());\nvar dynamicCheckoutBodySchema = z.object({\n // For subscription\n product_id: z.string().optional(),\n quantity: z.number().optional(),\n // For one-time payment\n product_cart: z.array(\n z.object({\n product_id: z.string(),\n quantity: z.number()\n })\n ).optional(),\n // Common fields\n billing: z.object({\n city: z.string(),\n country: z.string(),\n state: z.string(),\n street: z.string(),\n zipcode: z.string()\n }),\n customer: z.object({\n customer_id: z.string().optional(),\n email: z.string().optional(),\n name: z.string().optional()\n }),\n discount_id: z.string().optional(),\n addons: z.array(\n z.object({\n addon_id: z.string(),\n quantity: z.number()\n })\n ).optional(),\n metadata: z.record(z.string(), z.string()).optional(),\n currency: z.string().optional()\n // Allow any additional fields (for future compatibility)\n}).catchall(z.unknown());\nvar checkoutSessionProductCartItemSchema = z.object({\n product_id: z.string().min(1, \"Product ID is required\"),\n quantity: z.number().int().positive(\"Quantity must be a positive integer\"),\n addons: z.array(\n z.object({\n addon_id: z.string(),\n quantity: z.number().int().nonnegative()\n })\n ).optional(),\n amount: z.number().int().nonnegative(\n \"Amount must be a non-negative integer (for pay-what-you-want products)\"\n ).optional()\n});\nvar checkoutSessionCustomerSchema = z.union([\n z.object({\n email: z.string().email(),\n name: z.string().min(1).optional(),\n phone_number: z.string().optional()\n }),\n z.object({\n customer_id: z.string()\n })\n]).optional();\nvar checkoutSessionBillingAddressSchema = z.object({\n street: z.string().optional(),\n city: z.string().optional(),\n state: z.string().optional(),\n country: z.string().length(2, \"Country must be a 2-letter ISO code\"),\n zipcode: z.string().optional()\n}).optional();\nvar paymentMethodTypeSchema = z.enum([\n \"credit\",\n \"debit\",\n \"upi_collect\",\n \"upi_intent\",\n \"apple_pay\",\n \"cashapp\",\n \"google_pay\",\n \"multibanco\",\n \"bancontact_card\",\n \"eps\",\n \"ideal\",\n \"przelewy24\",\n \"paypal\",\n \"affirm\",\n \"klarna\",\n \"sepa\",\n \"ach\",\n \"amazon_pay\",\n \"afterpay_clearpay\"\n]);\nvar checkoutSessionCustomizationSchema = z.object({\n theme: z.enum([\"light\", \"dark\", \"system\"]).optional(),\n show_order_details: z.boolean().optional(),\n show_on_demand_tag: z.boolean().optional(),\n force_language: z.string().optional()\n}).optional();\nvar checkoutSessionFeatureFlagsSchema = z.object({\n allow_currency_selection: z.boolean().optional(),\n allow_customer_editing_city: z.boolean().optional(),\n allow_customer_editing_country: z.boolean().optional(),\n allow_customer_editing_email: z.boolean().optional(),\n allow_customer_editing_name: z.boolean().optional(),\n allow_customer_editing_state: z.boolean().optional(),\n allow_customer_editing_street: z.boolean().optional(),\n allow_customer_editing_zipcode: z.boolean().optional(),\n allow_discount_code: z.boolean().optional(),\n allow_phone_number_collection: z.boolean().optional(),\n allow_tax_id: z.boolean().optional(),\n always_create_new_customer: z.boolean().optional()\n}).optional();\nvar checkoutSessionOnDemandSchema = z.object({\n mandate_only: z.boolean(),\n product_price: z.number().int().optional(),\n product_currency: z.string().length(3).optional(),\n product_description: z.string().optional(),\n adaptive_currency_fees_inclusive: z.boolean().optional()\n}).optional();\nvar checkoutSessionSubscriptionDataSchema = z.object({\n trial_period_days: z.number().int().nonnegative().optional(),\n on_demand: checkoutSessionOnDemandSchema\n}).optional();\nvar checkoutSessionPayloadSchema = z.object({\n // Required fields\n product_cart: z.array(checkoutSessionProductCartItemSchema).min(1, \"At least one product is required\"),\n // Optional fields\n customer: checkoutSessionCustomerSchema,\n billing_address: checkoutSessionBillingAddressSchema,\n return_url: z.string().url().optional(),\n allowed_payment_method_types: z.array(paymentMethodTypeSchema).optional(),\n billing_currency: z.string().length(3, \"Currency must be a 3-letter ISO code\").optional(),\n show_saved_payment_methods: z.boolean().optional(),\n confirm: z.boolean().optional(),\n discount_code: z.string().optional(),\n metadata: z.record(z.string(), z.string()).optional(),\n customization: checkoutSessionCustomizationSchema,\n feature_flags: checkoutSessionFeatureFlagsSchema,\n subscription_data: checkoutSessionSubscriptionDataSchema,\n force_3ds: z.boolean().optional()\n});\nvar checkoutSessionResponseSchema = z.object({\n session_id: z.string().min(1, \"Session ID is required\"),\n checkout_url: z.string().url(\"Invalid checkout URL\")\n});\nvar createCheckoutSession = async (payload, config) => {\n const validation = checkoutSessionPayloadSchema.safeParse(payload);\n if (!validation.success) {\n throw new Error(\n `Invalid checkout session payload: ${validation.error.issues.map((issue) => `${issue.path.join(\".\")}: ${issue.message}`).join(\", \")}`\n );\n }\n const dodopayments = new DodoPayments({\n bearerToken: config.bearerToken,\n environment: config.environment\n });\n try {\n const sdkPayload = {\n ...validation.data,\n ...validation.data.billing_address && {\n billing_address: {\n ...validation.data.billing_address,\n country: validation.data.billing_address.country\n }\n }\n };\n const session = await dodopayments.checkoutSessions.create(\n sdkPayload\n );\n const responseValidation = checkoutSessionResponseSchema.safeParse(session);\n if (!responseValidation.success) {\n throw new Error(\n `Invalid checkout session response from API: ${responseValidation.error.issues.map((issue) => `${issue.path.join(\".\")}: ${issue.message}`).join(\", \")}`\n );\n }\n return responseValidation.data;\n } catch (error) {\n if (error instanceof Error) {\n console.error(\"Dodo Payments Checkout Session API Error:\", {\n message: error.message,\n payload: validation.data,\n config: {\n environment: config.environment,\n hasBearerToken: !!config.bearerToken\n }\n });\n throw new Error(`Failed to create checkout session: ${error.message}`);\n }\n console.error(\"Unknown error creating checkout session:\", error);\n throw new Error(\n \"Failed to create checkout session due to an unknown error\"\n );\n }\n};\nvar buildCheckoutUrl = async ({\n queryParams,\n body,\n sessionPayload,\n returnUrl,\n bearerToken,\n environment,\n type = \"static\"\n}) => {\n if (type === \"session\") {\n if (!sessionPayload) {\n throw new Error(\"sessionPayload is required when type is 'session'\");\n }\n const finalPayload = {\n ...sessionPayload,\n return_url: sessionPayload.return_url ?? returnUrl\n };\n const session = await createCheckoutSession(finalPayload, {\n bearerToken,\n environment\n });\n return session.checkout_url;\n }\n const inputData = type === \"dynamic\" ? body : queryParams;\n let parseResult;\n if (type === \"dynamic\") {\n parseResult = dynamicCheckoutBodySchema.safeParse(inputData);\n } else {\n parseResult = checkoutQuerySchema.safeParse(inputData);\n }\n const { success, data, error } = parseResult;\n if (!success) {\n throw new Error(\n `Invalid ${type === \"dynamic\" ? \"body\" : \"query parameters\"}.\n ${error.message}`\n );\n }\n if (type !== \"dynamic\") {\n const {\n productId,\n quantity: quantity2,\n fullName,\n firstName,\n lastName,\n email,\n country,\n addressLine,\n city,\n state,\n zipCode,\n disableFullName,\n disableFirstName,\n disableLastName,\n disableEmail,\n disableCountry,\n disableAddressLine,\n disableCity,\n disableState,\n disableZipCode,\n paymentCurrency,\n showCurrencySelector,\n paymentAmount,\n showDiscounts\n // metadata handled below\n } = data;\n const dodopayments2 = new DodoPayments({\n bearerToken,\n environment\n });\n if (!productId) throw new Error(\"Missing required field: productId\");\n try {\n await dodopayments2.products.retrieve(productId);\n } catch (err) {\n console.error(err);\n throw new Error(\"Product not found\");\n }\n const url = new URL(\n `${environment === \"test_mode\" ? \"https://test.checkout.dodopayments.com\" : \"https://checkout.dodopayments.com\"}/buy/${productId}`\n );\n url.searchParams.set(\"quantity\", quantity2 ? String(quantity2) : \"1\");\n if (returnUrl) url.searchParams.set(\"redirect_url\", returnUrl);\n if (fullName) url.searchParams.set(\"fullName\", String(fullName));\n if (firstName) url.searchParams.set(\"firstName\", String(firstName));\n if (lastName) url.searchParams.set(\"lastName\", String(lastName));\n if (email) url.searchParams.set(\"email\", String(email));\n if (country) url.searchParams.set(\"country\", String(country));\n if (addressLine) url.searchParams.set(\"addressLine\", String(addressLine));\n if (city) url.searchParams.set(\"city\", String(city));\n if (state) url.searchParams.set(\"state\", String(state));\n if (zipCode) url.searchParams.set(\"zipCode\", String(zipCode));\n if (disableFullName === \"true\")\n url.searchParams.set(\"disableFullName\", \"true\");\n if (disableFirstName === \"true\")\n url.searchParams.set(\"disableFirstName\", \"true\");\n if (disableLastName === \"true\")\n url.searchParams.set(\"disableLastName\", \"true\");\n if (disableEmail === \"true\") url.searchParams.set(\"disableEmail\", \"true\");\n if (disableCountry === \"true\")\n url.searchParams.set(\"disableCountry\", \"true\");\n if (disableAddressLine === \"true\")\n url.searchParams.set(\"disableAddressLine\", \"true\");\n if (disableCity === \"true\") url.searchParams.set(\"disableCity\", \"true\");\n if (disableState === \"true\") url.searchParams.set(\"disableState\", \"true\");\n if (disableZipCode === \"true\")\n url.searchParams.set(\"disableZipCode\", \"true\");\n if (paymentCurrency)\n url.searchParams.set(\"paymentCurrency\", String(paymentCurrency));\n if (showCurrencySelector)\n url.searchParams.set(\n \"showCurrencySelector\",\n String(showCurrencySelector)\n );\n if (paymentAmount)\n url.searchParams.set(\"paymentAmount\", String(paymentAmount));\n if (showDiscounts)\n url.searchParams.set(\"showDiscounts\", String(showDiscounts));\n for (const [key, value] of Object.entries(queryParams || {})) {\n if (key.startsWith(\"metadata_\") && value && typeof value !== \"object\") {\n url.searchParams.set(key, String(value));\n }\n }\n return url.toString();\n }\n const dyn = data;\n const {\n product_id,\n product_cart,\n quantity,\n billing,\n customer,\n addons,\n metadata,\n allowed_payment_method_types,\n billing_currency,\n discount_code,\n on_demand,\n return_url: bodyReturnUrl,\n show_saved_payment_methods,\n tax_id,\n trial_period_days\n } = dyn;\n const dodopayments = new DodoPayments({\n bearerToken,\n environment\n });\n let isSubscription = false;\n let productIdToFetch = product_id;\n if (!product_id && product_cart && product_cart.length > 0) {\n productIdToFetch = product_cart[0].product_id;\n }\n if (!productIdToFetch)\n throw new Error(\n \"Missing required field: product_id or product_cart[0].product_id\"\n );\n let product;\n try {\n product = await dodopayments.products.retrieve(productIdToFetch);\n } catch (err) {\n console.error(err);\n throw new Error(\"Product not found\");\n }\n isSubscription = Boolean(product.is_recurring);\n if (isSubscription && !product_id)\n throw new Error(\"Missing required field: product_id for subscription\");\n if (!billing) throw new Error(\"Missing required field: billing\");\n if (!customer) throw new Error(\"Missing required field: customer\");\n if (isSubscription) {\n const subscriptionPayload = {\n billing,\n customer,\n product_id,\n quantity: quantity ? Number(quantity) : 1\n };\n if (metadata) subscriptionPayload.metadata = metadata;\n if (discount_code) subscriptionPayload.discount_code = discount_code;\n if (addons) subscriptionPayload.addons = addons;\n if (allowed_payment_method_types)\n subscriptionPayload.allowed_payment_method_types = allowed_payment_method_types;\n if (billing_currency)\n subscriptionPayload.billing_currency = billing_currency;\n if (on_demand) subscriptionPayload.on_demand = on_demand;\n subscriptionPayload.payment_link = true;\n if (bodyReturnUrl) {\n subscriptionPayload.return_url = bodyReturnUrl;\n } else if (returnUrl) {\n subscriptionPayload.return_url = returnUrl;\n }\n if (show_saved_payment_methods)\n subscriptionPayload.show_saved_payment_methods = show_saved_payment_methods;\n if (tax_id) subscriptionPayload.tax_id = tax_id;\n if (trial_period_days)\n subscriptionPayload.trial_period_days = trial_period_days;\n let subscription;\n try {\n subscription = await dodopayments.subscriptions.create(subscriptionPayload);\n } catch (err) {\n console.error(\"Error when creating subscription\", err);\n throw new Error(err instanceof Error ? err.message : String(err));\n }\n if (!subscription || !subscription.payment_link) {\n throw new Error(\n \"No payment link returned from Dodo Payments API (subscription). Make sure to set payment_link as true in payload\"\n );\n }\n return subscription.payment_link;\n } else {\n let cart = product_cart;\n if (!cart && product_id) {\n cart = [\n { product_id, quantity: quantity ? Number(quantity) : 1 }\n ];\n }\n if (!cart || cart.length === 0)\n throw new Error(\"Missing required field: product_cart or product_id\");\n const paymentPayload = {\n billing,\n customer,\n product_cart: cart\n };\n if (metadata) paymentPayload.metadata = metadata;\n paymentPayload.payment_link = true;\n if (allowed_payment_method_types)\n paymentPayload.allowed_payment_method_types = allowed_payment_method_types;\n if (billing_currency) paymentPayload.billing_currency = billing_currency;\n if (discount_code) paymentPayload.discount_code = discount_code;\n if (bodyReturnUrl) {\n paymentPayload.return_url = bodyReturnUrl;\n } else if (returnUrl) {\n paymentPayload.return_url = returnUrl;\n }\n if (show_saved_payment_methods)\n paymentPayload.show_saved_payment_methods = show_saved_payment_methods;\n if (tax_id) paymentPayload.tax_id = tax_id;\n let payment;\n try {\n payment = await dodopayments.payments.create(paymentPayload);\n } catch (err) {\n console.error(\"Error when creating payment link\", err);\n throw new Error(err instanceof Error ? err.message : String(err));\n }\n if (!payment || !payment.payment_link) {\n throw new Error(\n \"No payment link returned from Dodo Payments API. Make sure to set payment_link as true in payload.\"\n );\n }\n return payment.payment_link;\n }\n};\n\nexport {\n checkoutQuerySchema,\n dynamicCheckoutBodySchema,\n checkoutSessionProductCartItemSchema,\n checkoutSessionCustomerSchema,\n checkoutSessionBillingAddressSchema,\n paymentMethodTypeSchema,\n checkoutSessionCustomizationSchema,\n checkoutSessionFeatureFlagsSchema,\n checkoutSessionOnDemandSchema,\n checkoutSessionSubscriptionDataSchema,\n checkoutSessionPayloadSchema,\n checkoutSessionResponseSchema,\n createCheckoutSession,\n buildCheckoutUrl\n};\n//# sourceMappingURL=chunk-BVTJMX2W.js.map"],"names":["z.object","z.string","z.unknown","z.number","z.array","z.record","z.union","z.enum","z.boolean"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dodopayments/convex",
3
- "version": "0.2.3",
3
+ "version": "0.2.7",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -24,10 +24,10 @@
24
24
  }
25
25
  },
26
26
  "dependencies": {
27
- "@dodopayments/core": "^0.3.2",
28
- "convex": "^1.26.0"
27
+ "@dodopayments/core": "^0.3.7"
29
28
  },
30
29
  "peerDependencies": {
30
+ "convex": "^1.26.0",
31
31
  "zod": "^3.25.0 || ^4.0.0"
32
32
  },
33
33
  "keywords": [
@@ -56,5 +56,9 @@
56
56
  "type": "module",
57
57
  "files": [
58
58
  "dist"
59
- ]
59
+ ],
60
+ "repository": {
61
+ "type": "git",
62
+ "url": "git+https://github.com/dodopayments/dodo-adapters.git"
63
+ }
60
64
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunk-YWHOVR2R.js","sources":["../../../../../core/dist/chunk-YWHOVR2R.js"],"sourcesContent":["// src/checkout/checkout.ts\nimport { z } from \"zod/v3\";\nimport DodoPayments from \"dodopayments\";\nvar checkoutQuerySchema = z.object({\n productId: z.string(),\n quantity: z.string().optional(),\n // Customer fields\n fullName: z.string().optional(),\n firstName: z.string().optional(),\n lastName: z.string().optional(),\n email: z.string().optional(),\n country: z.string().optional(),\n addressLine: z.string().optional(),\n city: z.string().optional(),\n state: z.string().optional(),\n zipCode: z.string().optional(),\n // Disable flags\n disableFullName: z.string().optional(),\n disableFirstName: z.string().optional(),\n disableLastName: z.string().optional(),\n disableEmail: z.string().optional(),\n disableCountry: z.string().optional(),\n disableAddressLine: z.string().optional(),\n disableCity: z.string().optional(),\n disableState: z.string().optional(),\n disableZipCode: z.string().optional(),\n // Advanced controls\n paymentCurrency: z.string().optional(),\n showCurrencySelector: z.string().optional(),\n paymentAmount: z.string().optional(),\n showDiscounts: z.string().optional()\n // Metadata (allow any key starting with metadata_)\n // We'll handle metadata separately in the handler\n}).catchall(z.unknown());\nvar dynamicCheckoutBodySchema = z.object({\n // For subscription\n product_id: z.string().optional(),\n quantity: z.number().optional(),\n // For one-time payment\n product_cart: z.array(\n z.object({\n product_id: z.string(),\n quantity: z.number()\n })\n ).optional(),\n // Common fields\n billing: z.object({\n city: z.string(),\n country: z.string(),\n state: z.string(),\n street: z.string(),\n zipcode: z.string()\n }),\n customer: z.object({\n customer_id: z.string().optional(),\n email: z.string().optional(),\n name: z.string().optional()\n }),\n discount_id: z.string().optional(),\n addons: z.array(\n z.object({\n addon_id: z.string(),\n quantity: z.number()\n })\n ).optional(),\n metadata: z.record(z.string(), z.string()).optional(),\n currency: z.string().optional()\n // Allow any additional fields (for future compatibility)\n}).catchall(z.unknown());\nvar checkoutSessionProductCartItemSchema = z.object({\n product_id: z.string().min(1, \"Product ID is required\"),\n quantity: z.number().int().positive(\"Quantity must be a positive integer\")\n});\nvar checkoutSessionCustomerSchema = z.object({\n email: z.string().email().optional(),\n name: z.string().min(1).optional(),\n phone_number: z.string().optional()\n}).optional();\nvar checkoutSessionBillingAddressSchema = z.object({\n street: z.string().optional(),\n city: z.string().optional(),\n state: z.string().optional(),\n country: z.string().length(2, \"Country must be a 2-letter ISO code\"),\n zipcode: z.string().optional()\n}).optional();\nvar paymentMethodTypeSchema = z.enum([\n \"credit\",\n \"debit\",\n \"upi_collect\",\n \"upi_intent\",\n \"apple_pay\",\n \"google_pay\",\n \"amazon_pay\",\n \"klarna\",\n \"affirm\",\n \"afterpay_clearpay\",\n \"sepa\",\n \"ach\"\n]);\nvar checkoutSessionCustomizationSchema = z.object({\n theme: z.enum([\"light\", \"dark\", \"system\"]).optional(),\n show_order_details: z.boolean().optional(),\n show_on_demand_tag: z.boolean().optional()\n}).optional();\nvar checkoutSessionFeatureFlagsSchema = z.object({\n allow_currency_selection: z.boolean().optional(),\n allow_discount_code: z.boolean().optional(),\n allow_phone_number_collection: z.boolean().optional(),\n allow_tax_id: z.boolean().optional(),\n always_create_new_customer: z.boolean().optional()\n}).optional();\nvar checkoutSessionSubscriptionDataSchema = z.object({\n trial_period_days: z.number().int().nonnegative().optional()\n}).optional();\nvar checkoutSessionPayloadSchema = z.object({\n // Required fields\n product_cart: z.array(checkoutSessionProductCartItemSchema).min(1, \"At least one product is required\"),\n // Optional fields\n customer: checkoutSessionCustomerSchema,\n billing_address: checkoutSessionBillingAddressSchema,\n return_url: z.string().url().optional(),\n allowed_payment_method_types: z.array(paymentMethodTypeSchema).optional(),\n billing_currency: z.string().length(3, \"Currency must be a 3-letter ISO code\").optional(),\n show_saved_payment_methods: z.boolean().optional(),\n confirm: z.boolean().optional(),\n discount_code: z.string().optional(),\n metadata: z.record(z.string(), z.string()).optional(),\n customization: checkoutSessionCustomizationSchema,\n feature_flags: checkoutSessionFeatureFlagsSchema,\n subscription_data: checkoutSessionSubscriptionDataSchema\n});\nvar checkoutSessionResponseSchema = z.object({\n session_id: z.string().min(1, \"Session ID is required\"),\n checkout_url: z.string().url(\"Invalid checkout URL\")\n});\nvar createCheckoutSession = async (payload, config) => {\n const validation = checkoutSessionPayloadSchema.safeParse(payload);\n if (!validation.success) {\n throw new Error(\n `Invalid checkout session payload: ${validation.error.issues.map((issue) => `${issue.path.join(\".\")}: ${issue.message}`).join(\", \")}`\n );\n }\n const dodopayments = new DodoPayments({\n bearerToken: config.bearerToken,\n environment: config.environment\n });\n try {\n const sdkPayload = {\n ...validation.data,\n ...validation.data.billing_address && {\n billing_address: {\n ...validation.data.billing_address,\n country: validation.data.billing_address.country\n }\n }\n };\n const session = await dodopayments.checkoutSessions.create(\n sdkPayload\n );\n const responseValidation = checkoutSessionResponseSchema.safeParse(session);\n if (!responseValidation.success) {\n throw new Error(\n `Invalid checkout session response from API: ${responseValidation.error.issues.map((issue) => `${issue.path.join(\".\")}: ${issue.message}`).join(\", \")}`\n );\n }\n return responseValidation.data;\n } catch (error) {\n if (error instanceof Error) {\n console.error(\"Dodo Payments Checkout Session API Error:\", {\n message: error.message,\n payload: validation.data,\n config: {\n environment: config.environment,\n hasBearerToken: !!config.bearerToken\n }\n });\n throw new Error(`Failed to create checkout session: ${error.message}`);\n }\n console.error(\"Unknown error creating checkout session:\", error);\n throw new Error(\n \"Failed to create checkout session due to an unknown error\"\n );\n }\n};\nvar buildCheckoutUrl = async ({\n queryParams,\n body,\n sessionPayload,\n returnUrl,\n bearerToken,\n environment,\n type = \"static\"\n}) => {\n if (type === \"session\") {\n if (!sessionPayload) {\n throw new Error(\"sessionPayload is required when type is 'session'\");\n }\n const session = await createCheckoutSession(sessionPayload, {\n bearerToken,\n environment\n });\n return session.checkout_url;\n }\n const inputData = type === \"dynamic\" ? body : queryParams;\n let parseResult;\n if (type === \"dynamic\") {\n parseResult = dynamicCheckoutBodySchema.safeParse(inputData);\n } else {\n parseResult = checkoutQuerySchema.safeParse(inputData);\n }\n const { success, data, error } = parseResult;\n if (!success) {\n throw new Error(\n `Invalid ${type === \"dynamic\" ? \"body\" : \"query parameters\"}.\n ${error.message}`\n );\n }\n if (type !== \"dynamic\") {\n const {\n productId,\n quantity: quantity2,\n fullName,\n firstName,\n lastName,\n email,\n country,\n addressLine,\n city,\n state,\n zipCode,\n disableFullName,\n disableFirstName,\n disableLastName,\n disableEmail,\n disableCountry,\n disableAddressLine,\n disableCity,\n disableState,\n disableZipCode,\n paymentCurrency,\n showCurrencySelector,\n paymentAmount,\n showDiscounts\n // metadata handled below\n } = data;\n const dodopayments2 = new DodoPayments({\n bearerToken,\n environment\n });\n if (!productId) throw new Error(\"Missing required field: productId\");\n try {\n await dodopayments2.products.retrieve(productId);\n } catch (err) {\n console.error(err);\n throw new Error(\"Product not found\");\n }\n const url = new URL(\n `${environment === \"test_mode\" ? \"https://test.checkout.dodopayments.com\" : \"https://checkout.dodopayments.com\"}/buy/${productId}`\n );\n url.searchParams.set(\"quantity\", quantity2 ? String(quantity2) : \"1\");\n if (returnUrl) url.searchParams.set(\"redirect_url\", returnUrl);\n if (fullName) url.searchParams.set(\"fullName\", String(fullName));\n if (firstName) url.searchParams.set(\"firstName\", String(firstName));\n if (lastName) url.searchParams.set(\"lastName\", String(lastName));\n if (email) url.searchParams.set(\"email\", String(email));\n if (country) url.searchParams.set(\"country\", String(country));\n if (addressLine) url.searchParams.set(\"addressLine\", String(addressLine));\n if (city) url.searchParams.set(\"city\", String(city));\n if (state) url.searchParams.set(\"state\", String(state));\n if (zipCode) url.searchParams.set(\"zipCode\", String(zipCode));\n if (disableFullName === \"true\")\n url.searchParams.set(\"disableFullName\", \"true\");\n if (disableFirstName === \"true\")\n url.searchParams.set(\"disableFirstName\", \"true\");\n if (disableLastName === \"true\")\n url.searchParams.set(\"disableLastName\", \"true\");\n if (disableEmail === \"true\") url.searchParams.set(\"disableEmail\", \"true\");\n if (disableCountry === \"true\")\n url.searchParams.set(\"disableCountry\", \"true\");\n if (disableAddressLine === \"true\")\n url.searchParams.set(\"disableAddressLine\", \"true\");\n if (disableCity === \"true\") url.searchParams.set(\"disableCity\", \"true\");\n if (disableState === \"true\") url.searchParams.set(\"disableState\", \"true\");\n if (disableZipCode === \"true\")\n url.searchParams.set(\"disableZipCode\", \"true\");\n if (paymentCurrency)\n url.searchParams.set(\"paymentCurrency\", String(paymentCurrency));\n if (showCurrencySelector)\n url.searchParams.set(\n \"showCurrencySelector\",\n String(showCurrencySelector)\n );\n if (paymentAmount)\n url.searchParams.set(\"paymentAmount\", String(paymentAmount));\n if (showDiscounts)\n url.searchParams.set(\"showDiscounts\", String(showDiscounts));\n for (const [key, value] of Object.entries(queryParams || {})) {\n if (key.startsWith(\"metadata_\") && value && typeof value !== \"object\") {\n url.searchParams.set(key, String(value));\n }\n }\n return url.toString();\n }\n const dyn = data;\n const {\n product_id,\n product_cart,\n quantity,\n billing,\n customer,\n addons,\n metadata,\n allowed_payment_method_types,\n billing_currency,\n discount_code,\n on_demand,\n return_url: bodyReturnUrl,\n show_saved_payment_methods,\n tax_id,\n trial_period_days\n } = dyn;\n const dodopayments = new DodoPayments({\n bearerToken,\n environment\n });\n let isSubscription = false;\n let productIdToFetch = product_id;\n if (!product_id && product_cart && product_cart.length > 0) {\n productIdToFetch = product_cart[0].product_id;\n }\n if (!productIdToFetch)\n throw new Error(\n \"Missing required field: product_id or product_cart[0].product_id\"\n );\n let product;\n try {\n product = await dodopayments.products.retrieve(productIdToFetch);\n } catch (err) {\n console.error(err);\n throw new Error(\"Product not found\");\n }\n isSubscription = Boolean(product.is_recurring);\n if (isSubscription && !product_id)\n throw new Error(\"Missing required field: product_id for subscription\");\n if (!billing) throw new Error(\"Missing required field: billing\");\n if (!customer) throw new Error(\"Missing required field: customer\");\n if (isSubscription) {\n const subscriptionPayload = {\n billing,\n customer,\n product_id,\n quantity: quantity ? Number(quantity) : 1\n };\n if (metadata) subscriptionPayload.metadata = metadata;\n if (discount_code) subscriptionPayload.discount_code = discount_code;\n if (addons) subscriptionPayload.addons = addons;\n if (allowed_payment_method_types)\n subscriptionPayload.allowed_payment_method_types = allowed_payment_method_types;\n if (billing_currency)\n subscriptionPayload.billing_currency = billing_currency;\n if (on_demand) subscriptionPayload.on_demand = on_demand;\n subscriptionPayload.payment_link = true;\n if (bodyReturnUrl) {\n subscriptionPayload.return_url = bodyReturnUrl;\n } else if (returnUrl) {\n subscriptionPayload.return_url = returnUrl;\n }\n if (show_saved_payment_methods)\n subscriptionPayload.show_saved_payment_methods = show_saved_payment_methods;\n if (tax_id) subscriptionPayload.tax_id = tax_id;\n if (trial_period_days)\n subscriptionPayload.trial_period_days = trial_period_days;\n let subscription;\n try {\n subscription = await dodopayments.subscriptions.create(subscriptionPayload);\n } catch (err) {\n console.error(\"Error when creating subscription\", err);\n throw new Error(err instanceof Error ? err.message : String(err));\n }\n if (!subscription || !subscription.payment_link) {\n throw new Error(\n \"No payment link returned from Dodo Payments API (subscription). Make sure to set payment_link as true in payload\"\n );\n }\n return subscription.payment_link;\n } else {\n let cart = product_cart;\n if (!cart && product_id) {\n cart = [\n { product_id, quantity: quantity ? Number(quantity) : 1 }\n ];\n }\n if (!cart || cart.length === 0)\n throw new Error(\"Missing required field: product_cart or product_id\");\n const paymentPayload = {\n billing,\n customer,\n product_cart: cart\n };\n if (metadata) paymentPayload.metadata = metadata;\n paymentPayload.payment_link = true;\n if (allowed_payment_method_types)\n paymentPayload.allowed_payment_method_types = allowed_payment_method_types;\n if (billing_currency) paymentPayload.billing_currency = billing_currency;\n if (discount_code) paymentPayload.discount_code = discount_code;\n if (bodyReturnUrl) {\n paymentPayload.return_url = bodyReturnUrl;\n } else if (returnUrl) {\n paymentPayload.return_url = returnUrl;\n }\n if (show_saved_payment_methods)\n paymentPayload.show_saved_payment_methods = show_saved_payment_methods;\n if (tax_id) paymentPayload.tax_id = tax_id;\n let payment;\n try {\n payment = await dodopayments.payments.create(paymentPayload);\n } catch (err) {\n console.error(\"Error when creating payment link\", err);\n throw new Error(err instanceof Error ? err.message : String(err));\n }\n if (!payment || !payment.payment_link) {\n throw new Error(\n \"No payment link returned from Dodo Payments API. Make sure to set payment_link as true in payload.\"\n );\n }\n return payment.payment_link;\n }\n};\n\nexport {\n checkoutQuerySchema,\n dynamicCheckoutBodySchema,\n checkoutSessionProductCartItemSchema,\n checkoutSessionCustomerSchema,\n checkoutSessionBillingAddressSchema,\n paymentMethodTypeSchema,\n checkoutSessionCustomizationSchema,\n checkoutSessionFeatureFlagsSchema,\n checkoutSessionSubscriptionDataSchema,\n checkoutSessionPayloadSchema,\n checkoutSessionResponseSchema,\n createCheckoutSession,\n buildCheckoutUrl\n};\n//# sourceMappingURL=chunk-YWHOVR2R.js.map"],"names":["z.object","z.string","z.unknown","z.number","z.array","z.record","z.enum","z.boolean"],"mappings":";;;AAAA;AAGG,IAAC,mBAAmB,GAAGA,UAAQ,CAAC;AACnC,EAAE,SAAS,EAAEC,UAAQ,EAAE;AACvB,EAAE,QAAQ,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACjC;AACA,EAAE,QAAQ,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACjC,EAAE,SAAS,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AAClC,EAAE,QAAQ,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACjC,EAAE,KAAK,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AAC9B,EAAE,OAAO,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AAChC,EAAE,WAAW,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACpC,EAAE,IAAI,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AAC9B,EAAE,OAAO,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AAChC;AACA,EAAE,eAAe,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACxC,EAAE,gBAAgB,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACzC,EAAE,eAAe,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACxC,EAAE,YAAY,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACrC,EAAE,cAAc,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACvC,EAAE,kBAAkB,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AAC3C,EAAE,WAAW,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACpC,EAAE,YAAY,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACrC,EAAE,cAAc,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACvC;AACA,EAAE,eAAe,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACxC,EAAE,oBAAoB,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AAC7C,EAAE,aAAa,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACtC,EAAE,aAAa,EAAEA,UAAQ,EAAE,CAAC,QAAQ;AACpC;AACA;AACA,CAAC,CAAC,CAAC,QAAQ,CAACC,WAAS,EAAE;AACpB,IAAC,yBAAyB,GAAGF,UAAQ,CAAC;AACzC;AACA,EAAE,UAAU,EAAEC,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACnC,EAAE,QAAQ,EAAEE,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACjC;AACA,EAAE,YAAY,EAAEC,SAAO;AACvB,IAAIJ,UAAQ,CAAC;AACb,MAAM,UAAU,EAAEC,UAAQ,EAAE;AAC5B,MAAM,QAAQ,EAAEE,UAAQ;AACxB,KAAK;AACL,GAAG,CAAC,QAAQ,EAAE;AACd;AACA,EAAE,OAAO,EAAEH,UAAQ,CAAC;AACpB,IAAI,IAAI,EAAEC,UAAQ,EAAE;AACpB,IAAI,OAAO,EAAEA,UAAQ,EAAE;AACvB,IAAI,KAAK,EAAEA,UAAQ,EAAE;AACrB,IAAI,MAAM,EAAEA,UAAQ,EAAE;AACtB,IAAI,OAAO,EAAEA,UAAQ;AACrB,GAAG,CAAC;AACJ,EAAE,QAAQ,EAAED,UAAQ,CAAC;AACrB,IAAI,WAAW,EAAEC,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACtC,IAAI,KAAK,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AAChC,IAAI,IAAI,EAAEA,UAAQ,EAAE,CAAC,QAAQ;AAC7B,GAAG,CAAC;AACJ,EAAE,WAAW,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACpC,EAAE,MAAM,EAAEG,SAAO;AACjB,IAAIJ,UAAQ,CAAC;AACb,MAAM,QAAQ,EAAEC,UAAQ,EAAE;AAC1B,MAAM,QAAQ,EAAEE,UAAQ;AACxB,KAAK;AACL,GAAG,CAAC,QAAQ,EAAE;AACd,EAAE,QAAQ,EAAEE,UAAQ,CAACJ,UAAQ,EAAE,EAAEA,UAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACvD,EAAE,QAAQ,EAAEA,UAAQ,EAAE,CAAC,QAAQ;AAC/B;AACA,CAAC,CAAC,CAAC,QAAQ,CAACC,WAAS,EAAE;AACpB,IAAC,oCAAoC,GAAGF,UAAQ,CAAC;AACpD,EAAE,UAAU,EAAEC,UAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;AACzD,EAAE,QAAQ,EAAEE,UAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,qCAAqC;AAC3E,CAAC;AACE,IAAC,6BAA6B,GAAGH,UAAQ,CAAC;AAC7C,EAAE,KAAK,EAAEC,UAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;AACtC,EAAE,IAAI,EAAEA,UAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACpC,EAAE,YAAY,EAAEA,UAAQ,EAAE,CAAC,QAAQ;AACnC,CAAC,CAAC,CAAC,QAAQ;AACR,IAAC,mCAAmC,GAAGD,UAAQ,CAAC;AACnD,EAAE,MAAM,EAAEC,UAAQ,EAAE,CAAC,QAAQ,EAAE;AAC/B,EAAE,IAAI,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AAC7B,EAAE,KAAK,EAAEA,UAAQ,EAAE,CAAC,QAAQ,EAAE;AAC9B,EAAE,OAAO,EAAEA,UAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,qCAAqC,CAAC;AACtE,EAAE,OAAO,EAAEA,UAAQ,EAAE,CAAC,QAAQ;AAC9B,CAAC,CAAC,CAAC,QAAQ;AACR,IAAC,uBAAuB,GAAGK,QAAM,CAAC;AACrC,EAAE,QAAQ;AACV,EAAE,OAAO;AACT,EAAE,aAAa;AACf,EAAE,YAAY;AACd,EAAE,WAAW;AACb,EAAE,YAAY;AACd,EAAE,YAAY;AACd,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,mBAAmB;AACrB,EAAE,MAAM;AACR,EAAE;AACF,CAAC;AACE,IAAC,kCAAkC,GAAGN,UAAQ,CAAC;AAClD,EAAE,KAAK,EAAEM,QAAM,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;AACvD,EAAE,kBAAkB,EAAEC,WAAS,EAAE,CAAC,QAAQ,EAAE;AAC5C,EAAE,kBAAkB,EAAEA,WAAS,EAAE,CAAC,QAAQ;AAC1C,CAAC,CAAC,CAAC,QAAQ;AACR,IAAC,iCAAiC,GAAGP,UAAQ,CAAC;AACjD,EAAE,wBAAwB,EAAEO,WAAS,EAAE,CAAC,QAAQ,EAAE;AAClD,EAAE,mBAAmB,EAAEA,WAAS,EAAE,CAAC,QAAQ,EAAE;AAC7C,EAAE,6BAA6B,EAAEA,WAAS,EAAE,CAAC,QAAQ,EAAE;AACvD,EAAE,YAAY,EAAEA,WAAS,EAAE,CAAC,QAAQ,EAAE;AACtC,EAAE,0BAA0B,EAAEA,WAAS,EAAE,CAAC,QAAQ;AAClD,CAAC,CAAC,CAAC,QAAQ;AACR,IAAC,qCAAqC,GAAGP,UAAQ,CAAC;AACrD,EAAE,iBAAiB,EAAEG,UAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ;AAC5D,CAAC,CAAC,CAAC,QAAQ;AACR,IAAC,4BAA4B,GAAGH,UAAQ,CAAC;AAC5C;AACA,EAAE,YAAY,EAAEI,SAAO,CAAC,oCAAoC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,kCAAkC,CAAC;AACxG;AACA,EAAE,QAAQ,EAAE,6BAA6B;AACzC,EAAE,eAAe,EAAE,mCAAmC;AACtD,EAAE,UAAU,EAAEH,UAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;AACzC,EAAE,4BAA4B,EAAEG,SAAO,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE;AAC3E,EAAE,gBAAgB,EAAEH,UAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,sCAAsC,CAAC,CAAC,QAAQ,EAAE;AAC3F,EAAE,0BAA0B,EAAEM,WAAS,EAAE,CAAC,QAAQ,EAAE;AACpD,EAAE,OAAO,EAAEA,WAAS,EAAE,CAAC,QAAQ,EAAE;AACjC,EAAE,aAAa,EAAEN,UAAQ,EAAE,CAAC,QAAQ,EAAE;AACtC,EAAE,QAAQ,EAAEI,UAAQ,CAACJ,UAAQ,EAAE,EAAEA,UAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACvD,EAAE,aAAa,EAAE,kCAAkC;AACnD,EAAE,aAAa,EAAE,iCAAiC;AAClD,EAAE,iBAAiB,EAAE;AACrB,CAAC;AACE,IAAC,6BAA6B,GAAGD,UAAQ,CAAC;AAC7C,EAAE,UAAU,EAAEC,UAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;AACzD,EAAE,YAAY,EAAEA,UAAQ,EAAE,CAAC,GAAG,CAAC,sBAAsB;AACrD,CAAC;AACE,IAAC,qBAAqB,GAAG,OAAO,OAAO,EAAE,MAAM,KAAK;AACvD,EAAE,MAAM,UAAU,GAAG,4BAA4B,CAAC,SAAS,CAAC,OAAO,CAAC;AACpE,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AAC3B,IAAI,MAAM,IAAI,KAAK;AACnB,MAAM,CAAC,kCAAkC,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1I,KAAK;AACL,EAAE;AACF,EAAE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;AACxC,IAAI,WAAW,EAAE,MAAM,CAAC,WAAW;AACnC,IAAI,WAAW,EAAE,MAAM,CAAC;AACxB,GAAG,CAAC;AACJ,EAAE,IAAI;AACN,IAAI,MAAM,UAAU,GAAG;AACvB,MAAM,GAAG,UAAU,CAAC,IAAI;AACxB,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,eAAe,IAAI;AAC5C,QAAQ,eAAe,EAAE;AACzB,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,eAAe;AAC5C,UAAU,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;AACnD;AACA;AACA,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAAC,MAAM;AAC9D,MAAM;AACN,KAAK;AACL,IAAI,MAAM,kBAAkB,GAAG,6BAA6B,CAAC,SAAS,CAAC,OAAO,CAAC;AAC/E,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;AACrC,MAAM,MAAM,IAAI,KAAK;AACrB,QAAQ,CAAC,4CAA4C,EAAE,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9J,OAAO;AACP,IAAI;AACJ,IAAI,OAAO,kBAAkB,CAAC,IAAI;AAClC,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,IAAI,KAAK,YAAY,KAAK,EAAE;AAChC,MAAM,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE;AACjE,QAAQ,OAAO,EAAE,KAAK,CAAC,OAAO;AAC9B,QAAQ,OAAO,EAAE,UAAU,CAAC,IAAI;AAChC,QAAQ,MAAM,EAAE;AAChB,UAAU,WAAW,EAAE,MAAM,CAAC,WAAW;AACzC,UAAU,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC;AACnC;AACA,OAAO,CAAC;AACR,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,mCAAmC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5E,IAAI;AACJ,IAAI,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC;AACpE,IAAI,MAAM,IAAI,KAAK;AACnB,MAAM;AACN,KAAK;AACL,EAAE;AACF;AACG,IAAC,gBAAgB,GAAG,OAAO;AAC9B,EAAE,WAAW;AACb,EAAE,IAAI;AACN,EAAE,cAAc;AAChB,EAAE,SAAS;AACX,EAAE,WAAW;AACb,EAAE,WAAW;AACb,EAAE,IAAI,GAAG;AACT,CAAC,KAAK;AACN,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE;AAC1B,IAAI,IAAI,CAAC,cAAc,EAAE;AACzB,MAAM,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;AAC1E,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,cAAc,EAAE;AAChE,MAAM,WAAW;AACjB,MAAM;AACN,KAAK,CAAC;AACN,IAAI,OAAO,OAAO,CAAC,YAAY;AAC/B,EAAE;AACF,EAAE,MAAM,SAAS,GAAG,IAAI,KAAK,SAAS,GAAG,IAAI,GAAG,WAAW;AAC3D,EAAE,IAAI,WAAW;AACjB,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE;AAC1B,IAAI,WAAW,GAAG,yBAAyB,CAAC,SAAS,CAAC,SAAS,CAAC;AAChE,EAAE,CAAC,MAAM;AACT,IAAI,WAAW,GAAG,mBAAmB,CAAC,SAAS,CAAC,SAAS,CAAC;AAC1D,EAAE;AACF,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,WAAW;AAC9C,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,MAAM,IAAI,KAAK;AACnB,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,SAAS,GAAG,MAAM,GAAG,kBAAkB,CAAC;AAClE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;AACjB,KAAK;AACL,EAAE;AACF,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE;AAC1B,IAAI,MAAM;AACV,MAAM,SAAS;AACf,MAAM,QAAQ,EAAE,SAAS;AACzB,MAAM,QAAQ;AACd,MAAM,SAAS;AACf,MAAM,QAAQ;AACd,MAAM,KAAK;AACX,MAAM,OAAO;AACb,MAAM,WAAW;AACjB,MAAM,IAAI;AACV,MAAM,KAAK;AACX,MAAM,OAAO;AACb,MAAM,eAAe;AACrB,MAAM,gBAAgB;AACtB,MAAM,eAAe;AACrB,MAAM,YAAY;AAClB,MAAM,cAAc;AACpB,MAAM,kBAAkB;AACxB,MAAM,WAAW;AACjB,MAAM,YAAY;AAClB,MAAM,cAAc;AACpB,MAAM,eAAe;AACrB,MAAM,oBAAoB;AAC1B,MAAM,aAAa;AACnB,MAAM;AACN;AACA,KAAK,GAAG,IAAI;AACZ,IAAI,MAAM,aAAa,GAAG,IAAI,YAAY,CAAC;AAC3C,MAAM,WAAW;AACjB,MAAM;AACN,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;AACxE,IAAI,IAAI;AACR,MAAM,MAAM,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;AACtD,IAAI,CAAC,CAAC,OAAO,GAAG,EAAE;AAClB,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AACxB,MAAM,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC;AAC1C,IAAI;AACJ,IAAI,MAAM,GAAG,GAAG,IAAI,GAAG;AACvB,MAAM,CAAC,EAAE,WAAW,KAAK,WAAW,GAAG,wCAAwC,GAAG,mCAAmC,CAAC,KAAK,EAAE,SAAS,CAAC;AACvI,KAAK;AACL,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;AACzE,IAAI,IAAI,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC;AAClE,IAAI,IAAI,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpE,IAAI,IAAI,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;AACvE,IAAI,IAAI,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpE,IAAI,IAAI,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,IAAI,IAAI,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AACjE,IAAI,IAAI,WAAW,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AAC7E,IAAI,IAAI,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACxD,IAAI,IAAI,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,IAAI,IAAI,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AACjE,IAAI,IAAI,eAAe,KAAK,MAAM;AAClC,MAAM,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC;AACrD,IAAI,IAAI,gBAAgB,KAAK,MAAM;AACnC,MAAM,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC;AACtD,IAAI,IAAI,eAAe,KAAK,MAAM;AAClC,MAAM,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC;AACrD,IAAI,IAAI,YAAY,KAAK,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC;AAC7E,IAAI,IAAI,cAAc,KAAK,MAAM;AACjC,MAAM,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC;AACpD,IAAI,IAAI,kBAAkB,KAAK,MAAM;AACrC,MAAM,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC;AACxD,IAAI,IAAI,WAAW,KAAK,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC;AAC3E,IAAI,IAAI,YAAY,KAAK,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC;AAC7E,IAAI,IAAI,cAAc,KAAK,MAAM;AACjC,MAAM,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC;AACpD,IAAI,IAAI,eAAe;AACvB,MAAM,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;AACtE,IAAI,IAAI,oBAAoB;AAC5B,MAAM,GAAG,CAAC,YAAY,CAAC,GAAG;AAC1B,QAAQ,sBAAsB;AAC9B,QAAQ,MAAM,CAAC,oBAAoB;AACnC,OAAO;AACP,IAAI,IAAI,aAAa;AACrB,MAAM,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;AAClE,IAAI,IAAI,aAAa;AACrB,MAAM,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;AAClE,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE;AAClE,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7E,QAAQ,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAChD,MAAM;AACN,IAAI;AACJ,IAAI,OAAO,GAAG,CAAC,QAAQ,EAAE;AACzB,EAAE;AACF,EAAE,MAAM,GAAG,GAAG,IAAI;AAClB,EAAE,MAAM;AACR,IAAI,UAAU;AACd,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,4BAA4B;AAChC,IAAI,gBAAgB;AACpB,IAAI,aAAa;AACjB,IAAI,SAAS;AACb,IAAI,UAAU,EAAE,aAAa;AAC7B,IAAI,0BAA0B;AAC9B,IAAI,MAAM;AACV,IAAI;AACJ,GAAG,GAAG,GAAG;AACT,EAAE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;AACxC,IAAI,WAAW;AACf,IAAI;AACJ,GAAG,CAAC;AACJ,EAAE,IAAI,cAAc,GAAG,KAAK;AAC5B,EAAE,IAAI,gBAAgB,GAAG,UAAU;AACnC,EAAE,IAAI,CAAC,UAAU,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9D,IAAI,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU;AACjD,EAAE;AACF,EAAE,IAAI,CAAC,gBAAgB;AACvB,IAAI,MAAM,IAAI,KAAK;AACnB,MAAM;AACN,KAAK;AACL,EAAE,IAAI,OAAO;AACb,EAAE,IAAI;AACN,IAAI,OAAO,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AACpE,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AACtB,IAAI,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC;AACxC,EAAE;AACF,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;AAChD,EAAE,IAAI,cAAc,IAAI,CAAC,UAAU;AACnC,IAAI,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC;AAC1E,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC;AAClE,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;AACpE,EAAE,IAAI,cAAc,EAAE;AACtB,IAAI,MAAM,mBAAmB,GAAG;AAChC,MAAM,OAAO;AACb,MAAM,QAAQ;AACd,MAAM,UAAU;AAChB,MAAM,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG;AAC9C,KAAK;AACL,IAAI,IAAI,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,GAAG,QAAQ;AACzD,IAAI,IAAI,aAAa,EAAE,mBAAmB,CAAC,aAAa,GAAG,aAAa;AACxE,IAAI,IAAI,MAAM,EAAE,mBAAmB,CAAC,MAAM,GAAG,MAAM;AACnD,IAAI,IAAI,4BAA4B;AACpC,MAAM,mBAAmB,CAAC,4BAA4B,GAAG,4BAA4B;AACrF,IAAI,IAAI,gBAAgB;AACxB,MAAM,mBAAmB,CAAC,gBAAgB,GAAG,gBAAgB;AAC7D,IAAI,IAAI,SAAS,EAAE,mBAAmB,CAAC,SAAS,GAAG,SAAS;AAC5D,IAAI,mBAAmB,CAAC,YAAY,GAAG,IAAI;AAC3C,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,mBAAmB,CAAC,UAAU,GAAG,aAAa;AACpD,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE;AAC1B,MAAM,mBAAmB,CAAC,UAAU,GAAG,SAAS;AAChD,IAAI;AACJ,IAAI,IAAI,0BAA0B;AAClC,MAAM,mBAAmB,CAAC,0BAA0B,GAAG,0BAA0B;AACjF,IAAI,IAAI,MAAM,EAAE,mBAAmB,CAAC,MAAM,GAAG,MAAM;AACnD,IAAI,IAAI,iBAAiB;AACzB,MAAM,mBAAmB,CAAC,iBAAiB,GAAG,iBAAiB;AAC/D,IAAI,IAAI,YAAY;AACpB,IAAI,IAAI;AACR,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,mBAAmB,CAAC;AACjF,IAAI,CAAC,CAAC,OAAO,GAAG,EAAE;AAClB,MAAM,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC;AAC5D,MAAM,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACvE,IAAI;AACJ,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;AACrD,MAAM,MAAM,IAAI,KAAK;AACrB,QAAQ;AACR,OAAO;AACP,IAAI;AACJ,IAAI,OAAO,YAAY,CAAC,YAAY;AACpC,EAAE,CAAC,MAAM;AACT,IAAI,IAAI,IAAI,GAAG,YAAY;AAC3B,IAAI,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE;AAC7B,MAAM,IAAI,GAAG;AACb,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC/D,OAAO;AACP,IAAI;AACJ,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;AAClC,MAAM,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC;AAC3E,IAAI,MAAM,cAAc,GAAG;AAC3B,MAAM,OAAO;AACb,MAAM,QAAQ;AACd,MAAM,YAAY,EAAE;AACpB,KAAK;AACL,IAAI,IAAI,QAAQ,EAAE,cAAc,CAAC,QAAQ,GAAG,QAAQ;AACpD,IAAI,cAAc,CAAC,YAAY,GAAG,IAAI;AACtC,IAAI,IAAI,4BAA4B;AACpC,MAAM,cAAc,CAAC,4BAA4B,GAAG,4BAA4B;AAChF,IAAI,IAAI,gBAAgB,EAAE,cAAc,CAAC,gBAAgB,GAAG,gBAAgB;AAC5E,IAAI,IAAI,aAAa,EAAE,cAAc,CAAC,aAAa,GAAG,aAAa;AACnE,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,cAAc,CAAC,UAAU,GAAG,aAAa;AAC/C,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE;AAC1B,MAAM,cAAc,CAAC,UAAU,GAAG,SAAS;AAC3C,IAAI;AACJ,IAAI,IAAI,0BAA0B;AAClC,MAAM,cAAc,CAAC,0BAA0B,GAAG,0BAA0B;AAC5E,IAAI,IAAI,MAAM,EAAE,cAAc,CAAC,MAAM,GAAG,MAAM;AAC9C,IAAI,IAAI,OAAO;AACf,IAAI,IAAI;AACR,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC;AAClE,IAAI,CAAC,CAAC,OAAO,GAAG,EAAE;AAClB,MAAM,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC;AAC5D,MAAM,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACvE,IAAI;AACJ,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AAC3C,MAAM,MAAM,IAAI,KAAK;AACrB,QAAQ;AACR,OAAO;AACP,IAAI;AACJ,IAAI,OAAO,OAAO,CAAC,YAAY;AAC/B,EAAE;AACF;;;;"}